Linux on a Fujitsu U810, P1620 - Touchscreen IV

Update 2010.10.18: new version available here!!

Update 2010.07.20: new version available here!!

Update 2009.07.15: new version available here!!

Update 2009.05.19: new version available here!!

Update 2009.05.14: there's a new version of the code in this post. I have also updated the link in this post.

Uhm.. good news for everyone listening ... (is there anyone?)

I finally managed to create a simple enough method for using and calibrating the touchscreen on a Fujitsu u810 (aka u1010), u820 (aka u2010) or p1620.

I think the steps are simple and easy.

To install, download this package (update: latest version here, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.8), uncompress it into a temporary directory, and follow the instructions included in the README file, which I copy here:

Fujitsu usb touchscreen kernel module and utilities v0.3.8
by zmiq2 ,
updated for Ubuntu maverick (10.10) by nerd65536 , Mon, 18 Oct 2010 18:19:33 +0200,

The goal of this project is to produce a useful linux kernel and utilities to use the
fujitsu usb touchscreen included in tablet laptops like the U810 (aka u1010, u820),
the P1620 and the T1010.

This driver has been tested and proved working on a Fujitsu U810 - 32bit, on a
Fujitsu P1620 - 64bit and on a Fujitsu T1010 - IA64bit.

For other authorship information, see copyright.


Installation steps detailed here are based on ubuntu linux distributioni 10.10. It might
be different in your system, but they certainly are very easy to adapt to any other

Drop me an email if you have trouble installing the package.

0 set your computer BIOS to use the touchscreen in 'tablet' mode
this is the mode also used by windows, and provides very sharp touchscreen accuracy

1 download the package file to any directory

$ mkdir fujitsu_touchscreen_driver
$ cd fujitsu_touchscreen_driver
$ wget http://

2 uncompress the package
$ tar zxvf fujitsu-usb-touchscreen-0.3.8.tar.gz
$ cd fujitsu-usb-touchscreen-0.3.8

