Difference between revisions of "Bluetooth successful file transfer"

From Finninday
Jump to: navigation, search
m (Reverted edits by Ezekypy (Talk) to last revision by Rday)
Line 1: Line 1:
=[http://ihyveqo.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=
 
 
[[Category: Computers]]
 
[[Category: Computers]]
 
Wednesday, May 4th, 2005
 
Wednesday, May 4th, 2005
  
 
I tried applying my bluetooth knowledge so far to a Yellowdog 4.0 laptop and was able to send pictures from my phone via bluetooth to the laptop. Here is the configuration:
 
I tried applying my bluetooth knowledge so far to a Yellowdog 4.0 laptop and was able to send pictures from my phone via bluetooth to the laptop. Here is the configuration:
<pre>
+
<pre>
 
[rday@bobo rday]$ rpm -qa | grep blue
 
[rday@bobo rday]$ rpm -qa | grep blue
 
bluez-hcidump-1.8-1
 
bluez-hcidump-1.8-1
Line 14: Line 13:
 
[rday@bobo rday]$ cat /etc/yellowdog-release
 
[rday@bobo rday]$ cat /etc/yellowdog-release
 
Yellow Dog Linux release 4.0 (Orion)
 
Yellow Dog Linux release 4.0 (Orion)
&lt;/pre&gt;
+
</pre>
  
 
The only local configuration I did was to change the device name that the bluetooth dongle in the laptop uses to advertise itself. Then I used bluefw to “load the firmware”, whatever that means. And then started the bluetooth service.
 
The only local configuration I did was to change the device name that the bluetooth dongle in the laptop uses to advertise itself. Then I used bluefw to “load the firmware”, whatever that means. And then started the bluetooth service.
Line 31: Line 30:
  
 
Trying to install the old gnome-bluetooth rpm yields a failed dependency:
 
Trying to install the old gnome-bluetooth rpm yields a failed dependency:
&lt;pre&gt;
+
<pre>
 
error: Failed dependencies:
 
error: Failed dependencies:
 
libbtctl.so.1 is needed by gnome-bluetooth-0.4.1-3.i386
 
libbtctl.so.1 is needed by gnome-bluetooth-0.4.1-3.i386
Line 38: Line 37:
 
Suggested resolutions:
 
Suggested resolutions:
 
libbtctl-0.4.1-3.i386.rpm
 
libbtctl-0.4.1-3.i386.rpm
&lt;/pre&gt;
+
</pre>
  
 
Trying to install libbtctl yields a further failed dependency:
 
Trying to install libbtctl yields a further failed dependency:
Line 56: Line 55:
 
I wasn’t very explicit about the recipe for transfering files between phone and laptop. I just had to figure it out again. I took several false starts and so I’m still not sure what the right procedure is, but I think it is something like this:
 
I wasn’t very explicit about the recipe for transfering files between phone and laptop. I just had to figure it out again. I took several false starts and so I’m still not sure what the right procedure is, but I think it is something like this:
 
*make sure the bluetooth service is running via /etc/init.d/bluetooth status
 
*make sure the bluetooth service is running via /etc/init.d/bluetooth status
*start gnome-obex-server (System tools &gt; Bluetooth file sharing)
+
*start gnome-obex-server (System tools > Bluetooth file sharing)
 
*use the phone to drive the transaction
 
*use the phone to drive the transaction
 
*pick a file and send it via bluetooth to the laptop
 
*pick a file and send it via bluetooth to the laptop
Line 73: Line 72:
  
 
From the desktop, I scan for devices with hcitool scan, get the address of the phone, and then use hcitool to open a connection and request authentication. Then the phone beeps and I enter the PIN. Now I have added the desktop to the device list in the phone.
 
From the desktop, I scan for devices with hcitool scan, get the address of the phone, and then use hcitool to open a connection and request authentication. Then the phone beeps and I enter the PIN. Now I have added the desktop to the device list in the phone.
&lt;pre&gt;
+
<pre>
 
hcitool scan
 
hcitool scan
 
Scanning ...
 
Scanning ...
Line 84: Line 83:
 
[root@snapper ~]# hcitool con
 
[root@snapper ~]# hcitool con
 
Connections:
 
Connections:
&lt; ACL 00:0E:07:0C:0B:6D handle 6 state 1 lm MASTER
+
< ACL 00:0E:07:0C:0B:6D handle 6 state 1 lm MASTER
 
[root@snapper ~]# hcitool auth 00:0E:07:0C:0B:6D
 
[root@snapper ~]# hcitool auth 00:0E:07:0C:0B:6D
&lt;/pre&gt;
+
</pre>
 
To close the connection, I can use hcitool dc
 
To close the connection, I can use hcitool dc
  
Line 99: Line 98:
  
 
The dongle is recognized when I plug it in to a USB port:
 
The dongle is recognized when I plug it in to a USB port:
&lt;pre&gt;
+
<pre>
 
[root@snapper ~]# lsusb
 
[root@snapper ~]# lsusb
 
Bus 004 Device 008: ID 0a5c:2033 Broadcom Corp. BCM2033 Bluetooth
 
Bus 004 Device 008: ID 0a5c:2033 Broadcom Corp. BCM2033 Bluetooth
Line 107: Line 106:
 
Bus 002 Device 001: ID 0000:0000
 
Bus 002 Device 001: ID 0000:0000
 
Bus 001 Device 001: ID 0000:0000
 
Bus 001 Device 001: ID 0000:0000
&lt;/pre&gt;
+
</pre>
  
 
This is where I start to flounder. There is a nice pile of documentation at http://www.holtmann.org/linux/bluetooth/ but it is terribly frustrating trying to find the *actual next step* that I might need to take. Random clicks on the links in that long list haven’t yielded a non-obsolete howto document so far.
 
This is where I start to flounder. There is a nice pile of documentation at http://www.holtmann.org/linux/bluetooth/ but it is terribly frustrating trying to find the *actual next step* that I might need to take. Random clicks on the links in that long list haven’t yielded a non-obsolete howto document so far.
Line 120: Line 119:
  
 
One of the things I get in bluez-utils is /etc/init.d/bluetooth. That’s promising, but simply turning it on doesn’t do much. Here is a peek inside:
 
One of the things I get in bluez-utils is /etc/init.d/bluetooth. That’s promising, but simply turning it on doesn’t do much. Here is a peek inside:
&lt;pre&gt;
+
<pre>
UART_CONF=&quot;/etc/bluetooth/uart&quot;
+
UART_CONF="/etc/bluetooth/uart"
  
[ -e /etc/sysconfig/bluetooth ] &amp;&amp; . /etc/sysconfig/bluetooth
+
[ -e /etc/sysconfig/bluetooth ] && . /etc/sysconfig/bluetooth
  
 
start_uarts()
 
start_uarts()
Line 132: Line 131:
 
done
 
done
 
}
 
}
&lt;/pre&gt;
+
</pre>
 
