Документация по ОС FreeBSD Понедельник, 06.05.2024, 13:28
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Работа с железом

Прикручиваем BlueTooth мышь под FreeBSD [2008]
Лишился я своей старинной мышки - был у меня древний A4Tech - беспроводная, без наворотов - просто мышь... Дочка в стенку метнула - маленькая (почти два года), всё интересно =))) Пока подключил проводной логитеч - работать надо, да и удобно по-своему - из-за провода им широко не размахнёшься, сильно не ударишь =). Однако, в башке поселилась мысль про покупку новой.
   Присмотрел мышу, заказал, оплатил, привезли. Девайс - Genius Navigator R820BT. 
   Первая ссылка гугля, по соответствующему запросу, приводит на рассылку FreeBSD, ссылка отуда на немного устаревший мануал. Всё что там описано - вполне работоспособно, тока описание старовато - там предлагают собирать то, что уже давно собрано в системе, и запускать руками то, для чего есть системные же скрипты.
   Итак, поехали. Предполагается, что сам Голубой Зуб у вас установлен и работает. Также, подразумевается что загружены соответствующие модули, у меня в /boot/loader.conf такой список модулей относящихся к BlueTooth устройствам:
ussr$ grep --after-context=8 "Blue Tooth" /boot/loader.conf
# Blue Tooth
ng_bt3c_load="YES"
ng_btsocket_load="YES"
ng_ubt_load="YES"
ubtbcmfw_load="YES"
ng_l2cap_load="YES"
netgraph_load="YES"
vkbd_load="YES"

ussr$

   Конкретно к мыши тут относиться только "vkbd". Остальное - к телефону жены. Пробуем опросить девайсы в округе:
ussr# hccontrol -n ubt0hci inquiry
Inquiry complete. Status: No error [00]

   Облом... Несколько секунд разочарованного кручения мышки в руках, с мыслью - "обманули подонки в интернет-магазине - девайс нерабочий" - замечаю кнопку снизу. Включается соображаловка - про то что пора бы прочесть инструкцию, хоть она и относиться к винде/MacOS - полезное из неё всегда можно извлечь. Однако - инструкция не наш путь, поэтому жму кнопку, и снова запускаю опрос:
ussr# hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
 BD_ADDR: 00:10:c6:ef:19:fe
 Page Scan Rep. Mode: 0x1
 Page Scan Period Mode: 00
 Page Scan Mode: 00
 Class: 00:25:80
 Clock offset: 0x43e3
Inquiry complete. Status: No error [00]
ussr#

   Это уже лучше. В округе неизвестный девайс, ибо все известные описаны в файле /etc/bluetooth/hosts. Прописываю и его там же:
ussr$ grep Genius /etc/bluetooth/hosts
00:10:c6:ef:19:fe Genius.Navigator.R820BT
ussr$ 

Теперь можно работать с именем. Потрясём девайс, посмотрим чё насыпется =)
ussr# bthidcontrol -a Genius.Navigator.R820BT query
device {
 bdaddr 00:10:c6:ef:19:fe;
 control_psm 0x11;
 interrupt_psm 0x13;
 reconnect_initiate true;
 battery_power true;
 normally_connectable false;
 hid_descriptor {
 0x05 0x01 0x09 0x02 0xa1 0x01 0x85 0x02
 0x09 0x01 0xa1 0x00 0x05 0x09 0x19 0x01
 0x29 0x03 0x15 0x00 0x25 0x01 0x75 0x01
 0x95 0x03 0x81 0x02 0x75 0x05 0x95 0x01
 0x81 0x01 0x05 0x01 0x09 0x30 0x09 0x31
 0x09 0x38 0x15 0x81 0x25 0x7f 0x75 0x08
 0x95 0x03 0x81 0x06 0xc0 0xc0 0x05 0x0c
 0x09 0x01 0xa1 0x01 0x85 0x03 0x05 0x01
 0x09 0x02 0xa1 0x02 0x06 0x00 0xff 0x15
 0x00 0x25 0x03 0x75 0x02 0x95 0x01 0x0a
 0x01 0xfe 0x81 0x01 0x75 0x06 0x95 0x01
 0x81 0x01 0xc0 0xc0 0x05 0x0c 0x09 0x01
 0xa1 0x01 0x85 0x04 0x05 0x01 0x09 0x02
 0xa1 0x02 0x05 0x0c 0x0a 0x38 0x02 0x75
 0x08 0x95 0x01 0x15 0x81 0x25 0x7f 0x81
 0x06 0x06 0x00 0xff 0x0a 0x04 0xff 0x0a
 0x06 0xff 0x15 0x00 0x25 0x01 0x75 0x01
 0x95 0x02 0xb1 0x02 0x95 0x06 0xb1 0x01
 0xc0 0xc0 0x05 0x0c 0x09 0x02 0xa1 0x01
 0x85 0x05 0x05 0x01 0x09 0x06 0xa1 0x02
 0x05 0x06 0x09 0x20 0x15 0x00 0x25 0xff
 0x75 0x08 0x95 0x08 0x81 0x00 0x09 0x20
 0x15 0x00 0x25 0xff 0x75 0x08 0x95 0x08
 0xb1 0x00 0xc0 0xc0
 };
}
ussr#
ussr# bthidcontrol -a Genius.Navigator.R820BT Dump
Collection page=Generic_Desktop usage=Mouse
Collection page=Generic_Desktop usage=Pointer
Input id=2 size=1 count=1 page=Button usage=Button_1 Variable,
 logical range 0..1
