Почему мой регулятор яркости 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=vendorв grub (вдохновленный этой темой: http://ubuntuforums.org/showthread.php?t=1909184 с похожей проблемой). Это работало в том, что горячие клавиши стали работать нормально. Но возникли проблемы с уведомлением OSD, 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 Settings Manager - как описано здесь , но с --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. Демон Power 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 / module / video / parameters / Bright_switch_enabled

2. Перекомпилируйте thinkpad_acpiмодуль, чтобы решить проблему двойного нажатия.

  • Мы должны прекратить thinkpad_acpiрегулировать яркость через BIOS и сделать так, чтобы он только пересылал нажатие клавиши в GNOME, так что GNOME делает единственный шаг настройки
  • Это известная ошибка, исправленная в ядре 3.4+
  • Чтобы исправить это для Ubuntu 12.04 / Precise, мы должны будем исправить его версию thinkpad_acpiи перекомпилировать:

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

      wget -O- "http: //kernel.ubuntu.com/git? p = ubuntu / ubuntu-precision.git; \
      а = blob_plain; е = драйверы / платформа / x86 / thinkpad_acpi.c; ПП = ГОЛОВА "\
      | sed -e 's / tp_features.bright_acpimode && acpi_video / acpi_video / g' \
      > thinkpad_acpi.c
    5. В той же папке, куда thinkpad_acpi.cвы скачали, вам понадобится «Makefile». Вы можете скачать его прямо из этого Pastebin , используя:

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

    ИЛИ вставьте ниже в файл с именем Makefile,:

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

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

    TPDIR = / lib / modules / $ (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
    
  • Вы можете очистить папку сборки с помощью make clean; держите его для будущих обновлений ядра!


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

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

@ Андрей: пожалуйста! У меня есть Thinkpad T520, так что это была хорошая возможность исправить проблему. Что касается экрана входа в систему, я думаю, что способ решить эту проблему - включить отключение не в, rc.localа в ~/.profile, чтобы оно активировалось только после входа в систему. Если есть простой способ отключить демон мощности GNOME от обработки горячих клавиш яркости, он также отключит OSD (например backlight=vendor); чтобы сделать это правильно, может потребоваться изменить исходный код ... Я постараюсь взглянуть на это. В любом случае, как только выйдет 12.10, они выпустят исправленное ядро ​​с резервной копией для 12.04, так что тогда оно будет работать.
— иш

2

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

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

Просто хотел сказать, что изменения grub работали для меня без каких-либо явных проблем.

Удачи в поиске решения.


Рад, что это сработало для вас!
— Андрей

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 секунд для обработки событий.

Поэтому вместо этого я предпочитаю, чтобы видеодрайвер делал настройки и не давал гному их выполнять.

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

Отключение gsd-backlight-helperсделал свое дело для меня. Я просканировал интернет и, похоже, пользователь не мог сделать то же самое.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.