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ł.

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!


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.


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 .


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.