Input id=2 size=1 count=1 page=Button usage=Button_2 Variable,
 logical range 0..1
Input id=2 size=1 count=1 page=Button usage=Button_3 Variable,
 logical range 0..1
Input id=2 size=8 count=1 page=Generic_Desktop usage=X Variable
 Relative, logical range -127..127
Input id=2 size=8 count=1 page=Generic_Desktop usage=Y Variable
 Relative, logical range -127..127
Input id=2 size=8 count=1 page=Generic_Desktop usage=Wheel
 Variable Relative, logical range -127..127
End collection
End collection
Collection page=Consumer usage=Consumer_Control
Collection page=Generic_Desktop usage=Mouse
End collection
Collection page=Consumer usage=Consumer_Control
Collection page=Generic_Desktop usage=Mouse
Input id=4 size=8 count=1 page=Consumer usage=AC_Pan Variable Relative,
 logical range -127..127
Feature id=4 size=1 count=1 page=Microsoft usage=0xff04 Variable,
 logical range 0..1
Feature id=4 size=1 count=1 page=Microsoft usage=0xff06 Variable,
 logical range 0..1
End collection
End collection
Collection page=Consumer usage=Numeric_Key_Pad
Input id=5 size=8 count=8 page=Generic_Device_Control
 usage=Battery_Strength, logical range 0..255
Feature id=5 size=8 count=8 page=Generic_Device_Control
 usage=Battery_Strength, logical range 0..255
Collection page=Generic_Desktop usage=Keyboard
End collection
ussr# 

Для работы устройства нужен листинг первой команды, сохранённый в файл /etc/bluetooth/bthidd.conf:
ussr# bthidcontrol -a Genius.Navigator.R820BT Query >> /etc/bluetooth/bthidd.conf

   После чего добавляем в /etc/rc.conf такие строки:
ussr$ grep --after-context=4 "blue devices" /etc/rc.conf
# blue devices
hcsecd_enable="YES"
sdpd_enable="YES"
bthidd_enable="YES"

ussr$

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

P.S. По итогам дня эксплуатации, могу тока заметить что о покупке пожалел. Говорили мужики на работе - бери логитеч, не послушался (не люблю мыши с извратами - типа форма удобная, пачка кнопок и прочее - не надо мне этих извратов, а в том магазе где брал других не было - тока гениус нормальной формы был).
   Почему пожалел.
1. Тяжёлая. Не очень существенно, но старый A4Tech при таких же аккумуляторах - AA, весил меньше. Может и не сильно меньше, но был лучше сбалансирован - центр тяжести был назад сдвинут, у этой впереди...
2. У меня тёмный стол, коврика нет - всё равно дитё его тут же утащщит - мышь плохо по нему ползает. Логитеч и A4Tech ползали абсолютно нормально. Может дело не в мыши - в тормознутости самого интерфейса - не знаю. Факт что спозиционировать мышь, например, на гиперссылке - стало тяжелей. Щас сижу с двумя сразу - в браузере реально логитечем удобней...
3. Вместо стандартного moused используется bthidd. Видимо поэтому, поведение мыши отличается от стандартного - в иксах вроде всё также, а вот в голой консоли - аж злить начинает - по двойному клику слово не выделяет, по третьему клику должно выделять строку - тоже нифига. Очень нехватает этого...



Источник: http://www.lissyara.su/?id=1381
Категория: Работа с железом | Добавил: oleg (26.03.2008) | Автор: lissyara
Просмотров: 1047 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024