使用crosvm为Cuttlefish设备挂载USB时遇I/O错误求助
Cuttlefish USB挂载失败(os error 5)问题排查与解决
问题场景
执行crosvm USB挂载命令时触发IO错误:
$ sudo HOME=$PWD ./bin/crosvm usb attach 00:00:00:00 /dev/bus/usb/002/003 /tmp/cf_avd_1000/cvd-1/internal/crosvm_control.sock
错误输出:
error unexpected response: error: Input/output error (os error 5) [2024-06-05T05:05:50.295323432+00:00 ERROR crosvm] exiting with error 1: usb subcommand failed
排查与解决步骤
确认Cuttlefish已启用USB支持
Cuttlefish默认未开启USB功能,启动时必须显式添加参数:# 停止现有实例 cvd stop # 重新启动并启用USB cvd start --enable_usb重启完成后再执行usb attach命令。
检查USB设备权限
/dev/bus/usb/002/003设备文件权限不足可能导致IO错误,先查看权限:ls -l /dev/bus/usb/002/003临时调整权限测试:
sudo chmod 666 /dev/bus/usb/002/003验证crosvm控制socket有效性
确认socket文件存在且属于当前运行的Cuttlefish实例:ls -l /tmp/cf_avd_1000/cvd-1/internal/若socket不存在,说明crosvm实例未正常启动,或实例路径错误,检查当前用户的Cuttlefish实例目录。
排查USB设备占用情况
用lsof检查设备是否被其他进程占用:sudo lsof /dev/bus/usb/002/003如有占用进程,关闭后重新尝试attach。
简化命令测试
移除HOME=$PWD变量,避免配置加载异常:sudo ./bin/crosvm usb attach 00:00:00:00 /dev/bus/usb/002/003 /tmp/cf_avd_1000/cvd-1/internal/crosvm_control.sock同时确保
./bin/crosvm是当前Cuttlefish配套的版本,避免版本不兼容。
内容的提问来源于stack exchange,提问作者anh duc
相关产品推荐
相关产品推荐

