In certain Toshiba laptops the bluetooth will only work using the toshset utitlity. In previous versions of ubuntu, this worked flawlessly. Expect it be be fixed soon in 8.10, but in the mean time it's worth having this here.
There are 2 issues to solve.
1) 8.10 kernels are compiled without the toshiba_acpi module, which is required by toshset.
2) Versions of toshiba_acpi in recent kernels do not work with toshset
The solution is to patch and compile the toshiba_acpi kernel module and manually install it. This is easier, and should be more compatable, than compiling the whole kernel.
I am far from an expert, so the steps below could probably be done better - please do add further info.
Here are the steps I took:
Install required packages
Code:
sudo apt-get install build-essential linux-source libncurses5-dev kernel-package
Copy and extract the kernel sources to a working directory (check your version number)
Code:
cd ~
mkdir src
cp /usr/src/linux-source-2.6.27.tar.bz2 src
cd src
tar xvjf linux-source-2.6.27.tar.bz2
Download the patch from here that most closely matches your kernel version. the 2.6.26 patch works on kernel 2.6.27 currently used in ubuntu 8.10.
Code:
wget http://memebeam.org/free-software/toshiba_acpi/toshiba_acpi-dev_toshiba_test5-linux_2.6.26.patch
Apply the patch - the first command checks it will all work. Only continue if it gives no errors.
Code:
patch -p0 < toshiba_acpi-dev_toshiba_test5-linux_2.6.26.patch --dry-run
patch -p0 < toshiba_acpi-dev_toshiba_test5-linux_2.6.26.patch
Create a makefile:
Copy the following contents in, then exit with Ctrl+X, type 'y' to save, and take the default location:
Code:
obj-m += toshiba_acpi.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Build the kernel module:
There should now be a whole lot of files in that folder. The important one is called toshiba_acpi.ko
To install the module by hand, you need to copy it to the correct directory and modify one file which tells the kernel what dependencies the module has.
Code:
sudo cp toshiba_acpi.ko /lib/modules/`uname -r`/kernel/drivers/acpi/
cd /lib/modules/`uname -r`
Using the following command should add the required line to the end of the file, but for some reason even as sudo and having modified file and directory permissions, I got a permission denied error:
Code:
echo "/lib/modules/`uname -r`/kernel/drivers/acpi/toshiba_acpi.ko:" >> modules.dep
It works with nano though:
Code:
echo "/lib/modules/`uname -r`/kernel/drivers/acpi/toshiba_acpi.ko:"
Copy this output, then:
Code:
sudo nano modules.dep
press page-down to end of file, then paste in the copied output. Save and exit (Ctrl-X, 'y', Enter)
That should be it done. You can then load the module using:
Code:
sudo modprobe toshiba_acpi
Bluetooth can be turned on and off using the commands:
Code:
sudo toshset -bluetooth on
sudo toshset -bluetooth off
Further info from toshset:
Done!
Further info can be found at the following pages:
Bug reports:
https://bugs.launchpad.net/ubuntu/+s...et/+bug/179728
https://bugs.launchpad.net/ubuntu/+s...et/+bug/181374
https://bugs.launchpad.net/ubuntu/+s...ux/+bug/269831
Kernel compiling:
http://www.howtoforge.com/kernel_compilation_ubuntu_p2
Other:
http://www.flurble.org/computers/toshset.pl
As always, I'm a beginner in this game, but if this helps a few others until the official patch is released then it's worth it.