我一直在尝试让 Cuttlefish 在运行 Ubuntu 22.0.4.4 的 Windows 的 Linux 子系统 (WSL2) 上工作以模拟 Android,并根据本指南的建议重建 Linux 内核以修复一些 vsock 问题后 https://github .com/5ec1cff/my-notes/blob/master/cuttlefish-on-wsl.md,我现在遇到一个问题,启动后带有
HOME=$PWD ./bin/launch_cvd --daemon
的墨鱼很快就会失败,谷歌的虚拟机监视器(Crosvm)无法挂载某些目录:
crosvm D 06-07 10:03:32 65542 65542 log_tee.cpp:175] crosvm[1]: libminijail[1]: cannot mount '/usr/lib' as '/var/empty/usr/lib' with flags 0x1001: Invalid argument
crosvm D 06-07 10:03:32 65542 65542 log_tee.cpp:175] crosvm[1]: libminijail[1]: mount_one failed with /dev at '(null)'
指南建议使用GDB进行检查,作者声称经过一些初步探测后,安装问题得到了解决。不幸的是,我的情况并非如此。一般来说,我对 GDB、Cuttlefish 和 Android 开发缺乏经验,所以欢迎任何专业知识!
我遇到了同样的问题,只是创建了“/var/empty/usr/lib”路径,然后创建了一个新组(
sudo groupadd yournewgroup
),将我的用户添加到该组(sudo usermod -aG yournewgroup yourusername
)并更改了组所有权'/var/empty/usr/lib' 到新组 (sudo chown root:yournewgroup /var/empty/usr/lib
)。我什至更改了“usr”和“empty”,但我不确定这是否真的需要。
这解决了我的问题。