Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Шелезяки —> BlueTooth mouse

Прикручиваем BlueTooth мышь под FreeBSD

Автор: lissyara.


    Лишился я своей старинной мышки - был у меня древний 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. Видимо поэтому, поведение мыши отличается от стандартного - в иксах вроде всё также, а вот в голой консоли - аж злить начинает - по двойному клику слово не выделяет, по третьему клику должно выделять строку - тоже нифига. Очень нехватает этого...



размещено: 2008-03-25,
последнее обновление: 2008-05-01,
автор: lissyara


Andy, 2008-03-26 в 10:42:41

Отдай мышь дочери, пусть повторит процесс дизассемблирования :)

Manefesto, 2008-03-26 в 15:45:44

Да ты чо.... а как её(мышь) потом дебажить то???
Паяльником со скотчем?

void*, 2008-03-27 в 10:46:48

Кмтайский суперклей - это наше фсе!

Yo>|<iG, 2008-03-27 в 18:49:51

Неграмотно обмытое железо, это напрасно выкинутые деньги :)
У меня тож какойто джениус блютузный валяеца, ниче ниделал, так работатет, но использую редко, ибо тяжелый и глючный.

lissyara, 2008-03-27 в 19:54:41

Не пью.
Так что - можно сказать что сразу были выкинуты зря =))

artem, 2008-03-28 в 12:27:03

Genius всегда были крысы не очень
A4Tech по функционалу это тот же Logitec тока дешевле и в некоторых моделях кнопки слишком громко щелкают что может раздражать спщих окружающих

У меня вопрос не совсем по теме - у меня проводная мышь( хотя это без разницы)и меня ужасно раздражает что в иксах при малейшей нагрузке она начинает при движении периодически застревать (железо современное и не глючное, в эффекты смены вида указателя выключил)!???!!
Думаю это связано с методом работы драйвера - в винде он как то пашет через прерывания - даже если система подвисла или сильно нагружена, то курсора это никак не касается.
Можно ли как то внастроить подобное во фре????

artem, 2008-03-31 в 15:03:09

тему вынес в форум
http://forum.lissyara.su/viewtopic.php?f=5&t=7893

перец, 2008-06-23 в 7:39:38

слово относится в таоем предложении пишется без Ь :)
кстати, давно есть коврики, которые сами тонкие очень, ложишь и они приклеиваются к столу, но не так, чтобы потом не оторвать, а по нормальному

Артем, 2009-04-11 в 20:03:09

перец,"таоем" или твоем?



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0561 секунд
Из них PHP: 28%; SQL: 72%; Число SQL-запросов: 87 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 33794