I’ve poked around in /etc/sysconfig/bluetooth (it is a minimal file with not much in the way of clues), but I haven’t done anything with this UART stuff. This script will only try to start the UARTs if the config file exists, which it doesn’t on my system. What should I put in there? Something that hciattach will like…
 
I’ve poked around in /etc/sysconfig/bluetooth (it is a minimal file with not much in the way of clues), but I haven’t done anything with this UART stuff. This script will only try to start the UARTs if the config file exists, which it doesn’t on my system. What should I put in there? Something that hciattach will like…
  
 
Ahh, this is where it gets interesting. The man page for hciattach includes a list of supported serial devices that it can insert into the Bluez stack and my Broadcom device is not listed. It mentions support for these devices: ericsson, digi, xircom, brainboxes, silicon wave, csr. But, it also has a device type called “any”. And so this shot in the dark actually seems to work:
 
Ahh, this is where it gets interesting. The man page for hciattach includes a list of supported serial devices that it can insert into the Bluez stack and my Broadcom device is not listed. It mentions support for these devices: ericsson, digi, xircom, brainboxes, silicon wave, csr. But, it also has a device type called “any”. And so this shot in the dark actually seems to work:
&lt;pre&gt;
+
<pre>
 
[root@snapper bluetooth]# hciattach /dev/ttyS1 any
 
