私のDellラップトップはカーネル3.14でこのバグの影響を受けます。回避策として、簡単なスクリプトを書きました
/ usr / bin / brightness-fix:
#!/bin/bash
echo 0 > /sys/class/backlight/intel_backlight/brightnes
(および実行可能に:chmod +x /usr/bin/brightness-fix
)
そしてそれを呼び出すsystemdサービスは起動時に実行されます:
/etc/systemd/system/brightness-fix.service
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=forking
ExecStart=/usr/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
#RemainAfterExit=yes
#SysVStartPriority=99
[Install]
WantedBy=multi-user.target
有効化: systemctl enable /etc/systemd/system/brightness-fix.service
それは魅力のように機能し、必要に応じてディスプレイの明るさを制御できます。問題は、スリープモードに移行した後にラップトップを再開するときに発生します(ラップトップのリップを閉じるときなど)。上記のfisrtスクリプトを手動で実行しない限り、明るさの制御は機能しません。/usr/bin/brightness-fix
再開時に実行される上記のような別のsystemdサービスを作成するにはどうすればよいですか?
編集:
以下のコメントによると、私brightness-fix.service
はこのように変更しました:
[Unit]
Description=Fixes intel backlight control with Kernel 3.14
[Service]
Type=oneshot
ExecStart=/usr/local/bin/brightness-fix
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=multi-user.target sleep.target
またecho "$1 $2" > /home/luca/br.log
、実際に実行されるかどうかを確認するためにスクリプトに追加しました。スクリプトは実際には再開時にも実行されます(post suspend
)が、効果はありません(バックライトは100%であり、変更できません)。私はまた、ロギングを試みた$DISPLAY
と$USER
して、再開時に、彼らは空です。そのため、スリープから復帰するときにスクリプトの実行が早すぎると思います。ヒントはありますか?
/usr/local/bin
い/usr/bin
ます。そのディレクトリは、パッケージマネージャ専用です。
sleep.target
と、コンピューターが再開するときではなく、コンピューターがスリープするときにユニットが実行されます。同様の問題で私のために働いたユニットファイルについては、以下の私の答えを参照してください。
WantedBy=sleep.target
...