Comment puis-je couper l'alimentation provenant des ports USB du Pi?


10

J'ai un simple appareil connecté au Raspberry Pi, un petit ventilateur USB. Le problème est que le ventilateur n'a pas d'interrupteur marche / arrêt, je dois donc débrancher le ventilateur chaque fois que je veux qu'il s'arrête.

Ma question est: existe-t-il un moyen de couper l'alimentation provenant des ports USB du Pi?


Voulez-vous dire l'alimentation sortante, vous voulez pouvoir éteindre le ventilateur mais pas le pi, ou l'alimentation entrante, alors que l'alimentation du ventilateur alimente le pi, même si la propre alimentation du pi a été déconnectée?
René Wolferink

Je veux éteindre le ventilateur, le pi doit fonctionner normalement.
opc0de

Réponses:


4

Non, l'alimentation USB est câblée directement à l'alimentation RPi.

Vous pouvez interrompre l'alimentation du ventilateur avec un transistor ou un relais, mais vous devrez couper le fil rouge.


1
Bonne réponse, grignoteur, et tout à fait correct d'après ce que j'ai lu sur les forums raspberrypi.org. Je peux ajouter que j'ai essayé de le faire sur d'autres machines (ARM et x86) et c'est rarement possible - seuls certains contrôleurs USB permettent le contrôle de l'alimentation du logiciel. stackoverflow.com/questions/4702216/… stackoverflow.com/questions/1163824/… Je ne suis donc pas surpris que ce ne soit pas possible avec l'USB minimal du Pi.
Tai Viinikka

Souvent, vous pouvez basculer l'alimentation dans les ports d'un concentrateur USB. Pourrait essayer avec le ventilateur sur le concentrateur sur pi, puis allumer / éteindre ce port de concentrateur. Peut nécessiter un concentrateur externe, dépend de l'épaisseur de l'air et de la force du ventilateur.
lornix

3
Cette réponse est fausse. Il est possible de contrôler l'alimentation USB pour les modèles Raspberry Pi B, 2B, 3B - voir ma réponse comment faire exactement cela.
mvp

@mvp, je peux également dire que votre réponse est exactement fausse pour tous les PI de framboise qui existaient lorsque la question a été posée. Je ne changerai pas cette réponse car elle est toujours vraie pour des millions de PI de framboise d'origine. Il est facile pour quelqu'un avec un PI fabriqué après 2014 de voir que votre réponse est ici aussi.
John La Rooy

11

Vous pouvez utiliser mon outil uhubctl , il prend en charge les modèles Raspberry Pi B +, 2B, 3B, 3B + et 4B - ces modèles ont la capacité matérielle d'activer et de désactiver l'alimentation USB.

Utilisez-le comme ceci:

Coupez l'alimentation de tous les ports USB (vous devez utiliser le port 2):

sudo uhubctl -p 2 -a 0

Mettez tous les ports USB sous tension (vous devez utiliser le port 2):

sudo uhubctl -p 2 -a 1

Coupez l'alimentation de Wifi + Ethernet (vous devez utiliser le port 1):

sudo uhubctl -p 1 -a 0

Notez que le Raspberry Pi 4 est très différent des modèles précédents car il possède une puce USB3. Il ne prend pas en charge la mise hors tension de Wifi + Ethernet, et pour USB, vous devrez utiliser quelque chose comme ça pour éteindre (vous devez utiliser le port 4):

sudo uhubctl -l 2 -p 4 -a 0

Si votre Raspberry Pi ne prend pas en charge la commutation d'alimentation USB, vous pouvez connecter un concentrateur USB externe qui le fait (voir la liste des modèles compatibles ) et contrôler l'alimentation sur ce concentrateur externe à l'aide uhubctl.


Votre outil reste-t-il hors tension après le redémarrage?
dstonek

@dstonek, évidemment non. mais vous pouvez l'invoquer dans /etc/rc.local pour désactiver l'alimentation au démarrage
mvp

4

6
wow n'a jamais pensé à ça !!
opc0de

Je ne comprends pas vraiment pourquoi votre commentaire est si grossier? Vous n'avez jamais dit que vous aviez pensé au commutateur! J'ai essayé de vous aider (aide: ce n'est pas ce que vous avez demandé). Mais, je comprends votre frustration, voir mon montage. Il semble que la question a déjà été posée et répondue.
David

2
Ne vous inquiétez pas David - Peut-être que ce n'était pas la réponse pour l'OP - Mais quelqu'un d'autre pourrait l'aimer pour une autre circonstance. Votre réponse est bonne. +1 - Je ne sais pas pourquoi vous avez voté contre - L'OP a dit qu'il n'avait pas d'interrupteur on.off et vous lui avez montré où en acheter un avec un on / off :) -1 n'était pas nécessaire ici et un peu grossier. oui: P
Piotr Kula

1
David, en effet, vous ne devriez pas vous inquiéter, mais votre réponse ne répond tout simplement pas à la question, qui est de savoir comment couper l'alimentation provenant des ports USB du pi. Ce n'est donc pas une bonne réponse. Je suis surpris que vous ayez obtenu des votes.
Jaap Versteegh

1
Cela n'a pas répondu à la question.
Dr McKay

0

Cela fonctionne également pour moi sur le Raspberry Pi 3. Il a été copié à partir d'ici .

   sudo apt-get update
   sudo apt-get install libusb-dev
   git clone https://github.com/codazoda/hub-ctrl.c
   cd hub-ctrl.c
   gcc -o hub-ctrl hub-ctrl.c -lusb

Cela créera un exécutable nommé hub-ctrl. Vous pouvez ensuite l'exécuter pour effectuer les opérations suivantes:

  • Coupez l'alimentation de tous les ports USB

    sudo ./hub-ctrl -h 0 -P 2 -p 0
    
  • Mettez tous les ports USB sous tension

    sudo ./hub-ctrl -h 0 -P 2 -p 1 
    

Suivez le lien pour activer / désactiver également le port Ethernet.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.