Włącz podświetlenie klawiatury na obsługiwanym komputerze Lenovo (np. Carbon X1) za pomocą polecenia

18

Niektóre laptopy Lenovo mają podświetlenie klawiatury i można je włączyć za pomocą Fn+ Space. Istnieją trzy stany: wyłączony, normalny i jasny.

Kiedy uruchamiam Ubuntu, te laptopy zawsze domyślnie wracają do jasności płonącego ekranu słonecznego i klawiatura się wyłącza.

Chcę domyślnie włączyć średnią jasność i podświetlenie klawiatury, ponieważ zwykle używam tego laptopa w ciemnym otoczeniu.

Podświetlenie jest łatwe. Internet jest pełen informacji na ten temat.
echo 10 > /sys/class/backlight/acpi_video0/brightness

Ale jak włączyć podświetlenie klawiatury za pomocą polecenia? Szukałem tutaj, ale wydaje się, że nic to nie robi:
/sys/class/leds/tpacpi\:\:thinklight


Aktualizacje

Próbowałem, for i in {1..32}; do xset led $i; doneale nic się nie zmieniło. Być może podświetlenie klawiatury dla laptopów Lenovo ma zastrzeżony sterownik i można nim sterować tylko tpacpi?

Próbowałem także for i in $(find /sys/devices/platform/thinkpad_acpi/leds/ | grep /brightness\); do echo 255 > $i; donebezskutecznie.

Redsandro
źródło
Albo xset led (jest prawie 100% prawdopodobne, że to Caps Lock itp., Ale i tak go dodam) lub setleds. Edytuj: Znaleziono to
Wilf
To nie działa Próbowałem, for i in {1..32}; do xset led $i; doneale nic się nie zmieniło.
Redsandro,

Odpowiedzi:

8

Wygląda na to, że to zostało zaktualizowane, mój X1C z ubuntuMATE 16.04 LTS ma

/sys/class/leds/tpacpi\:\:kbd_backlight/brightness

który działa zgodnie z oczekiwaniami, tj .:

# echo 2 > /sys/class/leds/tpacpi\:\:kbd_backlight/brightness

Daje to pełne światło :)

wuxmedia
źródło
Hej, tak, rzeczywiście! Dziękujemy za poświęcenie czasu na podzielenie się tym z starym pytaniem. :)
Redsandro,
1
Żadnych sond, był to pierwszy hit, kiedy patrzyłem, myślałem, że to nie może być takie trudne, więc pomyślałem, że powinienem zaktualizować ten z moimi odkryciami :)
wuxmedia
14

Naprawdę trzeba to naprawić!

Myślę, że jest to powszechny błąd w nowych thinkpadach. Jeśli zaświecisz klawiaturę ręcznie, fn + spacea następnie wykonasz :

echo 0 > /sys/class/leds/tpacpi\:\:thinklight/brightness

klawiatura zniknie. Proszę zobaczyć poniższy link, jeśli to pomaga:

http://www.spinics.net/lists/ibm-acpi-devel/msg03090.html

Rashad
źródło
Hej masz rację, nie wiedziałem. Ponieważ możemy to wyłączyć, wydaje się, że naprawienie tego dla programistów byłoby bułką z masłem. Czy jest jeszcze zgłoszenie błędu?
Redsandro
W wiadomości e-mail zasugerowano to obejście: gist.github.com/hadess/6847281 Jakiś pomysł, jak możemy to zaimplementować?
rashad
4

Oto skrypt bash, którego używam:

https://gist.github.com/vzaliva/0adba7bc40e2f31a0b5f802af2a63267

Działa na IBM ThinkPad X260 z systemem Ubuntu 16.04.

krokodil
źródło
IBM? Ten laptop musi mieć co najmniej 10 lat! Ale działa również na moim Carbon X1! Szczerze mówiąc , kod z hadessu, na który odpowiedział rashad, zrobił to samo, ale nie chcę robić 5 kroków i instalować kompilatorów. Szukałem prostej komendy bash. I to jest coś, czego mogę użyć. Dziękuję za odpowiedź na moje 3-letnie pytanie. Przyjęty.
Redsandro
Cieszę się, że uznałeś to za przydatne. Oczywiście miałem na myśli Lenovo Thinkpad, a mój X260 jest zupełnie nowy. Właśnie miałem ten sam problem i znalazłem tę odpowiedź, ale nie podobało mi się program C, który również wymaga ręcznego modprobe, więc napisałem go ponownie jako skrypt. Autorzy oryginalnego programu C wykonali ciężkie prace.
krokodil
3

Ok, to działa dobrze ze mną z tą istotą:

https://gist.github.com/hadess/6847281

  • Najpierw pobierz powyższą treść, zmieniłem jej nazwę na ThinkLight.czamiast tmp.c.
  • Upewnij się, że masz zainstalowany glib-2.0:

    sudo apt-get install libglib2.0-dev
    
  • Skompiluj ThinkLight.cw następujący sposób:

    gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include ThinkLight.c -o ThinkLight -lglib-2.0
    
  • ec_sysModuł ładowania (można go dodać do /etc/modulesbootowania):

    sudo modprobe ec_sys
    
  • Na koniec wykonaj ThinkLightz argumentem poziomu (0, 1 lub 2):

     sudo ./ThinkLight 0
     sudo ./ThinkLight 1
     sudo ./ThinkLight 2
    

Specjalne podziękowania dla Hadess za to, że tak się stało!

Rashad
źródło
Masz pomysł, jak to uruchomić bez sudo? Próbuję uruchomić to w innym skrypcie, który działa jako mój użytkownik.
zsquare
Próbowałem tego i otrzymałem kilka błędów :( ThinkLight.c: W funkcji 'main': ThinkLight.c: 56: 6: ostrzeżenie: niejawna deklaracja funkcji 'lseek' [-Wimplicit-function-deklaracja] if (lseek (fd, 0xd, SEEK_CUR) <0) {^ ~~~~ ThinkLight.c: 60: 6: ostrzeżenie: niejawna deklaracja funkcji 'write' [-Wimplicit-funkcja-deklaracja] if (write (fd, & poziomy [poziom], 1) ) <0) {^ ~~~~
Heriberto Juarez
@HeribertoJuarez to stara odpowiedź, możesz nią manipulować bezpośrednio za pomocą nowych jąder Linuksa. Sprawdź odpowiedź
wuxmedia
1

Moje T450 nie włączały ponownie podświetlenia klawiatury po wznowieniu pracy z jądrem starszym niż 4.6. FWIW, teraz w wersji 4.6, podświetlenie klawiatury jest ustawione na jasność, którą posiadało przed zawieszeniem.

bk138
źródło