영구적 절전을 위해 udev 규칙을 사용하면 스크립트를 만들거나 설치되지 않은 패키지에 의존하는 대신 소스에서 직접 설정을 구성 할 수 있습니다. 따라서 udev
설정 에 의해 하드웨어가 추가 되 자마자 적용됩니다.
올바른 udev
규칙은 하드웨어가 없을 때 설정이 적용되지 않도록하여 구성을보다 이식 가능하게 만듭니다. 그리고 당신은 리눅스 커널의 내부 작업에 대해 더 배웁니다 :-). 이러한 방식으로 구성된 구성은 배터리를 사용하지 않을 때에도 적용됩니다.
튜너 블의 예입니다 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
파일을 편집하는 데 사용해야 하는 것을 잊었을 수 있습니다.