[root@snapper bluetooth]# hciattach /dev/ttyS1 any
 
[root@snapper bluetooth]# hciconfig
 
[root@snapper bluetooth]# hciconfig
Line 145: Line 144:
 
RX bytes:0 acl:0 sco:0 events:0 errors:0
 
RX bytes:0 acl:0 sco:0 events:0 errors:0
 
TX bytes:4 acl:0 sco:0 commands:1 errors:0
 
TX bytes:4 acl:0 sco:0 commands:1 errors:0
&lt;/pre&gt;
+
</pre>
  
 
Wow, I wasn’t expecting to get this far. What else can I do? Using hciconfig to bring up the device doesn’t seem to work just yet, so let’s start again but first I’ll put “/dev/ttyS1 any” in /etc/bluetooth/UART and restart bluetooth.
 
Wow, I wasn’t expecting to get this far. What else can I do? Using hciconfig to bring up the device doesn’t seem to work just yet, so let’s start again but first I’ll put “/dev/ttyS1 any” in /etc/bluetooth/UART and restart bluetooth.
&lt;pre&gt;
+
<pre>
 
[root@snapper bluetooth]# /etc/init.d/bluetooth stop
 
[root@snapper bluetooth]# /etc/init.d/bluetooth stop
 
Stopping Bluetooth services: [ OK ]
 
Stopping Bluetooth services: [ OK ]
Line 164: Line 163:
 
Link policy:
 
Link policy:
 
Link mode: SLAVE ACCEPT
 
Link mode: SLAVE ACCEPT
&lt;/pre&gt;
+
</pre>
  
 
It doesn’t look like it is really talking to the device. Probably this is because I’m telling it to look on the serial port /dev/ttyS1. Isn’t that the old-school serial port? How do I name a device on the USB bus? My xorg.conf is pointing to my USB mouse through the name of /dev/input/mice. That’s the only USB device I have on this system. hciattach really wants a /dev/tty to talk to. It looks like my task is to figure out how to bind a USB device to a /dev/tty* name.
 
It doesn’t look like it is really talking to the device. Probably this is because I’m telling it to look on the serial port /dev/ttyS1. Isn’t that the old-school serial port? How do I name a device on the USB bus? My xorg.conf is pointing to my USB mouse through the name of /dev/input/mice. That’s the only USB device I have on this system. hciattach really wants a /dev/tty to talk to. It looks like my task is to figure out how to bind a USB device to a /dev/tty* name.
Line 176: Line 175:
  
 
For kicks, here is the relevant output of kudzu -p:
 
For kicks, here is the relevant output of kudzu -p:
&lt;pre&gt;
+
<pre>
 
class: OTHER
 
class: OTHER
 
bus: USB
 
bus: USB
 
detached: 0
 
detached: 0
 
driver: bcm203x
 
driver: bcm203x
desc: &quot;Broadcom Corp. BCM2033 Bluetooth&quot;
+
desc: "Broadcom Corp. BCM2033 Bluetooth"
 
usbclass: 0
 
usbclass: 0
 
usbsubclass: 1
 
usbsubclass: 1
Line 192: Line 191:
 
vendorId: 0a5c
 
vendorId: 0a5c
 
deviceId: 2033
 
deviceId: 2033
&lt;/pre&gt;
+
</pre>
 
And here is the snipped output of lsmod:
 
And here is the snipped output of lsmod:
&lt;pre&gt;
+
<pre>
 
[root@snapper ~]# lsmod
 
[root@snapper ~]# lsmod
 
Module Size Used by
 
Module Size Used by
Line 212: Line 211:
  
 
...
 
...
&lt;/pre&gt;
+
</pre>
 
Googling for my device model number gives me this: http://www.broadcom.com/collateral/pb/2033-PB04-R.pdf
 
Googling for my device model number gives me this: http://www.broadcom.com/collateral/pb/2033-PB04-R.pdf
  
Line 220: Line 219:
 
It tells me that I really do need the bluez-bluefw rpm that I thought would be irrelevent to my setup.
 
It tells me that I really do need the bluez-bluefw rpm that I thought would be irrelevent to my setup.
 
After installing it, here is the list of my bluetooth packages:
 
