Почему мой регулятор яркости 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 работали для меня без каких-либо явных проблем.

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

DrA7
источник
Рад, что это сработало для вас!
Андрей
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 уровней яркости обратно!

Вы можете прочитать больше об этой проблеме на этой странице и в нижней части этой страницы .

jeremija
источник
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.

Иво Анжо
источник