有些时候KVM客户机还是要使用USB设备,比如USB密钥等

KVM命令行参数

-usb 打开usb驱动程序,启动客户机usb支持
-usbdevice devname 为客户机增加usb设备,devname有多种形式,详见man kvm,这里只涉及一种形式host:vendor_id:product_id,也就是-usbdevce vendor_id:product_id

获取USB设备参数

将usb设备插入主机之前

$lsusb > usb.old

usb设备插入主机之后

$lsusb > usb.new

然后

vimdiff usb.old usb.new

找到新增加的那一行,类似下面这行

Bus 002 Device 004: ID 13fd:1040 Initio Corporation

ID后面的两个字段分别是vendor_id和product_id

映射usb设备
客户机命令行添加这两个参数
sudo kvm -usb -usbdevice host:13fd:1040 …

这样客户机就可以看到映射的USB设备了

小问题

把移动硬盘映射到客户机做测试,虚拟客户机竟然无法启动了,从远程vnc看一直停留在Booting from Hard Disk…,搜索了下下也无结果,后来灵光一闪,是不是因为移动硬盘成了启动磁盘?果然如此,修改引导参数如下

-boot order=c,menu=on

这里增加了menu=on,这样启动的时候按F12可以选择从哪个驱动器启动,重新启动,果然看到移动硬盘成了第一个启动设备,选择本地硬盘正常启动系统,从客户机里也可以看到移动硬盘。

据了解,现在KVM还没有命令行参数可以设置从第二块硬盘启动,也有人在提这个事情,建议order=e从第二块硬盘启动,依次类推。

update:
参数-usbdevice devname映射普通的USB设备有两种格式,devname可以指定为
host:bus.addr
host:vendor_id:product_id
上面-usbdevice host:13fd:1040指定的是host:vendor_id:product_id这种格式,对于例子中显示的USB设备,也可以以host:bus.addr格式设定参数
host:2.4
其中2为总线号,4为设备在总线上的地址Bus 002 Device 004,但是使用host:bus.addr这种格式有一个缺点,如果USB设备换一个插口,其总线和设备号会发生变化,而host:vendor_id:product_id这种格式则不受影响,即便客户机换到另一台主机上跑也是一样。

update again(09/19/2012):

KVM主机上插了两个同类型的usb设备,这个两个usb设备的verdor_id和product_id竟然完全一样,那只能通过host:bus.addr这种方式为客户机指定usb设备了,不然kvm主机会不知所措吧。

获取USB设备参数

将usb设备插入主机之前

$lsusb > usb.old

usb设备插入主机之后

$lsusb > usb.new

然后

vimdiff usb.old usb.new

找到新增加的那一行,类似下面这行

Bus 002 Device 004: ID 13fd:1040 Initio Corporation

ID后面的两个字段分别是vendor_id和product_id

宿主机上新建usb_device.xml
usb_device.xml内容如下 < hostdev mode='subsystem' type='usb' managed='yes'> < source> < vendor id='0x13fd'/> < product id='0x1040'/> < /source> < /hostdev> 最后一步绑定
[root@node-16 ~]# virsh attach-device 虚拟机名字 usb_device.xml Device attached successfully 成功绑定 可以查看配置文件:
virsh dumpxml 虚拟机名字,存在下面一段: < hostdev mode='subsystem' type='usb' managed='yes' > < source> < vendor id='0x13fd'/> < product id='0x1040'/> < /source> < alias name='hostdev0'/> < /hostdev>

  

kvm云主机使用宿主机usb设备的更多相关文章

  1. 虚拟机在NAT模式下主机与宿主机的ip配置

    现有如下环境: 宿主机:win7 (IP为100.101.201.20) 虚拟机: SUSE LinuxEterprise 11 64bit (IP为100.101.201.23) 连接模式如下图: ...

  2. KVM客户机使用主机USB设备

    有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持 -usbdevice devname 为客户机增加usb设备,devn ...

  3. USB协议-USB设备的枚举过程

    USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. ...

  4. USB设备驱动程序学习笔记(一)

    现象:把USB设备接到PC1. 右下角弹出"发现android phone"2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道 ...

  5. USB设备驱动总结

    现象:把USB设备接到PC        (韦老师总结) 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有" ...

  6. I.MX6 简单电路模拟USB设备的插入

    /**************************************************************************** * I.MX6 简单电路模拟USB设备的插入 ...

  7. 12、USB设备驱动程序

    linux-3.4.2\driver\hid\usbhid\usbmouse.c 内核只带USB驱动程序 (hub和usb是两个不同的设备,hub在内核上电的过程中在usb_hub_init函数中调用 ...

  8. usb设备枚举过程

    USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举呢?枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序.调试USB设 ...

  9. 【CI】系列三.宿主机KVM配置及vdi与vmdk格式转换等

    前提:宿主机需要支持虚拟化,如果未打开,则需要重启机器,在bois中打开该项: Ubuntu 及 KVM 相关主要参考官方 https://wiki.ubuntu.com/kvm 另外也可参考该页面: ...

随机推荐

  1. BT.656 NTSC制式彩条生成模块(verilog)

    BT.656 NTSC制式彩条生成模块(verilog) 1.知识储备 隔行扫描是将一副图像分成两场扫描,第一场扫描第1,2,5,7...等奇数行,第二场扫描2,4,6,8...等偶数行,并把扫奇数行 ...

  2. Python开发工具Atom

    python基础教程之Python开发工具Atom   本节内容如下: Atom简介 下载安装Atom 安装Python开发包 使用Atom开发Python程序 Atom简介 Atom是Github开 ...

  3. 黄聪:Fiddler对安卓应用手机抓包图文教程

    做开发需要抓取手机app的http/https的数据包,想看APP发出的http请求和响应是什么,这就需要抓包了,这可以得到一些不为人知的api,比如还可以干些“坏事”... 需要工具: Fiddle ...

  4. 数据挖掘标准规范之CRISP-DM基础

    一.前言 每每提到数据挖掘,总有些人上来就是ETL.是算法.是数学模型,作为搞工程实施的我而言,很是头疼.其实作为数据挖掘的而言,算法只是其实现手段.是工具和实现手段而已,我们不是在创造算法(国外职业 ...

  5. pytest.10.使用fixture参数化测试预期结果

    From: http://www.testclass.net/pytest/test_api_with_expected_result/ 背景 接上一节v2ex网站的查看论坛节点信息的api. 我们在 ...

  6. MDIEMDIE双心封装版0.3.0.0RC6V2

    MDIEMDIE双心封装版0.3.0.0 RC6V2官方主页:http://cres.s28.xrea.com/MDIE(多文档界面资源管理器)是一个MDI类型的文件管理软件,是代替资源管理器的一个无 ...

  7. Python实现简单的网页抓取

    现在开源的网页抓取程序有很多,各种语言应有尽有. 这里分享一下Python从零开始的网页抓取过程 第一步:安装Python 点击下载适合的版本https://www.python.org/ 我这里选择 ...

  8. java设计模式-Observe

    一.背景 请模拟下面情形: 小孩在睡觉,醒来后要求吃东西   代码: class Child{ private boolean wakenUp = false; void wakeUp(){ wake ...

  9. 学习笔记之Bokeh Data Visualization | DataCamp

    Bokeh Data Visualization | DataCamp https://www.datacamp.com/courses/interactive-data-visualization- ...

  10. go语言学习--map的并发

    go提供了一种叫map的数据结构,可以翻译成映射,对应于其他语言的字典.哈希表.借助map,可以定义一个键和值,然后可以从map中获取.设置和删除这个值,尤其适合数据查找的场景.但是map的使用有一定 ...