After installing it, here is the list of my bluetooth packages:
&lt;pre&gt;
+
<pre>
 
[root@snapper ~]# rpm -qa | grep blue
 
[root@snapper ~]# rpm -qa | grep blue
 
bluez-hcidump-1.11-1
 
bluez-hcidump-1.11-1
Line 227: Line 226:
 
bluez-pin-0.23-3
 
bluez-pin-0.23-3
 
bluez-utils-2.10-2.1
 
bluez-utils-2.10-2.1
&lt;/pre&gt;
+
</pre>
 
Now I can plug in the bluetooth dongle and see where it shows up on the USB bus:
 
Now I can plug in the bluetooth dongle and see where it shows up on the USB bus:
&lt;pre&gt;
+
<pre>
 
[root@snapper ~]# lsusb
 
[root@snapper ~]# lsusb
 
Bus 004 Device 009: ID 0a5c:2033 Broadcom Corp. BCM2033 Bluetooth
 
Bus 004 Device 009: ID 0a5c:2033 Broadcom Corp. BCM2033 Bluetooth
Line 237: Line 236:
 
Bus 002 Device 001: ID 0000:0000
 
Bus 002 Device 001: ID 0000:0000
 
Bus 001 Device 001: ID 0000:0000
 
Bus 001 Device 001: ID 0000:0000
&lt;/pre&gt;
+
</pre>
  
 
Then use that address to load the bluetooth firmware:
 
Then use that address to load the bluetooth firmware:
Line 245: Line 244:
  
 
And then display the device configuration:
 
And then display the device configuration:
&lt;pre&gt;
+
<pre>
 
[root@snapper bluetooth]# hciconfig
 
[root@snapper bluetooth]# hciconfig
 
hci0: Type: USB
 
hci0: Type: USB
Line 252: Line 251:
 
RX bytes:209 acl:0 sco:0 events:31 errors:0
 
RX bytes:209 acl:0 sco:0 events:31 errors:0
 
TX bytes:1119 acl:0 sco:0 commands:31 errors:0
 
TX bytes:1119 acl:0 sco:0 commands:31 errors:0
&lt;/pre&gt;
+
</pre>
 
Yay!
 
Yay!
&lt;pre&gt;
+
<pre>
 
[root@snapper bluetooth]# hcitool scan
 
[root@snapper bluetooth]# hcitool scan
 
Scanning ...
 
Scanning ...
Line 265: Line 264:
 
Manufacturer: Ericsson Technology Licensing (0)
 
Manufacturer: Ericsson Technology Licensing (0)
 
Features: 0x04 0xca 0x31 0x00 0x00 0x00 0x00 0x00
 
Features: 0x04 0xca 0x31 0x00 0x00 0x00 0x00 0x00
&lt;encryption&gt; &lt;rssi&gt; &lt;sco link&gt; &lt;u -law log&gt; &lt;a -law log&gt; &lt;cvsd&gt;
+
<encryption> <rssi> <sco link> <u -law log> <a -law log> <cvsd>
 
[root@snapper bluetooth]# l2ping 00:0E:07:0C:0B:6D
 
[root@snapper bluetooth]# l2ping 00:0E:07:0C:0B:6D
 
Ping: 00:0E:07:0C:0B:6D from 00:03:C9:23:AC:B2 (data size 20) ...
 
Ping: 00:0E:07:0C:0B:6D from 00:03:C9:23:AC:B2 (data size 20) ...
Line 280: Line 279:
 
10 sent, 10 received, 0% loss
 
10 sent, 10 received, 0% loss
 
[root@snapper bluetooth]#
 
[root@snapper bluetooth]#
&lt;/pre&gt;
+
</pre>

Revision as of 05:10, 24 November 2010

Wednesday, May 4th, 2005

I tried applying my bluetooth knowledge so far to a Yellowdog 4.0 laptop and was able to send pictures from my phone via bluetooth to the laptop. Here is the configuration:

[rday@bobo rday]$ rpm -qa | grep blue
bluez-hcidump-1.8-1
bluez-bluefw-1.0-4
bluez-utils-2.7-3
bluez-libs-2.7-1
gnome-bluetooth-0.4.1-8
bluez-pin-0.23-1
[rday@bobo rday]$ cat /etc/yellowdog-release
Yellow Dog Linux release 4.0 (Orion)

