Being fundamentally fed up with not having Bluetooth support in my Toshiba M100 and finding plenty of patches around for older (2.4) kernels as well as official support from other distributions, I decided to go ahead and learn how to put together my own based on the current kernel.org Toshiba ACPI driver and Nicolas Bettenburg's old driver.
This procedure was only tested on Fedora Core 4 with the 2.6.14-1.1637_FC4 kernel, but should be valid for both (slightly) older and newer kernels, at least until it gets rolled into the kernel.org mainline (please feel free to do it if you know whom to contact and the right procedure).
- Get a Toshiba/M100. Without it, the rest of this HOWTO may not be of much use to you (and I can't test this with other models for obvious reasons).
- Install Fedora Core 4 and update it to the hilt (you saw this one coming, right?)
- Make sure you have the kernel development packages installed. I usually install both kernel-devel and kernel-smp-devel (regardless of whether I am actually running an SMP kernel).
- Get fnfx for function key support. The current version already binds Fn+F8 to enable Bluetooth.
- Get BlueZ and its Gnome tools.
Create a directory to build the module in, and a Makefile containing the following instructions:
obj-m := toshiba_acpi.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules
Note: the last line begins with a tab character, so mind the cutting & pasting.
Grab the source code below, save it as toshiba_acpi.c and type make.
If all went well, set the right permissions and copy it to your /lib/modules folder (replace the kernel version with your own):
$ su Password: # cd /lib/modules/2.6.14-1.1637_FC4/kernel/drivers/acpi # mv toshiba_acpi.ko toshiba_acpi.ko.orig # mv /tmp/build/toshiba_acpi.ko . # chmod 744 toshiba_acpi.ko # chown root:root toshiba_acpi.ko
Now type modprobe toshiba_acpi as root and see if the module was correctly loaded by using lsmod:
# modprobe toshiba_acpi # lsmod | grep toshiba_acpi toshiba_acpi 7704 0
If you've never done this before, nevermind the actual numbers - it's loaded.
Now let's get fnfx running and enabled upon reboot:
# service fnfxd start Starting fnfxd: [OK] # chkconfig --level 345 fnfxd on
And now, press Fn+F8 and see if Bluetooth is enabled via hcitool:
# hcitool dev Devices: hci0 00:03:7A:F0:0B:A7
Here is the source code for the updated module. Basically I merged Nicolas' stuff into the latest source (not too cleanly, but workable) and incremented the version number to 0.19.
Feel free to do whatever you like with this - but I won't support or maintain it beyond my own needs...