Bluetooth

Attention!

update:

options usbcore use_both_schemes=1

is sufficient and will become default in future kernels.

This is pretty much a copy of an email I just sent to the debian-powerpc list.

I finally got bluetooth working. I knew from MacOSX that it was a USB device, and I was getting very strange errors at USB startup time (read error -71 something, check Jochen's homepage for the details, he thinks it is trackpad related but it isn't)

Now, I hacked around a bit in the kernel and then had it working when I ignored the error for that device. Well, that sucks, we don't want a total hack in the kernel :)

The good news: it isn't necessary! If we let the kernel enumerate devices the old way (which it used before gaining windows compatibility sigh), it works :)

To do this, make sure you have usbcore compiled as a module, and then create a file named usbcore in /etc/modprobe.d containing just the following line:

options usbcore use_both_schemes=1 old_scheme_first=1

If you don't have it compiled as a module, give those options on the kernel command line (but I'm not sure that that's correct).

I haven't tried, but would guess works as well, leaving out use_both_schemes (but it might be prudent to keep that there in case you want to plug in broken devices later).

Now, don't ask me why you get that many endpoints etc... Here's the relevant piece of my /proc/bus/usb/devices

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05ac ProdID=8205 Rev=17.92
C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
I:  If#= 2 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)

Weird. But I am happy as long as it works :)

And before you ask, yes, it does work:

$ obexftp -b --list Pictures
Scanning ...
Using   00:0E:07:28:4E:43       Johannes' phone
Browsing 00:0E:07:28:4E:43 ...
No custom transport
Connecting...bt: 1
done
Receiving Pictures.../<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<!--
Generated by XML Coder.
xml_coder.c (Jun 27 2003 18:19:13)
(C) 2001 Sony Ericsson Mobile Communications AB, Lund, Sweden
-->
<folder-listing version="1.0"><parent-folder/>
<file name="Picture(17).jpg" size="20793"/>
[...]

Now I only wish we had gnome-bluetooth in debian (ubuntu has it but it neither installs nor is buildable).