The only local configuration I did was to change the device name that the bluetooth dongle in the laptop uses to advertise itself. Then I used bluefw to “load the firmware”, whatever that means. And then started the bluetooth service. The pin-helper said that it failed, but the phone and laptop were able to pair successfully anyway. And when I used the phone to examine the advertised services available on the laptop, it reported file transfer and synchronization. Cool.

On Yellowdog, even Nautilus was able to understand “bluetooth:///” as a file path. But it didn’t see my phone. I’ll have to poke at that more.

After the devices were paired, I could start a transfer from the phone and send pictures which magically appeared in my home directory on the laptop.

May 4th, 2005 at 1:24 pm

Trying to get gnome-bluetooth to work on RHEL 4.0WS like it does on Yellowdog has been hard. I’m stuck in dependency hell. It ought to be easy given a working system that I can copy, right?

First problem is that there isn’t a gnome-bluetooth rpm for RHEL. So I have to reach back to RHL 9.0 to get gnome-bluetooth. (I tried installing from source, which compiled and installed successfully, but somehow still doesn’t work.)

Trying to install the old gnome-bluetooth rpm yields a failed dependency:

error: Failed dependencies:
libbtctl.so.1 is needed by gnome-bluetooth-0.4.1-3.i386
libopenobex-1.0.so.0 is needed by gnome-bluetooth-0.4.1-3.i386
libsdp.so.2 is needed by gnome-bluetooth-0.4.1-3.i386
Suggested resolutions:
libbtctl-0.4.1-3.i386.rpm

Trying to install libbtctl yields a further failed dependency:

error: Failed dependencies:
libsdp.so.2 is needed by libbtctl-0.3-4.i386

libsdp.so.2 is provided by bluez-libs-2.7-1 on Yellowdog

I have bluez-libs-2.10-2 on RHEL.

The changelog for this package says that in version 2.8 the dummy SDP library was removed. Doh. I’m stuck on a dependency for a dummy library.


July 26th, 2005 at 6:11 pm

I wasn’t very explicit about the recipe for transfering files between phone and laptop. I just had to figure it out again. I took several false starts and so I’m still not sure what the right procedure is, but I think it is something like this:

  • make sure the bluetooth service is running via /etc/init.d/bluetooth status
  • start gnome-obex-server (System tools > Bluetooth file sharing)
  • use the phone to drive the transaction
  • pick a file and send it via bluetooth to the laptop

I don’t think all the business with hcitool are actually required, but it does let you see some reassuring debugging info.

Earlier attempts

Tuesday, May 3rd, 2005

The basic connections are in place for talking between my work desktop and my cell phone. Now I need to be able to do useful things like transfer files.

On the desktop, I just need to have the bluetooth service running. On the phone, if I scan for devices, it sees the desktop, but when I try to establish a connection from the phone, it fails saying that the passkey doesn’t match.

I can work around this by establishing the connection from the desktop instead.

From the desktop, I scan for devices with hcitool scan, get the address of the phone, and then use hcitool to open a connection and request authentication. Then the phone beeps and I enter the PIN. Now I have added the desktop to the device list in the phone.

hcitool scan
Scanning ...
00:0E:07:0C:0B:6D T616ryan
[rday@snapper ~]$ hcitool cc 00:0E:07:0C:0B:6D
Can't create connection: Operation not permitted
[rday@snapper ~]$ sudo bash
Password:
[root@snapper ~]# hcitool cc 00:0E:07:0C:0B:6D
[root@snapper ~]# hcitool con
Connections:
< ACL 00:0E:07:0C:0B:6D handle 6 state 1 lm MASTER
[root@snapper ~]# hcitool auth 00:0E:07:0C:0B:6D

To close the connection, I can use hcitool dc

I would like that service list to include things like synchronization and object push. To get that, I installed gnome-bluetooth from http://usefulinc.com/software/gnome-bluetooth but that hasn’t worked for me yet. This howto from a gentoo user is very helpful: http://gentoo-wiki.com/HOWTO_mobile_phone,_Bluetooth_and_GNOME

