Podświetlenie klawiatury włącza się po włączeniu blokady ekranu / wyświetlacza

9

Właśnie zaktualizowałem Ubuntu (15.04 do 15.10) i teraz mam dziwne zachowanie: za każdym razem, gdy blokuję ekran (używając dowolnego Ctrl + Alt + L, Win + L lub po prostu klikając „Zablokuj” na pasku zadań menu), podświetlenie klawiatury włącza się, mimo że zawsze ją wyłączam.

Nie mam pojęcia, od czego zacząć to badanie. Nie zdarzyło się to w Ubuntu 15.04 i nie wydaje się, żeby inni na to wpadli.

Mój laptop to Dell Inspiron, jeśli to pomaga.

Aktualizacja: Później zrozumiałem, że ten problem występuje za każdym razem, gdy wyświetlacz się włącza, co dzieje się zaraz po zablokowaniu ekranu z powodu błędu . Są to więc powiązane zdarzenia, ale faktyczną przyczyną jest włączenie ekranu.

dsetton
źródło
Kto tworzy klawiaturę?
Alex Lowe,
Hm, nie wiem. Czy wiesz jak to sprawdzić?
dsetton,
Może z tyłu może być numer modelu lub coś w tym rodzaju.
Alex Lowe,
Z tyłu nie ma nic specyficznego dla klawiatury. Zainstalowałem hardinfopakiet, a klawiatura jest wyświetlana jako „AT Translated Set 2 keyboard” przez producenta „1”. Czy to w ogóle pomaga? ...
dsetton,
Czy znasz sterownik lub oprogramowanie dla tej klawiatury?
Alex Lowe,

Odpowiedzi:

13

Tak więc Internet jest naprawdę niesamowitą rzeczą! Po wielu badaniach i analizowaniu wielu linków na forum udało mi się lepiej zrozumieć problem, dowiedzieć się, jaki program był za niego odpowiedzialny, i wreszcie na dobre wyłączyć to zachowanie. Myślałem, że zanotuję swoje kroki, na wypadek, gdyby inni ludzie napotkali ten sam problem.

Krok 1. Monitoruj system, aby wiedzieć, czy / kiedy włącza się podświetlenie klawiatury

Pierwszą rzeczą jest wiedzieć, że aktualny stan podświetlenia klawiatury można sprawdzić, czytając plik /sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness. Dlatego chcielibyśmy być powiadamiani o wszelkich zmianach w tym pliku, a najlepiej o tym, jaki proces wywołał zmianę.

Można to zrobić za pomocą fanotify . Użyłem przykładowego programu, który znajduje się na stronie man i dodałem kilka modyfikacji *, aby móc monitorować zmiany w pliku jasności. Okazuje się, że proces odpowiedzialny za modyfikację był /usr/lib/upower/upowerdprocesem demonicznym dla UPower .

Krok 2. Dowiedz się, dlaczego UPower włącza podświetlenie (błąd)

To była najbardziej rozmyta część śledztwa i wciąż nie mogę powiedzieć, dlaczego tak się dzieje. Znalazłem osobę z bardzo podobnym problemem, ale bez rozwiązania, więc zacząłem sprawdzać, czy mogę całkowicie wyłączyć UPower (i jakie byłyby konsekwencje), kiedy znalazłem ten link . Okazuje się, że UPower ma plik konfiguracyjny! Tak lepiej

Krok 3. Zatrzymaj UPower przed włączeniem podświetlenia klawiatury

Wreszcie, redagował wspomniany plik konfiguracyjny znajdujący się /etc/dbus-1/system.d/org.freedesktop.UPower.confi zmienił <allow>się <deny>w następnym wierszu:

<allow send_destination="org.freedesktop.UPower"
       send_interface="org.freedesktop.UPower.KbdBacklight"/>

Następnie zrestartowałem dbus za pomocą sudo service dbus restart(użyj systemctl restart dbus.servicena Ubuntu 16.04 i nowszych) i przystąpiłem do blokowania ekranu, aby przetestować wynik i ... Zadziałało !! Cóż, trochę. Ekran logowania się nie pojawiał, więc nie mogłem się zalogować i musiałem wymusić ponowne uruchomienie. Ale potem wszystko działało świetnie!

I to wszystko! Nadal jestem ciekawy, jaki byłby to właściwy sposób. Jeśli wiesz, zostaw komentarz, proszę!

* Na przykład program przykładowy został skonfigurowany tylko do monitorowania FAN_OPEN_PERMi FAN_CLOSE_WRITEzdarzeń, ale w tym przypadku było to FAN_MODIFYzdarzenie.

dsetton
źródło
Właśnie edytowałem plik org.freedesktop.UPower.conf zgodnie z ustaleniami i zadziałało. Myślę, że zmiana została zastosowana natychmiast.
Vic
1
Dzięki stary :) zadziałało. zasługujesz na piwo! jaki jest twój numer
klimatyzacji
@TheVOYOU Cieszę się, że to zadziałało! :)
dsetton,
Ta poprawka działa również dla 16.04, z wyjątkiem jakiegoś powodu, dla którego nie mogę już zrestartować usługi dbus. Musiałem ponownie uruchomić laptopa.
RoraΖ