В репозитариях ArchLinux появилось ядро 2.6.28, сегодня утром проивел обновление системы. Сразу всплыло несколько проблем:
- некорректно работает тачпад в иксах
- странно работает wifi
Итак, по порядку…
Elantech Touchpad
Input устройства у меня подключены через hal, соответственно в /etc/hal/fdi/policy лежал (да и лежит) файлик 09-x11-elantech.fdi вот только беда, после обновления он вроде как не цепляется (точнее это я понял потом, что он не цепляется).
Симптомы такие:
- “дерганное” передвижение курсора в иксах, отсутствие реакции на слабые перемещения по тачпаду
- при переключении из иксов в консоль и обратно: курсор вообще перестает двигаться, в консоли наблюдаем: FIXME
(EE) EXPS/2 Elantech Touchpad: ... - disabled
Причины, трудно сказать кто конкретно - hal или ядро, но внутри fdi была строчка:
посмотрев вывод hal_device я обнаружил, что у тачпада в списке capabilities нет строки input.touchpad, есть только input и input.mouse, поэтому вышеуказанная строчка приобрела вид:
и полный fdi стал такой:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.mouse">
<match key="info.product" contains="Elantech Touchpad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<merge key="input.x11_options.SHMConfig" type="string">on</merge>
<merge key="input.x11_options.MaxSpeed" type="string">1.00</merge>
<merge key="input.x11_options.MinSpeed" type="string">0.75</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">on</merge>
<merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
<merge key="input.x11_options.TapButton1" type="string">1</merge>
<merge key="input.x11_options.TapButton2" type="string">2</merge>
<merge key="input.x11_options.TapButton3" type="string">3</merge>
<merge key="input.x11_options.LockedDrags" type="string">11</merge>
</match>
</match>
</device>
</deviceinfo>
после чего делаем /etc/rc.d/hal restart и, на всяк, перезапускаем иксы. Всё, работа восстановлена.
Wifi
Тут вспомнил, что на archlinux.org.ru проскакивала информация, что драйвер переделан для совместимости с rfkill.
Раньше карточку можно было включать/выключать записывая 1 или 0 в /sys/devices/platform/eeepc/wlan, теперь же это нужно делать через /sys/class/rfkill/rfkill0/state, соответственно нужно подправить конфиг для acpi: /etc/acpi/eee.conf (смотреть предыдущие статьи).
Но и это не всё.
К сожалению, одно сделали - другое поломали, т.е. раньше драйвер eeepc_laptop знал - включена или нет wifi карта и, соответственно, генерировал на нажатие Fn + F2 разные последовательности.
Теперь он не знает. Поэтому пришлось сделать небольшой хак (надеюсь временный), основанный на сиквенс-намбере нажатия - делим на 2 и получаем остаток, если 0 - выключаем карту, если 1 - включаем.
Что бы это работало - меняем файл /etc/acpi/eee-handler.sh, находим где обрабатываются hotkey (строчка “hotkey)”) далее ищем “00000010) # wlan on” комментируем строку #/etc/acpi/eee/wlan.sh poweron
и прописываем вот такие команды
some hack for 2.6.28 stock kernel
rez=$(( 0x$4 % 2 )) [ $rez -eq 0 ] && /etc/acpi/eee/wlan.sh poweroff [ $rez -eq 1 ] && /etc/acpi/eee/wlan.sh poweron
неприятно что asusosd будет постоянно говорить что wifi включается :(
В заключение
Нашел вот это:
- http://wiki.archlinux.org/index.php/Asus_Eee_PC_1000
-
http://aur.archlinux.org/packages.php?ID=22986
(не проверял ещё)- проверил, рекомендую к использованию :exclamation: - http://bbs.archlinux.org/viewtopic.php?id=62514
новые темы в вики, на форуме и в AUR касательно Asus EeePC 1000