3 install the software
$ make
$ sudo make install
(at this last step you'll be asked for your password to install certain software as root user)

4 setup a startup application for automatic touchscreen rotation
ubuntu hardy (8.04)
once logged into gnome, go to System -> Preferences -> Sessions, and go to the 'Startup Programs' tab, and Add to automatically start /usr/bin/fujitsu_touchscreen_rotate.py at login

ubuntu jaunty (9.04), ubuntu karmic (10.04), ubuntu maverick (10.10)
once logged into gnome, go to System -> Preferences -> Startup Applications. Click Add.
under "Command:", type: "/usr/bin/fujitsu_touchscreen_rotate.py". Click OK.
on your next login, the rotation service will be active.

And you are done!!!

NOTE: you'll need to repeat step 3 every time you upgrade your linux kernel to a new version.


If you feel that the touchscreen is not accurately calibrated, i.e. when tapping the screen,
the cursor appears in a different spot, run the provided calibration tool.

Calibration must be done when screen is in normal orientation; calibration done in this mode
will make the touchscreen work in all orientations; do not calibrate the screen while rotated!

Open a terminal and type:

$ fujitsu_touchscreen_calibration.py

The terminal will start the calibration software. With the laptop stylus, click
several times on each of the four corners of the viewable screen, not the corners of the
hardware screen. When you see that the line "last read" doesn't change after clicking
on the corners, just press S to save the settings and quit.

While in the calibration tool, you can press R to reset current calibration procedure,
or press Q to quit without applying any changes.

After calibration you can see your calibration values by running the following command in
a terminal window:

$ dmesg | grep fujitsu_usb_touchscreen | grep loaded

Please report your computer model and calibration values at spareinfo.blogspot.com to
share with other users.


In order to have the touchscreen automatically rotate when rotating the screen, I
suggest you also install the fjbtndrv driver package from the ppa.launchpad.net. With
this package, when pressing the rotate-screen hardware button in the screen bezel in a
U810, the display will rotate and the touchscreen will act accordingly.

$ sudo add-apt-repository ppa:khnz/ppa
$ sudo apt-get update
$ sudo apt-get install fjbtndrv


In order to have a long-press act as a right-click, configure gnome assistive
technologies to do so:

1 Enable Assistive Technologies
ubuntu hardy (8.04)
in gnome, go to System -> Preferences -> Assistive Technologies and select the
'Enable assistive technologies' check

ubuntu jaunty (9.04) through ubuntu maverick (10.10)
in gnome, go to System -> Preferences -> Assistive Technologies and select the
'Mouse Accesibility' option to get into the details

2 Enable right click
ubuntu hardy (8.04), ubuntu jaunty (9.04) through ubuntu maverick (10.10)
in gnome, go to System -> Preferences -> Mouse, then go to Accessibility tab, and
select the 'Trigger secondary click by holding down the primary button' option


  1. Works for me on the P1620, calibration:

    [135259.814472] fujitsu_usb_touchscreen:
    fujitsu_touchscreen::loaded::min-max values::x[108,3911] y[353,4000]

    Although I do see a slight offset when in rotate right mode, which is not there in rotate normal

  2. Jason,

    is there any offset when in other orientations (inverted, left)?

  3. rotate is not working please help

  4. my rotate isn't working please help

  5. Bryan & Anonymous,

    I need a little more info in order to understand your problem:

    1. what computer are you using? what ubuntu version?

    2. have you installed the fjbtndrv package?

    3. what do you do to rotate the screen? does the screen display rotates?


  6. Hi!
    thanx for good instructions, touchscreen and rotate now works on my u820 with Ubuntu Jaunty. (When rotated the calibration is a bit off though).

    Output from dmesg:

    fujitsu_usb_touchscreen: fujitsu_touchscreen::loaded::min-max values::x[64,3870] y[304,3960]

    / Anfanglir

  7. Hello,

    I have a P1620. The package installed correctly but when I went to recalibrate, the values are way off. Is there any way to enter values manually in a config file?

  8. Hi Anonymous,

    1) please see the comments in this post http://spareinfo.blogspot.com/2009/05/linux-on-fujitsu-u810-p1620-touchscreen_19.html for instructions oh how to set calibration values manually.

    2) I think that calibration method is easy and well explained, but looking at your comment I see I might not describe the method correctly. What did you do to calibrate the screen? Any suggestions to improve calibration instructions to be better understood?


  9. With the calibration instructions you gave, it wasn't clear where to press in the corners. Do you press the 4 corners of the window in which the script is running, the 4 corners of the hardware screen or something else.

    In past calibration utilities I have used in Linux, just like in Windows a screen will launch with + marks to touch. Can you perhaps show screen shots of exactly where you are to press?

    Also, could you please provide some detailed instructions for installing the fjbtndrv package, please?

    Thank you for your work. I am almost there.


  10. Hi Bill,

    - when I wrote "With the laptop stylus, click
    several times on each of the four corners of the viewable screen, not the corners of the
    hardware screen." I thought that was clear enough. Can you re-write this sentence to be more clear? Maybe I should add a graphic to the instructions ...

    - I know that other calibration utilities are more sophisticated; but doing it more complex would mean more installation possible incompatibilities (gnome-kde,xfce,...), longer development (graphics functions, ....). I just wanted a fast and easy calibration method, and I thinks it works well enough.

    - for installing the fjbtndrv package, I'll write a post later today


  11. This comment has been removed by the author.

  12. Is there anyway to reset the values back to default? I've tried for the past 30 minutes to calibrate the touch screen and no matter what I set the values to, it always just defaults mouse the bottom right portion of the screen opening up the trash can. It worked almost perfectly first installed except the sides were a bit iffy. I will just re-install for the time being. Thanks for all your work!

  13. Hi Alfred,

    to manually enter calibration values, as root, modify the files


    and reboot. For each parameter, enter the same value in both files!

    You can use these values:
    x[64,3870] y[304,3960]

  14. my fujitsu u2010:in

    works well

  15. Thanks that worked perfectly, Up and running perfectly now. All thats left is 3d drivers!

  16. when I sudo make install(in 9.04) i get error in the ending stating:

    ERROR: Module fujitsu_sub_touchscreen does not exist in /proc/modules

    should this be a concern?

  17. Hi Anonymous,

    in your error message I see a typo; it should read fujitsu_usb_touchscreen !

    I guess you modified the install script and mistyped the module name?

    To check whether or not the module is installed correctly just run the following command as root:

    lsmod | grep fujitsu_usb_touchscreen

    and something should appear.


  18. Hi,

    This blog is a gold mine for me !!
    My Fujitsu LifeBook T1010's touchscreen is now plainly usable !

    Default calibration values are right, but when I try to get an accurate calibration, the MaxX and MaxY values doesn't chages, they still show "-1".
    If I save the parameters, the cursor appear in the lower right corner and can't move.
    So, I still use the default values (cursor is only at 10 pixel on the right of the stylus, so it is not perfect, but usable).

  19. Hi Anonymous,

    you have to make sure you are touching the screen on the lower right corner of all the visible screen, also being the screen in rotation 'normal'.

    If you want, email me and we can setup a chat session to solve your issue.

    I'm glad this driver works on a T1010!!


  20. In 9.04, when I try to ./configure fjbtndrv, I get this:

    No package 'x11' found
    No package 'xrandr' found

    any idea what I am doing wrong?

    (I am installing on a u820. I did get the touchscreen working with your instructions--thanks!)

  21. I was able to install libxrandr-dev using the Synaptic Package Manager. Then I needed to install libxtst, and from there I embarked on an hourlong crusade of filling dependencies, mostly grabbing the missing packages through Synaptic but a few times I had to compile from source: hal-0.5.12, util-linux-ng-2.15.1 (to get the latest version of blkid).

    Now I appear to have everything installed and I can see the daemons under startup apps, but the buttons still don't work. Would appreciate any ideas you guys may have. Thanks!

  22. Works like a charm on a Lifebook T1010 using Kubuntu 9.04 x64.
    Is there anybody who i can buy a beer? =o)

  23. Hi Anonymous,

    just drop me an email and I'll let you know how to send me a beer !!

    I'm glad it also worked for you !!

  24. Hi, I'm using a fujitsu u820/u2010 and I first want to thank you for this, it works almost perfectly! The only complaint is that I seem to be experiencing a bug where the calibration does not change if the screen is rotate.
    When the screen is rotated clockwise once, moving down moves the cursor to the right, down moves to the left, left is up and right is down. Anything I can do about it or to help figure out why it is doing this?

  25. Howdy,

    Got my u820 last week (Sept. 2009) and have been trying to get Jaunty 9.04 desktop running the features I bought it for. I installed fjbtndrv and 0.3.5 of the software posted here. Touchscreen works. Rotate does nothing when either rotating the screen to cover the keyboard or pressing the rotate screen button. Any ideas? Is there a way to generate more info to help trouble shoot this?

    Thanks for your software and any help!

  26. @phobiac

    I think the problem is that the rotation utility being called, to tell te touchscreen to rotate, is not being called.

    The reason might be that you are not running the daemon that listen for screen rotation events; once you are logged in, check that this daemos is running with the following command:

    # ps auxw | grep fujitsu

    and you should see something like:

    username 4467 0.0 0.5 9456 5968 ? S Oct06 0:00 python /usr/bin/fujitsu_touchscreen_rotate.py

  27. @howdy

    if your screen is not rotating, I think you have not properly installed the fjbtndrv package.

    To verify if that packaga is running, once you are logged in, type the following command:

    # lsmod | grep fsc

    and you should see something like

    fsc_btns 14384 0

    If not, reinstall the fjbtdrvr package


  28. @howdy (2)

    Also, to verify that the fjbtndrv package is working, you can monitor de dbus with the following command:

    # dbus-monitor --system

    and then pressing the rotation button, the following should appear on the console:

    signal sender=:1.2 -> dest=(null destination) serial=2452 path=/org/freedesktop/Hal/devices/platform_fsc_btns_logicaldev_input; interface=org.freedesktop.Hal.Device; member=Condition
    string "ButtonPressed"
    string "direction"


  29. Howdy again,

    Thanks for the super speedy response! I think fjbtdvr is installed correctly:

    $ lsmod | grep fsc


    fsc_btns 14384 0

    I think fjbtndrv is also working:

    $ dbus-monitor --system

    returns a lot but includes:

    signal sender=:1.0 -> dest=(null destination) serial=620 path=/org/freedesktop/Hal/devices/platform_fsc_btns_logicaldev_input; interface=org.freedesktop.HalDevice; member=Condition
    string "ButtonPressed"
    string "direction"

    I couldn't copy and paste into this window, but I double checked that I typed it correctly. I think this corresponds to your expected output. Any other ideas or suggestions on how to generate relevant output?

    Thank you!

  30. @howdy

    hi again, please read my previous response to @phobiac:

    check that this daemon is running with the following command:

    # ps auxw | grep fujitsu

    and you should see something like:

    username 4467 0.0 0.5 9456 5968 ? S Oct06 0:00 python /usr/bin/fujitsu_touchscreen_rotate.py

  31. Howdy,

    Thanks for sticking with me on this!

    $ ps auxw | grep fujitsu


    username 3289 0.1 0.5 9456 5964 ? S 17:49 0:00 python /usr/bin/fujitsu_touchscreen_rotate.py

    Its probably notable that after I login and as my desktop is being rendered there appears in big green letters:

    fjbtndrv 2.0 started

    I think it sounds like its started, but somehow the information that the screen has rotated or that the button has been pushed is not reaching it?

    Thanks again!

  32. @howdy

    Hi, your setup seems ok to me, but it clearly shows a problem with fjbtndrv package, since this is the one that rotates the screen.

    Can you please type the command:

    $ ps auxw | grep fscd

    then you should see something like:

    username 4457 0.0 0.1 12908 1368 ? S Oct06 0:00 /usr/bin/fscd


  33. Howdy again,

    $ ps auxw | grep fscd
    username 3304 0.0 0.1 12908 1720 ? Sl 19:28 0:00 /usr/bin/fscd

    as well as the grep call.

    Just for clarification, I'm running Jaunty 9.04 desktop, not the netbook remix. I've also just realized that suspend/resume does not appear to work. Suspend seems to work as the computer changes to a state where the battery level light and power indicator lights blink. When I push the power switch to 'resume' the lights stop blinking and come on solid but the system does not resume, at least the monitor remains dark. Based on other posts I've seen on the internet this feature is supposed to work 'out of the box.'

    Others don't seem to be having this much trouble getting Ubuntu up and running. Is it possible Fujitsu has changed something?

    Thanks again for all you help!

  34. @howdy,

    now I have realized you have a u820; that computer has a new / better graphics chipset that you have to be very careful with in linux; google 'poulsbo' or 'linux gma500' to find out how to install / configure latest and best graphic driver for it. This chipset used to have problems at the beginning, but I think all issues are solved now, so it should work.

    The problem of not resuming properly is also probably due to the graphic chipset.

    I understand that the computer completely awakes, apart from graphics: for instance, you can remote login to the computer using ssh (of course, you must have the sshd daemon running to do so).

    So my suggestion is to first fix the graphics awake issue (I don't know the solution, since I own a u810 with another graphics card), and then go back to the rotate issue.

    In order to experience rotate by hand, you can also try the following command to manually rotate, to see what happens:

    # xrandr -o left
    # xrandr -o normal


  35. Howdy at last,

    Thank you for all your help! You are correct about the chipset. I did not realize that these issues were interconnected. I had gone down the road of trying to set up the poulsbo drivers but had problems and decided I was more interested in getting my monitor to rotate. There appears to be a small collection of directions out there. I used:


    Which got things working (some methods generated scary X errors during startup). After getting that taken care of all of your directions worked as is. I can now dual boot Vista and Jaunty and my screen rotates! Hmm, resume still doesn't seem to be working but I think I know a direction to take to sort that one out.

    You're awesome!

  36. @howdy

    I'm glad you have it working now. Congratulations and never give up to have linuc working!!

  37. Have you loaded Karmic Koala on your U810 yet? Touchscreen worked great until I installed the fujitsu button driver. Now when I rotate, the calibration stays the same in a sense. For example, if I rotate 180 degrees, the if I touch the right side of the screen it's the left side where the cursor appears.

    Any idea what I can do to fix this?

    Also, have you thought about putting up your own ppa.launchpad.net so you can easily distribute the driver?

    Thanks for your work. The other methods of setting this up are painful!

  38. Hi Elliot,

    no I haven't upgraded to Karmic yet, main reason being my current available disk space is 200MB, and I cannot even install latest security fixes!!

    I'm planning on doing so by next week-end, though; then, I'll make the proper adjustments to have it working again, so stay tuned!

    Regarding the ppa stuff, I already signed in and have the account created, but haven't got the time to actually put the code there ....

    So, keep an eye on the blog, since I'll be posting by Karmic upgrade experiences soon.


  39. Fantastic work! Had a bit of trouble installing at first (kernel dependency errors, but the kernel wouldn't install...) - not sure what sorted it, but all of a sudden now it works! Calibration program works excellently too, sorted out the edges :) Current settings are:
    min-max values::x[124,3827] y[266,3940]
    min-max values::x[1810,3726] y[1414,3319]
    min-max values::x[68,3886] y[265,4004]

    Again had a bit of trouble installing the rotation drivers; installation failed on those. Then when I turned on my tablet just now - that's fixed itself too! Bizarre, but brilliant. I even get autorotation in tablet mode and an on-screen keyboard!

    The only last hitch is the same as Elliot's; the calibration doesn't seem to follow the rotation. My ps auxw | grep fujitsu output is:
    marc 3516 0.0 0.0 7340 888 pts/0 S+ 00:46 0:00 grep --colour=au to fujitsu

    Any suggestions? Can I use the calibration program in rotated mode to set up a new calibration without spoiling the current settings for standard orientation? Are the 3 different value sets for different orientations?

    Great work, thanks again. :)

  40. Hi Anonymous,

    I'm glad it worked for you.

    Regarding orientation, it's the same calibration parameters that work in any screen rotation position; there's no chance to have 3 different calibration sets, there's no chance to calibrate in other position rather that in normal.

    Your suggestions are quick-fixes, I prefer to go to the root problem: why is rotation not working properly?

    So, let's go to analyze why is rotation not working as expected:

    The reason might be that you are not running the daemon that listen for screen rotation events; once you are logged in, check that this daemon is running with the following command:

    # ps auxw | grep fujitsu

    and you should see something like:

    username 4467 0.0 0.5 9456 5968 ? S Oct06 0:00 python /usr/bin/fujitsu_touchscreen_rotate.py


  41. Thanks for the quick response. :) my ps auxw | grep fujitsu output was given in my last message, and I do appear to be missing the python /usr/bin/fujitsu_touchscreen_rotate.py script; I'll add this to my startup applications (sure I did this before, not sure why it hasn't stuck.) Running the script corrects the calibration, so I guess it was really just that simple! Thanks!

    The only other thing, perhaps not strictly on the same topic, is that the the fjbtndrv package seems to have taken over control of screen brightness buttons, and while they still work, the changes in brightness are much larger increments, usually switching between full and too dim. I don't suppose you know how control of the brightness functions could be restored to the default gnome applet? I can't find any explanations of config settings that seems relevant, and am wary of messing with it and breaking something (which is quite likely, as it's all over my head).

  42. Hi Anonymous,

    I'm glad it's working now!!

    For the brightness issue, I'm sorry I don't know the anser; the fact is that I haven't experienced the same as you; for me, the brightness gnome control works just fine.


  43. Humm, okay. Well nevermind, it's a very minor issue. The rest of my tablet is now pretty much Ubuntu compatible, helped in no small part by this guide. Thanks again.

  44. Hi,

    I just install karmic koala on my u1010, apparently the screen is not rotating. is there any tip?
    thank you for your help.

  45. Hi Herri,

    first, check that you have the fjbtndrv package instaled, this is the one that listen for rotation events:

    To verify if that package is running, once you are logged in, type the following command:

    # lsmod | grep fsc

    and you should see something like

    fsc_btns 14384 0

    If not, reinstall the fjbtdrvr package

  46. It seems updates are interfering with this; my touchscreen and rotation were both working fine, but since updating my kernel the touchscreen has stopped working (auto rotation and buttons still work fine). Initially I found that at-spi-registry in the startup menu seemed to be the source of the problem (as well as other problems with updates crashing); disabling it recovered touchscreen support.
    However further updates have disabled it again, but at-spi-registry is still disabled in the startup menu. I tried removing and reinstalling the components, but to no avail.
    Has anyone else had problems, or could anyone suggest solutions?

  47. To give a little more info; I have a T1010, and the outputs of lsmod | grep fujitsu is:
    "fujitsu_laptop 14224 0"
    while that of dmesg | grep fujitsu is:
    "fujitsu-laptop: BTNI: [0xf0001]
    fujitsu-laptop: driver 0.5.0 successfully loaded"

  48. Hi Anonymous,

    looking at your loaded modules, it is clear that the fujitsu_usb_touchscreen module is not loaded, thus the thouchscreen is not working.

    Some ideas:

    - I don't have any idea about what at-spi-registry is, (I'll look later, it's never too late to learn...), but for me is difficult to understand how this can interfere in the module

    - when doing a kernel upgrade, the module needs to be recompiled / installed again; did you do a
    # make clean
    # make
    # make install

    after kernel upgrade?

    - if so, try to load the module manually; remember to do a script to do so, since it will disable, for a moment, all usb keyboards:

    as root,

    rmmod usbhid
    modprobe fujitsu_usb_touchscreen
    modprobe usbhid

    and tell me how it goes, look at last lines of dmesg


  49. Ahahh, the clean process seemed to do the trick. Sorry, I'm sure that's a pretty basic procedure -_-;. Really appreciate the help and the work that went into this.

  50. Hi Anonymous,

    I'm glad it worked !!


  51. works very well in my u1010(u810) @ubuntu 9.10,thanks.
    my min-max value is x[114,3830],y[273,3960]

  52. doesn't work for me (touchscreen).... :( don't know why.. :-/

  53. Hello I've tried to install the touchscreen drivers in a U820 with Ubuntu 10.4 installed. Needles to say I'm here as it didn't work for me. Following some of the instructions on this Blog I've checked

    # lsmod | grep fsc

    and got nothing so was going to install the fjbtdrvr package but I can't find it out there. Could anybody point me in the correct direction.

    In addition the command:

    # ps auxw | grep fujitsu

    does give me the fujitsu_touchscreen_rotate.py in the list but if I try the command:


    gives me the error No such file or directory /sys/module/fujitsu_usb_touchscreen/parameters/touch_minx

    Any help would be gratefully received.

  54. follow this link for info on installing the fjbtdrv package: http://spareinfo.blogspot.com/2009/04/linux-on-fujitsu-u810-special-keys.html

  55. Thanks for working on this and keeping it current.

  56. Thanks so much for this! Made my nightmare of having to install XP for touchscreen functionality not come true! Blogged about it here... http://breakstuffmajorly.blogspot.com/2011/11/fujitsu-p1620-ubuntu-touchscreen-driver.html