Отключение и подключение USB-хаба к шине

Выполняем:

lsusb 

И смотрим номер шины и девайса USB hub (их может быть несколько) - Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub.
Теперь находим идентификатиов и тип:

lsusb -v -s 1:1 | grep 'iSerial\|iProduct'

iProduct                2 xHCI Host Controller
iSerial                 1 0000:00:15.0

Теперь можно отключить устройство (драйвер xhci_hcd должен соответствовать типу iProduct):

echo -n "0000:00:15.0" | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind

убедиться что хаба нету:

lsusb

и подключить обратно:

echo -n "0000:00:15.0" | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind

Управление питанием USB-хаба

https://www.kernel.org/doc/html/v4.12/driver-api/usb/power-management.html
Смотрим:

cat /sys/bus/usb/devices/usb2/power/runtime_status

И тут может быть либо suspended либо active
Включаем:

echo -n 'on' | sudo tee /sys/bus/usb/devices/usb2/power/control

И на всякий случай выключаем autosuspend, чтобы USB-устройства не засыпали:

echo 'options usbcore autosuspend=-1' | sudo tee -a /etc/modprobe.d/usbcore.conf

А если модуль usbcore вкомпилирован в ядро, то редактируем /etc/default/grub и добавляем к GRUB_CMDLINE_LINUX_DEFAULT такое:

usbcore.autosuspend=-1 

А потом:

sudo update-grub

и

sudo reboot
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/usb_hub_reset.txt
  • Last modified: 2021/10/25 14:28
  • by admin