|
|||||||
Как переподключить все USB-устройства в Linux
Время создания: 24.04.2023 13:28
Автор: Xintrea
Текстовые метки: linux, usb, сбросить, подключить, переподключить, зависло, зависание
Раздел: Компьютер - Linux - Драйвера и устройства
Запись: xintrea/mytetra_syncro/master/base/1682332096w7nm98qffg/text.html на raw.github.com
|
|||||||
|
|||||||
Драйвера ядра в Linux, отвечающие за USB-стек и обслуживание USB-устройств постоянно изменяются и дорабатываются. Это приводит к тому, что даже в стабильном дистрибутиве Linux в коде ядра может оказаться недотестированный код, который с некоторыми устройствами работает нестабильно. И поэтому такие устройства могут время от времени "отваливаться". Хорошая новость состоит в том, что если это устройство на шине USB, то можно восстановить работу устройства путем его виртуального переподключения, не прибегая к полной перезагрузке системы. Для этого можно использовать следующий bash-скрипт, запускаемый от пользователя root: #!/bin/bash for port in $(lspci | grep USB | cut -d' ' -f1); do echo -n "0000:${port}"| sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind; sleep 3; echo -n "0000:${port}" | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind; sleep 4; done Данный скрипт переподключит все USB-устройства, воткнутые в компьютер. Это произойдет из-за того, что скрипт обнаруживает все USB-контроллеры (которые, в свою очередь, висят на шине PCI), и перезапускает работу этих корневых USB-контроллеров. Конечно, лучше было бы переподключать только проблемное устройство, например мышку, клавиатуру, Infra-Red порт, однако как это сделать без переподключения корневого USB-устройства пока разобраться не получилось. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|