属性を生成するためのudevルールを作成しました/etc/udev/rules.d/99-backlight-scale.rules
。
ACTION=="add", \
KERNEL=="amdgpu_bl1", \
SUBSYSTEM=="backlight", \
DEVPATH=="/devices/pci0000:00/0000:00:08.1/0000:03:00.0/drm/card1/card1-eDP-1/amdgpu_bl1", \
ENV{GSD_BACKLIGHT_SCALE}="non-linear"
udevadm test /sys/class/backlight/amdgpu_bl1
属性を作成する必要があると言います。
DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:03:00.0/drm/card1/card1-eDP-1/amdgpu_bl1
ACTION=add
SUBSYSTEM=backlight
TAGS=:seat:systemd:
CURRENT_TAGS=:seat:systemd:
ID_PATH=pci-0000:03:00.0
ID_PATH_TAG=pci-0000_03_00_0
ID_FOR_SEAT=backlight-pci-0000_03_00_0
GSD_BACKLIGHT_SCALE=non-linear
SYSTEMD_WANTS=systemd-backlight@backlight:amdgpu_bl1.service
USEC_INITIALIZED=23289223
Unload kernel module index.
Unloaded link configuration context.
ただし、再起動後、その属性は出力に表示されませんudevadm info --path=/sys/class/backlight/amdgpu_bl1 --query=property
。
DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:03:00.0/drm/card1/card1-eDP-1/amdgpu_bl1
SUBSYSTEM=backlight
USEC_INITIALIZED=23289223
NVME_HOST_IFACE=none
ID_PATH=pci-0000:03:00.0
ID_PATH_TAG=pci-0000_03_00_0
ID_FOR_SEAT=backlight-pci-0000_03_00_0
SYSTEMD_WANTS=systemd-backlight@backlight:amdgpu_bl1.service
TAGS=:systemd:seat:
CURRENT_TAGS=:systemd:seat:
編集:次のようにdevpath行を完全に削除しました。アーチウィキのこのセクション。現在のルールは
ACTION=="add", \
KERNEL=="amdgpu_bl1", \
SUBSYSTEM=="backlight", \
ENV{GSD_BACKLIGHT_SCALE}="non-linear"
しかし、まだ動作しません。
別のudevルールを作成し、ファイルに書き込んで実行中であることを確認しようとしました。ACTION=="add", KERNEL=="amdgpu_bl1", SUBSYSTEM=="backlight", RUN+="/bin/sh -c 'echo applied > /home/basilmari/udev-debug.log'" "
実際に働く。
では、udevルールは最初にデバイスプロパティを作成できますか?これを明確に説明する資料が見つかりませんでした。
答え1
DEVPATH または DEVNAME を ID 確認として使用しないでください。変更されることがあります! - 少なくとも - 自分が何をしているのか正確に知らなければ。 (非専門家)
編集:BTW、と入力すると、udevadm info /sys[DEVPATH]
DEVPATHは環境変数を意味するプレフィックスEの下に表示されます。ENV{DEVPATH}==
実際のDEVPATHとして実行すると、udevadm test /sys[DEVPATH]
環境属性が割り当てられているとマークされますが、再起動するとDEVPATHが変更され、一致を取得できず、属性は割り当てられません。たぶんこれはあなたの状況かもしれません。見たらhttps://www.linux.org/docs/man7/udev.html、udevルールの$ devpath、%pが実際のDEVPATHに展開され、$ devnode、%Nが実際のDEVNAME、デバイスのカーネル、またはudev設定に展開されていることがわかります。