Jetson Nano上启动Android Cuttlefish失败求助
在Jetson Nano(Ubuntu 22.04 + 4.9内核)上启动Android Cuttlefish失败的排查方案
环境信息
- 硬件:4GB Jetson Nano
- 系统:Ubuntu 22.04
- 内核版本:4.9
- 编译器:从gcc 7.5 linaro升级至gcc 10.1.0
- 操作:已完成Android Cuttlefish依赖安装、仓库克隆、包构建与部署流程
问题复现
两次启动命令均失败:
执行命令:
HOME=$(pwd) ./bin/launch_cvd -vm_manager qemu_cli -report_anonymous_usage_stats=n --start_webrtc=false报错:
Can't tombstone server socket: 'Address family not supported by protocol'
子进程中断退出。执行命令:
HOME=$(pwd) ./bin/launch_cvd -cpus=2 --memory_mb=2048报错:
Could not open vsock socket: Address family not supported by protocol
同时crosvm输出错误:
failed to create IRQ chip (os error 19)
关键子进程意外退出。
针对性解决方案
1. 修复"Address family not supported by protocol"错误
Jetson Nano的4.9内核默认未开启CONFIG_VSOCKETS相关配置,而Cuttlefish依赖vsock实现宿主机与虚拟机的通信。需重新编译内核并开启以下配置:
CONFIG_VSOCKETS=yCONFIG_VSOCKETS_DIAG=yCONFIG_QEMU_VSOCKETS=y(针对QEMU的vsock支持)
编译完成后替换原有内核并重启系统。
2. 解决crosvm的IRQ芯片创建失败问题
os error 19对应ENODEV,说明Jetson Nano的ARM架构与crosvm默认的虚拟化适配不兼容。建议强制使用qemu_cli作为虚拟机管理器,并补充ARM架构适配参数:
修改启动命令为:
HOME=$(pwd) ./bin/launch_cvd -vm_manager qemu_cli -report_anonymous_usage_stats=n --start_webrtc=false -cpus=2 --memory_mb=1536 --qemu_params="-machine virt,gic-version=2"
--memory_mb=1536:降低虚拟机内存分配,避免宿主机资源耗尽--qemu_params="-machine virt,gic-version=2":指定ARM兼容的中断控制器版本
3. 验证编译器兼容性
Android构建系统对编译器版本有严格要求,需确认gcc 10.1.0符合Cuttlefish的编译规范。可通过环境变量强制指定编译器路径后重新构建:
export CC=/path/to/gcc-10.1.0/bin/gcc export CXX=/path/to/gcc-10.1.0/bin/g++ # 重新执行Cuttlefish构建流程
内容的提问来源于stack exchange,提问作者mister_smith
相关产品推荐
相关产品推荐

