Support for Bluetooth Keyboards?
Maksim Yevmenkin
maksim.yevmenkin at savvis.net
Mon Nov 27 15:49:56 PST 2006
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
:(
max
>
> 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
>
>
>
>
More information about the freebsd-bluetooth
mailing list