I recently ended up with an ASUS Eee-PC tablet/netbook (T101MT) to play with. Reviews for the system were less than stellar, based in large part on it shipping with Windows 7 Starter edition (which is lacking in both features and good touchscreen/tablet support), so after a bit of partition rearrangement to free up space, I installed Kubuntu 11.04 Natty Narwhal on it – the same thing I’m using on my desktop.
The Ubuntu community has good support and documentation for both this machine and for running Ubuntu and Kubuntu on netbooks, so getting everything going was remarkably painless with two notable exceptions: getting a USB Bluetooth adapter working, and getting the screen to lock when I manually put the tablet to sleep (after a little fiddling with screen savers & settings, it locks fine if it goes to sleep due to idle timeout). I’ve seen some recommendations for the sleep locking issue and will pursue that later, but in this article I’ll do a bit of diagnosing and configuring to get Bluetooth working.
I had a bit of confusion starting out, because much of what I was finding as advice referred to ‘usb_hci’ which was not present as a kernel module on my system. It turns out that usb_hci was replaced with ‘btusb’ some time ago, but there’s quite a bit of documentation still around from people trying to get things working on earlier versions of Ubuntu. If you’re running a new install of Ubuntu, be careful about what you’re reading since thingsdo change over time.
Starting out, I used ‘lsusb‘ to list USB-connected devices and confirm that the Bluetooth adapter was actually being seen. It was being detected as
Bus 003 Device 006: ID 050d:016a Belkin Components Bluetooth Mini Dongle
I looked through the output of ‘dmesg‘ and found where it was loading as well, but that wasn’t as important since it was loading. If ‘lsusb‘ hadn’t shown the adapter then the ‘dmesg‘ information would have been important, but it may be a bit much for most people to read through and find the important parts in. Feel free to skip this step.
The device was present and visible but KDE’s Bluetooth settings panel was still telling me that there were no adapters present, so a little more digging with ‘hciconfig -a‘ turned up this:
hci0: Type: BR/EDR Bus: USB 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:0 acl:0 sco:0 commands:0 errors:0
Having the interface down could explain why KDE didn’t see any Bluetooth adapters – there were none usable – though it wouldn’t be a bad idea to have something listing inactive-but-present devices. Attempting to bring the interface up with ‘hciconfig hci0 up‘ failed with this error:
Can't init device hci0: Operation not possible due to RF-kill (132)
And a bit of quick searching turned up the solution (possibly overkill in this case) as ‘rfkill unblock all‘. ‘rfkill unblock bluetooth‘ would also have done the trick, but in this case only Bluetooth was blocked anyway (rfkill enables and disables wireless devices, important for saving battery power on portables). You can check which wireless devices will be affected with ‘rfkill list‘.
‘rfkill unblock all‘ does not give any feedback, but if you don’t get an error then you should be fine. After that, ‘hciconfig hci0 up‘ should work, also with no output or feedback. To confirm that it worked, run ‘hciconfig -a‘ one more time to get results something like this:
hci0: Type: BR/EDR Bus: USB BD Address: 00:19:0E:01:90:DE ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN RX bytes:705 acl:0 sco:0 events:28 errors:0 TX bytes:1088 acl:0 sco:0 commands:28 errors:0 Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x83 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'DinkyTablet2-0' Class: 0x5a0100 Service Classes: Networking, Capturing, Object Transfer, Telephony Device Class: Computer, Uncategorized HCI Version: 2.1 (0x4) Revision: 0x5184 LMP Version: 2.1 (0x4) Subversion: 0x420e Manufacturer: Broadcom Corporation (15)
At this point Bluetooth is up and running and you should be able to configure it and pair devices from the Bluetooth control panel in Settings (or elsewhere in Gnome on Ubuntu).
Note: All of the commands presented here were run as root – you can do this either with ‘sudo‘ prefacing each command or by running ‘sudo bash‘ first to simply have a root shell prompt.