Albrechts Blog

from time to time I’ll report some stories about software I’m currently using/configuring etc.

Ubuntu Karmic on FSC Lifebook P1610

For a year or so I run Ubuntu (Hardy) on a Fujitsu Siemens P1610 convertible. Last week I updated it to Karmic and had do redo (at least partially) the special setup steps needed on this hardware.

As the P1610 has a Touchcsreen which can be converted into Tablet PC mode, obviously this part is the most crucial setup task.

Last year I found enough information on the net to complete this setup (and finally got all hardware working, including the fingerprint scanner, with Karmic simply install the fprint packages).

The touchscreen in my setup is controlled by a perl script (I think I got it from http://www.coderaptors.com/?Kubuntu_on_a_Lifebook_P1610 or http://samengstrom.com/nxl/3566/p1510_touchscreen_page.en.html) which is fired by the fsc_btn driver (http://sourceforge.net/projects/fjbtndrv/develop)

The perl script needs a special module:http://search.cpan.org/~ctrondlp/X11-GUITest-0.21/GUITest.pm and fscrotd (part of fjbtndrv) two rotation scripts. These scripts call the perl script with apropriate parameters to adjust the pen to the rotated geometry.

This time I have put all together in Ubuntu Karmic packages (you can get them at http://www.algepop.net/users/alge/p1610 or as part of our local ubuntu archive at http://ubuntu.uni-klu.ac.at/). The fjbtndrv uses DKMS, so it should compile the kernel module itself. The fsc-p1610 package contains the special scripts und depends on the needed fjbtndrv and perl package.

BTW, I use the fjbtndrv package also on my new Fujitsu T5010 (also a convertible).

30 Responses to “Ubuntu Karmic on FSC Lifebook P1610”

  1. jonas Says:

    Hi

    very Thankfull for your blog about karmic on p1610,
    I have this little problem, touchscreen, rotation with screen buttons works, but after rotation the pen dosn’t follow the rotation.
    Is there more things i have to do, maybe something with wacom
    xsetwacom list doesn’t return any, this is brand new karmic installation

    Thanks

  2. alge Says:

    I guess you are right, pen rotation after rotating via button-press doesn not work yet, only via flip-panel.

    If we would know where to put a script which gets additionally fired by the rotate button, we would have to do something like

    killall enable_touchscreen
    enable_touchscreen OPT

    there, where OPT should be (in turn) “” “-cw” and “-ccw” (and I’v currently forgotten how 180 degrees is coded as option for enable_touchscreen)

    And yes, xsetwacom doesnt help here, it doesnt “see” the apropriate devices.

  3. jonas Says:

    only via flip-panel? you mean when I change the laptop to tablet mode right?(with out pressing any button,the screen rotates to the wright, the on board app. comes up but the pen-input doesn’t follow.

    ps not a pro. with linux I am still learnig ,

  4. alge Says:

    If pen doesn’t follow screen rotation it means, that enable_touchscreen doesn’ get restarted correctly (maybe even multiple instances are running).

    If it works correctly you should see something like this:

    normal (laptop) mode:
    $ ps axuw| grep enable
    alge 2824 0.0 0.3 8496 3460 ? S Dec18 0:00 /usr/bin/perl -w /usr/bin/enable_touchscreen

    tablet mode:
    $ ps axuw| grep enable
    alge 21298 0.1 0.3 8496 3480 ? S 19:20 0:00 /usr/bin/perl -w /usr/bin/enable_touchscreen -cw

    only one enable_touchscreen instance running with or withou “-cw” option.

    Do you use my deb files? Maybe I forgot to enclose some crucial part into them…

    You need at least one file /usr/lib/fjbtndrv/rotate-script and two symlinks to it:

    $ ls -l /usr/lib/fjbtndrv/
    insgesamt 16
    lrwxrwxrwx 1 root root 13 2009-12-11 23:50 rotate-normal -> rotate-script
    -rwxr-xr-x 1 root root 1115 2009-12-11 22:44 rotate-script
    lrwxrwxrwx 1 root root 13 2009-12-11 23:50 rotate-tablet -> rotate-script

    The rotate-script is now also available separately at http://www.algepop.net/users/alge/p1610/rotate-script

    (This differs somewhat from the sample scripts contained in the original fjbtndrv package, their script failed for me to kill the helper scripts before restarting them)

  5. jonas Says:

    yes I used only yours deb-files,

    fjbtndrv_2.1.0-1uk3_i386.deb
    fsc-btns-kernel-source_2.1.0-1uk3_i386.deb
    fscd_2.1.0-1uk3_i386.deb
    fsc-p1610_1.0_i386.deb
    fscrotd_2.1.0-1uk3_i386.deb
    libx11-guitest-perl_0.21-1_i386.deb

    my out puts differs on two points from yours

    1 tablet mmode output
    1753 0.0 0.3 7560 3520 ? S 21:40 0:00 /usr/bin/perl -w /usr/bin/enable_touchscreen (same as normal mode)

    2 ls -l /usr/lib/fjbtndrv/

    rotate-normal -> rotate-script
    lrwxrwxrwx 1 root root 13 2009-12-15 11:56 rotate-tablet -> rotate-script
    -rwxr-xr-x 1 root root 622 2009-12-11 20:57 rotate-wacom.sh
    -rwxr-xr-x 1 root root 869 2009-12-11 20:57 switch-vkeyboard.sh
    I guss this output is ok right? even if the name of the scrpits are diffrent from yours

  6. alge Says:

    ahh: “rotate-script” in directory /usr/lib/fjbtndrv/ is missing. So the symlinks rotate-tavlet and rotate-normal are not working.

    Simply do

    sudo bash
    cd /us/lib/fjbtndrv
    wget http://www.algepop.net/users/alge/p1610/rotate-script
    chmod 755 rotate-script

    Then it should be working (and I should fix my deb files)

  7. jonas Says:

    Hi
    forget the last post
    I took a look at your files and downloaded the rotate-script to the propriate place (usr/lib/fjbtndrv) and it worked :)

    now it rotates with -cw option
    but my bigest wish is that it works with -inverted option, any suggestions?

    many thanks

  8. alge Says:

    You could at least stop/start it by hand, just kill the PID of enable_touchscreen and start it with “enable_touchscreen -ccw”

  9. jonas Says:

    I meant if you can rotate 180ยบ, why is that option not available in the script? Is that more difficult than cw and ccw

  10. alge Says:

    Ok, I didnt recognize that this is missing, I’ll have a look on it …

  11. rick Says:

    Hi

    Need some help

    After all deb packages installed my system started behaving strangely

    Let me explain;

    If I don’t touch the screen everything works perfectly, including the screen rotate button.

    The problem comes when I touch the screen.

    That is when my system is behaving strangely.

    The keyboard stops working.
    No response to any action.
    Neither CAPS (light doesn’t turn on or off) or Ctrl + Alt + F1 to go to a tty.
    The mouse does not respond, no movement or click

    Only the pointer moves if I touch the screen but the response is ver slowly and unresponsive to any action or click

    Any idea to solve this problem?

    Thanks in advance and sorry for my bad english

  12. alge Says:

    I guess this can only mean that the perl script enable_touchscreen doesnt work properly. maybe it is running in multiple instances with concurring access to the serial device.

    First please try to add the missing rotate script following the instructions in comment number 6 above.

    If you already did this and the error occurs with this script, please disable the pen script temporaryly by:

    sudo chmod 644 /usr/bin/enable_touchscreen

    you can re-enable it later:

    sudo chmod 755 /usr/bin/enable_touchscreen

    Of course, then no pen input and pen rotation is avaiable, but hopefully the error should be gone. Please let me know …

    Additional you could look into ~/.xsession-errors if this logfile contains something which could be related to the misbehaviour …

  13. rick Says:

    Thanks for the quick response.

    I had included your script of message 6

    As you say, the error occurs with the script enabled

    Changing permissions of /usr/bin/enable_touchscreen from 755 to 644 my computer returns to previus state

    For your orientation, disabling the your script my screen continues working on touch and also the rotation button.

    Touchscreen works before installing your deb packages and also the rotation button but pointer didn’t follow pen.

    Before installing your packages I had installed fjbtndrv from source. Perhaps this is the origin of the strange behavior of my computer after installed deb packages

    In a few hours I have to travel and no return before 2010
    I couldn’t try anything else but will be watching the thread.

    Thanks for your time and support and excuse my bad english once again

  14. alge Says:

    Finally I found a way to enable pen rotation also through the hardware rotate button.

    This button fires the /usr/lib/fjbtndrv/rotate-wacom.sh script, which assumes that the pen can be controlled via wacom-tools. But this doesnt work for the P1610, so I modified it a little bit that, if run on a P1610, the script correctly falls back to use enable_touchscreen (which now has a -inv option for inverted mode (180 degrees rotation)). If used on non-P1610 hardware, the script should behave as before (I will see if this is true after updating my T5010).

    The scripts and deb files on http://www.algepop.net/users/alge/p1610/ are now updated.

    I also found a way to make the onscreen keyboard (I prefer onboard) sticky so that it is available on all desktops. This needs an additional package: wmctrl, fsc-p1610 now depends on it.

  15. jonas Says:

    After your last changes
    I don’t now how to put it, but you have made using the p1610 with ubuntu just a joy ,many many THANKS!

    ps hope my english is ok

  16. rick Says:

    Hi

    Here again

    I installed my p1610 from scratch.

    Screen rotates ok but touchscreen is not enabled.

    How can I enable it?

    Thanks

  17. alge Says:

    Can you please check if the perl script enable_touchscreen is running (after first rotate operation), if not try running it manually. Does the touchscreen work then?

  18. rick Says:

    Ok

    Let’s go.

    I’ve installed linux from scratch.
    build-essential -> installed
    All your deb packages.
    Must I copy enable_touchscreen (and the other scripts) and replace the original on /usr/bin/enable_touchscreen ?

    enable_touch_scren is running
    $ ps ax | grep enable_touchscreen

    1854 ? S 0:00 /usr/bin/perl -w /usr/bin/enable_touchscreen

    If I execute the script on a terminal
    $ sudo /usr/bin/enable_touchscreen
    Initializing… (please don’t touch the screen)
    sh: wacdump: not found
    Ready!

    Thanks for your support

  19. alge Says:

    ok, wacom-tools is missing, just install it:

    apt-get install wacom-tools

    and I should add it to the package dependencies of fsc-p1610

  20. alge Says:

    … you dont need to overwrite the scripts, I’ve only put the extracted scripts for easier reference on my webpage, the deb files contain the same scripts.

  21. rick Says:

    You are “the master”

    Nobody on the web had solved the problem of calibration when you rotate the screen and you did.

    Thank you very much for sharing.

    With your permission I want to share this information with a community of Spanish UMPC http://www.todoumpc.com

    Logically referring to your website and you

  22. rick Says:

    upss

    Last question, I promise you

    How can I change the initial possition of “onboard” ?
    Or disable it?

    For example,……

    Instead of on top, on bottom

  23. rick Says:

    I myself have found the solution to disable onboard when rotate screen.
    (correct me if I’m wrong please)

    Editing /usr/lib/fjbtndrv/rotate-script and comment with # lines where you execute onboard after rotate screen

    # “$oskb_bin” &
    Lines 29, 41, 61

    Now I only have to know how to change initial positon of onboard

    Thanks again

  24. alge Says:

    I’m glad that I could help, feel free to share this information …

  25. alge Says:

    onbaord should honor the standard Xt commandline options, e.g. -geometry “width”x”height”+”xoffset”+”yoffset”, I’ll try this. Of course a position near bottom of screen would be better.

  26. alge Says:

    1. correct,

    2. try the -geometry thing

  27. hornsby Says:

    Hi Albrecht,
    I just installed Karmic on a brand new Fjitsu T5010, and I’m surprised that the tablet feature does not work out of the box (not to speak of the tablet buttons and rotation), but everything else does..
    Stupid question: is there anything special you had to do to activate the tablet?
    Maybe the problem is that I have the “non-glare” version whch supports multi-touch mode along with pen mode?
    thanks,
    hornsby

  28. alge Says:

    yes, there is something special:

    I had to add a init script which does some device renaming before the X server starts:

    create a init script (mode set to 755) named /etc/init.d/wacom-names wiht content:

    #! /bin/sh
    # wacom-names script by Roger E. Critchlow, Jr. (4-12-09)
    # modified by gali98/Favux (4-14-09)
    #
    # Obtained/shortened by aliencam (aliencam.net) from:
    # ubuntuforums.org/showthread.php?p=7068115#post7068115
    #
    # modified by Hauke Schade on 2009-10-29
    #
    ## find any wacom devices
    for udi in `hal-find-by-property –key input.x11_driver –string wacom`
    do
    type=`hal-get-property –udi $udi –key input.x11_options.Type`
    ## rewrite the names that the Xserver will use
    hal-set-property –udi $udi –key info.product –string $type
    done

    # end of script
    # beware of double hyphens of long command options above being converted to a dash when
    # copy pasting directly from browser window

    link it into /etc/rcS.d at a very early stage (before the X server starts)

    ln -sf ../init.d/wacom-names /etc/rcS.d/S27wacom-names

    and it should work on the next boot.

    I have no idea if this is related to a multi-touch enabled version, I even dont know what version I have. The screen is at least non glare, somewhat rough.

    How would I detect this? And how should multi touch work with only one inductive pen?

  29. hornsby Says:

    Thanks for your help, but it doesn’t work for me.
    If I do a “xinput –list” I don’t see anything that looks like a tablet device, and a “hal-find-by-property –key input.x11_driver –string wacom” returns nothing..
    Do I have to compile some kernel modules?

    The multi-touch feature works nicely under microsoft: One can use the fingertips instead of the pen, and by touching with two fingers one can e.g zoom in and out of documents by varying the distance between the fingers (iphone feeling..) No idea how to do this under linux–it’s certainly not my priority at the moment– though it turns out to be quite convenient/addictive..

    greetings, hornsby

  30. hornsby Says:

    This is now partially solved, see http://ubuntuforums.org/showpost.php?p=8769881&postcount=789