register HID with SDP error
Waitman Gobble
gobble.wa at gmail.com
Tue Mar 17 06:34:30 UTC 2015
On Mon, Mar 16, 2015 at 1:41 PM, maksim yevmenkin
<maksim.yevmenkin at gmail.com> wrote:
>
> Thanks, that helps alot.
>
> I am also working on my other issue, the bluetooth stack not starting. The
> example in the manual shows the same vendor CSR but product 0x0001, I
> believe all my bt devices are 0x0002. It seems that the bluetooth stack will
> fail if it does not identify the device.. so I'm tracking down where to add
> it.. this device is actually functioning even without the bluetooth stack
> starting.
>
>
> Device vendor and product id pair should not matter too much. The driver
> makes the match based on usb interface class and subclass. If device is
> fully confirms to the spec then it usually just works.
>
> Some devices (Atheros and Broadcom for example) may require some sort of
> firmware download. I've also seen all sort of weirdness in devices usually
> requiring special driver or shim.
>
> In most cases, if ng_ubt(4) driver attaches to the device, then it should
> work. If yo get usb transfer errors then I would suspect usb. I've seen this
> before. Also what version of FreeBSD are you running this on ?
>
> Thanks
> Max
I reviewed the HID_SPEC_V11 PDF and think i'm getting closer.
not yet sure about 11 & 12
11) HIDDescriptorList 0x0206
12) HIDLANGIDBaseList 0x0207
I think 12 is a list of available character encodings
I can't seem to find examples of people using several of the
'mandatory' attributes.
I'm not yet certain if i wrote
hid_profile_create_additional_protocol_descriptor_list correctly, it
looks like it's the same list as the protocol descriptor list, except
one level deeper nesting and I think this is supposed to have
reference to the interrupt PSM. At the moment i'm presuming it's the
control channel + 2 -- but I seem to remember seeing an example dump
that shows "Protocol specific parameter #2" with the interrupt
channel. I'll check it out tomorrow.
https://github.com/waitman/sdpd/blob/master/hid.c
./sdpcontrol -l search HID
Record Handle: 0x00000002
Service Class ID List:
Human Interface Device (0x1124)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 17
HIDP (0x0011)
Bluetooth Profile Descriptor List:
Human Interface Device (0x1124) ver. 1.0
system ->
# uname -a
FreeBSD afia.waitman.net 11.0-CURRENT FreeBSD 11.0-CURRENT #0
r279971M: Mon Mar 16 14:03:44 PDT 2015
waitman at afia.waitman.net:/usr/obj/usr/src/sys/AFIA amd64
The bt device appears to work properly, except I have no /dev/ubt0 and
get errors if I try to start the 'bluetooth' service.
ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr 4> on usbus0
WARNING: attempt to domain_add(netgraph) after domainfinalize()
# service bluetooth start ubt0
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0
I changed sdpcontrol a bit for a little more debugging help
https://github.com/waitman/sdpcontrol
The changes are not that great but /slightly/ more messages in syslog.
Thanks alot for your help.
--
Waitman Gobble
Los Altos California USA
510-830-7975
More information about the freebsd-bluetooth
mailing list