The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Подключение мультимедиа клавиш на u..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Подключение мультимедиа клавиш на u..."  +/
Сообщение от auto_tips on 16-Июн-10, 08:26 
Условие - FreeBSD не ниже 8-ки. Мультимедиа клавиши usb-шных клавиатур не генерируют фиксированные скан-коды, поэтому этим придется заняться uhidd.
Необходимо установить

   /usr/ports/sysutils/uhidd

для того, что бы связать клавиши со скан-кодами, сначала запустим uhidd следующим образом:

   uhidd -o /dev/ugenX.X

где параметр "-о" значит, что обслуживать демон будет только мультимедиа-клавиши, а номера в ugen должны ссылаться на клавиатуру.

Запускаем

   usbconfig

и смотрим вывод

После запуска последовательно нажимаем все мультимедиа кнопки. на какие-то может быть реакция, на какие-то нет - пока неважно - главное последовательно пройтись по всем кнопкам.

в результате этого мы получим файл

/var/run/uhidd.ugenX.X/cc_keymap

следующего вида

   0x046d:0xc30e={
     cc_keymap={
        Play/Pause="0x5A"
        Mute="0x5F"
        Volume_Increment="0x62"
        Volume_Decrement="0x63"
        AL_Consumer_Control_Configuration="0x71"
        AC_Home="0x66"
     }
   }


где первыми идет обозначение клавиатуры (вендор:модель), а затем названия кнопок с произвольно присвоенными скан-кодами. и вот здесь есть одна хитрость - uhidd выбирает эти коды из списка свободных (посмотреть список можно в конце man uhidd.conf), но может так получиться, что какие-то коды уже заняты. в таком случае для этих клавиш надо прописать коды самостоятельно, но об этом чуть позже.

Далее создаем файл /usr/local/etc/uhidd.conf

   default={
     mouse_attach="NO"
     kbd_attach="NO"
     vhid_attach="NO"
     cc_attach="YES"
   }


повторяющий ту же опцию "-o", которую указывали при запуске вручную
теперь

   cat /var/run/uhidd.ugenX.X/cc_keymap >> /usr/local/etc/uhidd.conf

и делаем

   /usr/local/etc/rc.d/uhidd start /dev/ugenX.X


в случае, если window manager не поддерживает назначения произвольных сканкодов на нажатия, а обрабатывает только стандартные, тогда надо использовать

   xmodmap .Xmodmap

где в .Xmodmap

   keycode 170 = XF86AudioRaiseVolume
   keycode 184 = XF86AudioLowerVolume
   keycode 190 = XF86AudioMute
   ......

Ссылки на использованные материалы:
* http://wiki.freebsd.org/uhidd#head-629d89bc56c27990a707d46a3...
* man uhidd
* man uhidd.conf


URL: http://cat-in-mind.livejournal.com/139950.html
Обсуждается: http://www.opennet.ru/tips/info/2388.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от крамер on 16-Июн-10, 08:26 
Кстати! На свежей 8-S (буквально понедельник) имею наконец рабочими все мультимедийные клавиши на ноутбуке! Это после стольких лет их неработы! Почти все сочетания Fn+F1..12 были нерабочие так как генерили acpi event, щас стало работать, без всяких дополнительных танцев и портов. Искаропки, всё и сразу.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 16-Июн-10, 12:31 
а как в ноуте выглядит клава? как ps/2?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от Аноним (??) on 17-Июн-10, 10:16 
>а как в ноуте выглядит клава? как ps/2?

а как по виду отличить usb от ps/2 клавы на ноуте?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 17-Июн-10, 11:18 
dmesg и usbconfig вам в помощь
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от Аноним (??) on 16-Июн-10, 13:20 
>а как в ноуте выглядит клава? как ps/2?

Не припомню чтоб по другому было

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 16-Июн-10, 13:58 
>>а как в ноуте выглядит клава? как ps/2?
>
>Не припомню чтоб по другому было

просто для стандартных ps/2 клав мультимедиа клавиши обрабатываются нормально

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +1 +/
Сообщение от крамер on 17-Июн-10, 11:28 
Да, ps\2, но фактически, клавиши Fn+F* посылают не кейкоды, а acpi events, это факт.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 17-Июн-10, 11:37 
>Да, ps\2, но фактически, клавиши Fn+F* посылают не кейкоды, а acpi events,
>это факт.

