将 USB 设备映射到 KVM 里

有时需要在 KVM 的 Guest OS 里使用 USB 设备,记录一下映射方法。以 HTC Dream 手机为例。

获取设备ID

lsusb
Bus 002 Device 014: ID 0bb4:0c02 High Tech Computer Corp. 
Bus 002 Device 013: ID 1ea7:000e  
Bus 002 Device 006: ID 0e8f:0022 GreenAsia Inc. 
Bus 002 Device 002: ID 8087:0020  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0c45:6452 Microdia 
Bus 001 Device 003: ID 0bda:0138 Realtek Semiconductor Corp. 
Bus 001 Device 002: ID 8087:0020  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这里 0bb4:0c02 就是我的 HTC Dream 的设备ID,大家可以通过对比设备插入前后的结果获得正确的ID。

设置访问权限
由于 KVM 多数是进行于普通用户,这类用户一般没有对 USB 设备的直接访问权限,需要增加一个 udev 规则增加权限。这里需要使用到前面获取到的设备ID的前段,也就是厂商ID,如这里的 0bb4,在执行完下面的命令后,重新插入一下设备。

echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0bb4\", MODE=\"0666\"" > /tmp/51-android.rules
sudo mv /tmp/51-android.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules

映射 USB 设备

kvm ... -usb -usbdevice host:0bb4:0c02

现在在 KVM 里的 Guest OS 中就可以看到设备了。

Over!

6 thoughts on “将 USB 设备映射到 KVM 里”

  1. KVM虚拟化方案虽然执行效率比较高,但是资源控制方面还不成熟,还不适合商业 应用。
    子域名的证书用于顶级域名也是没有信任问题的。

Leave a Reply

Your email address will not be published. Required fields are marked *