fjbtndrv

Last updated: August 2007

Introduction

This is a Linux kernel driver for the buttons on the Fujitsu FMV Stylistic tablet PCs. It allows Linux to make use of the buttons on the side of your tablet PC.

I have only tested it on an FMV Stylistic TB11/B, but should also work on some other Fujitsu tablet PCs. I heard from people successfully using it on a Fujitsu Lifebook T4210 and a Fujitsu Lifebook T4215.

Update: I switched to a Mac and I don't use the tablet anymore. This driver therefore isn't maintained. However, Robert Gerlach has written his own driver and then decided to incorporate some of my code into his project. I haven't used his code, but you might want to try it out - it is under active development.

Hardware Information

I received zero help from Fujitsu when writing this driver. I contacted them and asked about documentation regarding the button control ports. I explicitly stated that I will take any piece of documentation, in any language, in any form, and without any additional support. Fujitsu refused, stating that only Windows is supported on those tablet PCs. They also did not consent to publishing our e-mail exchange.

I believe Fujitsu should be ashamed. That documentation surely does exist somewhere, and even if it doesn't, it wouldn't take more than one hour of a programmers or hardware designers time to write a simple e-mail describing how to access the button control ports.

Fortunately, someone living in a free country (probably in Europe) has helpfully described how to access the buttons, either by looking at the hardware, or by reverse engineering the Windows driver. Either way, the information is out there, and I was able to find it on the peer-to-peer networks by searching for the tablet PC name. The exact file was named:

fujitsu-stylistic-fmv-tablet-pc-button-controller-codes-programming.txt 

Features

The driver allows you to program the buttons on the side of your TabletPC. It is also capable of detecting whether the PC is docked, and if it is, its orientation (horizontal or vertical) -- but that information isn't exported anywhere outside of the driver yet.

The button function assignments are what I think is useful. The default assignments under Windows didn't seem very reasonable, so I modified them. Changing assignments is easy, just take a look at the source and change it.

Download

Packaged versions:

Installation

Afterwards, if you have the kernel sources installed, installation should be a simple matter of unpacking the sources and doing a:

make install modprobe fjbtndrv 

Good luck with the driver, and if you improve it (it is really rather simple at the moment), please let me know! Patches are very welcome.