web-dev-qa-db-fra.com

Comment activer et désactiver l'alimentation du port USB dans Raspberry Pi 4

Sur un Raspberry Pi 3B +, il est simple d'allumer et d'éteindre ses quatre ports USB. Écrivez simplement un "0" à /sys/devices/platform/soc/3f980000.usb/buspower pour éteindre et un "1" pour mettre sous tension.

La même méthode ne fonctionne pas sur Raspberry Pi 4B, 4 Go (le nombre hexadécimal avant ".usb" est différent, ce n'est PAS le problème). J'ai essayé uhubctl et hub-ctl aussi sans succès. J'ai utilisé un wattmètre USB pour mesurer la tension sur les ports. Ça ne change pas. Un PI 3B + change comme prévu.

Le PI 4 prend-il en charge l'activation et la désactivation de l'alimentation USB dans le logiciel? Si c'est le cas, comment le faire? Ou y a-t-il un bogue quelque part qui doit être corrigé pour que cela fonctionne? J'utilise le dernier Rapbian sur le Pi 3B + et le Pi 4.

Oui, hubctl prend en charge RPi4B, j'ai récemment ajouté le support pour cela - vous devez construire à partir de la branche principale. Notez que vous devrez peut-être mettre à jour USB firmware pour que cela fonctionne réellement.

Notez que vous manquez d'utiliser la méthode sysfs pour désactiver l'USB sur RPi3B + - en utilisant uhubctl, vous pouvez contrôler soit les 4 ports, soit 2 d'entre eux indépendamment. RPi4B prend uniquement en charge la désactivation de tous les ports à la fois en contrôlant le port 4.

3
mvp

Pour autant que je lis les problèmes de Raspberry Pi et Linux sur GitHub, il semble qu'un correctif de bogue ait été publié pour uhubctl en juillet 2019. Patch auquel je fais référence: mvp/uhubctl @ 4aae44c . Il devrait être fusionné pour maîtriser. Alors...

Une autre chose à garder à l'esprit, il semble que le matériel RRi 4B ne supporte que la "commutation d'alimentation groupée", ce qui signifie ... que vous ne pouvez activer et désactiver que TOUS les ports USB. Pas chacun en particulier.

1
Kamiccolo