Bluetooth Device Failing to Initialize
scycoon at internode.on.net
scycoon at internode.on.net
Thu Jan 12 16:20:57 PST 2006
Max,
This morning I thought I would cut out any posibility of
hardware errors and bring the dongle and headset to work.
Where I run;
FreeBSD tardis 5.4-RELEASE FreeBSD 5.4-RELEASE #0
It has behaved exactly as I would have hoped. I can query
the device,
establish a connection and have had no problems at all.
So, I still would like to get the device working at home. I
will try your suggestions, and also some of Eric's, howto
for FreeBSD 6 and get back to you.
Thanks again
Chriso
> Chriso,
>
> > I have included the requested output below,
>
> thanks. lets see...
>
> [...]
>
> >>>Could not execute command "initialize". Device not
> >>>configured
> >>
> >>this is *very* strange.
> >>
> >>1) did you check your /var/log/messages to see if device
> > has detached?
> > This is in the messages after I run /etc/rc.bluetooth
> > after a fresh reboot;
> >
> > Jan 12 17:54:28 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x3, OCF=0x3. Timeout Jan 12
> 17:54:28 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=4
> > Jan 12 17:54:28 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:28 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> hmm... this does not make much sense to me :( what it
> means is that the hci node tried to send command to the
> device, but it did not get any response back from the
> device in time (timed out). what happened next is that
> the hci node received response back from the device, but
> it did throw it away because it already timed out.
>
> i'm also concern about "ubt_request_complete2" error. it
> might indicate that something is wrong at usb level.
>
> > Jan 12 17:54:33 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x4, OCF=0x9. Timeout Jan 12
> 17:54:33 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=10
> > Jan 12 17:54:33 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:33 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> here is the same sequence for another command
> (READ_BD_ADDR)
>
> > Jan 12 17:54:38 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x4, OCF=0x3. Timeout Jan 12
> 17:54:38 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=12
> > Jan 12 17:54:38 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:38 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> and again (READ_LOCAL_FEATURES)
>
> > Jan 12 17:54:43 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x4, OCF=0x5. Timeout Jan 12
> 17:54:43 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=11
> > Jan 12 17:54:43 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:43 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> and again (READ_BUFFER_SIZE)
>
> > Jan 12 17:54:48 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x3, OCF=0x1a. Timeout Jan 12
> 17:54:48 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=4
> > Jan 12 17:54:48 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:48 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> and again (WRITE_SCAN_ENABLE)
>
> > Jan 12 17:54:53 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x3, OCF=0x24. Timeout Jan 12
> 17:54:53 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=4
> > Jan 12 17:54:53 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:53 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> and again (WRITE_UNIT_CLASS)
>
> > Jan 12 17:54:58 bigboy kernel:
> > ng_hci_process_command_timeout: ubt0hci - unable to
> > complete HCI command OGF=0x3, OCF=0x13. Timeout Jan 12
> 17:54:58 bigboy kernel: ng_hci_process_event: ubt0hci -
> > got HCI event=0xe, length=4
> > Jan 12 17:54:58 bigboy kernel: complete_command: ubt0hci
> > - no pending command, state=0x1
> > Jan 12 17:54:58 bigboy kernel: ubt_request_complete2:
> > ubt0 - Control request failed. TIMEOUT (15)
>
> and again (CHANGE_LOCAL_NAME)
>
> also note interval between each chunks of errors - its 5
> second. which is a hci command timeout.
>
> >>2) can you please run as root the following commands
> >
> > bash-2.05b# ngctl types
> > There are 7 total types:
> > Type name Number of living nodes
> > --------- ----------------------
> > socket 1
> > btsock_l2c 1
> > btsock_l2c_raw 1
> > btsock_hci_raw 1
> > l2cap 1
> > hci 1
> > ubt 1
> >
> > bash-2.05b# ngctl li
> > There are 7 total nodes:
> > Name: ngctl704 Type: socket ID:
> > 00000013 Num hooks: 0 Name: ubt0l2cap Type:
> > l2cap ID: 0000000c Num hooks: 3 Name:
> ubt0hci Type: hci ID: 00000008 Num
> > hooks: 3 Name: btsock_l2c Type: btsock_l2c
> > ID: 00000004 Num hooks: 1 Name: btsock_l2c_raw Type:
> > btsock_l2c_raw ID: 00000003 Num hooks: 1 Name:
> btsock_hci_raw Type: btsock_hci_raw ID: 00000002 Num
> > hooks: 1 Name: ubt0 Type: ubt
> ID: 00000001 Num hooks: 1
>
> good. all nodes are still present and connected.
>
> > bash-2.05b# ngctl status ubt0:
> > Status for "ubt0:":
> > Hook: hook
> > Flags: 0x30
> > Debug: 3
> > CMD queue: [have:0,max:12]
> > ACL queue: [have:0,max:12]
> > SCO queue: [have:0,max:12]
>
> looks good.
>
> > bash-2.05b# ngctl status ubt0hci:
> > Status for "ubt0hci:":
> > bdaddr 0:0:0:0:0:0
> > Hooks drv acl raw
> > State 0x1
> > Queue cmd:0
> > Buffer cmd:1,acl:1,1,17,sco:1,1,10
>
> aha! this is why "initialize" command failed. as i said
> above, the hci node did not get any response back from
> the device in time for every command in the
> initialization sequence. so, as far as the hci node is
> concerned the device was _not_ initialized correctly, i.e.
> note that bdaddr is 0:0:0:0:0:0 etc.
>
> the reason you see correct output on the screen is because
> data, received from the device, is copied to the "raw"
> hook (where socket gets connected) _before_ they
> processed by the hci node.
>
> this is a very strange failure mode that i have never seen
> before.
>
> you could try to do a couple of things
>
> 1) comment out "reset" command in the rc.bluetooth script,
> unplug/replug your device and run rc.bluetooth again.
>
> ## ${hccontrol} -n ${dev}hci reset || exit 1
>
> 2) try to adjust the command timeout, i.e. add a couple of
> lines before "reset" command
>
> ${sysctl} net.bluetooth.hci.command_timeout=10
> ${sysctl} net.bluetooth.hci.sockets.raw.ioctl_timeout=10
>
> also, just to be on the safe side, could you please check
> your /etc/devd.conf file and make sure you do not call
> anything in response to ubt(4) attach/detach events.
>
>
> also it would be nice if you could run hcidump (with
> timestamp option) while you are running rc.bluetooth,
> i.e.
>
> # hcidump -tX
>
> thanks,
> max
>
More information about the freebsd-bluetooth
mailing list