mój laptop Dell jest objęty tym błędem w jądrze 3.14. Aby obejść ten problem, napisałem prosty skrypt
/ usr / bin /arity-fix:
#!/bin/bash
echo 0 > /sys/class/backlight/intel_backlight/brightnes
(i doprowadzany do stanu wykonalności: chmod +x /usr/bin/brightness-fix
)
oraz usługę systemową wywołującą ją, która jest wykonywana podczas uruchamiania:
/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
i włączone: systemctl enable /etc/systemd/system/brightness-fix.service
Działa to jak urok i mogę kontrolować jasność wyświetlacza według potrzeb. Problem pojawia się, gdy laptop wznawia się po przejściu w tryb uśpienia (np. Po zamknięciu wargi laptopa): kontrola jasności nie działa, chyba że ręcznie wykonam powyższy skrypt fisrt:/usr/bin/brightness-fix
Jak mogę utworzyć inną usługę systemową, taką jak moja powyżej, która będzie wykonywana w czasie wznawiania?
EDYCJA:
Zgodnie z poniższymi komentarzami zmodyfikowałem mój brightness-fix.service
tak:
[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
dodałem również echo "$1 $2" > /home/luca/br.log
do mojego skryptu, aby sprawdzić, czy jest on faktycznie wykonany. Skrypt jest faktycznie wykonywany również przy resume ( post suspend
), ale nie ma żadnego efektu (podświetlany jest w 100% i nie można go zmienić). Próbowałem także rejestrować, $DISPLAY
a $USER
po wznowieniu są one puste. Domyślam się, że skrypt jest uruchamiany zbyt wcześnie, gdy budzi się ze snu. Jakaś wskazówka?
/usr/local/bin
, nie jest /usr/bin
. ten katalog jest zarezerwowany tylko dla menedżera pakietów.
sleep.target
spowoduje uruchomienie urządzenia, gdy komputer śpi, a nie po wznowieniu. Zobacz moją odpowiedź poniżej, aby znaleźć plik jednostki, który pracował dla mnie z podobnym problemem.
WantedBy=sleep.target
...