Zdá se, že interakce usbfs se od doby, kdy byla tato otázka původně zodpovězena, několikrát změnila. Zde je návod, jak zapínám port hubu na Ubuntu Oneiric Ocelot z prostředí Bash.
Vyhledejte číslo sběrnice a zařízení:
sudo lsusb -v|less
Vyhledejte zařízení v hierarchii portů sběrnice / rozbočovače pomocí čísla sběrnice a zařízení:
sudo lsusb -t|less
Zdá se, že syntaxe je 'bus-port.port.port.port.port...' Například moje myš je připojena k externímu rozbočovači, který se připojuje k rozbočovači mého počítače, který se interně připojuje ke kořenovému rozbočovači:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
|__ Port 1: Dev 3, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M
Takže ve výše uvedeném případě „2-1.1.1“. Nakonec vypněte a zapněte napájení portu:
echo '2-1.1.1'|sudo tee /sys/bus/usb/drivers/usb/unbind
sleep 1
echo '2-1.1.1'|sudo tee /sys/bus/usb/drivers/usb/bind
Nezapojil jsem analyzátor protokolů, abych viděl, co se vlastně na sběrnici děje, ale vím, že kontrolka myši zhasne, když ji odpojím. Hádám, že na nižší vrstvě to interaguje s hostitelským řadičem EHCI, aby se skutečně vypnulo napájení portu. To je užitečné zejména pro vestavěná zařízení, jako jsou webkamery UVC, u kterých se zdá, že nikdy nefungují správně a jinak by k resetování vyžadovaly restart systému.
Viz také udevadm
příkaz.
V Linuxu pro to existuje záznam sys. Z Documentation/usb/power-management.txt:
výkon/úroveň
This file contains one of three words: "on", "auto", or "suspend". You can write those words to the file to change the device's setting. "on" means that the device should be resumed and autosuspend is not allowed. (Of course, system suspends are still allowed.) "auto" is the normal state in which the kernel is allowed to autosuspend and autoresume the device. "suspend" means that the device should remain suspended, and autoresume is not allowed. (But remote wakeup may still be allowed, since it is controlled separately by the power/wakeup attribute.)
Něco jako:echo on > /sys/bus/usb/devices/usb5/power/level
Možná si budete muset pohrát i s nastavením automatického pozastavení. Aniž byste jádru řekli, aby přestalo zkoušet, může port automaticky pozastavit.
Hodně štěstí!