[How-To] Enable a Bluetooth Dongle on Pogoplug E02

This forum is for Marvell Kirkwood devices such as the GoFlex Home/Net, PogoPlug v1/v2, SheevaPlug, and ZyXEL devices.

[How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby 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#p31766

Then follow his instructions: How to update U-Boot for kernel v3.2 and newer
http://archlinuxarm.org/forum/viewtopic.php?f=18&t=3355

And 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
Last edited by justx1 on Fri Jul 19, 2013 3:57 am, edited 3 times in total.
justx1
 
Posts: 5
Joined: Thu Jul 18, 2013 7:26 am

Re: Enabling a Bluetooth Dongle on Pogoplug E02

Postby justx1 » Thu Jul 18, 2013 7:58 am

And I have one question to the community:

Now that I have modprobe'd the btusb module, what do I need to do to make it permanent, after reboot?

Do I create a new file $this->bbcode_second_pass_code('', '/etc/modprobe.d/myfilename.conf') with the following content
$this->bbcode_second_pass_code('', 'options btusb') ?

Since I ran $this->bbcode_second_pass_code('', '[root@alarm ~]# echo "0a5c 21e8" >> /sys/bus/usb/drivers/btusb/new_id'), how do I deal with this?

Thanks!
justx1
 
Posts: 5
Joined: Thu Jul 18, 2013 7:26 am

Re: [How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby moonman » Thu Jul 18, 2013 9:34 am

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#p31766
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3388
Joined: Sat Jan 15, 2011 3:36 am

Re: [How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby justx1 » Thu Jul 18, 2013 10:10 pm

Thanks, good to know! I was under the impression that my recent installation of Archlinux [1] already includes the latest kernel. Lot's of things to learn...
I'm new to Linux kernel stuff, so let me work through this and try to figure out getting the latest U-boot and Kirkwood kernel installed. I'll update this thread accordingly.

[1] as per the installation instructions on http://archlinuxarm.org/platforms/armv5 ... 2-pinkgray
justx1
 
Posts: 5
Joined: Thu Jul 18, 2013 7:26 am

Re: [How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby grayman4hire » Fri Jul 19, 2013 12:29 am

Thanks for sharing.

What exactly are you doing with bluetooth on your Pogo?

Are you playing audio through it? Maybe a bluetooth GPS device? Just curious. Thanks
grayman4hire
 
Posts: 350
Joined: Sat Sep 29, 2012 12:03 am
Location: SF, CA

Re: [How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby justx1 » Fri Jul 19, 2013 2:49 am

I'm interested in the 'Internet of Things', infrastructure-wise. The Pogo is going to be my home server. I have the Mosquitto MQTT pub/sub broker running on it. I want to connect WiFi devices, as well as other devices like my Arduino to the Pogo, the latter over Bluetooth, with a serial-to-MQTT bridge (I just think WiFi on an Arduino is overkill, hence my choice for BLE). I have it running on my Mac already, this was the missing piece :).

PS: I just noticed the link to your blog in your signature. Great tutorial! I wish I had noticed it earlier... would have saved me a *lot* of time. lol.
justx1
 
Posts: 5
Joined: Thu Jul 18, 2013 7:26 am

Re: [How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby justx1 » Fri Jul 19, 2013 3:59 am

Thanks moonman! I followed your suggestion and it worked!
justx1
 
Posts: 5
Joined: Thu Jul 18, 2013 7:26 am

Re: [How-To] Enable a Bluetooth Dongle on Pogoplug E02

Postby dinki » Thu Sep 05, 2013 7:35 pm

Thanks for posting this. Unfortunately I'm still having problems:

$this->bbcode_second_pass_code('', '
root@debian# uname -a
Linux debian 3.2.0-4-kirkwood #1 Debian 3.2.46-1+deb7u1 armv5tel GNU/Linux
')

$this->bbcode_second_pass_code('', '
root@debian# 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 0930:6544 Toshiba Corp. Kingston DataTraveler 2.0 Stick (2GB)
Bus 001 Device 004: ID 1310:0001 Roper Class 1 Bluetooth Dongle
Bus 001 Device 005: ID 0411:01e7 BUFFALO INC. (formerly MelCo., Inc.)
')

$this->bbcode_second_pass_code('', '
root@debian# hciconfig -a hci0
hci0: Type: BR/EDR Bus: USB
BD Address: 00:0B:0D:09:1E:3A ACL MTU: 120:20 SCO MTU: 0:0
DOWN
RX bytes:1086 acl:0 sco:0 events:39 errors:0
TX bytes:171 acl:0 sco:0 commands:39 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy:
Link mode: SLAVE ACCEPT
')

$this->bbcode_second_pass_code('', '
root@debian# lsmod
Module Size Used by
bnep 9144 2
btusb 10383 1
bluetooth 131219 10 btusb,bnep
rfkill 14270 2 bluetooth
hmac 2427 0
sha1_generic 1740 0
mv_cesa 9361 0
aes_generic 27588 1 mv_cesa
ipv6 261367 50
autofs4 19382 2
ext3 163387 1
mbcache 4464 1 ext3
jbd 57469 1 ext3
sg 18109 0
sd_mod 30976 3
crc_t10dif 1110 1 sd_mod
usb_storage 35017 2
scsi_mod 149345 3 usb_storage,sd_mod,sg
ehci_hcd 37177 0
usbcore 121852 4 ehci_hcd,usb_storage,btusb
mvsdio 5162 0
mmc_core 77612 1 mvsdio
usb_common 648 1 usbcore
mv643xx_eth 22806 0
inet_lro 4272 1 mv643xx_eth
libphy 14472 1 mv643xx_eth
( ~ )
root@debian#
')

$this->bbcode_second_pass_code('', '
root@debian# usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1310 ProdID=0001 Rev=15.00
S: Manufacturer=SiW
S: Product=SiW
S: SerialNumber=3A1E090D0B00
C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=50mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
')

$this->bbcode_second_pass_code('', '
root@debian# modprobe btusb
( ~ )
root@debian# echo " 1310 0001" >> /sys/bus/usb/drivers/btusb/new_id
')

$this->bbcode_second_pass_code('', '
root@debian# dmesg
[ 18.862455] Bluetooth: Core ver 2.16
[ 18.910130] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 19.007428] NET: Registered protocol family 31
[ 19.011918] Bluetooth: HCI device and connection manager initialized
[ 19.018326] Bluetooth: HCI socket layer initialized
[ 19.023223] Bluetooth: L2CAP socket layer initialized
[ 19.061817] Bluetooth: SCO socket layer initialized
[ 19.067729] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 19.125474] usbcore: registered new interface driver btusb
[ 19.323215] Adding 1475580k swap on /dev/sda2. Priority:0 extents:1 across:1475580k
[ 20.565569] mv643xx_eth_port mv643xx_eth_port.0: eth0: link up, 100 Mb/s, full duplex, flow control disabled
[ 20.575584] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 28.892115] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 28.897496] Bluetooth: BNEP filters: protocol multicast
[ 30.644999] eth0: no IPv6 routers present
')

$this->bbcode_second_pass_code('', '
root@debian# lsmod
Module Size Used by
bnep 9144 2
btusb 10383 1
bluetooth 131219 10 btusb,bnep
rfkill 14270 2 bluetooth
hmac 2427 0
sha1_generic 1740 0
mv_cesa 9361 0
aes_generic 27588 1 mv_cesa
ipv6 261367 50
autofs4 19382 2
ext3 163387 1
mbcache 4464 1 ext3
jbd 57469 1 ext3
sg 18109 0
sd_mod 30976 3
crc_t10dif 1110 1 sd_mod
usb_storage 35017 2
scsi_mod 149345 3 usb_storage,sd_mod,sg
ehci_hcd 37177 0
usbcore 121852 4 ehci_hcd,usb_storage,btusb
mvsdio 5162 0
mmc_core 77612 1 mvsdio
usb_common 648 1 usbcore
mv643xx_eth 22806 0
inet_lro 4272 1 mv643xx_eth
libphy 14472 1 mv643xx_eth
')

$this->bbcode_second_pass_code('', '
root@debian# hciconfig -a hci0
hci0: Type: BR/EDR Bus: USB
BD Address: 00:0B:0D:09:1E:3A ACL MTU: 120:20 SCO MTU: 0:0
DOWN
RX bytes:1086 acl:0 sco:0 events:39 errors:0
TX bytes:171 acl:0 sco:0 commands:39 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy:
Link mode: SLAVE ACCEPT
')

$this->bbcode_second_pass_code('', '
root@debian# rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
')

$this->bbcode_second_pass_code('', '
root@debian# hciconfig hci0 up
Can't init device hci0: Connection timed out (110)
')

Any idea on what might be going on? I'm getting pretty desperate.
dinki
 
Posts: 1
Joined: Sun Jul 21, 2013 5:06 pm


Return to Marvell Kirkwood

Who is online

Users browsing this forum: No registered users and 112 guests