by justx1 » Thu Jul 18, 2013 7:57 am
I've been trying to get a Bluetooth Dongle running on my Pogoplug E02 for quite some while now.
Today I finally managed to get it going and wanted to share with anyone who is interested how to do it.
I am using a Medialink USB Bluetooth 4.0 Adapter (
http://www.amazon.com/gp/product/B004LNXO28). It has a Broadcom BCM20702A0 chip.
====================================================================================
====================================================================================
Edit: You can basically ignore everything below.
I followed moonman's suggestion to update the kernel
$this->bbcode_second_pass_quote('moonman', 'I') would try linux-kirkwood kernel (at version 3.10.1 at the moment), the module will likely be loaded automatically. Make sure you have the latest U-Boot though. viewtopic.php?f=23&t=5623#p31766Then follow his instructions:
How to update U-Boot for kernel v3.2 and newerhttp://archlinuxarm.org/forum/viewtopic.php?f=18&t=3355And voilà, the Bluetooth dongle is working without any further ado

====================================================================================
====================================================================================
Just to make sure that the system is up-to-date:
$this->bbcode_second_pass_code('', '[root@alarm ~]# pacman -Suy')
Install the bluez-utils
$this->bbcode_second_pass_code('', 'pacman -S bluez-utils bluez dbus')
Check you have the latest kernel
$this->bbcode_second_pass_code('', '[root@alarm ~]# uname -a
Linux alarm 3.1.10-22-ARCH #1 PREEMPT Fri Jun 28 21:43:02 CDT 2013 armv5tel GNU/Linux')
Check that your Bluetooth USB dongle was detected
$this->bbcode_second_pass_code('', '[root@alarm ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 003: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
Bus 001 Device 004: ID 0781:5571 SanDisk Corp. Cruzer Fit')
Confirm that the Bluetooth device cannot be found
$this->bbcode_second_pass_code('', '[root@alarm ~]# hciconfig -a hci0
Can't get device info: No such device')
$this->bbcode_second_pass_code('', '[root@alarm ~]# lsmod
Module Size Used by
bluetooth 134802 0
rfkill 14400 1 bluetooth
mv_cesa 9128 0
ipv6 259694 16
autofs4 22074 2 ')
Listing the USB Devices looks as follows (Note: Driver=(none) ==> No driver loaded)
$this->bbcode_second_pass_code('', '[root@alarm ~]# usb-devices
...
T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a5c ProdID=21e8 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=000272C677EE
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
...')
Add the btusb module to the kernel
$this->bbcode_second_pass_code('', '[root@alarm ~]# modprobe btusb')
Run the following command, note to edit "0a5c 21e8" with your respective Vendor and ProdID from above output from usb-devices
$this->bbcode_second_pass_code('', '[root@alarm ~]# echo "0a5c 21e8" >> /sys/bus/usb/drivers/btusb/new_id')
List your USB Devices again (Note: Driver=btusb ==> Driver loaded)
$this->bbcode_second_pass_code('', '[root@alarm ~]# usb-devices
...
T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a5c ProdID=21e8 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=000272C677EE
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
...')
Your dmesg should look like this:
$this->bbcode_second_pass_code('', '[root@alarm btusb]# dmesg
...
[266397.770555] Bluetooth: Core ver 2.16
[266397.771601] NET: Registered protocol family 31
[266397.771615] Bluetooth: HCI device and connection manager initialized
[266397.771628] Bluetooth: HCI socket layer initialized
[266397.771638] Bluetooth: L2CAP socket layer initialized
[266397.771668] Bluetooth: SCO socket layer initialized
[268552.215823] Bluetooth: Generic Bluetooth USB driver ver 0.6
[268552.215955] usbcore: registered new interface driver btusb')
Your lsmod looks like this now:
$this->bbcode_second_pass_code('', '[root@alarm btusb]# lsmod
Module Size Used by
btusb 10110 0
bluetooth 134802 1 btusb
rfkill 14400 1 bluetooth
mv_cesa 9128 0
ipv6 259694 16
autofs4 22074 2 ')
Run hciconfig again: Note that status="DOWN" ==> your device is curenntly not enabled
$this->bbcode_second_pass_code('', '[root@alarm btusb]# hciconfig hci0 -a
hci0: Type: BR/EDR Bus: USB
BD Address: 00:02:72:C6:77:EE ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:495 acl:0 sco:0 events:21 errors:0
TX bytes:89 acl:0 sco:0 commands:21 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT ')
I don't know what this does and whether or not it's needed?
$this->bbcode_second_pass_code('', '[root@alarm btusb]# rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no')
Activate the USB bluetooth device
$this->bbcode_second_pass_code('', '[root@alarm btusb]# hciconfig hci0 up')
Verify that it's running now (Status=UP RUNNING)
$this->bbcode_second_pass_code('', '[root@alarm btusb]# hciconfig hci0 -a
hci0: Type: BR/EDR Bus: USB
BD Address: 00:02:72:C6:77:EE ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:984 acl:0 sco:0 events:41 errors:0
TX bytes:175 acl:0 sco:0 commands:41 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'BCM20702A'
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Version: 4.0 (0x6) Revision: 0x1000
LMP Version: 4.0 (0x6) Subversion: 0x220e
Manufacturer: Broadcom Corporation (15)')
Scan for other Bluetooth devices
$this->bbcode_second_pass_code('', '[root@alarm btusb]# hcitool scan
Scanning ...
44:6D:57:C2:69:CE Device_Name_here
84:A6:C8:6B:40:94 Device_Name_here
00:23:12:42:CC:39 Device_Name_here')
Follow instructions on
https://wiki.archlinux.org/index.php/Bluetooth on how to pair etc...
Reference (I finally found this thread - thanks to the community):
https://bbs.archlinux.org/viewtopic.php?id=133093