GNU/Linux >> Znalost Linux >  >> Linux

Linux USB:zapínání a vypínání napájení?

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í!


Linux
  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Úvod do linuxových příkazů chgrp a newgrp

  3. Příkaz Linux Sed:Použití a příklady

  1. Inodes a souborový systém Linux

  2. Jak povolit nebo zablokovat port a IP adresu pomocí Firewallu, IP tabulek a UFW v Linuxu?

  3. Ovládání USB napájecího zdroje (on/off) s Linuxem

  1. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  2. Jak zkontrolovat verzi OS a Linuxu

  3. USB Type-C, jak se řídí směr dodávky energie?