continua (next page) main index Note: my Fujitsu-Stylistic ST5022 pages are here!

Linux kernel 2.6.27 (release date: October 2008) contains a driver for Fujitsu-Siemens laptops (see CONFIG_FUJITSU_LAPTOP section in the kernel configuration) which does not support the Fujitsu-Siemens Stylistic ST5000-series buttons.

A complete working driver is available on Tablet Buttons Driver for Fujitsu Siemens T-Series Lifebooks (driver compatibility includes Stylistic ST5xxx-series, T-series, P-series including P1510 and P1610, and Lifebook u800).

After getting it and uncompressing it, you will need only to compile and install (using make and make install commands: both will end with a message like «make(1): Leaving directory '/usr/src/linux...'»).

Then, you will only need to modprobe fsc_btns to enable it (it is safe to add it in the local initialization script; on the OpenSuse it is located at /etc/rc.d/boot.local).

Its default key mapping uses:

I do not like too much these settings, because I do not use the "function" keys (like "mail" and "calculator" and so on): I find it easier to click on the screen. I only need movement keys.

So I edited the source fsc_btns.c to find the static struct fscbtns_config that is named config_Stylistic_ST5xxx and edited its section falling under CONFIG_HANDLE_MOD (it's nice to have the modification handling) and changed KEY_MAIL to KEY_RIGHT (I prefer having a Right keypress instead of the "mail" function keypress), KEY_DIRECTION to KEY_LEFT and so on (note that the first four are full of zeros because are related to keys that do not exist on the ST5xxx).

I also added some alphanumeric keys in the "mod handling" (only for debugging purposes).

The resulting section is:

              { KEY_RIGHT,    KEY_1, KEY_A, KEY_E },
              { KEY_LEFT,     KEY_2, KEY_B, KEY_F },
              { KEY_ESC,      KEY_3, KEY_C, KEY_G },
              { KEY_ENTER,    KEY_4, KEY_D, KEY_H },
              { KEY_BRIGHTNESSUP, 0,0,0 },           // unused
              { KEY_BRIGHTNESSDOWN, 0,0,0 },         // unused
              { KEY_DOWN,     KEY_I, KEY_M, KEY_Q },
              { KEY_UP,       KEY_J, KEY_N, KEY_R },
              { KEY_PAGEUP,   KEY_K, KEY_O, KEY_S },
              { KEY_PAGEDOWN, KEY_L, KEY_P, KEY_T },
              { KEY_LEFTCTRL, 0,0,0 },
              { KEY_LEFTALT,  0,0, KEY_SLEEP }

Note that the last element has no "," character at the end of the line because it is the last element in the structure.

If you want to know the available KEY_ definitions, have a look in the kernel source include file /usr/include/linux/input.h - sadly, using some "non-keyboard" combination (such as BTN_RIGHT to emulate the right button key of a mouse) does not work.


Click here for helicopters!

home page - send e-mail - continua (next page)