IT How-tos:
Nav:
Need Hosting?
Please take a look at the setup used to get an idea of the type of hardware and software used to write this how to. Make sure all of the BlueZ packages mentioned under “Laptop Software” are installed.
The Mavin CF bluetooth card is a pain to get working even in Windows. With the mentioned bluez packages installed the CF+PCMCIA card was not detected correctly. My laptop's pcmcia/hotplug kept registering it as a generic serial port. I knew that because after inserting the card typing “dmesg” at the terminal revealed lines like :
kernel: pccard: PCMCIA card inserted into slot 1 kernel: ttyS2: detected caps 00000700 should be 00000100 kernel: 1.0: ttyS2 at I/O 0x4100 (irq = 11) is a 16C950/954
So I figured based on some reading that I had to tell the pcmcia subsystem about the card. So first I checked to see what the card looks to the operating system. To do that I typed “cardctl ident” as root. That yeilded:
Socket 1: product info: "CF CARD", "GENERIC", "", "" manfid: 0x0279, 0x950b function: 2 (serial)
That is the unique information the card volunteers to the operating system to set itself apart from everything else that's plugged in. Now according to this link from Bluez's site the Mavin CF Bluetooth card is supposed to work with the btuart_cs driver. Of course when I typed “lsmod” at the terminal no such driver module was loaded. The serial driver serial_cs was loaded instead because as was mentioned earlier the operating system thought is was a serial port. I figured that was a perfectly justified thought since the “cardctl ident” command output included a line that said “function: 2 (serial)”. I hope you hardcore techies are really enjoying this baby talk (no I can't do better and whatever sounds like I don't know what I'm talking about, like that last statement, it's because I don't know what I'm talking about).
Anyway. Armed now with the unique information that identifies my card and the knowledge that I am de man! muhuhahaha the btuart_cs driver is the shot I pressed forward. I needed to tell the pcmcia subsystem to load the btuart_cs driver when “cf card” “generic” was inserted. After some time reading I concluded that all I had to do was to add the following to ”/etc/pcmcia/bluetooth.conf”:
card "Mavin Bluetooth CF Card" manfid 0x0279, 0x950b version "CF CARD", "GENERIC", "", "" bind "btuart_cs"
So I did so but it still did not work. The serial_cs driver kept loading. I thought about it a little and figured that it could be: 1. that there was some other card mentioned in either /etc/pcmcia/config or /etc/pcmcia/bluetooth.conf that the system was mistaking my card for or 2. it could be the plastic dummy sd card that was inserted in the laptop's sd card reader slot that was causing the trouble (since the sd card slot is in fact the first pcmcia slot 0). So I decided to cover all my bases. I would comment out all entries in both /etc/pcmcia/config and /etc/pcmcia/bluetooth.conf that too closely resembled my hardware and I would put an entry in /etc/pcmcia/config to make it recognize the plastic sd dummy as a dummy card. So as root at the terminal I typed “gedit /etc/pcmcia/config” and did a search for the phrase “cf card”. The result: nothing. I then repeated the search in /etc/pcmcia/bluetooth.conf and found an entry called “Compaq iPAQ Bluetooth Sleeve” that boasted the credentials “CF CARD”, “GENERIC”. I commented it out. I also commented out the entry called, card “Serial or Modem”.
To ensure that the plastic dummy card was properly detected and accounted for by the pcmcia service I ensured that it was inserted and typed “cardctl ident” as root at the terminal which yielded:
Socket 0: product info: "RICOH", "Bay1Controller" manfid: 0x0000, 0x0000 function: 254 ((null))
I thereafter added the following lines to ”/etc/pcmcia/config”:
card "Unusable Dummy Card" version "RICOH", "Bay1Controller" bind "ide-cs"
With that I restarted the pcmcia service. To restart the pcmcia service just type the following at the terminal as root:
/etc/init.d/pcmcia restart
Please note that I took out the cards and restarted the pcmcia service every time I edited the config files.
Once the right files were edited and the pcmcia service restarted, I inserted the cards and behold! With praises to Allah it worked: lsmod revealed that btuart_cs was loaded. For confirmation I typed “hciconfig” as root which revealed:
hci0: Type: PCCARD
BD Address: 00:09:DD:10:00:23 ACL MTU: 192:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:114 acl:0 sco:0 events:13 errors:0
TX bytes:313 acl:0 sco:0 commands:13 errors:0
“UP RUNNING” means that it worked. So when I fired up bluetooth on the Pocket PC I was able to discover the laptop but no services were configured.
I needed to set up the DUND service in order to get my Pocket PC to sync with Linux. That is described here.
~~DISCUSSION~~