Date: Sun, 15 Mar 2015 16:48:57 -0700 From: Waitman Gobble <gobble.wa@gmail.com> To: freebsd-bluetooth@freebsd.org Subject: Re: register HID with SDP error Message-ID: <CAFuo_fzdmB79qdoH8P5EcO_ZZoa=_id6h=eqFBXvP_a%2B3WMkLw@mail.gmail.com> In-Reply-To: <CAFuo_fy9xRU2T3GUPY8116yZCUd8sL9pBQ9ixXnMwO56niJFog@mail.gmail.com> References: <CAFuo_fy9xRU2T3GUPY8116yZCUd8sL9pBQ9ixXnMwO56niJFog@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 15, 2015 at 7:58 AM, Waitman Gobble <gobble.wa@gmail.com> wrote: > Hi, > > I'm having trouble registering HID service with sdpd, here is a simple example: > > > sdp_sp_profile_t sp; > bdaddr_t bt_addr_any; > void *ss; > uint32_t sdp_handle; > > memcpy(&addr, NG_HCI_BDADDR_ANY, sizeof(addr)); > memset(&sp, 0, sizeof(sp)); > sp.server_channel = 0; > > ss = sdp_open_local(NULL); > > sdp_register_service(ss, SDP_SERVICE_CLASS_HUMAN_INTERFACE_DEVICE, > &bt_addr_any, (void *)&sp, sizeof(sp), > &sdp_handle); > > > > messages I am receiving: > > sdp_error(ss) is Input/output error (5) > > sdpd[6621]: Could not process SDP request from control socket, > pdu->pid=129, pdu->tid=1, pdu->len=12, len=17, error=3 > > > I see /usr/src/usr.sbin/bluetooth/bthidd/ but I believe that's to > connect to remote HID services. > > > Also I went to the local electronics store and picked up every bt > dongle they had on the shelf. (it looks like v4 bt devices they have > use the CSR8510 chip despite the "brand name". but I also have v3, v2, > and v1 devices to test). Starting the bluetooth service always seems > to result in error for all the devices, however I can run sdpd and > also browse remote services and pair from client to server and > vice-versa, so I'm not exactly sure of the importance of the bluetooth > service? > > ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr 5> on usbus0 > ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR > ubt0: at uhub0, port 8, addr 5 (disconnected) > ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr 6> on usbus0 > ubt0: at uhub0, port 8, addr 6 (disconnected) > ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr 7> on usbus0 > ng_hci_process_command_timeout: ubt0hci - unable to complete HCI > command OGF=0x3, OCF=0x3. Timeout > ng_hci_process_command_timeout: ubt0hci - unable to complete HCI > command OGF=0x4, OCF=0x9. Timeout > ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR > ubt0: at uhub0, port 8, addr 7 (disconnected) > ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr 8> on usbus0 > ng_hci_process_command_timeout: ubt0hci - unable to complete HCI > command OGF=0x3, OCF=0x3. Timeout > ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR > ubt0: at uhub0, port 8, addr 8 (disconnected) > ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr 9> on usbus0 > ng_hci_process_command_complete: ubt0hci - HCI command failed, > OGF=0x1, OCF=0xe, status=0xc > ng_hci_process_command_complete: ubt0hci - HCI command failed, > OGF=0x1, OCF=0xe, status=0xc > ng_hci_process_command_complete: ubt0hci - HCI command failed, > OGF=0x1, OCF=0xe, status=0xc > ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR > ubt0: at uhub0, port 8, addr 9 (disconnected) > ubt0: <vendor 0x0a12 CSR8510 A10, class 224/1, rev 2.00/88.91, addr > 10> on usbus0 > ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR > ubt0: at uhub0, port 8, addr 10 (disconnected) > ubt0: <vendor 0x0a12 product 0x0001, class 224/1, rev 2.00/48.39, addr > 11> on usbus0 > ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR > ubt0: at uhub0, port 8, addr 11 (disconnected) > ubt0: <vendor 0x0a12 product 0x0001, class 224/1, rev 2.00/48.39, addr > 12> on usbus0 > > > > Thank you for any pointers, help, comments. > > -- > Waitman Gobble > Los Altos, California USA > 510-830-7975 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. -- Waitman Gobble Los Altos California USA 510-830-7975
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFuo_fzdmB79qdoH8P5EcO_ZZoa=_id6h=eqFBXvP_a%2B3WMkLw>