Monday, April 25th, 2005

Starting from Redhat EL4WS, I’m trying to plug in a bluetooth dongle and be able to talk to my cell phone. Here is what I have so far.

The dongle is recognized when I plug it in to a USB port:

[root@snapper ~]# lsusb
Bus 004 Device 008: ID 0a5c:2033 Broadcom Corp. BCM2033 Bluetooth
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 413c:3010 Dell Computer Corp.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

This is where I start to flounder. There is a nice pile of documentation at http://www.holtmann.org/linux/bluetooth/ but it is terribly frustrating trying to find the *actual next step* that I might need to take. Random clicks on the links in that long list haven’t yielded a non-obsolete howto document so far.

What software and tools do I have at my disposal?

[root@snapper ~]# rpm -qa | grep blue
bluez-hcidump-1.11-1
bluez-libs-2.10-2
bluez-pin-0.23-3
bluez-utils-2.10-2.1

One of the things I get in bluez-utils is /etc/init.d/bluetooth. That’s promising, but simply turning it on doesn’t do much. Here is a peek inside:

UART_CONF="/etc/bluetooth/uart"

[ -e /etc/sysconfig/bluetooth ] && . /etc/sysconfig/bluetooth

start_uarts()
{
[ -f $UART_CONF ] || return
grep -v '^#' $UART_CONF | while read i; do
/usr/sbin/hciattach $i
done
}

I’ve poked around in /etc/sysconfig/bluetooth (it is a minimal file with not much in the way of clues), but I haven’t done anything with this UART stuff. This script will only try to start the UARTs if the config file exists, which it doesn’t on my system. What should I put in there? Something that hciattach will like…

Ahh, this is where it gets interesting. The man page for hciattach includes a list of supported serial devices that it can insert into the Bluez stack and my Broadcom device is not listed. It mentions support for these devices: ericsson, digi, xircom, brainboxes, silicon wave, csr. But, it also has a device type called “any”. And so this shot in the dark actually seems to work:

[root@snapper bluetooth]# hciattach /dev/ttyS1 any
[root@snapper bluetooth]# hciconfig
hci0: Type: UART
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0

DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:4 acl:0 sco:0 commands:1 errors:0

Wow, I wasn’t expecting to get this far. What else can I do? Using hciconfig to bring up the device doesn’t seem to work just yet, so let’s start again but first I’ll put “/dev/ttyS1 any” in /etc/bluetooth/UART and restart bluetooth.

[root@snapper bluetooth]# /etc/init.d/bluetooth stop
Stopping Bluetooth services: [ OK ]
[root@snapper bluetooth]# /etc/init.d/bluetooth start
Starting Bluetooth services: [ OK ]
[root@snapper bluetooth]#
[root@snapper dev]# hciconfig -a
hci0: Type: UART
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:8 acl:0 sco:0 commands:2 errors:0
Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DH1 HV1
Link policy:
Link mode: SLAVE ACCEPT

It doesn’t look like it is really talking to the device. Probably this is because I’m telling it to look on the serial port /dev/ttyS1. Isn’t that the old-school serial port? How do I name a device on the USB bus? My xorg.conf is pointing to my USB mouse through the name of /dev/input/mice. That’s the only USB device I have on this system. hciattach really wants a /dev/tty to talk to. It looks like my task is to figure out how to bind a USB device to a /dev/tty* name. One quick google search later and I think the answer is in this page: http://www.linux-usb.org/USB-guide/x356.html The USB device files don’t exist on my system, so I make a directory “/dev/usb” and put ttyUSB0-3 in it. Then I tell /etc/bluetooth/uart that hciattach should use the parameters “/dev/usb/ttyUSB0 any”. Then I stop and start bluetooth. On start, I get this:

[root@snapper init.d]# /etc/init.d/bluetooth start
Can't open serial port: No such device [ OK ]
Can't initialize device: Illegal seek

Dang. Even if that would have worked, it would not explain how the mapping works between a USB device and the namespace of ttyUSB0. Maybe ttyUSB0 is pointed at my mouse. How do I find out what it is really pointed at?

For kicks, here is the relevant output of kudzu -p:

