libvirt虚拟系统如何增加usb设备

By | 2017年2月16日
目录
[隐藏]
更换U盾需要使用virsh stop  domain   和virsh start domain  重启。
yum install usbutils

之前干这些事情都是通过virt-manager来搞定的。不过由于这个图形界面不太方便,而且现在没法打开(具体原因不详,每次打开提示一些方法未实现什么的),所以试下用libvirt的命令virsh来搞定增加usb设备。

这次要添加的是shuffle,之前发现gtkpod没法向里面放音乐了,只能试下虚拟机里用itunes了。

首先通过lsusb差看设备的id:

我的shuffle的usbid是:Bus 002 Device 002: ID 05ac:1303 Apple, Inc.
创建一个xml文件(hostdev_ipod.xml):

 代码如下 复制代码
#cat hostdev_ipod.xml
<hostdev mode=’subsystem’ type=’usb’>
<source>
<vendor id=’0x05ac’/>
<product id=’0x1303’/>
</source>
</hostdev>

然后通过:

virsh attach-device windows /path/to/hostdev_ipod.xml

这里的windows是我虚拟机的名字,然后这个设备就可以在windows虚拟机里面看见了。

#######################分割线############################################3

KVM usb passthrough就是将宿主机的usb接口直接给虚拟机使用,usb接口上的设备也就直接可以在虚拟机上使用。

 

测试环境

宿主机1 centos 6.6 64位 内核版本 2.6.32-431.1.2.0.1.el6.x86_64

宿主机2 fedora 21 内核版本 3.17.2-300.fc21.x86_64

虚拟机 windows 7 64位

 

配置方法

第一步 通过lsub或者virt-manager看看有那些usb口可供使用

复制代码

代码如下:

lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 03f0:1027 Hewlett-Packard Virtual keyboard and mouse
Bus 001 Device 002: ID 058f:6387 Alcor Micro Corp. Flash Drive
Tue Dec 16 12:45:21 CST 2014


第二步 将需要的usb接口传给虚拟机

xml 配置文件为

复制代码

代码如下:

<hostdev mode=’subsystem’ type=’usb’ managed=’yes’>
<source>
<vendor id=’0x058f’/>
<product id=’0x6387’/>
<address bus=’1′ device=’2’/>
</source>
<alias name=’hostdev0’/>
</hostdev>

第三步 测试

在测试过程中发现一个很奇怪的现象,在centos6的宿主机上的windows7,u盘不能识别

但是如果是centos6的虚拟机,U盘就可以正常使用,开始以为是windows7驱动的问题,但是尝试了各种驱动,问题依旧。

后来尝试了在fedora21上的windows7虚拟机,u盘插上去就可以直接使用

甚至不要做任何配置,应该和fedora上的usb转发器有关系,看来还是新的版本做了许多改进。

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注