Je voulais changer certains paramètres powertop au démarrage d’Ubuntu 17.04, j’ai donc créé un script Shell dans /usr/sbin/
et je l’ai rendu exécutable:
#!/bin/sh
echo 'min_power' > '/sys/class/scsi_Host/host1/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_Host/host2/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_Host/host0/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_Host/host5/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_Host/host3/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_Host/host4/link_power_management_policy';
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save';
echo 'auto' > '/sys/bus/i2c/devices/i2c-0/device/power/control';
echo 'auto' > '/sys/bus/i2c/devices/i2c-1/device/power/control';
echo 'auto' > '/sys/bus/i2c/devices/i2c-2/device/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.6/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:02.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.4/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:17.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:16.0/power/control';
ethtool -s enp0s31f6 wol d
exit 0
Ensuite, j'ai créé une unité de service dans /etc/systemd/system
:
[Unit]
Description=PowerTOP
[Service]
ExecStart=/usr/sbin/powertop-stup.sh
[Install]
WantedBy=multi-user.target
et l’a activé avec Sudo systemctl enable powertop_start.service
mais après un redémarrage, cela ne fonctionne pas.
Si je lance le service manuellement après avoir démarré avec Sudo systemctl start powertop_start.service
, cela fonctionne parfaitement. De plus, lorsque je lance le script Shell lui-même, il fonctionne mais il ne fait rien automatiquement au démarrage.
Je ne sais pas pourquoi votre service ne fonctionne pas, mais j'estime que la méthode standard pour modifier /sys
au démarrage consiste à utiliser sysfsutils
, c'est pourquoi je propose une approche alternative.
Le paquet n'étant peut-être pas installé par défaut, commencez par:
Sudo apt install sysfsutils
maintenant, éditez le fichier /etc/sysfs.conf
, par exemple:
sudoedit /etc/sysfs.conf
et ajouter ces lignes à la fin de celui-ci
class/scsi_Host/host1/link_power_management_policy = min_power
class/scsi_Host/host2/link_power_management_policy = min_power
class/scsi_Host/host0/link_power_management_policy = min_power
class/scsi_Host/host5/link_power_management_policy = min_power
class/scsi_Host/host3/link_power_management_policy = min_power
class/scsi_Host/host4/link_power_management_policy = min_power
module/snd_hda_intel/parameters/power_save = 1
bus/i2c/devices/i2c-0/device/power/control = auto
bus/i2c/devices/i2c-1/device/power/control = auto
bus/i2c/devices/i2c-2/device/power/control = auto
bus/pci/devices/0000:00:1d.0/power/control = auto
bus/pci/devices/0000:00:1f.3/power/control = auto
bus/pci/devices/0000:00:00.0/power/control = auto
bus/pci/devices/0000:00:1f.6/power/control = auto
bus/pci/devices/0000:00:02.0/power/control = auto
bus/pci/devices/0000:00:14.0/power/control = auto
bus/pci/devices/0000:00:1f.4/power/control = auto
bus/pci/devices/0000:00:17.0/power/control = auto
bus/pci/devices/0000:00:1f.2/power/control = auto
bus/pci/devices/0000:00:1c.0/power/control = auto
bus/pci/devices/0000:00:1f.0/power/control = auto
bus/pci/devices/0000:00:16.0/power/control = auto
Enregistrez le fichier et quittez-le, puis redémarrez.
Cela laisse votre commande ethtool
, pour laquelle je n'ai pas de solution, mais vous pourriez voir si systemd exécutera uniquement cette commande pour vous comme détaillé dans cette réponse de mur .