Comment 92 for bug 268502

Revision history for this message
Jamie Lokier (jamie-shareable) wrote :

I wrote:
> Brian Rogers wrote:
> > Switching to the older driver is more of a workaround than a solution.
> > But anyone who wants working Bluetooth today can build a custom
> > kernel with hci_usb instead of btusb.
>
> Thanks for finding that, but it didn't help.
> I've tried hci_usb with Jaunty's 2.6.28-7, and it didn't solve my
> problem.
>
> My next attempt will be to try and build the entire Bluetooth stack
> from 2.6.24 grafted into the newer kernel, and see if that works...

Ok, success for me!

I forward-ported the Bluetooth protocol stack from 2.6.24 to 2.6.28, and now I'm able to connect to my Sony-Ericsson phone over Bluetooth, and using the BNEP protocol connect to the internet over 3G.

I'm using the connection to post this command, and have used it to fetch about 50 web pages.

Note I did *not* have to change the drivers, only the network protocol stack... I'm using the "btusb" driver module, which is the one Ubuntu enables.

It's hard to be sure, but for anyone wanting to reproduce this and see if it fixes their problem, I think the steps for the forward port are as follows:

    1. Fetch a linux-2.6.24 source tree from kernel.org, and unpack it.
        (http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2).
    2. Install package kernel-source-2.6.28 (from Jaunty's repo).
        (Start from https://launchpad.net/ubuntu/+source/linux, I think you can
        download a package file and install it with dpkg).
    3. Unpack /usr/src/linux-source-2.6.28.tar.bz2 to somewhere handy.
    4. Enter the unpacked linux-source-2.6.28 directory.
    5. cp /boot/config-$(uname -r) .config
    6. mv net/bluetooth net/bluetooth.orig
    7. mv include/net/bluetooth include/net/bluetooth.orig
    8. Copy files from 2.6.24:
           cp -r ../linux-2.6.24/net/bluetooth net/
           cp -r ../linux-2.6.24/include/net/bluetooth include/net/
    9. Apply a tiny patch to make it compile (attached to this comment).
    10. make bzImage
    11. make modules
    12. make install modules_install
    13. update-initramfs -a
    14. grub-update
    15. Reboot with the new kernel...

It's a fairly trivial forward port.