Почему мой регулятор яркости 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, функциональные клавиши яркости делают два шага вместо одного, ища обходной путь:
аппаратное обеспечение просто делает это, а затем также посылает сигнал о том, что кнопка была нажата. Возможно, вы могли бы сбросить ярлык в Системе -> Настройки -> Сочетания клавиш для этого действия?
Но я хочу знать,
- Почему я получаю тройной шаг?
- Как я могу сбросить обработку этой горячей клавиши?
Буду очень признателен, если кто-нибудь это объяснит.
4 ответа
Откуда берутся 3 шага для 1 нажатия клавиши?
Вы получаете три шага яркости для одного нажатия клавиши, потому что:
- Стандартный драйвер ACPI/ видео настраивает шаг 1
thinkpad_acpiДрайвер говорит BIOS, чтобы настроить шаг 2, но все еще пересылает событие нажатия клавиши- Демон 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и перекомпилируйте это:- Установите заголовки ядра:
sudo apt-get install linux-headers-$(uname -r) - Установить инструменты сборки
sudo apt-get install build-essential - Создайте временный каталог и измените его:
mkdir ~ / tpacpi-bright && cd ~ / tpacpi-bright
Загрузите и исправьте исходный файл
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
В той же папке где
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) очистить- Сейчас типа
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.