Verwenden Sie udev-Regeln für permanente Energieeinsparungen, um Einstellungen direkt an der Quelle zu konfigurieren, anstatt Skripte zu erstellen oder sich auf möglicherweise nicht installierte Pakete zu verlassen. So wird, sobald Hardware durch udev
Ihre Einstellungen hinzugefügt wird, übernommen .
Eine korrekte udev
Regel bewirkt, dass die Einstellungen nicht angewendet werden, wenn die Hardware nicht vorhanden ist, wodurch die Konfiguration portabler wird. Und Sie erfahren mehr über die Funktionsweise Ihres Linux-Kernels :-). Die auf diese Weise vorgenommene Konfiguration gilt auch, wenn keine Batterie verwendet wird.
Ein Beispiel für Tunable Enable SATA link power Managmenet for host0
. Der Vorschlag ist:
# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'`
Dies gibt Ihnen bereits eine Vorstellung davon, wo sich die Hardware befindet: in / sys / class / scsi_host. Sie können dies überprüfen mit:
# udevadm info -a -p /sys/class/scsi_host/host?
…
looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0':
KERNEL=="host0"
SUBSYSTEM=="scsi_host"
…
ATTR{eh_deadline}=="0"
ATTR{link_power_management_policy}=="max_performance"
ATTR{host_busy}=="0"
Berühren Sie besser nicht die System-udev-Regeln in /lib/udev/rules.d/ und erstellen Sie Ihre eigene udev-Regeldatei ungefähr auf Stufe 60 in /etc/udev/rules.d/. Zum Beispiel mit dem Nano-Editor:
$ nano /etc/udev/rules.d/60-power.rules
Einige andere Beispiele schreiben Regeln wie:
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"
Ich würde nicht sagen und Ihre Regel noch verbessern, indem Sie sie nur anwenden, wenn die Link-Energieverwaltungsrichtlinie auf max_performance festgelegt ist. Schauen Sie sich den kleinen Unterschied an (achten Sie auf das Doppelgleichungszeichen):
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"
Testen Sie Ihre Regel mit udevadm test /devices/…
:
# udevadm test /devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy
calling: test
version 204
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.
=== trie on-disk ===
tool version: 204
file size: 5660180 bytes
header size 80 bytes
strings 1265196 bytes
nodes 4394904 bytes
load module index
read rules file: /lib/udev/rules.d/40-crda.rules
read rules file: /lib/udev/rules.d/40-gnupg.rules
read rules file: /lib/udev/rules.d/40-hyperv-hotadd.rules
read rules file: /lib/udev/rules.d/42-usb-hid-pm.rules
read rules file: /lib/udev/rules.d/50-firmware.rules
read rules file: /lib/udev/rules.d/50-udev-default.rules
read rules file: /lib/udev/rules.d/55-dm.rules
read rules file: /lib/udev/rules.d/60-cdrom_id.rules
read rules file: /lib/udev/rules.d/60-keyboard.rules
read rules file: /lib/udev/rules.d/60-persistent-alsa.rules
read rules file: /lib/udev/rules.d/60-persistent-input.rules
read rules file: /lib/udev/rules.d/60-persistent-serial.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
read rules file: /lib/udev/rules.d/60-persistent-storage.rules
read rules file: /lib/udev/rules.d/60-persistent-v4l.rules
read rules file: /etc/udev/rules.d/60-power.rules
read rules file: /lib/udev/rules.d/61-accelerometer.rules
read rules file: /lib/udev/rules.d/64-btrfs.rules
read rules file: /etc/udev/rules.d/70-persistent-net.rules
read rules file: /lib/udev/rules.d/70-power-switch.rules
read rules file: /lib/udev/rules.d/70-uaccess.rules
read rules file: /lib/udev/rules.d/71-biosdevname.rules
read rules file: /lib/udev/rules.d/71-seat.rules
read rules file: /lib/udev/rules.d/73-idrac.rules
read rules file: /lib/udev/rules.d/73-seat-late.rules
read rules file: /lib/udev/rules.d/75-net-description.rules
read rules file: /lib/udev/rules.d/75-persistent-net-generator.rules
read rules file: /lib/udev/rules.d/75-probe_mtd.rules
read rules file: /lib/udev/rules.d/75-tty-description.rules
read rules file: /lib/udev/rules.d/78-graphics-card.rules
read rules file: /lib/udev/rules.d/78-sound-card.rules
read rules file: /lib/udev/rules.d/80-drivers.rules
read rules file: /lib/udev/rules.d/85-hdparm.rules
read rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
read rules file: /lib/udev/rules.d/85-regulatory.rules
read rules file: /lib/udev/rules.d/95-udev-late.rules
rules contain 24576 bytes tokens (2048 * 12 bytes), 11335 bytes strings
1814 strings (22027 bytes), 1179 de-duplicated (11328 bytes), 636 trie nodes used
ATTR '/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy' writing 'min_power' /etc/udev/rules.d/60-power.rules:1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0
SUBSYSTEM=scsi_host
USEC_INITIALIZED=1203444595
unload module index
Ich kann die Regel nicht anwenden. In diesem Fall habe ich einen Neustart durchgeführt, um die neu erstellte udev-Regel anzuwenden.
sudo
zum Bearbeiten der Datei verwenden müssen.