Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
linux_faq:kvm_usb_hotplug [2019/02/11 09:13] – external edit 127.0.0.1linux_faq:kvm_usb_hotplug [2022/03/12 06:18] – [Ошибки] admin
Line 5: Line 5:
 Тут нас интересуют номер шины и номер устройства: **Bus 004 Device 024:** Тут нас интересуют номер шины и номер устройства: **Bus 004 Device 024:**
 На основании этих сведений создаем файлик *.xml: На основании этих сведений создаем файлик *.xml:
-    <hostdev mode='subsystem' type='usb' managed='yes'> +<code> 
-      <source> +<hostdev mode='subsystem' type='usb' managed='yes'> 
-        <address bus='4' device='24'/> +  <source> 
-      </source> +    <address bus='4' device='24'/> 
-    </hostdev>+  </source> 
 +</hostdev> 
 +</code> 
 +Также вместо положения на шине можно указывать **VendorID** и **DeviceID**: 
 +<code><hostdev mode='subsystem' type='usb'> 
 +  <source> 
 +    <vendor id='0x03f0'/> 
 +    <product id='0x4217'/> 
 +  </source> 
 +</hostdev></code> 
 Нули из номера шины и номера девайса нужно убрать. Нули из номера шины и номера девайса нужно убрать.
  
Line 23: Line 33:
   Device attached successfully   Device attached successfully
  
-Также вместо положения на шине можно указывать VendorID и DeviceID: +Ну и самое интересное - оформление правил **udev** для автоматического подключения устройств.
-<code><hostdev mode='subsystem' type='usb'> +
-  <source> +
-    <vendor id='0x03f0'/> +
-    <product id='0x4217'/> +
-  </source> +
-</hostdev></code> +
- +
-Ну и самое интересное - оформление правил udev для автоматического подключения устройств.+
 <code> <code>
 /etc/udev/rules.d/90-libvirt-usb.rules /etc/udev/rules.d/90-libvirt-usb.rules
Line 69: Line 71:
   sudo service apparmor restart   sudo service apparmor restart
   sudo service libvirtd restart   sudo service libvirtd restart
 +  
 +====== Подключение всего USB-хоста к виртуалке ======
 +Определяем на каком хосте работает USB-устройство:
 +  lsusb
 +  ...
 +  Bus 001 Device 002: ID 0e8d:20ff MediaTek Inc. Android
 +
 +Определяем номер устройства на шине PCI:
 +<code>
 +$ readlink /sys/bus/usb/devices/usb*
 +../../../devices/pci0000:00/0000:00:08.1/0000:03:00.3/usb1
 +../../../devices/pci0000:00/0000:00:08.1/0000:03:00.3/usb2
 +../../../devices/pci0000:00/0000:00:08.1/0000:03:00.4/usb3
 +../../../devices/pci0000:00/0000:00:08.1/0000:03:00.4/usb4
 +</code>
 +Кажется в моем случае это Bus 001 -> /devices/pci0000:00/0000:00:08.1/0000:03:00.3/usb1
 +
 +Смотрим какой модуль ядра рулит этим девайсом:
 +<code>
 +$ls /sys/bus/pci/drivers/*_hcd/
 +...
 +
 +/sys/bus/pci/drivers/xhci_hcd/:
 +0000:03:00.3  0000:03:00.4  bind  module  new_id  remove_id  uevent  unbind
 +</code>
 +Отключаем и подключаем к **vfio-pci**
 +<code>
 +sudo su
 +echo -n "0000:03:00.3" > /sys/bus/pci/drivers/xhci_hcd/unbind
 +echo -n "0000:03:00.3" > /sys/bus/pci/drivers/vfio-pci/bind
 +</code>
  • linux_faq/kvm_usb_hotplug.txt
  • Last modified: 2022/03/12 06:41
  • by admin