Ноутбук ASUS M9V доп кнопки и регулировка яркости
Итак на повестке дня имеем:
ноут ASUS M9V с установленной и Ubuntu 9.10 (Karmic Koala)
uname -a
Linux ASUSM9V 2.6.31-15-generic #50-Ubuntu SMP Tue Nov 10 14:54:29 UTC 2009 i686 GNU/Linux
И следующие проблемсы:
1. Не работает кнопка выключения тачпада
2. При регулировке яркости Notify-OSD не показывает красивый индикатор
Берем acpi_listen нажимаем кнопки блок.тачпада BT WLAN яркость+ яркость- LCD+TV
И получаем ответы:
hotkey ATKD 0000006b 0000002e // блок.тачпада
hotkey ATKD 0000007e 00000001 // BT
hotkey ATKD 0000007d 00000001 // BT
hotkey ATKD 00000088 00000002 // WLAN
hotkey ATKD 00000020 00000011 // яркость -
.........
hotkey ATKD 0000002e 00000011 // яркость -
hotkey ATKD 00000011 00000011 // яркость +
.........
hotkey ATKD 0000001f 0000009f // яркость +
hotkey ATKD 00000060 0000000e //LCD+TV
С первым все довольно просто добавляем код 0x6B и все воркает!
Странно почему там стоит 6a может у кого-то так и есть хотя в коде драйверочка asus-laptop.c вкл/выкл тачпада имеет код именно 0x6B да ладно это к делу не относится!
sudo nano /etc/acpi/events/asus-touchpad
# /etc/acpi/events/asus-touchpad
# This is called when the user presses the touchpad button and calls
# /etc/acpi/asus-touchpad.sh for further processing.
event=hotkey ATKD 0000006[ab]
action=/etc/acpi/asus-touchpad.sh
перезапускаем acpid:
service acpid restart
И все пекрасно работает!
Маленькое дополнение:
Для того чтобы тачпад не включался обратно при нажатии на клавиатуру убрать галочку тут:
#gconf-editor /desktop/gnome/peripherals/touchpad/disable_while_typing
или
#gnome-mouse-properties
Манипулятор тачпэд-Отключить тачпэд при наборе
или
Система-Параметры-Мышь-Манипулятор тачпэд-Отключить тачпэд при наборе
Со вторым гораздо все хитрее!
gedit /etc/acpi/events/asus-brightness-up
видим:
event=hotkey (ATKD|HOTK) 0000001[0123456789abcdef]
action=/etc/acpi/asus-brn-up.sh
gedit /etc/acpi/events/asus-brightness-down
видим:
event=hotkey (ATKD|HOTK) 0000002[0123456789abcdef]
action=/etc/acpi/asus-brn-down.sh
gedit /etc/acpi/asus-brn-up.sh
видим:
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
if [ "$model" != "701" ] ; then
# On an Eee PC (ASUSTeK model 701) the keys in the range handled by this
# script have entirely different meanings. They are handled in separate
# scripts.
acpi_fakekey $KEY_BRIGHTNESSUP
fi
gedit /etc/acpi/asus-brn-down.sh
видим:
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
acpi_fakekey $KEY_BRIGHTNESSDOWN
Все вроде логично но acpi_fakekey не шлет коды (как я понимаю из за переезда на devkit или нет)
Тоесть если набрать acpi_fakekey 150 то браузер не появляется!
Идем далее
sudo /lib/udev/keymap -i input/event7
коды для кнопок яркости+ яркости- BT WLAN и TV+LCD она не возвращает!
Посему быстро патчим asus-laptop.c на предмет добавления недостающих кнопок собираем запускаем и все работает!
Исходник брал тут:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/platform/x86/asus-laptop.c;h=b39d2bb3e75b897ddfc48e2e8856f118d93aa95e;hb=a8a8a669ea13d792296737505adc43ccacf3a648Исходники правильнее было брать непосредственно у разработчика acpi4asus тут:
http://git.iksaif.net/?p=acpi4asus.git;a=history;f=drivers/platform/x86/asus-laptop.c;h=3348cc6731d90f4329bf62a97a35538e39e997ed;hb=refs/heads/asus-laptopНовый патчик и модуль прицеплен ниже:
Как установить модуль:
gzip -d asus-laptop.ko.gz
cp /lib/modules/`uname -r`/kernel/drivers/platform/x86/asus-laptop.ko asus-laptop.ko.bkp
sudo rmmod asus-laptop
sudo cp asus-laptop.ko /lib/modules/`uname -r`/kernel/drivers/platform/x86/
sudo modprobe asus-laptop