如何在Ubuntu 18的VirtualBox中启用Android-x86 8.1rc2虚拟机蓝牙
我之前在VirtualBox上折腾Android-x86蓝牙的时候也碰到过几乎一模一样的问题,结合你的环境细节,给你几个实际可行的排查和解决步骤:
1. 先确保宿主机释放蓝牙适配器的控制权
宿主机如果正在占用蓝牙设备,虚拟机根本没法拿到完整的控制权,这是最常见的坑:
- 打开Ubuntu终端,先确认你的CSR适配器设备ID:运行
lsusb,找到类似Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)的条目 - 检查宿主机蓝牙服务状态:
systemctl status bluetooth,如果显示active (running),立刻停止并禁用它:sudo systemctl stop bluetooth sudo systemctl disable bluetooth - 最后在Ubuntu的蓝牙图标里手动关闭适配器,确保宿主机完全释放设备。
2. 调整VirtualBox的USB连接方式
自动筛选器有时候会抽风,手动连接更靠谱:
- 打开VirtualBox,选中你的Android-x86虚拟机,进入设置 -> USB,把之前的筛选器删掉,重新添加一个精准匹配的筛选器(用刚才
lsusb里的Vendor ID和Product ID,不要只靠设备名称) - 启动虚拟机,等Android系统完全加载后,再在VirtualBox顶部菜单栏选择设备 -> USB -> 你的CSR蓝牙适配器,手动触发连接,这时候虚拟机应该会弹出设备连接成功的提示。
3. 解决Android-x86里的蓝牙权限错误
你碰到的Operation not permitted(1)是典型的权限问题,按以下步骤操作:
- 打开Android终端模拟器,先获取root权限:输入
su,如果系统弹出授权请求,选择允许 - 先重置蓝牙设备状态,再尝试启动:
hciconfig hci0 down hciconfig hci0 up - 如果还是报错,检查蓝牙设备文件的权限:
看到hci0的权限如果不是ls -l /dev/bluetooth/bluetooth:bluetooth,手动修改:chown bluetooth:bluetooth /dev/bluetooth/hci0 chmod 660 /dev/bluetooth/hci0 - 最后重启蓝牙服务:
service bluetooth restart,再用hcitool dev检查设备是否出现。
4. 验证VirtualBox版本兼容性
虽然你装了Extension Pack,但一定要确保它和VirtualBox主程序版本完全一致(都是6.0.2 r128162),版本不匹配会导致USB设备无法正常工作:
- 在VirtualBox里点击帮助 -> 关于,确认主程序版本
- 进入文件 -> 首选项 -> 扩展,检查Extension Pack的版本,不一致的话卸载旧版本,重新安装对应版本的扩展包
- 另外,试试把虚拟机的USB控制器改成USB 2.0 (EHCI),VirtualBox 6.0.x对USB 3.0的蓝牙适配器支持可能存在兼容性问题。
5. 尝试更换Android-x86镜像
Android-x86 8.1rc2是候选版本,蓝牙驱动的兼容性可能不够完善:
- 可以试试Android-x86的稳定版(比如9.0或10.0),或者基于LineageOS的Android-x86镜像,这些版本对蓝牙设备的支持通常更成熟。
内容的提问来源于stack exchange,提问作者asenec4
相关产品推荐
相关产品推荐

