Page 1 of 1

Couper l’alimentation d’un port USB automatiquement quand il n’est pas utilisé

Posted: Thu May 28, 2020 7:43 pm
by centsamir
Bonjour à tous,

Je suis bloqué sur un problème depuis quelques jours.

Je vous explique la situation,
Je souhaite me créer un cloud privé, pour cela j’ai fait l’achat d’un raspberry Pi 4 et d’une extension NAS (QNAP tr-004) qui permet de faire office de DAS avec un RAID matériel intégré.
J’ai donc tout configuré et ça fonctionne parfaitement.

Maintenant le souci c’est que les disques durs tournent 24/24, se qui n’est pas top pour la durée de vie des disques et la consommation d’énergie.
J’ai fait des recherches sur le net pour savoir comment mettre en veille le QNAP et j’ai trouvé.

Le QNAP se met en veille avec une de ces conditions :
L’hôte entre en hibernation
L’hôte entre en veille
L’hôte est éteint.
Le câble USB est déconnecté

Comme je pense qu’il n’est pas possible de mettre un serveur web en veille ou l’éteindre, car il doit être dispo tout le temps.
Pour moi la solution la plus logique pour atteindre mon objectif est de couper le port USB du raspberry qui relie le QNAP quand celui-ci n’est pas utilisé et le rallumer quand c’est nécessaire. (automatiquement évidement)

J’ai fait quelques recherches sur le sujet et la seule solution que j’ai trouvée c’est d’utiliser cette commande pour indiquer au serveur de couper le port USB quand il n’est pas utilisé.

Code: Select all

echo 0 > /sys/bus/usb/devices/1-1/power/autosuspend_delay_ms
J’ai fait ça pour tous les ports USB du rasp et ça n’a pas fonctionné.

Connaissez-vous d’autres moyens s’il vous plait ? Un scrip, un utilitaire qui détecte quand un port n’est pas utilisé ?

Je vous remercie d’avance pour votre aide.

Re: Couper l’alimentation d’un port USB automatiquement quand il n’est pas utilisé

Posted: Fri May 29, 2020 6:19 am
by totoharibo
regarder du coté de hdparm

Re: Couper l’alimentation d’un port USB automatiquement quand il n’est pas utilisé

Posted: Sat May 30, 2020 9:57 am
by centsamir
totoharibo wrote:
Fri May 29, 2020 6:19 am
regarder du coté de hdparm
J'ai l'impression que le boitier ou les disques ne supportent pas fonctionnalité APM.
Quand j'utilise cette commande,

Code: Select all

sudo hdparm -I /dev/sdb | grep level


J'ai,
Image

D'après la doc je devrais avoir 254 si c'est compatible.

En revanche cette commande me permet d’arrêter la rotation des plateaux et ça met en veille le DAS (ça fonctionne).

Code: Select all

sudo hdparm -y /dev/sd[X]
Le souci c'est que je dois lancer la commande manuellement, ce n'est pas possible d’automatiser ça ?
Arrêter la rotation des plateaux quand il y a aucune modification de données au bout de X temps.

Re: Couper l’alimentation d’un port USB automatiquement quand il n’est pas utilisé

Posted: Sat May 30, 2020 3:46 pm
by themaire
Salut. Tu pourrais réviser un petit montage électronique simple utilisant un transistor qui agirait comme un espace d'interrupteur pilotable par un GPIO du Raspberry Pi. Avec un script Python utilisant GPIOZero par exemple tu pourrais demander l'alimentation de ton port Usb quand tu voudrais. Bon courage.

Re: Couper l’alimentation d’un port USB automatiquement quand il n’est pas utilisé

Posted: Sun May 31, 2020 9:03 am
by JumpZero
Bjr,

je ne sais pas si cela peut t'aider car je ne l'ai jamais utilisé, mais il existe un paramètre du noyau: dwc_otg.lpm_enable

dwc_otg.lpm_enable: turns off Link Power Management (LPM) in the dwc_otg driver; the dwc_otg driver is the driver for the USB controller built into the Raspberry Pi.

voir ici

--
Jmp0