class: OTHER
bus: USB
detached: 0
driver: bcm203x
desc: "Broadcom Corp. BCM2033 Bluetooth"
usbclass: 0
usbsubclass: 1
usbprotocol: 1
usbbus: 4

usblevel: 1
usbport: 0
usbdev: 9
vendorId: 0a5c
deviceId: 2033

And here is the snipped output of lsmod:

[root@snapper ~]# lsmod
Module Size Used by
usbserial 29865 0
hci_uart 18205 0
hidp 18753 0
cmtp 22337 0
kernelcapi 49216 1 cmtp
rfcomm 38105 0
l2cap 27201 7 hidp,cmtp,rfcomm
hci_usb 16961 0
bluetooth 47429 8 hci_uart,hidp,cmtp,rfcomm,l2cap,hci_usb
bcm203x 9281 0
...
uhci_hcd 32473 0
ehci_hcd 31813 0

...

Googling for my device model number gives me this: http://www.broadcom.com/collateral/pb/2033-PB04-R.pdf

Better yet, googling for “broadcom bluetooth linux” I got this gem: http://www.twoguys.org/~gregh/nokia-6310i.html

It tells me that I really do need the bluez-bluefw rpm that I thought would be irrelevent to my setup. After installing it, here is the list of my bluetooth packages:

[root@snapper ~]# rpm -qa | grep blue
bluez-hcidump-1.11-1
bluez-libs-2.10-2
bluez-bluefw-1.0-6
bluez-pin-0.23-3
bluez-utils-2.10-2.1

Now I can plug in the bluetooth dongle and see where it shows up on the USB bus:

[root@snapper ~]# lsusb
Bus 004 Device 009: ID 0a5c:2033 Broadcom Corp. BCM2033 Bluetooth
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 413c:3010 Dell Computer Corp.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Then use that address to load the bluetooth firmware:

[root@snapper ~]# bluefw usb 004/009
bluefw[12478]: Loading firmware to usb device 0a5c:2033
bluefw[12478]: FW loaded

And then display the device configuration:

[root@snapper bluetooth]# hciconfig
hci0: Type: USB
BD Address: 00:03:C9:23:AC:B2 ACL MTU: 377:10 SCO MTU: 16:0
UP RUNNING PSCAN ISCAN
RX bytes:209 acl:0 sco:0 events:31 errors:0
TX bytes:1119 acl:0 sco:0 commands:31 errors:0

Yay!

[root@snapper bluetooth]# hcitool scan
Scanning ...
00:0E:07:0C:0B:6D T616ryan
[root@snapper bluetooth]# hcitool info 00:0E:07:0C:0B:6D
Requesting information ...
BD Address: 00:0E:07:0C:0B:6D
Device Name: T616ryan
LMP Version: 1.1 (0x1) LMP Subversion: 0x503
Manufacturer: Ericsson Technology Licensing (0)
Features: 0x04 0xca 0x31 0x00 0x00 0x00 0x00 0x00
<encryption> <rssi> <sco link> <u -law log> <a -law log> <cvsd>
[root@snapper bluetooth]# l2ping 00:0E:07:0C:0B:6D
Ping: 00:0E:07:0C:0B:6D from 00:03:C9:23:AC:B2 (data size 20) ...
0 bytes from 00:0E:07:0C:0B:6D id 200 time 32.85ms
0 bytes from 00:0E:07:0C:0B:6D id 201 time 31.16ms
0 bytes from 00:0E:07:0C:0B:6D id 202 time 22.20ms
0 bytes from 00:0E:07:0C:0B:6D id 203 time 26.15ms
0 bytes from 00:0E:07:0C:0B:6D id 204 time 28.28ms
0 bytes from 00:0E:07:0C:0B:6D id 205 time 28.31ms
0 bytes from 00:0E:07:0C:0B:6D id 206 time 26.34ms
0 bytes from 00:0E:07:0C:0B:6D id 207 time 12.31ms
0 bytes from 00:0E:07:0C:0B:6D id 208 time 13.41ms
0 bytes from 00:0E:07:0C:0B:6D id 209 time 28.42ms
10 sent, 10 received, 0% loss
[root@snapper bluetooth]#