Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Nov 2006 20:44:57 -0600
From:      Eric Anderson <anderson@centtech.com>
To:        Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
Cc:        freebsd-bluetooth@freebsd.org, Jona Joachim <jona.joachim@free.fr>
Subject:   Re: Support for Bluetooth Keyboards?
Message-ID:  <456BA2A9.1070701@centtech.com>
In-Reply-To: <456B6961.10803@savvis.net>
References:  <20061126005413.0faaea7b@localhost>	<1164502329.816.8.camel@RabbitsDen.RabbitsLawn.verizon.net> <456B292D.3000509@savvis.net> <456B43CC.1000107@centtech.com> <456B4888.5060903@savvis.net> <456B4FC6.7070805@centtech.com> <456B6961.10803@savvis.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Maksim Yevmenkin wrote:
> Eric Anderson wrote:
>> On 11/27/06 14:20, Maksim Yevmenkin wrote:
>>> Eric Anderson wrote:
>>>> On 11/27/06 12:06, Maksim Yevmenkin wrote:
>>>>> Alexandre "Sunny" Kovalenko wrote:
>>>>>> On Sun, 2006-11-26 at 00:54 +0100, Jona Joachim wrote:
>>>>>>> Hi!
>>>>>>> I wanted to know if Bluetooth keyboards are likely to work on 
>>>>>>> FreeBSD.
>>>>>>> I'm looking at this marvellous object to be precise:
>>>>>>> http://www.thinkgeek.com/computing/input/8193/
>>>>>>>
>>>>>>> They say that they "were able to get the Bluetooth Virtual Laser
>>>>>>> Keyboard to work with Mac OSX using the built-in bluetooth 
>>>>>>> support in
>>>>>>> the OS."
>>>>> then it should work in releng_6 and -current.
>>>>>
>>>>>> I am running Apple Bluetooth keyboard on -CURRENT. I order to 
>>>>>> accomplish
>>>>>> that, I have followed steps outlined by Eric Anderson here
>>>>>>
>>>>>> http://destari.blogspot.com/2006/01/setting-up-bluetooth-mouse-on-freebsd.html 
>>>>>>
>>>>>>
>>>>>> There seems to be a quirk in the bthidd which causes it reattach
>>>>>> keyboard every couple of minutes, so I am accustomed to seeing vkbd
>>>>>>> 10000 being attached but these seem to be harmless enough. YMMV,
>>>>>> though.
>>>>> hmmm... i'd like to get more information on this. does this happen 
>>>>> when you type on the keyboard? or when keyboard is idle?
>>>>>
>>>>> if this happens when the keyboard is idle, then, i'd guess, the 
>>>>> keyboard simply kills the bluetooth connection to conserve 
>>>>> battery. if bluetooth connection was in fact killed then bthidd(8) 
>>>>> will close vkbd(4) device and it will, in turn, detach vkbd(4) 
>>>>> keyboard.
>>>>>
>>>>> in any case, could you please get an hci dump (binary) when this 
>>>>> happens and sent it to me? or could you please tell me how to 
>>>>> reproduce this locally?
>>>> I see something like this too, but with mice.  I use a microsoft 
>>>> bluetooth explorer mouse, and when it disconnects and goes into 
>>>> battery sleep mode, and then comes back, it registers a new vkbd 
>>>> device.  Here's some snippets:
>>>
>>> [...]
>>>
>>> hmm... could you please post hid descriptor from your microsoft 
>>> bluetooth explorer mouse?
>>
>> # bthidcontrol -a msmouse 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=1 count=1 page=Button usage=Button_4 Variable, 
>> logical range 0..1
>> Input   id=2 size=1 count=1 page=Button usage=Button_5 Variable, 
>> logical range 0..1
>> Input   id=2 size=3 count=1 page=0x0000 usage=0x0000 Const, 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
>> Input   id=2 size=8 count=1 page=Consumer usage=AC_Pan Variable 
>> Relative, logical range -127..127
>> End collection
>> Feature id=2 size=1 count=1 page=Generic_Desktop usage=0x004b 
>> Variable, logical range 0..1
>> Feature id=2 size=7 count=1 page=0x0000 usage=0x0000 Const, logical 
>> range 0..1
>> End collection
>> Collection page=Consumer usage=Consumer_Control
>> Collection page=Generic_Desktop usage=Mouse
>> Input   id=3 size=2 count=1 page=Microsoft usage=0xfe01 Variable, 
>> logical range 0..3
>> Input   id=3 size=1 count=1 page=Microsoft usage=0xfe00 Variable, 
>> logical range 0..1
>> Input   id=3 size=5 count=1 page=0x0000 usage=0x0000 Const, logical 
>> range 0..1
>> End collection
>> 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
>> Feature id=4 size=1 count=6 page=0x0000 usage=0x0000 Const, logical 
>> range 0..1
>> End collection
>> End collection
>>
>>
>> # bthidcontrol -a msmouse query
>> device {
>>         bdaddr                  00:50:f2:e9:a1:f1;
>>         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 0x05 0x15 0x00 0x25 0x01 0x75 0x01
>>                 0x95 0x05 0x81 0x02 0x75 0x03 0x95 0x01
>>                 0x81 0x01 0x05 0x01 0x09 0x30 0x09 0x31
>>                 0x09 0x38 0x15 0x81 0x25 0x7f 0x75 0x08
>>                 0x95 0x03 0x81 0x06 0x05 0x0c 0x0a 0x38
>>                 0x02 0x95 0x01 0x81 0x06 0xc0 0x05 0x01
>>                 0x09 0x4b 0x15 0x00 0x25 0x01 0x75 0x01
>>                 0xb1 0x02 0x75 0x07 0xb1 0x01 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 0x02 0x25 0x01 0x75
>>                 0x01 0x0a 0x00 0xfe 0x81 0x02 0x75 0x05
>>                 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
>>         };
>> }
>>
>>
>>> also, binary hci dump (that captures detach/reattach event) would be 
>>> nice.
>>
>> Here:
>> http://users.centtech.com/~anderson/freebsd/bt-mouse-dump.raw
>
>
>
> beetle% fetch 
> http://users.centtech.com/~anderson/freebsd/bt-mouse-dump.raw
> fetch: http://users.centtech.com/~anderson/freebsd/bt-mouse-dump.raw: 
> Forbidden

Oops.  Try again.  :)



>>
>> and corresponding log messages:
>>
>> Nov 27 14:45:44 neutrino bthidd[833]: Remote device 00:50:f2:e9:a1:f1 
>> has closed interrupt connection
>> Nov 27 14:47:31 neutrino kernel: kbd1 at vkbd9
>> Nov 27 14:47:31 neutrino bthidd[833]: Accepted control connection 
>> from 00:50:f2:e9:a1:f1
>> Nov 27 14:47:31 neutrino bthidd[833]: Accepted interrupt connection 
>> from 00:50:f2:e9:a1:f1
>>
>>
>> Eric
>>
>>
>>
>>




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