GNU/Linux >> Tutoriels Linux >  >> Linux

Linux USB :allumer et éteindre l'alimentation ?

L'interaction usbfs semble avoir changé plusieurs fois depuis la réponse initiale à cette question. Alors, voici comment je cycle l'alimentation du port du concentrateur sur Ubuntu Oneiric Ocelot à partir d'un shell Bash.

Rechercher le numéro de bus et d'appareil :

sudo lsusb -v|less

Localisez l'appareil dans la hiérarchie des ports bus/hub à l'aide du numéro de bus et d'appareil :

sudo lsusb -t|less

La syntaxe semble être 'bus-port.port.port.port.port...' Par exemple, ma souris est connectée à un hub externe qui se connecte au hub de mon ordinateur qui se connecte en interne à un hub racine :

/:  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

Donc, '2-1.1.1' dans le cas ci-dessus. Enfin, mettez le port sous tension :

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

Je n'ai pas branché d'analyseur de protocole pour voir ce qui se passe réellement sur le bus, mais je sais que la lumière de ma souris s'éteint lorsque je la dissocie. Je suppose qu'à une couche inférieure, cela interagit avec le contrôleur hôte EHCI pour réellement couper l'alimentation sur le port. Ceci est particulièrement utile pour les appareils intégrés, tels que les webcams UVC, qui ne semblent jamais fonctionner correctement et nécessiteraient autrement un redémarrage du système pour se réinitialiser.

Voir aussi le udevadm commande.


Il existe une entrée sys pour cela sous Linux. Depuis Documentation/usb/power-management.txt :

puissance/niveau

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.)

Quelque chose comme :echo on > /sys/bus/usb/devices/usb5/power/level

Vous devrez peut-être également jouer avec le paramètre de suspension automatique. Sans dire au noyau d'arrêter d'essayer, il peut suspendre le port automatiquement.

Bonne chance !


Linux
  1. La commande Linux Sed :utilisation et exemples

  2. Comment vérifier la version du système d'exploitation et de Linux

  3. Trouvez les fichiers et répertoires les plus volumineux sous Linux

  4. Couper l'alimentation du port USB. Ou éteignez l'alimentation de tout le sous-système USB ?

  5. Comment autoriser ou bloquer le port et l'adresse IP à l'aide de Firewalld, de tables IP et d'UFW sous Linux ?

Linux sur le mainframe :hier et aujourd'hui

Le bon, le mauvais et le truand de Linux en 2014

Quelle est la différence entre Linux et Unix ?

Comment créer une clé USB multiboot sous Linux et Windows

Comment trouver le numéro de port d'un service sous Linux

Comment changer le port SSH par défaut sous Linux [correctement et en toute sécurité]