Jay's Homepage > > Mandrake 10.0 on an IBM X31 > > Socket CF Bluetooth Card

Socket CF Bluetooth card

Because the X31 has a built-in Compact Flash (CF) slot, I chose to use the Socket CF Bluetooth card. The key thing to know about Socket CF Bluetooth cards is that they have produced two different versions. The old cards (before Rev G.) use a completely different chipset than the new cards (Rev. G and onwards). I have had both types of cards, and I recommend the newer cards which use the CSR chipset.

Old Socket CF Cards: Rev A-F

I got a "revision F", which supports Bluetooth 1.1.

To make my system recognize this card, I had to modify my /etc/pcmcia/config file to add the following entries:

 device "dtl1_cs"
   module "dtl1_cs"

 card "Socket Bluetooth CF Card"
 	version "Socket", "CF+ Personal Network Card"
	bind "dtl1_cs"
After the above change, my PCMCIA card services automatically load the dtl1_cs module when the card is inserted, and I have a new "hci0" device available. Running hciconfig hci0 up brings the device up, and then I can do things like hcitool scan to look for other bluetooth devices in the area.

Note: You may have to run mknod /dev/rfcomm0 c 216 0 to make an rfcomm0 device.

Warning: Although the socket card "worked" I had a problem using it with my T610 phone. I could not get data to transfer faster than 2-3KB/sec (which is annoying when GPRS supports 5.6KB/sec). After a bit of complaining, Socket was nice enough to replace my card with a "revision H" card, which uses a completely different chipset.

New Socket CF Bluetooth Cards (Rev G and onwards)

This card is reported to work with linux kernel 2.4 just fine. However, it DOES NOT WORK with the stock Mandrake 2.6 kernel (2.6.8 as of this writing). This is a bug in the 2.6 series of kernels, not a problem specific to Mandrake.

Perhaps around kernel 2.6.12 it will be fixed, but as of 2.6.11 it has not. If you are able to recompile your kernel, you can fix the bug yourself by using this patch, helpfully provided by Mathias Adam on the BlueZ mailing list, against the /usr/src/linux/drivers/serial/8250.c file and recompiling.

Once you have done this, the CF card is reported as a serial port (ttyS4 for me) and a simple "hciattach ttyS4 socket" command will make it work! In Mandrake, you simply put "/dev/ttyS4 socket" in your /etc/bluetooth/uart file.

During the six months between getting my socket CF card and actually getting it to work, I had been using a Zoom Bluetooth PCMCIA card which works great. I really recommend that you use that card if you just want things to work out of the box without having to patch your kernel and don't mind giving up a PCMCIA slot. I'm using the Socket card now because I like the smaller form factor and I have the CF slot on the X31.

Jay's Homepage > > Mandrake 10.0 on an IBM X31 > > Socket CF Bluetooth card