спасибо, буду знать

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +1 +/
Сообщение от Kibab email(ok) on 16-Июн-10, 17:16 
интересно, спасибо.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +1 +/
Сообщение от arachnid (ok) on 16-Июн-10, 18:13 
пожалуйста :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (??) on 16-Июн-10, 19:13 
Для работы uhidd нужно подгрузить vkbd.ko , о чём он скажет только если запускать с опцией -v.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 16-Июн-10, 19:53 
странно, сейчас посмотрел на свою рабочую машину - в конфиге uhidd есть указание только для cc_attach - а модуль vkbd подгружен. скорее всего, что uhidd подгрузил автоматом. но вот на домашней машине вроде этого не произошло. завтра поэкспериментирую.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 17-Июн-10, 11:29 
>странно, сейчас посмотрел на свою рабочую машину - в конфиге uhidd есть
>указание только для cc_attach - а модуль vkbd подгружен. скорее всего,
>что uhidd подгрузил автоматом. но вот на домашней машине вроде этого
>не произошло. завтра поэкспериментирую.

проверил - необходимые модули подгрузились при загрузке. их загрузка прописана в скрипте /usr/local/etc/rc.d/uhidd в виде строчки required_modules="uvhid vkbd"

так что сейчас внесу уточнения

так. поскольку "автор" не я, а auto-tips, то внесу исправления только в ЖЖ :(

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от Новичок email(??) on 17-Июн-10, 00:06 
а как такое делается в линуксе?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  –2 +/
Сообщение от Тот_еще_аноним on 18-Июн-10, 01:00 
Никак, оно там работает изкаропки без шаманств
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (??) on 23-Июн-10, 15:25 
>Никак, оно там работает изкаропки без шаманств

В LFS никак. А если речь не про LFS, то вы малость темой ошиблись при ответе.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  –1 +/
Сообщение от iZEN (ok) on 20-Июн-10, 17:32 
Пользователи линукс не знают как. Им что дали, тем они и пользуются. Правда, если что-то не работает, то руки опускаются и страшный вой на форумах — "политика зашита в механизмы".
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от Ygor (ok) on 21-Июн-10, 19:11 
А чем не угодил xev(1)?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 21-Июн-10, 22:04 
>А чем не угодил xev(1)?

читаем внимательно - usb-клавиатуры не выдают сканкоды при нажатии мультимедиа-клавиш - xev ничего не показывает

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от freelove on 22-Июн-10, 16:04 
выдает, выдает :)
это проблема исключительно фришки
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 22-Июн-10, 16:26 
>выдает, выдает :)
>это проблема исключительно фришки

хм, я вроде бы нигде не говорил. что это решение подходит и для других систем. или вы считаете, что xev таки должен что-то ловить под фряхой?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (??) on 23-Июн-10, 15:21 
Я вроде бы нигде не вкурил, почему не xev. Фактически uhidd только привязывает "новые" кнопки к скан-кодам, никому не запрещали с тем же успехом юзать xev, чтобы получить коды (разумеется уже после загрузки uhidd). Что я собственно и сделал после того как успешно профукал, какой код к какой кнопке споймал uhidd =)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

26. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 23-Июн-10, 16:20 
>Я вроде бы нигде не вкурил, почему не xev. Фактически uhidd только
>привязывает "новые" кнопки к скан-кодам, никому не запрещали с тем же
>успехом юзать xev, чтобы получить коды (разумеется уже после загрузки uhidd).
>Что я собственно и сделал после того как успешно профукал, какой
>код к какой кнопке споймал uhidd =)

эти рассуждения - результат эксперимента (то есть у вас есть фряха, в которой запущен xev и который показывает скан-коды при нажатии мультимедиа клавиш) или "за жизнь поболтать хочется"?

давайте попробуем еще раз - вот выдерка из вики касательно данного демона - "
To support multimedia keys basically is to translate USB consumer usage to keycodes"  

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

27. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (ok) on 24-Июн-10, 00:08 
Ну, если слова про "что я собственно и сделал" и уточнение о необходимости подгрузить модуль - "за жизнь", то я даже теряюсь в догадках, чего ещё писать.

Вот выдержка из man Xev
Xev creates a window and then asks the X server to send it events when-
ever  anything  happens to the window (such as it being moved, resized,
typed in, clicked in, etc.)
Тоесть он просто ловит эвенты, причём не только от клавы, но и от мыши и вообще любые посылы в созданное окно. Другое дело что USB-клава без uhidd не посылает эвенты с расширенных кнопок. Тоесть вопрос только в том, кому как удобнее получить эти кей-коды, то что uhidd должен быть запущен - очевидно.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

28. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 24-Июн-10, 07:59 
с одной стороны приношу извинения, что не дочитал до конца (видимо остановился на словах "почему не xev" :) ), а с другой - сканкод, который выдает uhidd назначаете Вы сами - uhidd ловит названия кнопок, и уже к ним привязывает (и выдает системе) сканкоды.
тогда объясните,плз, что Вы имели в виду под "Я вроде бы нигде не вкурил, почему не xev"
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

29. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (??) on 24-Июн-10, 11:07 
uhidd просто делает привязку эвентов от устройства к свободным кодам клавиатуры. Но он нигде не помечает, к какой кнопке относится каждый код. Тоесть кнопка с кодом 0x78 это может быть и Mute, а может быть и Play/Pause. Представьте теперь что у вас не 5 дополнительных кнопок, а навороченная мультимедиа клавиатура на 50 дополнительных кнопок - методом тыка такое уже не подберёшь, надо для себя сразу знать что и к чему привязываем, на ходу тыкать и дописывать конфиг. К тому же uhidd возвращает 16-ричный код кнопки, а xmodmap предпочитает десятиричный код.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

30. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 24-Июн-10, 12:26 
>uhidd просто делает привязку эвентов от устройства к свободным кодам клавиатуры. Но
>он нигде не помечает, к какой кнопке относится каждый код. Тоесть
>кнопка с кодом 0x78 это может быть и Mute, а может
>быть и Play/Pause. Представьте теперь что у вас не 5 дополнительных
>кнопок, а навороченная мультимедиа клавиатура на 50 дополнительных кнопок - методом
>тыка такое уже не подберёшь, надо для себя сразу знать что
>и к чему привязываем, на ходу тыкать и дописывать конфиг. К
>тому же uhidd возвращает 16-ричный код кнопки, а xmodmap предпочитает десятиричный
>код.

так. все равно не понял. что значит "Но он нигде не помечает, к какой кнопке относится каждый код"?

давайте попробуем по другому - с чем с заметке Вы не согласны?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

31. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (ok) on 24-Июн-10, 13:58 
Два раза запостил
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

32. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (ok) on 24-Июн-10, 14:00 
Тэк, теперь уже сам малость запутался. Кнопки он обзывает, но коды даёт 16-ричные, а в xmodmap нужны 10-ричные значения. Как-то так.

# cat /usr/local/etc/uhidd.conf
0x046d:0xc313={
        cc_keymap={
                Play/Pause="0x62"
                Mute="0x71"
                Volume_Increment="0x6F"
                Volume_Decrement="0x63"
                AL_Consumer_Control_Configuration="0x54"
                AL_Email_Reader="0x5A"
                AL_Calculator="0x60"
                AC_Home="0x5F"
        }
}

Вот тут в статье не хватает информации, как вы пересчитывали значения =) Мне пересчитывать было лень, я использовал Xev

# cat .Xmodmap
   keycode 207 = XF86AudioRaiseVolume
   keycode 190 = XF86AudioLowerVolume
   keycode 209 = XF86AudioMute
   keycode 92 = XF86AudioPause
   keycode 189 = XF86AudioPlay
   keycode 170 = XF86Mail
   keycode 147 = XF86Calculater
   keycode 184 = XF86HomePage

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

33. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от arachnid (ok) on 24-Июн-10, 14:46 
я их никак не переводил - это вырезка из конеца вики :)

просто мне в гноме это не надо - тот понимает кейкоды и так. поэтому я и "воспользовался" маном.

да. соглашусь. что более красиво эти коды привязать к правильным событиям, но... :)
кстати, в одной статье натыкался, что xmodmap понимает и hex значения

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

34. "Подключение мультимедиа клавиш на usb-клавиатуре во FreeBSD"  +/
Сообщение от QuAzI (ok) on 24-Июн-10, 18:42 
Странно, мой xmodmap не понял и подавился, а DE у меня не стоит, у меня awesome =) . А ещё одна кнопка (Calculator которая должна быть) не сразу нажимается, зато если повторить 2-3 раза, она залипает и в системе запущается фигова сотня экземпляров привязанного приложения.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру