register HID with SDP error
Maksim Yevmenkin
maksim.yevmenkin at gmail.com
Mon Mar 16 17:32:13 UTC 2015
Hello,
>> it 'seems like' the problem is that there is no corresponding profile
>> implemented in sdpd,
>>
>> ie, /usr/src/usr.sbin/bluetooth/sdpd/profile.c
>>
>> profile_p profile_get_descriptor(uint16_t uuid) { ... }
>>
>> When I issue a request to register
>> SDP_SERVICE_CLASS_HUMAN_INTERFACE_DEVICE it's looking for profile
>> with uuid (base10) 4388 (0x1124), but
>> 4355,4358,4356,4359,4354,4357,4353,4374,4375,4373 are the only ones
>> defined in that function.
i looked at the code, and, it does not seem entirely correct to me.
first of all, you seem to keep using sdp_sp_profile_t. i'm not sure
why. the way to add a profile is
1) change lib/libsdp and add appropriate structure to keep profile
parameters. different profiles can have different parameters, for
example serial port only needs rfcomm channel. lan profile allows you
to pass a whole bunch of parameters.
with respect to bluetooth hid, please tell what are you trying to
implement? device side or host side? those two have different
requirements for sdp records. for example, device side should provide
l2cap psm for hid control and data channels, hid descriptor and other
things.
2) add profile implementation to sdpd(8). you tried to do this, but
its not quite right. i can only assume you are trying to implement
device side (because host side is implemented with bthidd(8) already).
if this is the case, then may i please suggest to read bluetooth hid
spec, specifically chapter "5.3.3 SDP Attribute Summary" that talk
about spd attributes that hid device must present to the remote host.
thanks
max
More information about the freebsd-bluetooth
mailing list