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).
December 15th, 2009 at 12:15 pm
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
December 17th, 2009 at 6:58 am
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.
December 20th, 2009 at 5:47 pm
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 ,
December 20th, 2009 at 7:46 pm
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)
December 21st, 2009 at 10:07 pm
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
December 21st, 2009 at 10:19 pm
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)
December 21st, 2009 at 10:25 pm
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
December 21st, 2009 at 10:40 pm
You could at least stop/start it by hand, just kill the PID of enable_touchscreen and start it with “enable_touchscreen -ccw”
December 22nd, 2009 at 11:49 pm
I meant if you can rotate 180ยบ, why is that option not available in the script? Is that more difficult than cw and ccw
December 23rd, 2009 at 1:11 pm
Ok, I didnt recognize that this is missing, I’ll have a look on it …
December 27th, 2009 at 1:43 am
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
December 27th, 2009 at 11:01 am
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 …
December 27th, 2009 at 4:10 pm
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
January 2nd, 2010 at 5:44 pm
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.
January 3rd, 2010 at 1:37 am
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
January 15th, 2010 at 12:57 am
Hi
Here again
I installed my p1610 from scratch.
Screen rotates ok but touchscreen is not enabled.
How can I enable it?
Thanks
January 15th, 2010 at 7:45 am
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?
January 15th, 2010 at 3:35 pm
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
January 15th, 2010 at 8:45 pm
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
January 15th, 2010 at 8:48 pm
… 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.
January 16th, 2010 at 2:21 am
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
January 16th, 2010 at 2:34 am
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
January 16th, 2010 at 2:45 am
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
January 16th, 2010 at 10:57 am
I’m glad that I could help, feel free to share this information …
January 16th, 2010 at 11:00 am
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.
January 16th, 2010 at 11:02 am
1. correct,
2. try the -geometry thing
January 24th, 2010 at 3:10 pm
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
January 24th, 2010 at 6:56 pm
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?
January 25th, 2010 at 8:32 pm
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
February 3rd, 2010 at 9:28 pm
This is now partially solved, see http://ubuntuforums.org/showpost.php?p=8769881&postcount=789