Инструменты пользователя

Инструменты сайта


// EeePC и обновление до ядра 2.6.28

В репозитариях 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 была строчка:

<match key="info.capabilities" contains="input.touchpad">

посмотрев вывод hal_device я обнаружил, что у тачпада в списке capabilities нет строки input.touchpad, есть только input и input.mouse, поэтому вышеуказанная строчка приобрела вид:

<match key="info.capabilities" contains="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 включается :(

В заключение

Нашел вот это:

новые темы в вики, на форуме и в AUR касательно Asus EeePC 1000

Комментарии

Старые комментарии

Отлично изложено с начала до конца! большой + Если бы у меня был Asus EEEPC то я бы без труда смог настроить опираяс на изложенное. Доступно, понятно, рационально!

аффтар, пиши дальше!!! =)

1 | | 2009-01-22 08:51 | reply

небольшой фикс статьи

2 |
Alexander Drozdov
| 2009-02-07 00:42 | reply

Вот в этой строчке явная ачипятка (кстати, эта очепятка есть и на вики-странице):

<merge key=«input.x11_options.LockedDrags» type=«string»>11</merge>

Чтобы LockedDrags работал - там должно быть 1, а не 11.

И еще: а работает ли у тебя echo -n 1 > /sys/class/rfkill/rfkill1/state ? Сдается мне, что в стоковом ядре 2.6.28 там бага - операция не проходит.

3 |
| 2009-02-21 05:56 | reply

rfkill точно работает (ядро версию точно не скажу, но система не супер up-to-date), насчет локед драгс, знать бы ещё что это… посмотрю.

4 |
Alexander Drozdov
| 2009-02-21 07:08 | reply

LockedDrags - это весьма полезная при использовании тачпада штука: обычно для, допустим, выделения текста мышью или перетаскивания файла в графическом файловом менеджере - нужно удерживать постоянно нажатой левую кнопку мыши и тащить. С тачпадом это не сильно удобно - «тащить» он будет до первого отрыва пальца (либо придется другой рукой удерживать нажатой реальную левую кнопку тачпада). LockedDrags работает так: имитируешь пальцем дабл-клик, но после второго клика - не отрываешь палец. Соответственно, локед включился - тачпад работает так, как будто левая кнопка зажата. Дальше ты можешь выделять/таскать сколь угодно долго - отключится фишка только после еще одного «клика пальцем». В общем, проще попробовать, чем описать. :)

А по поводу rfkill - у меня в стоковом ядре 2.6.28 он работает для rfkill0 (wifi), а вот для rfkill1 (блютуз) - не работает, пишет «операция не позволяется».

5 |
| 2009-02-22 03:17 | reply

О, за ликбез спасибо!

Насчет голубого зуба не скажу - на моей модели его нет, так что если кто откликнется то будет добро. Но, скорее всего, это бага в дровах, недавно же на rfkill перевели, может ещё дотачивать будут.

6 |
Alexander Drozdov
| 2009-02-23 17:34 | reply