Dlaczego moja kontrola jasności Thinkpad pomija kroki?

15

Problem: jest 16 poziomów jasności na moim laptopie, ale naciśnięcie klawisze skrótów Fn+Home, Fn+Enddostosowuje jasność 3 kroki naraz (np od 0 do 3, lub od 15 do 12).

Ważne jest, aby zauważyć, że skróty klawiszowe na ekranie logowania działają dobrze . Ale po zalogowaniu pojawia się to dziwne zachowanie.

Ponadto, jeśli skupię się na menu (np. Kliknij menu Plik w Firefoksie), skróty działają dobrze .

xdotool key XF86MonBrightnessDowndziała dobrze, dostosowując jasność o 1 krok (zaznaczone za pomocą cat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness).

Zainstalowałem także indicator-brightness- pokazuje 16 poziomów (0-15).

Próbowałem ustawienia acpi_backlight=vendorw Grub (zainspirowany tym tematem: http://ubuntuforums.org/showthread.php?t=1909184 z podobnym problemem). Działało się tak, że klawisze skrótu działały dobrze. Pojawiły się jednak problemy z powiadomieniem OSD, xdotool i wskaźnikiem jasności. Myślę więc, że nie jest to właściwe rozwiązanie.

Wygląda na to, że po zalogowaniu coś zakłóca schemat przetwarzania skrótów klawiszowych. Jakieś pomysły?

Edytuj (dodatkowe informacje)

  • Zauważyłem, że klawisze skrótu działają na poziomie sprzętowym - mogę dostosować jasność natychmiast po włączeniu laptopa (np. Na ekranie BIOS-u).

  • Po $ killall gnome-settings-daemonnaciśnięciu klawiszy skrótu dostosuj jasność o jeden krok, ale nie pojawią się żadne powiadomienia. Wkrótce gnome-settings-daemonodzyskuje, a problem z potrójnym krokiem powraca.

  • acpi_listen daje następujące dane wyjściowe (oba klucze sekwencyjnie):

    $ acpi_listen
    ibm/hotkey HKEY 00000080 00001010
    video LCD0 00000086 00000000
    ibm/hotkey HKEY 00000080 00001011
    video LCD0 00000087 00000000
    

    W tym momencie pomyślałem, że (1) skróty klawiszowe działają na poziomie sprzętowym; (2) ibm/hotkeydba o skróty klawiszowe; (3) też się tym videoprzejmuje. W ten sposób pojawia się problem potrójnego kroku.

    Próbowałem wideo z czarnej listy (spodziewałem się, że doprowadzi to do podwójnego działania), ale nic się nie zmieniło.

Aby obejść ten problem, utworzyłem własne skróty klawiszowe w CompizConfig Settings Manager - jak opisano tutaj , ale z --clearmodifiersargumentem:

xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown

Więc teraz mogę albo użyć początkowych klawiszy skrótu, albo nowych do dokładniejszych poprawek.

Otwarte pytania

Dyskusja dotyczyła już przypadku z podwójnym krokiem: Lenovo ThinkPads, klawisze funkcyjne jasności wykonują dwa kroki zamiast jednego, szukając obejścia :

sprzęt po prostu to robi, a następnie wysyła sygnał informujący o naciśnięciu przycisku. Być może możesz usunąć skrót w System -> Preferencje -> Skróty klawiaturowe dla tej akcji?

Ale chętnie się dowiem

  1. Dlaczego dostaję problem z potrójnym krokiem?
  2. Jak mogę wyłączyć przetwarzanie tych skrótów klawiszowych?

Byłbym bardzo wdzięczny, gdyby ktoś to wyjaśnił.

Andrey
źródło

Odpowiedzi:

14

Skąd pochodzą 3 kroki dla 1 naciśnięcia klawisza?

Otrzymujesz trzy stopnie jasności dla jednego naciśnięcia klawisza, ponieważ:

  1. Standardowy sterownik ACPI / wideo dostosowuje krok 1
  2. thinkpad_acpiKierowca mówi bios dostosować krok 2 , ale wciąż przesyła przyciśnięcie zdarzeń
  3. Demon zasilania GNOME przechwytuje to naciśnięcie klawisza i mówi ACPI, aby ponownie dostosował krok 3

1. Wyłącz sterownik wideo do samodzielnego dostosowywania jasności

Pozbywa się to jednego z trzech powyższych kroków (krok 1).

  • Otwórz terminal
  • Rodzaj sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
  • Przetestuj, teraz powinieneś mieć kontrolę jasności w krokach dwóch
  • Aby automatycznie wyłączyć to podczas uruchamiania, otwórz /etc/rc.localw swoim ulubionym edytorze, a przed ostatnim wierszem ( exit 0) dodaj:

    echo -n 0> / sys / module / video / parameters / bright_switch_enabled

2. Ponownie skompiluj thinkpad_acpimoduł, aby rozwiązać problem podwójnego naciśnięcia

  • Musimy przestać thinkpad_acpidostosowywać jasność za pomocą BIOS-u i pozwolić, aby przesuwał tylko klawisze do GNOME, tak aby GNOME wykonał jedyny krok regulacji
  • Jest to znany błąd, który został naprawiony w jądrze 3.4+
  • Aby to naprawić w Ubuntu 12.04 / Precise, będziemy łatać jego wersję thinkpad_acpii rekompilować:

    1. Zainstaluj nagłówki jądra: sudo apt-get install linux-headers-$(uname -r)
    2. Zainstaluj narzędzia do budowania sudo apt-get install build-essential
    3. Utwórz katalog tymczasowy i przejdź do niego:
      mkdir ~ / tpacpi-bright && cd ~ / tpacpi-bright
    4. Pobierz i załóż plik źródłowy thinkpad_acpi.cz repozytorium git jądra Ubuntu:

      wget -O- "http: //kernel.ubuntu.com/git? p = ubuntu / ubuntu-precision.git; \
      a = blob_plain; f = drivers / platform / x86 / thinkpad_acpi.c; hb = HEAD "\
      | sed -e 's / tp_features.bright_acpimode && acpi_video / acpi_video / g' \
      > thinkpad_acpi.c
    5. W tym samym folderze, w którym thinkpad_acpi.czostał pobrany, potrzebujesz „Makefile”. Możesz pobrać go bezpośrednio z tego Pastebin , używając:

      wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT

    LUB wklej poniżej do pliku o nazwie Makefile:

    obj-m + = thinkpad_acpi.o
    wszystko: make -C / lib / modules / $ (uname powłoki -r) / build M = $ (PWD) moduły
    czysty: oczyść -C / lib / modules / $ (uname powłoki -r) / build M = $ (PWD)
    1. Teraz wpisz, makeaby utworzyć moduł; po zakończeniu zobaczysz thinkpad_acpi.koplik w folderze.
  • Przetestuj załatany moduł po załadowaniu go za pomocą:

    sudo rmmod thinkpad_acpi && sudo lsmod thinkpad_acpi.ko
  • Jeśli jasność jest teraz stała i daje pełną kontrolę, wymień moduł podstawowy na moduł łatany:

    TPDIR = / lib / moduły / $ (uname -r) / kernel / drivers / platform / x86
    sudo mv $ TPDIR / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko.stock
    sudo mv ~ / tpacpi-bright / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • Możesz wyczyścić folder kompilacji za pomocą make clean; trzymaj go w pobliżu do przyszłych aktualizacji jądra!

ish
źródło
dzięki za odpowiedź! Twoje rozwiązanie całkowicie dla mnie zadziałało. Jedyny problem - kontrola jasności nie działa teraz na ekranie logowania (wydaje mi się, że rozumiem, dlaczego - ponieważ nowy thinkpad_acpijest używany, ale demon zasilania GNOME jeszcze nie działa).
Andrey,
Czy możesz mi powiedzieć, że dla nauki jest sposób, aby powiedzieć demonowi mocy GNOME, aby nie przetwarzał skrótów jasności, tak jak to zrobiliśmy ze videosterownikiem? Ubuntu zapewnia GUI ( All Settings -> Keyboard -> Shortcuts) do dostosowywania skrótów dźwiękowych (zwiększanie / zmniejszanie głośności, wyciszanie), ale nie znalazłem, gdzie mogę zmienić lub wyłączyć klawisze jasności.
Andrey,
@Andrey: nie ma za co! Mam Thinkpad T520, więc była to dobra okazja do rozwiązania problemu. Jeśli chodzi o ekran logowania, myślę, że sposobem na rozwiązanie tego problemu jest włączenie wyłączenia, rc.localale ~/.profilewłączenie, aby aktywowało się ono dopiero po zalogowaniu. Jeśli istnieje prosty sposób wyłączenia demona zasilania GNOME z przetwarzania skrótów jasności, spowoduje to również wyłączenie OSD (np. backlight=vendor); robienie tego poprawnie może wymagać modyfikacji kodu źródłowego ... Spróbuję to rzucić okiem. W każdym razie, kiedy pojawi się 12.10, wydadzą naprawione jądro z backportowaną wersją dla 12.04, więc to zadziała.
ish
2

Miałem dokładnie taki sam problem jak Ty, a mój system zawsze zaczynał się przy wyłączonym ekranie.

Chciałbym podziękować za skierowanie mnie we właściwym kierunku, acpi_backlight=vendorzrobiłeś dla mnie lewę bez żadnych problemów, których doświadczyłeś. Używam HP G7 1116sg z grafiką hybrydową (Intel HD3000 (obecnie używam tylko Intel z powodu problemów hybrydowych w Ubuntu. Mówię to tylko dlatego, że X220 jest wymieniony jako mający taką samą kartę graficzną) / Radeon HD6870) i ​​Ubuntu 12.04.

Chciałem tylko powiedzieć, że zmiany grub działały dla mnie bez żadnych widocznych problemów.

Powodzenia w znalezieniu rozwiązania.

DrA7
źródło
Cieszę się, że to zadziałało!
Andrey
0

Ustawianie /sys/module/video/parameters/brightness_switch_enableddo 0Makes Me niezdolnych do sterowania jasnością w ogóle w moim Thinkpad X230 za pomocą skrótów klawiszowych, zarówno w tty i Xfce 4.10. Musiałem powiedzieć xfce4-power-manager, aby nie zmieniał jasności kluczowych wydarzeń. Możesz to zrobić, ustawiając jeden z dwóch ukrytych kluczy konfiguracji. Pierwszy to:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/change-brightness-on-key-events -s false

A drugi:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/show-brightness-popup -s false

Uwaga: oba te ustawienia wyłączają ekran wyskakujący jasności w moim systemie, ale przynajmniej przywracam wszystkie 16 poziomów jasności!

Możesz przeczytać więcej o tym problemie na tej stronie i na dole tej strony .

jeremija
źródło
0

W moim laptopie Lenovo S205 miałem ten problem, w którym zarówno sterownik wideo, jak i gnome regulowały jasność.

Ale moje doświadczenie z wyłączaniem tej brightness_switch_enabledwłaściwości polega na tym, że gnome jest powolny i wydaje się racjonalny podczas aktualizacji podświetlenia - na przykład jeśli zostawię klawisze na kilka sekund, a następnie zwolnię, gnome nadal potrzebuje 5-10 sekund na przetworzenie zdarzeń.

Zamiast tego wolę pozwolić, aby sterownik wideo dokonał korekt i powstrzymał gnoma przed ich wykonaniem.

sudo chmod -x /usr/lib/gnome-settings-daemon/gsd-backlight-helper

Wyłączenie załatwiło gsd-backlight-helpersprawę. Zindeksowałem internety i wydaje się, że nie ma widocznej opcji, aby zrobić to samo.

Straciłem OSD jasności, ale teraz zmiany jasności są przetwarzane natychmiast, a jako bonus nadal mam kontrolę jasności na tty.

Ivo Anjo
źródło