Working Bluetooth Example

Does anyone have a working Bluetooth configuration?

I am getting no response on mine (bluez4 and bluez-utils currently installed, RocketFish Bluetooth USB adapter) running on Angstrom console-image with addition of bluez-utils.

root@beagleboard:/etc/bluetooth# uname -a
Linux beagleboard 2.6.28-omap1 #1 Tue Apr 28 16:31:52 EDT 2009 armv7l unknown
root@beagleboard:/etc/bluetooth#

EHCI and Bluetooth appear to be loading properly, but I am getting no connection to the device plugged into the host port on the BeagleBoard.

root@beagleboard:/etc/bluetooth# dmesg | grep -i ehci
ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00

root@beagleboard:/etc/bluetooth# dmesg | grep -i blue
Bluetooth: Core ver 2.13
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: HCI USB driver ver 2.10
Bluetooth: Broadcom Blutonium firmware driver ver 1.2
Bluetooth: Digianswer Bluetooth USB driver ver 0.10
Bluetooth: Generic Bluetooth SDIO driver ver 0.1
Bluetooth: L2CAP ver 2.11
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.10
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2

There’s no indication of a device even being plugged into the host port.

Can someone please enumerate the packages and processes required and the bluetooth hardware used in a working configuration.

Thanks.

Hello Bob,

Do you have the btusb driver enabled in the kernel configuration?
What do you get if you run "hciconfig" ?

I have BT working using the 2.6.29 kernel and Android. But for some
reason, I have to plug the BT USB adapter into the USB OTG port for it
to work.

When I have the adapter connected to the EHCI port (through a powered
hub) I get errors from the btusb driver about interrupt URBs failing.

-Howard

Enabling USB_EHCI_TT_NEWSCHED in kernel configuration helps to solve
this problem.

Thanks for the tip. That did help, although occasionally, I still get the error, but at least BT is usable on EHCI now.

-Howard

Howard,

Would you be able to tell me which USB Bluetooth dongle you are using?
I have a Rocketfish Micro USB adapter from Best Buy that I got to work
on a laptop running CentOS that I haven't had any luck with on the BB.
The BB manual has a disclaimer stating that none of the three USB BT
adapters are guaranteed to work, but I'd be interested to know which
dongles people are having success with.

Thanks,

Mike

It was a USB BT adapter from Fry's Electronics. I'll look to see if
it has any identifying marks on it. It was $19.99 and I picked it
because it said BT2.1+EDR on the package. After installing it, I
found that it is based on the CSR chip. It's not perfect, and it does
crash occasionally, but I think that is more related to the general
EHCI instanility I've seen others complain about.

Take care,

-Howard

Thanks for the pointers, Howard.

Unfortunately, I am getting zero response from the host USB port, even with powered hub attached:

root@beagleboard:~# lsusb -t
Bus# 1
-Dev# 1 Vendor 0x1d6b Product 0x0002 root@beagleboard:~# root@beagleboard:~# hciconfig root@beagleboard:~# root@beagleboard:~# modprobe g_file_storage file=/home/root/fsbackfile g_file_storage gadget: File-backed Storage Gadget, version: 20 November 2008 g_file_storage gadget: Number of LUNs=1 g_file_storage gadget-lun0: ro=0, file: /home/root/fsbackfile musb_hdrc musb_hdrc: MUSB HDRC host driver musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected root@beagleboard:~# lsusb -t Bus# 2 -Dev# 1 Vendor 0x1d6b Product 0x0002
Bus# 1
`-Dev# 1 Vendor 0x1d6b Product 0x0002
root@beagleboard:~# g_file_storage gadget: high speed config #1

root@beagleboard:~# dmesg | grep btusb
usbcore: registered new interface driver btusb
root@beagleboard:~#

hciconfig returns nothing. As you can see the file storage gadget is loading just fine on the OTG port, but nothing on the host port. I have a BT USB and flash card reader attached to the USB 2.0 hub attached to the host port. Powering the BB from the 5V connector and a wall bug.

Here’s the diff on the .config from what’s built by default from git:

4c4
< # Tue May 19 08:49:47 2009

Bob,

I'm an absolute newbie with BB - my rev c board only arrived today and
I'm having exactly the same problem.

Can anybody tell me if they would expect the following to work please
(and if not, why not)?

I have a 4-port USB hub (powered by its own adapter) plugged into the
BB USB host (EHCI) port. I'm using the Angstrom demo distribution
download from http://www.angstrom-distribution.org/demo/beagleboard/

When I plug anything into the hub, nothing happens - no messages in
dmesg, no change in the lsusb output.

From what little experience I have with such things, I would guess I'm
missing a kernel module to drive the USB port? Am I "barking up the
wrong tree"?

Regards,

Ian

Hello Bob,

I haven’t tried to use the OE kernel. I used the OMAP 2.6.29 kernel from android.git.kernel.org. That kernel mostly worked with beagle, except for EHCI, and sound. I made some changes to get EHCI to work, using the OE patch as a guide. Basically, I had to comment out some gpio setting that was specific to the Zoom2 (beagle uboot was setting things correctly anyway) and add the USB PHY init code, and change the driver to only support one USB port.

I can send the patches against the Android OMAP kernel if you want. I didn’t make any attempt to clean them up for a commit, but it does work. I also made a defconfig for Beagle/Android.

-Howard

Howard,

Please do send those patches along. I am not adverse to trying a new kernel if that solves our problems.

When you say you made changes to “only support one USB port” does that mean you wound up disabling the USB OTG port?

Is there a quick start guide for building that kernel? All the tools have changed since my last working with the kernel/drivers many years ago–I wasn’t expecting the git//bitbake/OE/Angstrom learning curve.

Bob

Hello Bob,

Use the kernel at: http://android.git.kernel.org/?p=kernel/omap.git;a=summary

You may need to make changes to the defconfig for Beagle. Below are the patches I put in against this kernel to get the USB Host port working. Apparently, the OMAP supports two USB ports, but Beagle only has one. After applying this patch, and making the appropriate config changes, the EHCI host port, as well as Gadget port seem to work fine.

-Howard

project kernel/
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/boardindex 7e466db…af377b1 100644
— a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -159,6 +159,8 @@ static int beagle_twl_gpio_setup(struct device *dev,

  • power switch and overcurrent detect
    /
    +#if 0 /
    TODO: This needs to be modified to not rely on u-boot */