bthidd
Ronald Klop
ronald-freebsd8 at klop.yi.org
Wed Apr 20 13:06:27 PDT 2005
On Wed, 20 Apr 2005 12:51:54 -0700, Maksim Yevmenkin
<maksim.yevmenkin at savvis.net> wrote:
> Ronald,
>
>>>>>>> Is bthidd usable? It isn't connected to the build.
>>>>>>
>>>>>>
>>>>>> define "usable"? :) you should be able to use it with bluetooth
>>>>>> mice, but not with bluetooth keyboards. so, imo, its not very
>>>>>> usable at the moment. bluetooth keyboard support is not there
>>>>>> because i do not like the fact that i can not have more then one
>>>>>> keyboard attached to the system. as soon as i find some time i
>>>>>> will look into the system console driver to see what it takes to
>>>>>> add support for more then one keyboard.
>>>>>
>>>>> Usable... Mmm. I have a SonyEricsson K700i phone and on Windows I
>>>>> can use the joystick of the phone as a mouse to control
>>>>> mediaplayer, etc. I would like to do the same on FreeBSD, just for
>>>>> the coolness of it. :-)
>>>>
>>>> :)
>>>>
>>>>> Can I just do this?
>>>>
>>>> i do not know. it depends. if k700i looks like mouse then it most
>>>> likely will work. if k700i looks like keypad/keyboard then it will
>>>> not work (for the reason described above - cant have more then one
>>>> active keyboard/keypad attached to the console).
>>>>
>>>> there is a bthidcontrol(8) tool in
>>>> /usr/src/usr.sbin/bluetooth/bthidcontrol. could you please compile
>>>> it and send me the output of "query" command? there is a
>>>> bthidcontrol.8 man page in the same directory ("nroff -man
>>>> bthidcontrol.8 |less" - to read it)
>>>>
>>>>> cd /usr/src/usr.sbin/bluetooth/bthidd/
>>>>> make && make install && make clean
>>>>> Or is there more to it?
>>>>
>>>> you will also need to create /etc/bluetooth/bthidd.conf
>>>> configuration file. bthidcontrol(8) will help you with that.
>>>
>>> Thanks for the info. I'm going to try this soon. But I left my phone
>>> at my moms house, just one evening before she went on holiday for
>>> two weeks. :-(
>> Da phone is back.
>> # bthidcontrol -a phone query
>> device {
>> bdaddr 00:0f:de:78:93:d8;
>> control_psm 0x11;
>> interrupt_psm 0x13;
>> reconnect_initiate true;
>> battery_power false;
>> normally_connectable false;
>> hid_descriptor {
>> 0x05 0x01 0x09 0x06 0xa1 0x01 0x85 0x01
>> 0x05 0x07 0x19 0xe0 0x29 0xe7 0x15 0x00
>> 0x25 0x01 0x75 0x01 0x95 0x08 0x81 0x02
>> 0x95 0x01 0x75 0x08 0x81 0x03 0x95 0x05
>> 0x75 0x01 0x05 0x08 0x19 0x01 0x29 0x05
>> 0x91 0x02 0x95 0x01 0x75 0x03 0x91 0x03
>> 0x95 0x06 0x75 0x08 0x15 0x00 0x25 0x65
>> 0x05 0x07 0x19 0x00 0x29 0x65 0x81 0x00
>> 0xc0 0x05 0x01 0x09 0x02 0xa1 0x01 0x85
>> 0x02 0x09 0x01 0xa1 0x00 0x05 0x09 0x19
>> 0x01 0x29 0x03 0x15 0x00 0x25 0x01 0x95
>> 0x03 0x75 0x01 0x81 0x02 0x95 0x01 0x75
>> 0x05 0x81 0x03 0x05 0x01 0x09 0x30 0x09
>> 0x31 0x15 0x81 0x25 0x7f 0x75 0x08 0x95
>> 0x02 0x81 0x06 0xc0 0xc0
>> };
>> }
>
> i have copied your config and run 'bthidcontrol dump'
>
> % bthidcontrol -a 00:0f:de:78:93:d8 dump
> Collection page=Generic_Desktop usage=Keyboard
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_LeftControl
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_LeftShift
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_LeftAlt
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_Left_GUI
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_RightControl
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_RightShift
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_RightAlt
> Variable, logical range 0..1
> Input id=1 size=1 count=1 page=Keyboard usage=Keyboard_Right_GUI
> Variable, logical range 0..1
> Input id=1 size=8 count=1 page=0x0000 usage=0x0000 Const Variable,
> logical range 0..1
> Output id=1 size=1 count=1 page=LEDs usage=Num_Lock Variable, logical
> range 0..1
> Output id=1 size=1 count=1 page=LEDs usage=Caps_Lock Variable, logical
> range 0..1
> Output id=1 size=1 count=1 page=LEDs usage=Scroll_Lock Variable,
> logical range 0..1
> Output id=1 size=1 count=1 page=LEDs usage=Compose Variable, logical
> range 0..1
> Output id=1 size=1 count=1 page=LEDs usage=Kana Variable, logical range
> 0..1
> Output id=1 size=3 count=1 page=0x0000 usage=0x0000 Const Variable,
> logical range 0..1
> Input id=1 size=8 count=6 page=Keyboard
> usage=Reserved_(no_event_indicated), logical range 0..101
> End collection
> 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=5 count=1 page=0x0000 usage=0x0000 Const 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
> End collection
> End collection
>
> looks like the phone has both keyboard and the mouse part. do you know
> if phone sends mouse events (if you move joystick i guess)? how about
> running 'hcidump' while pressing buttons on the phone?
>
>> # bthidcontrol -a phone query > /etc/bluetooth/bthidd.conf
>> # bthidd -d
>> <select 'control external device' on my phone>
>> bthidd[786]: Accepted control connection from 00:0f:de:78:93:d8
>> bthidd[786]: Accepted interrupt connection from 00:0f:de:78:93:d8
>
> that looks fine. it means there is a hid session between phone and the
> computer. please use hcidump to see if there is any hid events going
> from the phone.
>
>> And now I'm stuck. I don't see a new device in /dev or a msg in
>> dmesg/console.
>
> there wont be any device. the mouse part *might* work. btw try to run
> bthidd on console (not on xterm).
hcidump -x gives me this:
--------------- joystick up -----------------
HCIDump - HCI packet analyzer ver 1.5
device: any snap_len: 65535 filter: 0xffffffff
> ACL data: handle 0x0005 flags 0x02 dlen 9
L2CAP(d): cid 0x49 len 5 [psm 0]
A1 02 00 00 F6
> ACL data: handle 0x0005 flags 0x02 dlen 9
L2CAP(d): cid 0x49 len 5 [psm 0]
A1 02 00 00 F6
> ACL data: handle 0x0005 flags 0x02 dlen 9
L2CAP(d): cid 0x49 len 5 [psm 0]
A1 02 00 00 F6
> ACL data: handle 0x0005 flags 0x02 dlen 9
L2CAP(d): cid 0x49 len 5 [psm 0]
A1 02 00 00 00
------------ left button --------------------
> ACL data: handle 0x0005 flags 0x02 dlen 9
L2CAP(d): cid 0x49 len 5 [psm 0]
A1 02 01 00 00
> ACL data: handle 0x0005 flags 0x02 dlen 9
L2CAP(d): cid 0x49 len 5 [psm 0]
A1 02 00 00 00
------------- esc key -----------------------
> ACL data: handle 0x0006 flags 0x02 dlen 14
L2CAP(d): cid 0x4b len 10 [psm 19]
HIDP: Data: Input report
01 00 00 29 00 00 00 00 00
> ACL data: handle 0x0006 flags 0x02 dlen 14
L2CAP(d): cid 0x4b len 10 [psm 19]
HIDP: Data: Input report
01 00 00 00 00 00 00 00 00
Is this enough info?
Ronald.
--
Ronald Klop, Amsterdam, The Netherlands
More information about the freebsd-bluetooth
mailing list