Почему мой регулятор яркости Thinkpad пропускает шаги?

Проблема: на моем ноутбуке 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. Как я могу сбросить обработку этой горячей клавиши?

Буду очень признателен, если кто-нибудь это объяснит.

4 ответа

Решение

Откуда берутся 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) / ядро ​​/ драйверы / платформа /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; держите его для будущих обновлений ядра!

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

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

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

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

Настройка /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 уровней яркости обратно!

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

В моем ноутбуке Lenovo S205 у меня была эта проблема, когда видео драйвер и gnome регулировали яркость.

Но мой опыт отключения brightness_switch_enabled свойство заключается в том, что gnome работает медленно и выглядит довольно быстро при обновлении подсветки - например, если я оставлю ключи на пару секунд, а затем отпущу, gnome по-прежнему требуется 5-10 секунд для обработки событий.

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

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

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

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

Другие вопросы по тегам