Page 1 sur 1

[systemd & hdparm] modifier gestion hdparm au démarrage

Publié : mer. 01 août 2012, 19:19
par bofu
Bonjour,

Depuis mon passage sur systemd, une seule chose me pose problème sans que je n'en trouve la solution : le lancement au démarrage de la commande hdparm -B 255 /dev/sda

a) avant, lors de l'utilisation de sysvinit et donc du fichier /etc/rc.local je pouvais mettre directement la commande dedans

b) sous systemd, il y a bien les « tmpfiles », mais le man ne m'a rien appris de plus sur le lancement automatique de n'importe quelle commande au démarrage.

J'ai sûrement dû louper un épisodes, c'est plutôt basique dans l'idée.

Merci à ceux qui m'éclaireront.

BoFu

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : mer. 01 août 2012, 19:43
par benjarobin
Avec systemd tu peux très bien utiliser rc.local, il y a un service pour cela dans le paquet initscripts-systemd
Si tu ne veux pas l'installer tu peux t'en inspirer
Mais sinon il suffit de créer un service, voir Wiki de systemd

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : mer. 01 août 2012, 20:45
par bofu
Merci !

effectivement, une séance de mimétisme s'impose donc, après lecture de la doc bien sûr :wink:

Je posterai mon « service » fonctionnel quand j'aurai accès à mon portable avec hdd pour tester.

D'ici là si quelqun a la becquée à me donner… :lol: je prends !

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : sam. 04 août 2012, 16:29
par albireo
je suis en full systemd, c'est à dire sans rc.conf ni rc.local et ayant le meme problème j'ai tenté un service hdparm.service que voici
# service perso placé dans /etc/systemd/system

[Unit]
Description=init Advanced Power Management feature

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/hdparm -B 254 /dev/sda

[Install]
WantedBy=multi-user.target
je n'ai pas de message d'erreur au lancement du service en manuel ni pour créer le lien

Code : Tout sélectionner

[bruno@EeePc ~]$ sudo systemctl enable hdparm.service
ln -s '/etc/systemd/system/hdparm.service' '/etc/systemd/system/multi-user.target.wants/hdparm.service'
mais quand je mets l'ordi en veille et que je le relance : APM_level=96
Une idée ??

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : ven. 17 août 2012, 11:04
par blckshrk

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : ven. 17 août 2012, 16:25
par albireo
oui, merci.

La solution du wiki fonctionne avec pm-utils (pm-suspend) mais plus avec systemctl suspend. Et là je ne vois pas comment faire ou du moins je ne suis pas assez calé pour faire un resume.service quand on sort de la mise en veille :mrgreen:

Je vais essyer de creuser un peu tout ça.

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : ven. 17 août 2012, 16:57
par albireo
bon j'ai trouvé en fait.
il faut créer un fichier executable dans /usr/lib/systemd/system-sleep
moi je l'ai appelé resume.sh mais je pense que le nom importe peu.
Quand la commande systemctl suspend est utilisée elle envoie une variable $1 qui prend les valeurs pre ou post et il suffit de mettre la commande hdparm dans les instructions post :D et ça fonctionne.

Code : Tout sélectionner

#! /bin/sh
case "$1" in
  pre )
    #
    ;;
  post )
    hdparm -B 254 /dev/sda
    ;;
esac
je ne sais pas si la place de fichier est bonne dans la mesure ou si une mise à jour est effectuée il doit disparaitre, et qu'il vaut mieux le placer dans /etc mais je verrais ça plus tard.

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : lun. 20 août 2012, 14:46
par Chachatte
@albireo Je voulais savoir si ton script se lancer au demarrage ou bien en utilisant la commande systemctl suspend ? car moi aussi j'ai le meme soucis depuis que je suis passer a full-systemd.

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : lun. 20 août 2012, 18:38
par albireo
le hdparm.service se lance au démarrage de la machine.

ensuite la commande systemctl suspend envoie deux variables $1 (soit pre soit post) et et $2 dont je ne me suis pas occupé. systemctl suspend effectue le traitement des fichiers d'après ce que j'ai compris situés dans le dossier/usr/lib/systemd/system-sleep. C'est la que j'ai placé un lien symbolique vers mon script resume.sh. Ce script est donc exécuté quand je mets en veille et quand je sors de la veille en principe. Je suis pas un specialiste ni un anglophone mais j'ai trouvé l'info ici : https://wiki.archlinux.org/index.php/Sy ... leep_hooks

Voilà. En gros ça fonctionne mais en cas de mise à jour, le lien vers resume.sh disparait il faut le recréer.

Re: [systemd & hdparm] modifier gestion hdparm au démarrage

Publié : lun. 20 août 2012, 20:27
par Chachatte
Ok merci, je vais penché sur un cpufreq.service quand j'aurais un moment et tous fonctionnera au poil.
Edit: Pour ceux qui cherche cpufreq, il a été remplacé par cpupower voir wiki anglais.