J’ai cru comprendre (précaution préliminaire souvent utile en informatique…) que le Raspberry n’avait pas d’ACPI donc que ce n’était pas possible de couper le 5 volt de la prise usb avec uniquement du logiciel.
( même après le shutdown et tant que le Rpi reste sous tension il y a toujours du 5 volt sur l’usb )
1ere question : me goure-je ?
pour remédier a ça, pouvoir couper le 5 volts sur l’usb avec du logiciel, est ce que cette bidouille pourrait fonctionner ( voir schéma )
en utilisant sur le +5 volts de la rallonge USB, un mosfet avec la source sur le Rpi, le drain sur le périphérique et la gate sur un des pins du Gpio ( 16? )
et un petit programme python par exemple qui active ou pas le passage du 5 volt en mettant le pin 16 a low ou hight pour alimenter ou non la gate du mosfet.
avant de tout faire cramer j’apprécierais vos conseil avisés
j’ai essayé avec sudo uhubctl -l 1-1 -a 0 il me jette No compatible smart hubs detected at location 1-1!
sudo uhubctl -e -l 1 -p 1 -a 0
Current status for hub 1 [1d6b:0002 Linux 4.19.118-v7l+ xhci-hcd xHCI Host Controller 0000:01:00.0, USB 2.00, 1 ports]
Port 1: 0503 power highspeed enable connect [2109:3431 USB2.0 Hub, USB 2.10, 4 ports]
Sent power off request
New status for hub 1 [1d6b:0002 Linux 4.19.118-v7l+ xhci-hcd xHCI Host Controller 0000:01:00.0, USB 2.00, 1 ports]
Port 1: 0000 off
là le problème c’est que malgré le message, j’ai toujours du courant sur mon usb 2.00 …
j’ai essayé avec les ports de 1 à 4 et sans port ( sans -p ) il n’y a que le 1 qui me dit que le hub 1 est off ( mais il ne l’est pas ! )
enfin avec sudo uhubctl -l 1 -a 0 il me déconnecte ma clé usb avec le rootfs, me signale qu il a coupé le courant sur tous les hub (2.00 et 3.00) mais il y a toujours du courant sur les prises USB…
j’ai bien le firmware requis sur un Rpi4 4Go ( Linux raspberrypi4 4.19.118-v7l+ #1311 SMP Mon Apr 27 14:26:42 BST 2020 armv7l GNU/Linux)
soit j’ai rien compris soit y a comme un problème et j’ai pas le courage pour l’instant de recompiler le github qui est sans doute plus a jour que le paquet ( uhubctl 2.00) fournit par buster.
Bus 002 Device 002: ID 154b:00d2 PNY
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 2341:0042 Arduino SA Mega 2560 R3 (CDC ACM)
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
sudo ./hub-ctrl -b 001 -d 003 -P 1 -p 0
Device not found.
idem sur les ports 1,2,3 et 4
et avec :
sudo ./hub-ctrl -h 1 -P 1 -p 0
il semble le digérer, mais il ne coupe toujours pas le courant ( idem port 2,3,4 )
je crois avoir essayer quasi toutes les possibilités de hub, bus, device et port et soit il s’en fout soit il me sort une erreur ( Device not found. ou failed to control. : Broken pipe )
peut-être le firmware a évolué pour l’usb et pas le(s) programme(s) ?