Tuesday, September 30, 2008

Asus Eee PC Bluetooth troubles

So, playing with my new toy and trying out things to make sure everything works before leaving for the conference. Got Bluetooth mouse paired with my Eee relatively easy, but hit a snag tethering it to my AT&T Tilt smartphone through the standard Dial-Up Network configuration...

Unfortunately, the Bluetooth app shipped with Xandros on 901 series is AzureBT (see on the right, click to zoom), which maybe very user-friendly with all the buttons and menus, but hard to debug, as it shows very little info when something fails. Plus, it does not use the standard Linux BlueZ stack and apps - i.e. it comes with own BT kernel modules and there are no HCI tools available from the command line, AFAIK.

Interestingly, all the forums and message boards are filled with instructions and tips on using the BluZ stack and hciconfig and hcitool commands, even for Asus Eee PCs. Which may be applicable to other Eee models, but not to 901. It is possible, though, to get the BlueZ working by installing bluez-utils and libbluetooth2 packages. Eee 901 even comes with all the necessary kernel modules, but they are just renamed out of the way of AzureBT - net/bluetooth/bluetooth.2.6.21.4.ko and drivers/bluetooth/hci_usb.2.6.21.4.ko, which need to be renamed or symlinked to their proper names.

After figuring all that out and especially the difference between BlueZ-way and AzureBT-way, I decided to get to the root cause of my problem of failing to establish a DUN connection with my phone. As it appeared the Bluetooth link to the phone was not the actual issue here - it was failing to make a logical connection to the ISP, i.e. the cellular provider access point (APN). As DUN runs PPP to establish a Point-to-Point connection with an APN, I had to enable pppd debugging (debug and kdebug settings in the /etc/ppp/options file), start SysLog sysklogd daemon and look at the log messages in /var/log/ppp/ to find out that AT&T/Cingular APN didn't want to authenticate itself to my client. Changing auth line in /etc/ppp/options to noauth effectively fixed the issue and I was able to use my AT&T Tilt as an HSDPA 3.5G modem!

6 comments:

Rafael Castello said...

Thanks a lot!! it worked for me .

Asus eee 901 Xandros with Sony-Ericsson k610i with MOVISTAR (spain).

Was very disapointing not being able to connect with my brand new toy, when it seemed to be such a simple thing....

Thanks again.

clefmed said...

glad to see someone can get it working !
for the ignorant out here, can you tell us what the symlinks should be /

Rafael Castello said...

It was not necessary for me to change the symlinks, as the bluetooth connection between the eee and the phone was stablished ok.
It was the gprs connection with my provider what was wrong, so I only changed the value 'auth' by 'noauh' at /etc/ppp/options as mentioned at the final lines.
Good luck !

denix said...

Renaming or symlinking kernel modules is only required if you want to go BlueZ way - you will not be able to use AzureBT application though and would need to install additional packages and configure your hci device, as mentioned in the beginning of the post. You may want to first try to make AzureBT working, as described later in the post.

If you still want to get BlueZ-compatible kernel modules loaded, do this:

# cd /lib/modules/2.6.21.4-eeepc/kernel
# ln -s net/bluetooth/bluetooth.2.6.21.4.ko net/bluetooth/bluetooth.ko
# ln -s drivers/bluetooth/hci_usb.2.6.21.4.ko drivers/bluetooth/hci_usb.ko
# reboot

Hope this helps.

Anonymous said...

Are you sure it´s OK to stick with AzureBT on 901?

Mine almost always locks the box for a good hour on heavy (or lengthy) EDGE-over-BT use (e.g. opening a CNN page with images)

Several other people also have observed this.

Still wondering if the culprit is the buggy AzureBT binary or the drivers will produce the same problem with other dialers.

Unknown said...

Belkin mouse pad is the best ergonomic mouse pad I have ever used. It's got basic and functional base which provides excellent value at an affordable price point.