Note: The project website at http://omnibook.sourceforge.net seems to no longer be available. While it appears to no longer be maintained, the source code is still available from http://sourceforge.net/projects/omnibook. As it may no longer be maintained, it is probably a good idea to find an alternative to this module. Unfortunately, I have not had the time (or need as yet) to search for a usable alternative.
HOWTO: Toshiba Laptop (with Phoenix BIOS) and built-in Bluetooth
I hope somebody will find this useful. I have seen a few people with problems using bluetooth on the Phoenix BIOS models of Toshiba laptops, in this forum and elsewhere on the internet (while searching for answers to this problem).
This is a subject that is sorely lacking all over the place. There are wonderful utilities (or seemingly so, as I cannot use them) for Toshiba models that do not have a Phoenix BIOS, but rather a Toshiba BIOS, such as the “toshset” utility.
Toshiba models that use a Phoenix BIOS cannot use the toshset utility. This is a problem when you wish to use bluetooth. I came across a utility originally for the HP Omnibook, with support for various Toshiba (notably those with a Phoenix BIOS) and Acer models.
The omnibook module is written by Mathieu Bérard, and all credit goes to him.
I have a Toshiba Satellite Pro M70-235 (available in Europe, Africa, and I guess the Middle East – as those regions tend to be grouped as EMEA – but I am unsure about the US), with the following specs:
Pentium M 1.86GHz
512 MB RAM (Upgraded to 1GB)
In short, its a powerful machine, but has everything required for mobility and ease of use etc (such as I will require bluetooth for using my phone as a GPRS modem when I am away from home this Christmas).
I was very worried today that I might have to reinstall Windows after wiping it off (again) so that I would be able to use Bluetooth.
The problem is this: The Toshiba bluetooth radio is disabled at boot, and it can only be enabled with a particular ACPI call. In Windows, you hit the Enable Bluetooth Radio button, and on you go. In GNU/Linux, you ... spend hours on the Internet and give up. Or maybe you find the omnibook sourceforge project (who would look there for a Toshiba problem?), which allows (through the /proc filesystem) control of things like the WiFi and Bluetooth radios. At least, that is all I have used it for. presumably, you can also use it to set up the multimedia buttons and whatnot, which I may have a bash at soon, but bluetooth was the big thing for me.
The omnibook project can be found at http://omnibook.sourceforge.net
Only source code is available, and you HAVE TO (!!!!!) use the svn trunk. At the time of writing this, the latest source package available on sourceforge did not work for me!
Before you download the required packages, and build, install and attempt to use the omnibook kernel module, head over to the supported laptops list and see if your machine (or a similar machine, if you feel daring) is listed. Note the number next to the name of the machine (in my case, the Toshiba Satellite M70 has a value of 12 for the ectype field). You may need this value if your machine is not directly supported (as mine was not – i.e. the module did not detect what options it should load as I have a Satellite Pro, different from the Satellite listed there).
Packages that you will need in order to download and build the omnibook kernel module:
note that linux source is fairly large (in the region of 40 MB). I am not certain if this is required, but it is listed clearly as a dependency in the original install instructions.
You should probably also install the linux-headers package relating to your kernel, for instance linux-headers-generic
So, simply issue this command to install them:
make a folder in your home directory called “omnibook”, and use svn (subversion) to download the latest omnibook module sources:
$ sudo apt-get install subversion build-essential linux-source linux-headers-generic
you will get notification of each file downloaded, and when it is done, you need to cd into the trunk folder:
$ cd ~
$ mkdir omnibook
$ cd omnibook
$ svn co https://omnibook.svn.sourceforge.net/svnroot/omnibook/omnibook/trunk
now, you need to build and install the module:
load the module by performing the following command (which will run depmod and modprobe for you):
$ sudo make install
now, cd to /proc/omnibook/ (which should now exist)
There should be, at the very least, two files listed there:
$ cd /proc/omnibook
If these are the only two files listed, then your machine is not supported directly. I will get to working around that in a second. If you have other files listed there, like wifi, bluetooth, lcd, temparature, touchpad, or others, then your machine is supported and you can enable bluetooth by using the following command:
(I do the “sudo su” to get a root console because a normal “sudo echo 1 > bluetooth” does not work. More on this later, and how to fix it)
$ sudo su
# echo 1 > bluetooth
The same can be done for wifi.
$ sudo su
# echo 0 > bluetooth
You can also get information about each item by doing this:
To stop having to use a root console to set the paramaters, load the module with this option: “userset=1”
$ sudo cat bluetooth
so, instead of running “make load” as we did earlier, do this:
now a normal user will be able to enable/disable bluetooth, or edit any other omnibook paramater:
$ sudo depmod -a
$ sudo modprobe omnibook userset=1
Once bluetooth is enabled using this method, you will be able to use it as normal. Issue a "hcitool dev" command in the console and you should get this:
$ echo 1 > bluetooth
is your bluetooth HW address
$ hcitool dev
where before you had this:
If you do not have the settings files (such as bluetooth and wifi), but only have the dmi and version files, all is not lost if you feel like taking a risk. If your computer is similar to one of the models listed as supported, I think this is a small risk, but if it is completely different.. well, here is the warning from the website:
$ hcitool dev
I take no responsibility for damaged caused by loading the module on an unsupported machine.
WARNING: Forced load on an unsupported machine may cause unpredictable result. You have been warned...
Here is where you need the “ectype” from the supported laptop list described above (the number in the column next to the laptop model – 12 in my case)
when you load the module, you will need to specify the ectype as a module option:
You should now have a list of files something like this in /proc/omnibook
$ sudo depmod -a
$ sudo modprobe omnibook ectype=12
You can make the module start on boot:
make a file called omnibook.modprobe in /etc/modprobe.d/ and place the module options in it:
append “omnibook” to /etc/modules to load it at boot:
options omnibook ectype=12 userset=1
You can also run this command to get a list of module options:
$ sudo su
# echo “omnibook” > /etc/modules
then you can disable support for various elements completely. For instance, using bluetooth=0 as a module option will prevent the bluetooth file from showing up in /proc/omnibook and thus prevent you from modifying it.
see http://omnibook.sourceforge.net for full documentation to discover what else you can do with this utility.
EDIT: See post #3 below for my issues with omnibook.
EDIT (13-12-2007): Update the URL to the SVN repository (It changed, and the one on the website is also incorrect....).