Print

把USB设备插到CVK主机后,在CAS的WEB管理界面给虚机添加USB设备时发现找不到该设备。

13小时前 发表

问题描述

把USB设备插到CVK主机后,在CAS的WEB管理界面给虚机添加USB设备时发现找不到该设备。

过程分析

(1)     USB插槽可能没有插对,USB设备换一个插槽试试。可以尝试把USB设备直接插到服务器内部的USB插槽上。若服务器有多个类型的USB插槽,应把相应型号的USB插到对应插槽上。

(2)     目前USB设备有3.02.01.0,虽然是向下兼容,但一些USB设备兼容性并不好,例如USB Key一般为1.0设备,插到只有USB3.0插槽的服务器上时,建议在服务器bois里把USB3.0禁用。

(3)     CVK后台,拔下插上USB设备前后,用lsusb命令查看是否有新增设备。

(4)     virsh nodedev-list usb_device查看新增USB设备的设备名称。

解决方法

(1)     USB插槽可能没有插对,USB设备换一个插槽试试。用小辫子的,可以尝试把USB设备直接插到服务器内部的USB插槽上。若服务器有多个类型的USB插槽,应把相应型号的USB插到对应插槽上。可用lsusb -t检查USB设备插的插槽是否正确。例:

 root@cvk-163:~# lsusb -t

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M

    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M

|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M

命令返回结果里的UHCI表示USB1.1EHCI表示USB2.0XHCI表示USB3.0。一般USB1.1最大传输速率为12MbpsUSB2.0最大传输速率为480MbpsUSB3.0最大传输速率为5Gbps

如果服务器支持多种USB总线标准,给服务器添加一个USB2.0设备后,在USB2.0ehci-pci)的总线下新增一个USB设备,则说明USB设备插的插槽是正确的。

(2)     目前USB设备有3.02.01.0,虽然是向下兼容,但一些USB设备兼容性并不好,例如USB Key一般为1.0设备,插到只有USB3.0插槽的服务器上时,建议在服务器bois里把USB3.0禁用。

(3)     进行上述操作后,还无法识别到,继续往下排查。在CVK后台,拔下插上USB设备前后,用lsusb命令查看是否有新增设备,例如:

root@ CVK:~# lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 005 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 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 006 Device 002: ID 03f0:7029 Hewlett-Packard

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

¡     如果没有。系统可以支持市面上绝大多数USB设备,USB设备本身可能有问题,尝试把USB设备插到办公PC上检查该USB设备是否可正常运行,如果可以正常运行,说明USB设备本身是正常的。用以下方法排查是CAS系统问题还是服务器不兼容该USB设备。

服务器裸机安装办公PC一样的系统,插上USB设备检查系统内是否可以识别。

-     若不可以识别,说明是服务器不兼容该USB

-     若可以识别,说明服务器没有问题,是支持该USB设备的。

¡     如果有,说明系统已识别到该设备,继续下面步骤排查。

(4)     virsh nodedev-list usb_device查看新增USB设备的设备名称,例如:

root@ CVK:~# virsh nodedev-list usb_device

usb_2_1_5

usb_usb1

usb_usb2

usb_usb3

usb_usb4

新增usb设备名称为:usb_2_1_5

(5)     virsh nodedev-dumpxml xxx查看新增USB设备的XML信息,(xxx为用virsh nodedev-list usb_device 看到的新增usb的设备,如上面的usb_2_1_5),例:

root@CVK:~# virsh nodedev-dumpxml usb_2_1_5

<device>

  <name>usb_2_1_5</name>

  <path>/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5</path>

  <parent>usb_2_1</parent>

  <driver>

    <name>usb</name>

  </driver>

  <capability type='usb_device'>

    <bus>2</bus>

    <device>70</device>

    <product id='0x6545'>DataTraveler G2 </product>

    <vendor id='0x0930'>Kingston</vendor>

  </capability>

</device>