Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Apr 2005 22:06:17 +0200
From:      "Ronald Klop" <ronald-freebsd8@klop.yi.org>
To:        freebsd-bluetooth@freebsd.org
Subject:   Re: bthidd
Message-ID:  <opspjrgrds8527sy@smtp.local>
In-Reply-To: <4266B2DA.50609@savvis.net>
References:  <opsn65wosp8527sy@smtp.local> <42444AB4.7080300@savvis.net> <opsocok7yo8527sy@smtp.local> <42483D9F.2090805@savvis.net> <opsoge2fqk8527sy@smtp.local> <opspjmf0198527sy@smtp.local> <4266B2DA.50609@savvis.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 20 Apr 2005 12:51:54 -0700, Maksim Yevmenkin  
<maksim.yevmenkin@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?opspjrgrds8527sy>