KVM 穿透板载蓝牙和无线网卡
我的Host一直是Linux,但是偶尔会打游戏,因此有一台 Windows 虚拟机,最近想要把板载蓝牙和无线网卡穿透进去,但是都遇到了一些 小困难需要解决,因此记录成文。
穿透无线网卡
无线网卡穿透起来和穿透显卡等硬件是一样的,由于无线网卡在一个单独的IOMMU组,直接加到 /etc/modprobe.d/vfio.conf
中即可,此外,我发现我本地的无线网卡总是被 igb 驱动优先占用导致 vfio-pci 无法占用网卡,我在 /etc/modprobe.d/vfio.conf
中加上:
softdep igb pre: vfio-pci
options vfio-pci ids=...无线网卡的硬件ID
然后重启以后,就可以穿透了。
穿透蓝牙
一开始我以为蓝牙是和无线网卡在一起的,后来发现蓝牙是和USB控制器在一起的,在 virt-manager 中,点击 Add Hardware - USB Host Device,
选择带 Intl...Bluetooth 的那个,穿透进去以后,如果直接开机的话,会发现这样的现象:
- Windows 可以发现蓝牙硬件,但是无法使用,安装驱动以后,点开 “我的电脑” 查看硬件详情,驱动里报错 “code: 10”
经过搜索发现,这是 libvirt 的一个改动导致的问题,要解决这个问题,还需要编辑XML:
$ sudo virsh edit --domain windows
在 </domain> 上面加上 <qemu:capabilities> 这一节:
<domain>
<devices>
...
</devices>
<qemu:capabilities>
<qemu:del capability="usb-host.hostdevice"/>
</qemu:capabilities>
...
</domain>
此时如果保存你会发现无法通过xml校验,还需要跳到顶部,在 <domain type='kvm'> 改成
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
然后保存,然后重启以后,就可以穿透蓝牙了。
参考文档:
邮件 订阅
RSS 订阅
Web开发简介系列
数据结构的实际使用
Golang 简明教程
Python 教程