Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Oct 2005 23:32:55 -0500
From:      Eric Anderson <anderson@centtech.com>
To:        Eric Anderson <anderson@centtech.com>
Cc:        freebsd-bluetooth@freebsd.org
Subject:   Re: Bluetooth mouse breaks on -current
Message-ID:  <433F62F7.3060607@centtech.com>
In-Reply-To: <433F4B50.1050108@centtech.com>
References:  <431F388E.2010204@centtech.com>	<43217D56.3050508@centtech.com>	<4321D6C4.6050300@savvis.net>	<432AC7E9.5060206@centtech.com> <433F4B50.1050108@centtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Eric Anderson wrote:
> Eric Anderson wrote:
> 
>> Maksim Yevmenkin wrote:
>>
>>> Eric,
>>>
>>>>> Ok, I wish I could provide better information, but as of the last 
>>>>> couple of weeks (2 weeks maybe?), I've had this weird problem with 
>>>>> my bluetooth mouse (which had been working flawlessly until now).  
>>>>> Right in the middle of use, my mouse will die.  It will lose 
>>>>> association (or whatever it's called).  Actually, the mouse seems 
>>>>> to be ok, as I've tried it on another computer and it works just 
>>>>> fine with no changes.  Once it dies, I have to muck with the 
>>>>> bthidcontrol forget, reboot, etc, so I'm not sure what I do to fix 
>>>>> it, but eventually it will be able to query the mouse again and 
>>>>> then bthidd will connect and everything will be fine.
>>>
>>>
>>>
>>>
>>> very strange... i do not think i committed any significant change to 
>>> the bluetooth code in a few months.
>>>
>>>>> One thing I've noticed, is that now, when doing an l2ping, I get this:
>>>>> # l2ping -a mouse
>>>>> 44 bytes from mouse seq_no=0 time=59990.660 ms result=0x23 Resource 
>>>>> temporarily unavailable
>>>>> 44 bytes from mouse seq_no=1 time=59990.834 ms result=0x23 Resource 
>>>>> temporarily unavailable
>>>>> 44 bytes from mouse seq_no=2 time=59990.821 ms result=0x23 Resource 
>>>>> temporarily unavailable
>>>>> 44 bytes from mouse seq_no=3 time=59990.885 ms result=0x23 Resource 
>>>>> temporarily unavailable
>>>>> 44 bytes from mouse seq_no=4 time=59990.879 ms result=0x23 Resource 
>>>>> temporarily unavailable
>>>>>
>>>>> When my mouse is on or off.  Also, pinging other devices, returns 
>>>>> either the same result, or sometimes it will return ~5000ms 
>>>>> returns, as if it can ping it, but it is slow - even when the 
>>>>> device isn't powered on!
>>>
>>>
>>>
>>>
>>> i think its fine. what probably happens here is that bluetooth thinks 
>>> there is an active baseband connection to the device, but for what 
>>> ever reason no data is transferred (flow control issues?). l2ping has 
>>> default timeout of 60 seconds (time=59990.879) after that msleep() 
>>> call will timeout and return EAGAIN (35 decimal or 0x23)
>>>
>>>>> What do I need to do to help diagnose?
>>>
>>>
>>>
>>>
>>> when this happens please do
>>>
>>> # hccontrol -n ubt0hci read_connection_list
>>>
>>> # l2control -a <bd_addr_of_LOCAL_device> read_connection_list
>>>
>>> # l2control -a <bd_addr_of_LOCAL_device> read_channel_list
>>>
>>> # btsockstat
>>>
>>> and send me the output. note: <bd_addr_of_LOCAL_device> means bd_addr 
>>> of the device connected to the computer, not mouse.
>>>
>>>> Seems that rebooting my FreeBSD laptop clears it up - so I'm 
>>>> thinking it has to do with the netgraph/bluetooth modules..
>>>
>>>
>>>
>>>
>>> you probably right. if you have time, you could try to revert your 
>>> src/ tree to, say, month ago and see if you still have the problem. 
>>> using the few iterations you could find the date after which your 
>>> mouse no longer works. this would help me a lot to figure out what 
>>> change caused this.
>>>
>>> also i would like to know if anybody else has the same issues.
>>
>>
>>
>> Just letting you know that I haven't had a problem since cvsuping src 
>> and rebuilding world/kernel..
> 
> 
> It's back at it again.  About 10-15 minutes into a buildworld, I started 
> losing my mouse.  If I hit a button on the mouse, it would come back (it 
> was just losing the connection, as if the mouse went to sleep, or had 
> low batteries).  I did that a few times, until it finally stopped 
> working altogether.  I swapped batteries thinking this was the problem, 
> however the batteries were pretty fresh still, but the new batts did not 
> make a difference.
> 
> I noticed in /var/log/messages:
> [beginning of problems]
> Oct  1 19:58:41 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed interrupt connection
> Oct  1 19:58:42 neutrino kernel: ng_l2cap_process_discon_req: ubt0l2cap 
> - unexpected L2CAP_DisconnectReq message. Channel does not exist, cid=107
> Oct  1 20:01:03 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:01:03 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:09:47 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed control connection
> Oct  1 20:09:48 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:09:48 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:14 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed control connection
> Oct  1 20:15:14 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:14 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:22 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed control connection
> Oct  1 20:15:22 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:22 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:34 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed control connection
> Oct  1 20:15:34 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:34 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:40 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed control connection
> Oct  1 20:15:41 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:15:41 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:16:08 neutrino bthidd[603]: Remote device 00:0c:55:01:bf:39 
> has closed control connection
> Oct  1 20:30:27 neutrino bthidd[603]: Accepted control connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:30:27 neutrino bthidd[603]: Accepted interrupt connection from 
> 00:0c:55:01:bf:39
> Oct  1 20:54:50 neutrino kernel: kbd1 at vkbd1
> 
> [died completely at that vkbd message]
> 
> Oct  1 21:01:16 neutrino su: anderson to root on /dev/ttyp2
> Oct  1 21:06:22 neutrino kernel: ng_hci_process_command_timeout: ubt0hci 
> - unable to complete HCI command OGF=0x1, OCF=0x1. Timeout
> Oct  1 21:06:22 neutrino kernel: ubt_request_complete2: ubt0 - Control 
> request failed. TIMEOUT (15)
> Oct  1 21:07:39 neutrino kernel: ng_hci_process_command_timeout: ubt0hci 
> - unable to complete HCI command OGF=0x3, OCF=0x3. Timeout
> Oct  1 21:07:39 neutrino kernel: ubt_request_complete2: ubt0 - Control 
> request failed. TIMEOUT (15)
> 
> [those were me trying to do commands to find my own bd_addr so I could 
> follow your instructions on what to do next, but I kept getting timeouts]
> 
> Oct  1 21:08:34 neutrino bthidd[13548]: Got signal 15, total number of 
> signals 1
> 
> [so then I killed bthidd]
> 
> Oct  1 21:09:33 neutrino kernel: ubt0: detached
> 
> [and tried unloading the modules so I could reload them]
> 
> The next step was a 'kldunload vkbd' which caused an instant reboot of 
> my system.
> 
> Here's a typescript from what I was doing - it's truncated at the bottom 
> because (I believe) it had not synced the blocks to disk before the 
> instant reboot:
> 
> Script started on Sat Oct  1 20:56:25 2005
> [ 20:56:25 root@neutrino 
> ~/bt ]# hccontrol -n ubt0hci read_connection_list
> Remote BD_ADDR    Handle Type Mode Role Encrypt Pending Queue State
> mouse                 42  ACL    2 MAST    NONE       2     0 OPEN
> [ 20:56:37 root@neutrino 
> ~/bt ]# l2control -a hccontrol -n ubt0hci inquiry
> l2control: hccontrol: Unknown host
> [ 21:06:52 root@neutrino 
> ~/bt ]# -su: btcontrol: command not found
> bash: -su:: command not found
> [ 21:06:52 root@neutrino 
> ~/bt ]# [ 20:56:00 root@neutrino ~/bt ]# 
> hccontrol -n ubt0hci read_connection_list
> bash: [: missing `]'
> [ 21:06:52 root@neutrino 
> ~/bt ]# hccontrol -n ubto0hci inquiry
> Could not execute command "inquiry". Operation timed out
> [ 21:07:14 root@neutrino 
> ~/bt ]# /etc/rc.bluetooth stop
> Usage:
>   /etc/rc.bluetooth start device
> or
>   /etc/rc.bluetooth stop device
> [ 21:07:23 root@neutrino 
> ~/bt ]# /etc/rc.bluetooth stop ubt0
> [ 21:07:28 root@neutrino 
> ~/bt ]# /etc/rc.bluetooth stop ubt0
> [ 21:07:29 root@neutrino 
> ~/bt ]# /etc/rc.bluetooth 
> stop ubt0       art ubt0
> Could not execute command "reset". Operation timed out
> [ 21:07:40 root@neutrino 
> ~/bt ]# kldstat
> Id Refs Address    Size     Name
>  1   37 0xc0400000 4e3420   kernel
>  2    1 0xc08e4000 56c8     vesa.ko
>  3    2 0xc08ea000 1c6c8    linux.ko
>  4    1 0xc0907000 5e28     snd_ich.ko
>  5    2 0xc090d000 244e0    sound.ko
>  6    7 0xc0932000 22258    usb.ko
>  7    1 0xc0955000 5df8     ugen.ko
>  8    1 0xc095b000 4098     ums.ko
>  9    1 0xc0960000 7a38     umass.ko
> 10    1 0xc0968000 4344     acpi_video.ko
> 11    1 0xc096d000 1e530    radeon.ko
> 12    2 0xc098c000 10eec    drm.ko
> 13    1 0xc099d000 2720     acpi_sony.ko
> 14    1 0xc09a0000 2d90     wlan_wep.ko
> 15    1 0xc09a3000 942c     cpufreq.ko
> 16    6 0xc09ad000 d900     netgraph.ko
> 17    1 0xc09bb000 80c4     ng_ubt.ko
> 18    1 0xc09c4000 68cc     vkbd.ko
> 19    1 0xc2718000 6000     linprocfs.ko
> 20    4 0xc2a34000 2000     ng_bluetooth.ko
> 21    1 0xc2a36000 d000     ng_hci.ko
> 22    1 0xc2a43000 10000    ng_l2cap.ko
> 23    1 0xc2a5c000 19000    ng_btsocket.ko
> 24    1 0xc2a77000 4000     ng_socket.ko
> 25    1 0xc6cb8000 5000     geom_label.ko
> [ 21:08:08 root@neutrino 
> ~/bt ]# kldunload ng_socket
> kldunload: can't unload file: Device busy
> [ 21:08:24 root@neutrino 
> ~/bt ]# kldunload ng_socket      
> btsocket
> kldunload: can't unload file: Device busy
> [ 21:08:29 root@neutrino 
> ~/bt ]# killall bthidd
> [ 21:08:34 root@neutrino 
> ~/bt ]# killall hcsed cd
> [ 21:08:38 root@neutrino 
> ~/bt ]# 
> killall hcsecdbthiddldunload 
> ng_btsocketsocket
> kldunload: can't unload file: Device busy
> [ 21:08:40 root@neutrino 
> ~/bt ]# kldunload 
> ng_socketillall 
> hcsecdbthiddldunload ng_btsocket
> kldunload: can't unload file: Device busy
> [ 21:08:42 root@neutrino 
> ~/bt ]# kldunload ng_bluetooth
> [ 21:08:50 root@neutrino 
> ~/bt ]# kldunload ng_bluetoothtsocketsocketillall 
> hcsecdbthiddldunload ng_btsocketsocketstat 
> 
> Id Refs Address    Size     Name
>  1
> 
> [thats where it ends]
> 
> And now, even after reboot, I can no longer see by bluetooth mouse.


Also - how do I get my local bd_addr?

Eric





-- 
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?433F62F7.3060607>