Чому мій контроль яскравості Thinkpad пропускає кроки?


15

Проблема: Є 16 рівнів яскравості на моєму ноутбуці, але натискання гарячих клавіш Fn+Home, Fn+Endрегулювання яскравості 3 кроки в той час (наприклад , від 0 до 3, або від 15 до 12 років ).

Мені важливо помітити, що на екрані входу гарячі клавіші працюють добре . Але після входу в систему з'являється дивна поведінка.

Крім того, якщо я зосереджуюсь на меню (наприклад, натисніть на меню Файл у firefox), гарячі клавіші спрацьовують добре .

xdotool key XF86MonBrightnessDownпрацює чудово, регулюючи яскравість на 1 крок (перевірено cat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness).

Я також встановив indicator-brightness- він показує 16 Листочки (0-15).

Я спробував налаштувати acpi_backlight=vendorgrub (надихнув цю тему: http://ubuntuforums.org/showthread.php?t=1909184 з подібною проблемою). Це спрацювало в тому, що гарячі клавіші стали добре працювати. Але виникли проблеми з повідомленням про екранне меню, xdotool та індикатор яскравості. Тому я думаю, що це не правильне рішення.

Здається, що після входу щось втручається у схему обробки гарячих клавіш. Будь-які ідеї?

Редагувати (додаткова інформація)

  • Я зауважив, що гарячі клавіші працюють на апаратному рівні - я можу налаштувати яскравість відразу після включення ноутбука (наприклад, на екрані BIOS).

  • Після $ killall gnome-settings-daemonгарячих клавіш регулюйте яскравість на один крок, але сповіщень не з’являється. Незабаром gnome-settings-daemonвідновлюється, і трикратний крок видачі повертається.

  • acpi_listen дає наступний вихід (обидві клавіші послідовно):

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

    У цей момент я подумав, що (1) гарячі клавіші працюють на апаратному рівні; (2) ibm/hotkeyпіклується про гарячі клавіші; (3) videoпіклується теж. Таким чином, з’являється потрійний випуск.

    Я спробував відео з чорного списку (я очікував, що це призведе до подвійного крокового поведінки), але нічого не змінилося.

Як вирішення, я створив власні гарячі клавіші в Менеджері налаштувань CompizConfig - як описано тут , але з --clearmodifiersаргументом:

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

Тому тепер я можу використовувати початкові гарячі клавіші або нові для точніших налаштувань.

Відкриті запитання

У цій справі вже було обговорено подвійний крок: Lenovo ThinkPads, функціональні клавіші яскравості роблять два кроки замість одного, шукаючи обхід :

апаратне забезпечення це робить, а потім також надсилає сигнал про те, що кнопка була натиснута. Можливо, ви могли б вимкнути ярлик у Системі -> Налаштування -> Комбінації клавіш для цієї дії?

Але я дуже хочу знати,

  1. Чому я отримую потрійний крок?
  2. Як я можу зняти обробку цих гарячих клавіш?

Я був би дуже вдячний, якщо хтось це пояснить.

Відповіді:


14

Звідки беруться 3 кроки для 1 натискання клавіші?

Ви отримуєте три кроки яскравості для одного натискання клавіші, оскільки:

  1. Стандартні ACPI / відео підлаштовується водій крок 1
  2. thinkpad_acpiДрайвер повідомляє BIOS для регулювання кроку 2 , але все ще пересилають натискання події
  3. Демон енергії GNOME перехоплює це натискання клавіш і повідомляє ACPI знову налаштувати крок 3

1. Відключіть драйвер відео від самостійного регулювання яскравості

Це дозволяє позбутися одного з трьох етапів (крок 1) вище.

  • Відкрийте термінал
  • Тип sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
  • Тест, тепер ви повинні мати контроль яскравості за кроками два
  • Щоб автоматично відключити це під час запуску, відкрийте /etc/rc.localулюблений редактор і перед останнім рядком ( exit 0) додайте:

    echo -n 0> / sys / модуль / відео / параметри / яскравість_switch_enabled

2. Перекомпілюйте thinkpad_acpiмодуль, щоб вирішити проблему подвійного натискання

  • Нам потрібно зупинитись thinkpad_acpiвід налаштування яскравості за допомогою BIOS, і вона має лише переслати натискання клавіші на GNOME, щоб GNOME зробив єдиний крок налаштування
  • Це відома помилка, яку виправили в ядрі 3.4+
  • Щоб виправити це для Ubuntu 12.04 / Precision, ми будемо виправити його версію thinkpad_acpiта перекомпілювати:

    1. Встановіть заголовки ядра: sudo apt-get install linux-headers-$(uname -r)
    2. Встановіть інструменти побудови sudo apt-get install build-essential
    3. Складіть тимчасовий каталог та змініть його:
      mkdir ~ / tpacpi-яскравий && cd ~ / tpacpi-яскравий
    4. Завантажте та виправляйте вихідний файл thinkpad_acpi.cіз сховища git Ubuntu Kernel:

      wget -O- "http: //kernel.ubuntu.com/git? p = ubuntu / ubuntu-preci.git; \
      a = blob_plain; f = драйвери / платформа / x86 / thinkpad_acpi.c; hb = HEAD "\
      | sed -e 's / tp_features.bright_acpimode && acpi_video / acpi_video / g' \
      > thinkpad_acpi.c
    5. У тій же папці, де thinkpad_acpi.cбуло завантажено, вам знадобиться "Makefile". Ви можете завантажити його безпосередньо з цього пастебіна , використовуючи:

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

    АБО вставте нижче у файл під назвою Makefile:

    obj-m + = thinkpad_acpi.o
    всі: make -C / lib / module / $ (shell unme -r) / build M = $ (PWD) модулі
    чисто: зробити -C / lib / module / $ (shell unme -r) / build M = $ (PWD) чистим
    1. Тепер введіть makeдля створення модуля; ви побачите thinkpad_acpi.koфайл у папці, коли закінчите.
  • Перевірте виправлений модуль після завантаження його:

    sudo rmmod thinkpad_acpi && sudo lsmod thinkpad_acpi.ko
  • Якщо яскравість тепер виправлена ​​і дає вам повний контроль, замініть запасний модуль на виправлений модуль:

    TPDIR = / lib / module / $ (unme -r) / ядро ​​/ драйвери / платформа / x86
    sudo mv $ TPDIR / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko.stock
    sudo mv ~ / tpacpi-яскраво / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • Ви можете очистити папку збірки за допомогою make clean; тримайте це для майбутніх оновлень ядра!


дякую за вашу відповідь! Ваше рішення повністю працювало на мене. Єдине питання - контроль яскравості зараз не працює на екрані входу (я, мабуть, розумію, чому - тому що thinkpad_acpiвикористовується нове , але демон потужності GNOME поки не працює).
Андрій

Щоб дізнатися, чи можете ви мені сказати, чи є спосіб сказати демону потужності GNOME не обробляти гарячі клавіші яскравості, як ми це робили з videoдрайвером? Ubuntu надає GUI ( All Settings -> Keyboard -> Shortcuts) для налаштування гарячих клавіш аудіо (збільшення гучності / зменшення гучності, відключення звуку), але я не знайшов, де можна змінити або відключити клавіші яскравості.
Андрій

@Andrey: ласкаво просимо! У мене є Thinkpad T520, тому це була гарна можливість виправити проблему. Що стосується екрана входу, я думаю, що спосіб вирішити це - поставити відключення не в, rc.localа в ~/.profile, щоб він активувався лише після входу. Якщо є простий спосіб відключити демон потужності GNOME від обробки гарячих клавіш яскравості, він також відключить екранне меню (як backlight=vendor); якщо це зробити правильно, може знадобитися зміна вихідного коду ... Я спробую поглянути на це. У будь-якому випадку, як тільки 12.10 вийде, вони випустять фіксоване підтримуване ядро ​​на 12.04, тож воно працюватиме потім.
Останній

2

У мене була та сама проблема, що і у вас, плюс до того, що моя система завжди починалася з вимкненого екрана.

Я хотів би подякувати вам за те, що ми вказали в правильному напрямку, acpi_backlight=vendorзробили для мене трюк без жодних проблем, які ви відчули. Я використовую HP G7 1116sg з гібридною графікою (Intel HD3000 (в даний час використовую лише Intel через гібридні проблеми в ubuntu. Я говорю це лише тому, що X220 вказаний як такий, що має той же графічний адаптер) / Radeon HD6870) та Ubuntu 12.04.

Просто хотів сказати, що зміни в грубі спрацювали на мене без явних проблем.

Успіхів у пошуку рішення.


Радий, що це працювало на тебе!
Андрій

0

Установка /sys/module/video/parameters/brightness_switch_enabledдля 0Змушує мене не в змозі яскравості управління на всіх на моєму Thinkpad X230 з допомогою клавіш швидкого доступу, як в TTY і в Xfce 4.10. Мені довелося сказати xfce4-power-manager не змінювати яскравість ключових подій. Це можна зробити, встановивши одну з двох прихованих клавіш конфігурації. Перший:

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

А другий:

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

Примітка: обидва ці налаштування відключають спливаючий екран яскравості в моїй системі, але я принаймні повертаю всі 16 рівнів яскравості!

Детальніше про цю проблему ви можете прочитати на цій сторінці та внизу сторінки .


0

У моєму ноутбуці Lenovo S205 у мене виникла ця проблема, де і драйвер відео, і гном регулювали яскравість.

Але мій досвід відключення brightness_switch_enabledвластивості полягає в тому, що gnome повільний і здається хитромудрим при оновленні підсвітки --- наприклад, якщо я залишаю клавіші на пару секунд, а потім відпускаю, gnome все ще займає 5-10 секунд для обробки подій.

Тож натомість я віддаю перевагу драйверу відео зробити налаштування та перестати робити gnome робити їх.

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

Відключення gsd-backlight-helperзробило для мене трюк. Я просканував інтернети, і, здається, не існує видимого для користувача варіанту зробити те саме.

Я втратив екран яскравості, але тепер зміни яскравості обробляються миттєво, і як бонус я все ще маю контроль яскравості на tty.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.