Bluetooth mouse
Maksim Yevmenkin
maksim.yevmenkin at savvis.net
Tue Dec 21 07:56:00 PST 2004
Vladimir,
[...]
>> wait, i know why. i just checked your older email and find out that
>> you have
>>
>> "interrupt_psm 0x19;"
>>
>> line in your /etc/bluetooth/bthidd.conf file (mouse section). could
>> you please try to change it to
>>
>> "interrupt_psm 0x13;"
>>
>> then do the following:
>>
>> 0) run 'hcidump -w mouse.dump' as root
>>
>> 1) remove mouse bd_addr from /var/db/bthidd.hids file
>>
>> 2) disconnect and reconnect batteries on your mouse
>>
>> 3) press 'connect' button on your mouse
>>
>> 4) restart bthidd(8)
>>
>>> It happens when I disconnect/connect batteries and then press
>>> connect button.
>>>
>>> Even after that mouse does not moved. if I restart bthidd - it
>>> does not connects and mouse does not send any traffic.
>>
>> it will not move - you do not have hid session, that is you need to
>> open both hid control and hid interrupt channels.
>>
>> if the above works then there is a problem with
>
> Yes, it works ! (dump in attachment)
great, thanks for the dump.
>> 1) bthidcontrol(8) - because it has incorrectly parsed sdp response
>> and showed wrong psm for the hid interrupt channel. that is what
>> you put into the /etc/bluetooth/bthidd.conf file (unless of course
>> you hand-edited it as well)
>
> No, I do not edit this manually.
ok
>> or
>>
>> 2) mouse itself. it advertises wrong psm for the hid interrupt
>> channel.
>
> Why it works with winXP in this case ?
i need at least one more extra hcidump to answer this question. the most
likely answer is that winxp just ignores psm's that mouse advertises and
uses default ones (0x11 - hid control and 0x13 - hid interrupt). you
see, initially host and hid device do not know anything about each
other. so the host must query hid device using sdp (Service Discovery
Protocol) to find out all hid service parameters (such as psm's, hid
descriptor etc.). any hid device must provide this information. that is
what bthidcontrol(8) does - it queries hid devices using sdp and dumps
all parameters so bthidd(8) can uses them.
> How to find what happens ?
to rule out bthidcontrol(8) i need hcidump while you are doing 'query'
command.
- run 'hcidump -w bthidcontrol.dump' as root
- run 'bthidcontrol -a mouse query'
note: you may need to reset the mouse again in order for this to work.
thanks,
max
More information about the freebsd-bluetooth
mailing list