HOWTO hal и устройства ввода
Дата: 28.01.2008
hal-0.5.10
В связи с выходом hal-0.5.10 и включении поддержки hal в xorg возникло много вопросов: где раскладки, где мышка, где тачпад, и прочее.
Сейчас xorg использует hal для устройств ввода и xorg.conf игнорирует Данное руководство предназначенно для безболезненного перехода на новую систему
В данном руководстве используются пакеты из ~x86(~amd64) ветки. Посему заботу о keywords оставляю на вашей совести.
Обновляем portage
# emerge --sync
(# eix-sync -v)
Обновляем установку xorg
#emerge -avDNt xorg-x11
убеждаемся в наличии флага hal. При отсутствии — включаем. / В окончании сборки пакета xorg-server выведется список пакетов для пересборки, их надо пересобрать. Если не заметили или пропустили вот комманда для получения списка пакетов:
emerge portage-utils; qlist -I -C x11-drivers/
Клавиатура
Правила(rules) пользователя можно разместить в каталогах:
/usr/share/hal/fdi/policy/20thirdparty/
или аналогичном /etc/hal/fdi/policy
получить список устройств "узнанных" hal можно командой lshal у меня системе(ноутбук с мультимедийными клавишами) оказалось несколько устройств которые совместимы с понятием "клавиатура", но основная была описана так:
udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input'
info.addons.singleton = {'hald-addon-input'} (string list)
info.capabilities = {'input', 'input.keyboard', 'input.keypad', 'input.keys', 'button'} (string list)
info.category = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port' (string)
info.product = 'AT Translated Set 2 keyboard' (string)
info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input' (string)
input.device = '/dev/input/event2' (string)
input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port' (string)
input.physical_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port' (string)
input.product = 'AT Translated Set 2 keyboard' (string)
input.x11_driver = 'evdev' (string)
input.xkb.layout = 'us' (string)
input.xkb.model = 'evdev' (string)
input.xkb.rules = 'base' (string)
input.xkb.variant = (string)
linux.device_file = '/dev/input/event2' (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
linux.sysfs_path = '/sys/devices/platform/i8042/serio0/input/input2/event2' (string)
Заметно что
input.xkb.layout = 'us'
input.xkb.rules = 'base'
input.xkb.variant =
нас не устраивает
Создаём новый файл
nano /usr/share/hal/fdi/policy/20thirdparty/10russian-layout.fdi
со следующим содержимым:
Файл: /usr/share/hal/fdi/policy/20thirdparty/10russian-layout.fdi
<?xml version="1.0" encoding="ISO-8859-1"?><!-- -*- SGML -*- -->
<match key="input.product" contains="AT Translated Set 2 keyboard">
<merge key="input.xkb.layout" type="string">us,ru</merge>
<merge key="input.xkb.variant" type="string">,winkeys</merge>
<merge key="input.xkb.options" type="string">grp:alt_shift_toggle,grp_led:scroll</merge>
</match>
если у вас одно устройство ввода типа "клавиатура",то можно сточку
<match key="input.product" contains="AT Translated Set 2 keyboard">
заменить на
<match key="info.capabilities" contains="input.keyboard">
Так мы получим более универсальное правило. Можно заметить что названия опций перекликается с аналогами xorg.conf. Так и есть, в принципе здесь можно записать все те параметры которые вы использовали в xorg.conf только в приложении к XML.
ВАЖНО: Если у вас остались проблемы с расположением клавиш, то возможно так и следует сделать?
например:
Option "XkbRules" "xorg"
тоже самое что
<merge key="input.xkb.rules" type="string">xorg</merge>
Driver "kbd"
=
<merge key="input.x11_driver" type="string">kbd</merge>
Сохраняем файл.
#/etc/init.d/hald restart
Проверяем системный лог и убеждаемся, что правило успешно добавленно.
#lshal
должно вывести следующие строчки:
...
input.x11_driver = 'evdev' (string)
input.xkb.layout = 'us,ru' (string)
input.xkb.model = 'evdev' (string)
input.xkb.options = 'grp:alt_shift_toggle,grp_led:scroll' (string)
input.xkb.rules = 'base' (string)
input.xkb.variant = ',winkeys' (string)
...
Если так и есть, то дело сделано. Если нет--внимательно перечитываем до просветления.
Перезапускаем X-ы
После чего можно перезапустить X-ы(перезагрузить компьтер, перезапустить xdm). Проверяем. Радуемся. Если не получаеться, то внимательно читаем лог Xorg, Скорее всего там можно найти ответ.
Мышка
Пока проблема одна. Hal по умолчанию использует драйвер evdev,которые не всегда корректно работает в полноэкранных приложениях(игры)
#echo "SDL_VIDEO_X11_DGAMOUSE=0" >>/etc/env.d/02locale
#env-update
#source /etc/profile
Должно решить эту проблему.
Touchpad
Автоотмонтирование флешек в KDE
- Jampire
- Заглянувший
- Сообщения: 35
- Зарегистрирован: 13 июл 2007, 14:49
- Откуда: Гомель
- Контактная информация:
Re: Автоотмонтирование флешек в KDE
Выдержка из GentooDocs:
- mungo
- Фанатеющий
- Сообщения: 151
- Зарегистрирован: 10 сен 2006, 10:32
- Откуда: Минск
- Контактная информация:
Re: Автоотмонтирование флешек в KDE
И причем здесь усб-девайсы? То есть чтобы мне их запустить, мне надо изучить всю структуру написания конфигов для хал?
Сомневаюсь, и вам советую!