永続的な省電力のためにudevルールを使用して、スクリプトを作成したり、インストールされていない可能性のあるパッケージに依存する代わりに、ソースで設定を直接構成します。したがって、ハードウェアが追加されるとすぐにudev
設定が適用されます。
正しいudev
ルールにより、ハードウェアが存在しない場合に設定が適用されなくなり、構成の移植性が高まります。そして、Linuxカーネルの内部の仕組みについて詳しく学びます:-)。この方法で行われた構成は、バッテリーで実行されていない場合にも適用されます。
tunableの例Enable SATA link power Managmenet for host0
。提案は次のとおりです。
# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'`
これにより、/ sys / class / scsi_host内のハードウェアの場所がすでにわかります。これを確認するには:
# 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"
/lib/udev/rules.d/にあるシステムudevルールに触れず、/ etc / udev / rules.d /にレベル60の独自のudevルールファイルを作成する方が良いでしょう。たとえば、nanoエディターの場合:
$ nano /etc/udev/rules.d/60-power.rules
他のいくつかの例では、次のようなルールを記述します。
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"
しないで、リンクの電源管理ポリシーがmax_performanceに設定されている場合にのみ適用することで、ルールをさらに改善します。小さな違いを見てください(二重方程式の記号を探してください):
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"
ルールのテスト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
ルールを適用する方法が見つからないため、この場合は、新しく作成したudevルールを適用するために再起動しました。
sudo
、ファイルの編集に使用する必要があることを忘れたのでしょう。