Kalıcı güç tasarrufu için udev kurallarını kullanın, komut dosyaları oluşturmak veya kurulu olmayan paketlere güvenmek yerine ayarları doğrudan kaynakta yapılandırın. Bu udev
sayede donanımınız tarafından eklenir eklenmez ayarlarınız uygulanır.
Doğru bir udev
kural, donanım orada olmadığında ayarların uygulanmamasını ve böylece yapılandırmanın daha taşınabilir olmasını sağlar. Ve Linux çekirdeğinizin içsel çalışmaları hakkında daha fazla şey öğreniyorsunuz :-). Bu şekilde yapılan yapılandırma, pil ile çalışmadığınızda da geçerlidir.
Ayarlanabilir için bir örnek Enable SATA link power Managmenet for host0
. Öneri şudur:
# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'`
Bu zaten size donanımın nerede olduğu hakkında bir fikir verir: in / sys / class / scsi_host. Bunu şu şekilde doğrulayabilirsiniz:
# 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"
Daha iyi /lib/udev/rules.d/ içindeki udev kurallarına dokunmamak ve /etc/udev/rules.d/ adresinde kabaca 60. seviyede kendi udev kural dosyanızı oluşturmak daha iyidir. Örneğin, nano editör ile:
$ nano /etc/udev/rules.d/60-power.rules
Diğer bazı örnekler ise şöyle yazıyor:
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"
Sadece link güç yönetimi politikası max_performance ayarındayken uygulayarak kuralınızı daha iyi bir hale getirmeyin ve getirmeyin derdim. Küçük farka bir göz atın (çift denklem işaretine bakın):
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"
Kuralınızı test edin 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
Kuralı uygulamanın bir yolunu bulamıyorum, bu durumda yeni oluşturulan udev kuralını uygulamak için yeniden başlattım.
sudo
dosyayı düzenlemek için kullanmanız gerektiğini unuttunuz .