起動するたびに変更したい値です/sys/bus/usb/devices/4-3/power/wakeup
(4-3によると、lsusb
キーボードIDです)。
デフォルト値は次のとおりです。
# cat /sys/bus/usb/devices/4-3/power/wakeup
enabled
古典的な「オンライン」編集は期待どおりに機能します。
# echo disabled > /sys/bus/usb/devices/4-3/power/wakeup
# cat /sys/bus/usb/devices/4-3/power/wakeup
disabled
私はsystemdディストリビューションを使用しているので、使用したいと思います。「一時ファイル」を編集する体系的な方法
次のファイルを作成しました。
# cat /etc/tmpfiles.d/disable-usb-wakeup.conf
w /sys/bus/usb/devices/4-3/power/wakeup - - - - disabled
ただし、起動するたびにこのファイルにデフォルト値(つまり有効)が残ります。
私は何が間違っていましたか?
編集する:
別のテストは次のとおりです。
# cat /etc/tmpfiles.d/scheduler.conf
w /sys/block/sda/queue/scheduler - - - - deadline
これは素晴らしい作品です!開始すると、次のようになります。
# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
(デフォルトはcfqスケジューラです)
それではなぜこれはうまくいき、他のものはうまくいきませんか?
/sys/bus/usb/devices/4-3/power/wakeup
へのシンボリックリンクなので/sys/devices/pci0000:00/0000:00:12.1/usb4/4-3/
?/sys/bus/usb/devices/4-3/power/wakeup
一言だけが含まれているので? (つまり、空白なし)
ベストアンサー1
tmpfiles.d
私の考えでは、ここに行く道は正しくないと思います。あなたは本当にudev
ルールに従う必要があります。望むより:
udevadm info -a -p /sys/class/scsi_host/host*
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:11.0/ata1/host0/scsi_host/host0':
KERNEL=="host0"
SUBSYSTEM=="scsi_host"
DRIVER==""
ATTR{unchecked_isa_dma}=="0"
ATTR{state}=="running"
ATTR{cmd_per_lun}=="1"
...
ATTR{ahci_host_version}=="10200"
ATTR{prot_guard_type}=="0"
ATTR{eh_deadline}=="off"
ATTR{link_power_management_policy}=="max_performance"
ATTR{host_busy}=="0"
looking at parent device '/devices/pci0000:00/0000:00:11.0/ata1/host0':
KERNELS=="host0"
SUBSYSTEMS=="scsi"
DRIVERS==""
...
親デバイスツリーを引き続き上に移動します。しかし、考えてみてください。上記の情報のみを使用して、次のことができます。
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"
私はこれがほとんどのスクリプトに当てはまると思います。上記の内容を規則60の後に置くべきだと思います。実際、残りの部分に対してこれを行う必要があります。sleep
スクリプトの該当部分だけで十分です。これは競合状態を意味します。udev
はこれらのパラメータを追加して設定するパラメータですsysfs
。これはパディングです。すでに実行されているタスクを実行するように要求できます。
バックライト付きのキーボードでも同じことを行う必要があります。これらのデバイスについて必要な情報を入手し、udevadm
いくつかのルールを作成してくださいudevadm test
。