23-08-2023, 10:52 AM
Оказа се проблем. +5 не се комутира, явно самото изключване/включване на устройствата е команда.
Ако устройството е "тъпо" и е директно закачено на USB захранването, тогава по време на работа на машината то не може да се изключи.
Ето колеги с подобен проблем: https://superuser.com/questions/1732500/...tion-helps
Нахвърлям някои линкове и команди, с които все пак пробвах да изключа самия USB хъб, но засега без да успявам да изключа самото +5 захранване.
https://www.linux.org/threads/resetting-...tem.10404/
Взимаме адресите на USB хъбовете:
Виж също и
Всъщност не открих по какъв ред точно може да се установи кое устройство на кой хъб е и това го установих експериментално - с изключване на хъба и проверка с lsusb кои устройства ги няма (но си пуснете някакъв шел или друго, с което да си разрешите клавиатурата).
Давам цитат от горния линк, за пълнота:
lspci дава информацията за Bus и Slot, но не дава домейн. С ls -la /sys/bus/usb/devices ще се види и домейнът, но се съмнявам да е различно от 0000
Командата, с която хъбът се забранява е
и разрешава съответно
-------
Още по-твърд начин намерих в тези коментари:
https://unix.stackexchange.com/questions...e-in-linux
Ако устройството е "тъпо" и е директно закачено на USB захранването, тогава по време на работа на машината то не може да се изключи.
Ето колеги с подобен проблем: https://superuser.com/questions/1732500/...tion-helps
Цитат:I have a strange serial USB device (ID 17ff:1012) that won't show up anymore after rebooting my hardware until somebody physically unplugs and replugs the device. Since the machine is locate at a remote site, this means that I effectively usually cannot reboot without somebody going there physically.
After a reboot the device will simply not show up in
anymore, and it's interface inКод:lsusb
will be missing.Код:/dev/ttyACM0
Нахвърлям някои линкове и команди, с които все пак пробвах да изключа самия USB хъб, но засега без да успявам да изключа самото +5 захранване.
Код:
lsusb
lsusb -t
lsusb -v -s bus:id
lspci
https://www.linux.org/threads/resetting-...tem.10404/
Взимаме адресите на USB хъбовете:
Код:
lspci | grep USB
Виж също и
Код:
ls -la /sys/bus/usb/devices
Всъщност не открих по какъв ред точно може да се установи кое устройство на кой хъб е и това го установих експериментално - с изключване на хъба и проверка с lsusb кои устройства ги няма (но си пуснете някакъв шел или друго, с което да си разрешите клавиатурата).
Давам цитат от горния линк, за пълнота:
Цитат:So, let's look back at Figure 2. Here, we can see there are seven Root Hubs listed as Bus 1 through 7. To be able to disable the Bus, we need to have a number for it which is made up as follows:
Domain:Bus:Slot.Function
0000:00:00.0
lspci дава информацията за Bus и Slot, но не дава домейн. С ls -la /sys/bus/usb/devices ще се види и домейнът, но се съмнявам да е различно от 0000
Командата, с която хъбът се забранява е
Код:
# echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
и разрешава съответно
Код:
# echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/bind
-------
Още по-твърд начин намерих в тези коментари:
https://unix.stackexchange.com/questions...e-in-linux
Цитат:The problem with the solutions above is that they require the cooperativity of the device; however in most scenarios the reason to reset it is exactly its non-cooperativity.
However, as it is described here, there is another, "harder" way to reset it on the PCI level: we remove it from the PCI bus and then re-insert it by a rescan.
The steps:
- echo 1 >/sys/bus/pci/<pci-id-of-device>/remove
- . We can find its PCI ID with an
lspci- command.
echo 1 >/sys/bus/pci/rescan