update 2009.05.12: see this newer post: Linux on a Fujitsu U810, P1620 - Touchscreen IV
After having a reader asking me for the u810 touchscreen driver for his Fujitsu P1620, yesterday we made some tests and, good news!!
The driver works, even it needs some calibration parameters adjustments.
It works on a Fujitsu P1620 with ubuntu 9.04 (Jaunty) 64bits !!
We'll do some more testing but I hope to post a new version of the driver that will work for both P1620 and the U810, so stay tuned to have your screen 100% functional!!
2009-04-29
Linux on a Fujitsu U810 - Suspend / Resume update
Update 2009-05-11: see this newer post as the solution to this issue (it seems that gnome-phone-manager was crashing gnome-power-manager, weird, right?)
With the latest Jaunty update, I noticed that when closing the lid the computer was not going into suspend.
I went to System -> Preferences -> Power Management, and my surprise was that there I couldn't find any 'when laptop lid is closed' option, nor 'on battery power' tab.
I finally found the solution to have all those options back:
1 go to System -> Preferences -> Power Management, select in General tab the 'Always display an icon' option
2 click on the icon in the panel, and then those options came back!!
There I selected again that, on close lid, have the computer go to suspend.
I don't know why the latest update just deleted my power settings.
Update: the day after, after resuming the laptop, going to System -> Preferences -> Power Management showed again the missing options. Weird, isn't it?
Why there weren't there the day before? Did my actions really solved the issue or there was something else?
Who knows, but suspend / resume is back to normal and working great!!
With the latest Jaunty update, I noticed that when closing the lid the computer was not going into suspend.
I went to System -> Preferences -> Power Management, and my surprise was that there I couldn't find any 'when laptop lid is closed' option, nor 'on battery power' tab.
I finally found the solution to have all those options back:
1 go to System -> Preferences -> Power Management, select in General tab the 'Always display an icon' option
2 click on the icon in the panel, and then those options came back!!
There I selected again that, on close lid, have the computer go to suspend.
I don't know why the latest update just deleted my power settings.
Update: the day after, after resuming the laptop, going to System -> Preferences -> Power Management showed again the missing options. Weird, isn't it?
Why there weren't there the day before? Did my actions really solved the issue or there was something else?
Who knows, but suspend / resume is back to normal and working great!!
2009-04-20
Linux on a Fujitsu U810 - Touchscreen III
Update 2009.05.12: see this newer post:
Linux on a Fujitsu U810, P1620 - Touchscreen IV
This is a replacement of my previous entries on how to get the touchscreen working; please forget about previous posts (I and II), which works better and it's easier to install and maintain.
In order to have the touchscreen working, here's the final solution where:
1. configure bios to tablet mode
go into bios and select touchscreen to work in tablet mode
2 install a kernel module: u810_tablet
Latest version: 0.2.4 (2009.04.20)
Download the source code for the u810_tablet kernel module, or just download the already compiled one (for ubuntu 9.04, kernel 2.6.28).
To compile the module:
- make sure you have the linux development environment installed; I would suggest to install the packages using synaptics package manager, and select linux-headers, gcc
- uncompress the downloaded file, cd to the newly created directory and just type
# make
and as root,
# make install
To just install the already compiled module (if you compiled the module, you don't need to follow this step):
as root, copy the module file (u180_tablet.ko) to /lib/modules/`uname -r`/extra/
# cp u810_tablet.ko /lib/modules/`uname -r`/extra/
as root, run depmod command
# depmod -a
3 copy or edit two files to make the u810_tablet module load correctly at boot and when X loads
In order to have the module load correctly at boot, as root edit the file /etc/rc.local and insert the following lines at any place (you can download rc.local here):
In order to have the windowing system recognize the module, copy this file as /etc/hal/fdi/policy/u810_tablet.fdi.
4 install one python script and one small c program to have the touchscreen work correctly after rotation
Download u810_rotate_helper and u810_rotate.py.
as root,
- copy both files to /usr/bin
- make u810_rotate_helper suid:
# chmod +s /usr/bin/u810_rotate_helper
Source code for u810_rotate_helper is here. You can easily compile it yourself just running the command
gcc u810_rotate_helper.c -o u810_rotate_helper.
Activate u810_rotate.py to start when you log into gnome
Once logged into gnome, go to System -> Preferences -> Starup Applications and add /usr/bin/u810_rotate.py to start when you log in
Reboot and enjoy the touchscreen !!
I can recommend xournal, gournal as hand-writing note taking applications (no handwriting recognition though).
You'll need to repeat step 2 every time there's a new kernel version (like if you change from 2.6.28 to 2.6.29) but not if you just stick to the same ubuntu release (where usually kernel version after upgrade goes from 2.6.28-8 to 2.6.28-11).
Pending tasks
- autorotate integrated mouse-pointer coordinates when screen is rotated. That should be easy....
- configure evdev to handle long-press as right-mouse click
If you installed a previous version detailed in a previous post
- restore your initramfs:
make sure u180_tablet is not in /etc/initramfs-tools/modules file; if it was before, remove it and as root run the command # update-initramfs -u 'all'
- restore your acpi-support file
make sure u810_tablet is not included in in the MODULES variable in /etc/default/acpi-support file
Developer notes
- currently if using rotation using xinput facilities with evdev module does not work properly, even there's a bug fix already tested that suggests that it should work, so rotation is made by the driver
- u810_tablet module parameters
orientation=normal:0|right:1|inverted:2|left:3
maxx,maxy,minx,miny (when normal)
printpos=0|1, to print via /var/log/kern.log x/y coordinates, for debugging
Linux on a Fujitsu U810, P1620 - Touchscreen IV
This is a replacement of my previous entries on how to get the touchscreen working; please forget about previous posts (I and II), which works better and it's easier to install and maintain.
In order to have the touchscreen working, here's the final solution where:
- the point precision is very sharp
- works with standard Xorg drivers
- works after suspending / resume cycle without trouble
- works after rotating the screen
- works even with an external monitor connected, so the touchscreen is remapped to fit the whole screen area
- works very nicely for clicking as well as for ink-painting/writing with ink software like xournal !!!
- configure bios to tablet mode
- install a kernel module: u810_tablet
- copy two files to make the u810_tablet module load correctly at boot and when X loads
- install one python script and one small c program to have the touchscreen work correctly after rotation
1. configure bios to tablet mode
go into bios and select touchscreen to work in tablet mode
2 install a kernel module: u810_tablet
Latest version: 0.2.4 (2009.04.20)
Download the source code for the u810_tablet kernel module, or just download the already compiled one (for ubuntu 9.04, kernel 2.6.28).
To compile the module:
- make sure you have the linux development environment installed; I would suggest to install the packages using synaptics package manager, and select linux-headers, gcc
- uncompress the downloaded file, cd to the newly created directory and just type
# make
and as root,
# make install
To just install the already compiled module (if you compiled the module, you don't need to follow this step):
as root, copy the module file (u180_tablet.ko) to /lib/modules/`uname -r`/extra/
# cp u810_tablet.ko /lib/modules/`uname -r`/extra/
as root, run depmod command
# depmod -a
3 copy or edit two files to make the u810_tablet module load correctly at boot and when X loads
In order to have the module load correctly at boot, as root edit the file /etc/rc.local and insert the following lines at any place (you can download rc.local here):
# Correct u810_tablet module load - start
# Author: zmiq2
# Info: spareinfo.blogspot.com
MODPATH=/sbin
RMMOD=$MODPATH/rmmod
MODPROBE=$MODPATH/modprobe
. /lib/lsb/init-functions
log_action_begin_msg "Starting u810_tablet module load"
log_progress_msg " u810_tablet module load:unload usbhid"
$RMMOD usbhid
log_progress_msg " u810_tablet module load:load u810_tablet"
$MODPROBE u810_tablet
log_progress_msg " u810_tablet module load:reload usbhid"
$MODPROBE usbhid
log_action_begin_msg "Finished u810_tablet module load"
log_end_msg 0
# Correct u810_tablet module load - end
In order to have the windowing system recognize the module, copy this file as /etc/hal/fdi/policy/u810_tablet.fdi.
4 install one python script and one small c program to have the touchscreen work correctly after rotation
Download u810_rotate_helper and u810_rotate.py.
as root,
- copy both files to /usr/bin
- make u810_rotate_helper suid:
# chmod +s /usr/bin/u810_rotate_helper
Source code for u810_rotate_helper is here. You can easily compile it yourself just running the command
gcc u810_rotate_helper.c -o u810_rotate_helper.
Activate u810_rotate.py to start when you log into gnome
Once logged into gnome, go to System -> Preferences -> Starup Applications and add /usr/bin/u810_rotate.py to start when you log in
Reboot and enjoy the touchscreen !!
I can recommend xournal, gournal as hand-writing note taking applications (no handwriting recognition though).
You'll need to repeat step 2 every time there's a new kernel version (like if you change from 2.6.28 to 2.6.29) but not if you just stick to the same ubuntu release (where usually kernel version after upgrade goes from 2.6.28-8 to 2.6.28-11).
Pending tasks
- autorotate integrated mouse-pointer coordinates when screen is rotated. That should be easy....
- configure evdev to handle long-press as right-mouse click
If you installed a previous version detailed in a previous post
- restore your initramfs:
make sure u180_tablet is not in /etc/initramfs-tools/modules file; if it was before, remove it and as root run the command # update-initramfs -u 'all'
- restore your acpi-support file
make sure u810_tablet is not included in in the MODULES variable in /etc/default/acpi-support file
Developer notes
- currently if using rotation using xinput facilities with evdev module does not work properly, even there's a bug fix already tested that suggests that it should work, so rotation is made by the driver
- u810_tablet module parameters
orientation=normal:0|right:1|inverted:2|left:3
maxx,maxy,minx,miny (when normal)
printpos=0|1, to print via /var/log/kern.log x/y coordinates, for debugging
2009-04-15
Linux on a Fujitsu U810 - Touchscreen II
2009.04.20 update: disregard this entry and go to read the better Linux on a Fujitsu U810 - Touchscreen III
The rest of this entry is obsolete.
This is a follow up of this previous entry, so make sure you read both!
1 Source code for u810_tablet kernel module
You can find here the source code for the u810_tablet kernel module. I'm willing to update it with any suggestions or improvements anyone may suggest.
Latest version: 0.2.3 (2009.04.15)
To compile the module:
- make sure you have the linux development environment installed; I would suggest to install the packages using synaptics package manager, and select linux-headers, gcc
- uncompress the downloaded file, cd to the newly created directory and just type
# make
and as root,
# make install
To load the new module, just unload the old one and load the new one:
as root:
# rmmod u810_tablet
# modprobe u810_tablet
To have the module load correctly on boot, follow step 3 described in this previous post
Read Developer Notes at the end of this post for some module parameters documentation
2 regarding step 4 of this previous entry, i have found that:
- using the evdev module, xournal works very well but the module doesn't work as expected, since last clicked coordinates remain in memory, so when you lift the pen and press in another area, the computer thinks you selected the whole area
- using the evtouch module, the touchscreen also works very well, but for an unkown reason xournal does not work; I haven't tried any other inking software
I'm currently investigating this issue because in both causes there are annoying effects.
- in order to have the u810_tablet work with xorg-evdev module, use this file as /etc/hal/fdi/policy/u810_tablet.fdi
- in order to have the u810_tablet work with xorg-evtouch module, use this file as /etc/hal/fdi/policy/u810_tablet.fdi
It is interesting to play with "System -> Preferences -> Mouse -> Accessibility Tab -> Trigger secondary click by holding down the primary button" option when working with evdev module, to make a long press act as right-click.
Developer notes
u810_tablet module info
- parameters
orientation=normal:0|right:1|inverted:2|left:3
maxx,maxy,minx,miny (when normal)
printpos=0|1, to print via /var/log/kern.log x/y coordinates, for debugging
$ ls -l /sys/module/u810_tablet/parameters/
total 0
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 orientation
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 printpos
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_maxx
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_maxy
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_minx
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_miny
To change touchscreen orientation
# echo "1" > orientation
The rest of this entry is obsolete.
This is a follow up of this previous entry, so make sure you read both!
1 Source code for u810_tablet kernel module
You can find here the source code for the u810_tablet kernel module. I'm willing to update it with any suggestions or improvements anyone may suggest.
Latest version: 0.2.3 (2009.04.15)
To compile the module:
- make sure you have the linux development environment installed; I would suggest to install the packages using synaptics package manager, and select linux-headers, gcc
- uncompress the downloaded file, cd to the newly created directory and just type
# make
and as root,
# make install
To load the new module, just unload the old one and load the new one:
as root:
# rmmod u810_tablet
# modprobe u810_tablet
To have the module load correctly on boot, follow step 3 described in this previous post
Read Developer Notes at the end of this post for some module parameters documentation
2 regarding step 4 of this previous entry, i have found that:
- using the evdev module, xournal works very well but the module doesn't work as expected, since last clicked coordinates remain in memory, so when you lift the pen and press in another area, the computer thinks you selected the whole area
- using the evtouch module, the touchscreen also works very well, but for an unkown reason xournal does not work; I haven't tried any other inking software
I'm currently investigating this issue because in both causes there are annoying effects.
- in order to have the u810_tablet work with xorg-evdev module, use this file as /etc/hal/fdi/policy/u810_tablet.fdi
- in order to have the u810_tablet work with xorg-evtouch module, use this file as /etc/hal/fdi/policy/u810_tablet.fdi
It is interesting to play with "System -> Preferences -> Mouse -> Accessibility Tab -> Trigger secondary click by holding down the primary button" option when working with evdev module, to make a long press act as right-click.
Developer notes
u810_tablet module info
- parameters
orientation=normal:0|right:1|inverted:2|left:3
maxx,maxy,minx,miny (when normal)
printpos=0|1, to print via /var/log/kern.log x/y coordinates, for debugging
$ ls -l /sys/module/u810_tablet/parameters/
total 0
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 orientation
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 printpos
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_maxx
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_maxy
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_minx
-rw-r--r-- 1 root root 4096 2009-04-15 20:02 touch_miny
To change touchscreen orientation
# echo "1" > orientation
Linux on a Fujitsu U810 - External Monitor II
update - 2009.05.07 - please disregard this post and go to the newer and better solution at Linux on a Fujitsu U810 - External Monitor III
This post is a follow up of my previous posts here and here.
As of today, 2009.04.15, ubuntu jaunty 9.04 xorg intel video driver package still does not include the patch that makes external monitor working. I hope next release will include it, since today's latest ubuntu version takes up to 2009.02.28's changes, while our desired patch was included in 2009.03.05 !!
In order to have the external monitor working now, without worries, follow these steps:
1 download this debian package (see note below for details on how I made the package)
2 install the package
as root, execute
# dpkg -i xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
(you may see some messages regarding you are downgrading the package's current version, but it doesn't matter as this is a temporary solution)
3 make sure your /etc/X11/xorg.conf file is like
(note the line Option "SDVOBOutput" "VGA-1")
4 reboot
Done!!
note: you must run step 2 every time you upgrade the video-intel driver module using ubuntu's update manager, since it will install an old unpatched version; you may also unselect the xorg-xserver-video-intel driver package from the packages list, so it doesn't overwrite your hand-installed package
Developer notes
The package posted above does not include any harmful stuff, but of course I'm not responsible of anything, it is provided as it is, blah blah blah...
I created the package downloading the ubuntu xorg intel driver available on 2009.01.23 (xserver-xorg-video-intel_2.6.1-1ubuntu1), and I applied the already available patch at that time.
I tried to do the same today, based on the latest 2.6.3 version and applying the current patch (which is different to the patch I applied to 2.6.1), but I haven't succeed and I don't want to spend more time fiddling since I hope soon ubuntu driver will have the patch included.
The patch available today is not the same as the one I used, but the one I used works anyway!
The steps I followed are:
1. get all code from repositories, as well as latest intel driver code, which already includes the patch
apt-get source xserver-xorg-video-intel
apt-get build-dep xserver-xorg-video-intel
apt-get install devscripts
2. apply the patch
cd xserver-xorg-video-intel-VERSION
(I cannot remember the exact command, something like patch < ....)
3. build the package
dch -l zmiq "Xorg-intel patched for external monitor on u810"
dpkg-buildpackage -b
dh_builddeb
4. install the created package
now you should have a file named like
xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
This post is a follow up of my previous posts here and here.
As of today, 2009.04.15, ubuntu jaunty 9.04 xorg intel video driver package still does not include the patch that makes external monitor working. I hope next release will include it, since today's latest ubuntu version takes up to 2009.02.28's changes, while our desired patch was included in 2009.03.05 !!
In order to have the external monitor working now, without worries, follow these steps:
1 download this debian package (see note below for details on how I made the package)
2 install the package
as root, execute
# dpkg -i xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
(you may see some messages regarding you are downgrading the package's current version, but it doesn't matter as this is a temporary solution)
3 make sure your /etc/X11/xorg.conf file is like
Section "Device"
Identifier "Configured Video Device"
Option "SDVOBOutput" "VGA-1"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
SubSection "Display"
Virtual 2048 2048
EndSubSection
EndSection
(note the line Option "SDVOBOutput" "VGA-1")
4 reboot
Done!!
Since the FN+A keyboard shortcut does not work to switch the external monitor on / off, see this tip to have fast switching between external monitor on/off just pressing the brigthness-up button.
note: you must run step 2 every time you upgrade the video-intel driver module using ubuntu's update manager, since it will install an old unpatched version; you may also unselect the xorg-xserver-video-intel driver package from the packages list, so it doesn't overwrite your hand-installed package
Developer notes
The package posted above does not include any harmful stuff, but of course I'm not responsible of anything, it is provided as it is, blah blah blah...
I created the package downloading the ubuntu xorg intel driver available on 2009.01.23 (xserver-xorg-video-intel_2.6.1-1ubuntu1), and I applied the already available patch at that time.
I tried to do the same today, based on the latest 2.6.3 version and applying the current patch (which is different to the patch I applied to 2.6.1), but I haven't succeed and I don't want to spend more time fiddling since I hope soon ubuntu driver will have the patch included.
The patch available today is not the same as the one I used, but the one I used works anyway!
The steps I followed are:
1. get all code from repositories, as well as latest intel driver code, which already includes the patch
apt-get source xserver-xorg-video-intel
apt-get build-dep xserver-xorg-video-intel
apt-get install devscripts
2. apply the patch
cd xserver-xorg-video-intel-VERSION
(I cannot remember the exact command, something like patch < ....)
3. build the package
dch -l zmiq "Xorg-intel patched for external monitor on u810"
dpkg-buildpackage -b
dh_builddeb
4. install the created package
now you should have a file named like
xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
2009-04-07
Linux on a Fujitsu U810 - Tablet mode
Once you have the touchscreen installed as described here, specially in steps 5 and 6, you have the computer setup for tablet mode.
By tablet mode I understand that:
- you have the screen rotated, so the keyboard is not accessible
- you mainly work with the stylus. Finger touch also works, but nail-touching
In this mode I still need to find:
- on-screen-keyboard (options: gok, onboard, ...)
- how to make scrollbars and buttons a little wider, so they are easier to touch
- how to rearrange panel to fit all icons when screen is rotated
So, does the unit works in tablet mode? yes (rotated screen works, touchscreen works)
Is it easy to work in tablet mode? It depends on what you do; web surfing or using a note taking application is fine !
By tablet mode I understand that:
- you have the screen rotated, so the keyboard is not accessible
- you mainly work with the stylus. Finger touch also works, but nail-touching
In this mode I still need to find:
- on-screen-keyboard (options: gok, onboard, ...)
- how to make scrollbars and buttons a little wider, so they are easier to touch
- how to rearrange panel to fit all icons when screen is rotated
So, does the unit works in tablet mode? yes (rotated screen works, touchscreen works)
Is it easy to work in tablet mode? It depends on what you do; web surfing or using a note taking application is fine !
Linux on a Fujitsu U810 - Eye TV Usb stick
Ubuntu doesn't include the required modules to have that stick working.
This is a hybrid usb stick: analog & digital receiver, but by now I only got it working as an analog receiver.
1 get the firmware that needs to be downloaded to the stick
# In order to use, you need to:
# 1) Download the windows driver with something like:
# wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
# 2) Extract the file hcw85bda.sys from the zip into the current dir:
# unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys
# 3) run the script:
# ./extract_xc3028.pl
# 4) copy the generated file:
# cp xc3028-v27.fw /lib/firmware
Get extract_xc3028.pl here.
2 compile the required modules
sudo apt-get install build-essential mercurial gcc linux-headers-`uname -r`
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental/
cd v4l-dvb-experimental
make && sudo make install
sudo echo "em28xx" >> /etc/modules
sudo echo "em2880-dvb" >> /etc/modules
=> insert usb stick now; new module should be loaded (look at dmesg)
3 find created devices
$ cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf0340000 irq 17
1 [Em28xx Audio ]: Empia Em28xx AudEm28xx Audio - Em28xx Audio
Empia Em28xx Audio
=> audio=hw.1
4 Analog TV - run mplayer (xawt or other should also work)
Devel notes
- command to record just audio
- firmware download that doesn't work:
This is a hybrid usb stick: analog & digital receiver, but by now I only got it working as an analog receiver.
1 get the firmware that needs to be downloaded to the stick
# In order to use, you need to:
# 1) Download the windows driver with something like:
# wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
# 2) Extract the file hcw85bda.sys from the zip into the current dir:
# unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys
# 3) run the script:
# ./extract_xc3028.pl
# 4) copy the generated file:
# cp xc3028-v27.fw /lib/firmware
Get extract_xc3028.pl here.
2 compile the required modules
sudo apt-get install build-essential mercurial gcc linux-headers-`uname -r`
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental/
cd v4l-dvb-experimental
make && sudo make install
sudo echo "em28xx" >> /etc/modules
sudo echo "em2880-dvb" >> /etc/modules
=> insert usb stick now; new module should be loaded (look at dmesg)
3 find created devices
$ cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf0340000 irq 17
1 [Em28xx Audio ]: Empia Em28xx AudEm28xx Audio - Em28xx Audio
Empia Em28xx Audio
=> audio=hw.1
4 Analog TV - run mplayer (xawt or other should also work)
mplayer -tv driver=v4l2:device=/dev/video0:norm=PAL:chanlist=europe-west:alsa:adevice=hw.1:forceaudio:immediatemode=0:amode=0 tv://
Devel notes
- command to record just audio
sudo arecord -D hw:2 -f dat prova.wav
- firmware download that doesn't work:
http://caligari.treboada.net/ubuntu_tdt
wget http://konstantin.filtschew.de/v4l-firmware/firmware_v4.tgz
sudo tar xzvf firmware_v4.tgz -C /lib/firmware
Linux on a Fujitsu U810 - Suspend/Resume
Update (2009.04.21): Suspend / Resume works out-of-the-box; you don't need to make any modifications to any acpi nor pm files, just configure with gnome graphical power management application what needs to be done on laptop lid close.
To configure suspend/resume on lid close/open, log into gnome and then go to
System -> Preferences -> power management
on ac power - when laptop lid is closed - suspend
on battery power - when laptop lid is closed - suspend
Old notes
On ubuntu 8.04, I needed the following setup (not needed on 9.04):
include acpi_sleep=s3_bios on kernel boot options
and have the following setup:
/etc/default/acpi-support
# Should we attempt to warm-boot the video hardware on resume?
#not for U810: POST_VIDEO=true
MODULES="ath_pci ath_rate_sample ath_hal"
/usr/lib/pm-utils/defaults
SUSPEND_MODULES="ath_pci ath_rate_sample ath_hal uvcvideo videodev v4l1_compat v4l2_common"
To configure suspend/resume on lid close/open, log into gnome and then go to
System -> Preferences -> power management
on ac power - when laptop lid is closed - suspend
on battery power - when laptop lid is closed - suspend
Old notes
On ubuntu 8.04, I needed the following setup (not needed on 9.04):
include acpi_sleep=s3_bios on kernel boot options
and have the following setup:
/etc/default/acpi-support
# Should we attempt to warm-boot the video hardware on resume?
#not for U810: POST_VIDEO=true
MODULES="ath_pci ath_rate_sample ath_hal"
/usr/lib/pm-utils/defaults
SUSPEND_MODULES="ath_pci ath_rate_sample ath_hal uvcvideo videodev v4l1_compat v4l2_common"
Linux on a Fujitsu U810 - Lan
On ubuntu 8.04, lan was not working.
The following kernel load options made the lan work and survive suspend/resume:
pnpacpi=off pnpbios=off
Not needed for Ubuntu 9.04
The following kernel load options made the lan work and survive suspend/resume:
pnpacpi=off pnpbios=off
Not needed for Ubuntu 9.04
Linux on a Fujitsu U810 - X restart problem
Some times, when resuming, X restarts. The log says:
[81153.512179] [drm:i915_get_vblank_counter] *ERROR* trying to get vblank count for disabled pipe 1
acpid: client has disconnected
gdm[24396]: WARNING: gdm_slave_xioerror_handler: Fatal X error - Restarting :0
acpid: client connected from 8006[0:0]
kernel: [81167.781564] [drm:i915_getparam] *ERROR* Unknown parameter 6
kernel: [81169.720875] [drm:i915_getparam] *ERROR* Unknown parameter 6
need to investigate ...
[81153.512179] [drm:i915_get_vblank_counter] *ERROR* trying to get vblank count for disabled pipe 1
acpid: client has disconnected
gdm[24396]: WARNING: gdm_slave_xioerror_handler: Fatal X error - Restarting :0
acpid: client connected from 8006[0:0]
kernel: [81167.781564] [drm:i915_getparam] *ERROR* Unknown parameter 6
kernel: [81169.720875] [drm:i915_getparam] *ERROR* Unknown parameter 6
need to investigate ...
Linux on a Fujitsu U810 - Touchscreen
2009.04.20 update: disregard this entry and go to read the better Linux on a Fujitsu U810 - Touchscreen III
The rest of this entry is obsolete !!
Having the touchscreen working is what involved more work.
Fast steps to have touchscreen working:
1. bios setup
go into bios and select touchscreen a tablet mode
2. download the u810_tablet kernel module and install it
Detailed information about the u810_tablet kernel module can be found here (TBD).
- get the module here
as root:
- copy the module to /lib/modules/`uname -r`/extra/
# cp u810_tablet.ko /lib/modules/`uname -r`/extra/
- run depmod command
# depmod -a
- make sure u810_tablet handles acpi properly, to have ssuspend/resume working
edit the file /etc/default/acpi-support
to include the following
3. make sure u810_tablet module is loaded before any other module, specially before usbhid
as root:
- edit file /etc/initramfs-tools/modules to look like:
# update-initramfs -u 'all'
=> note: I'm trying to find another way to have u810_tablet module loading before usbhid module; playing with modprobe.conf files didn't work as expected, but I need to do more testing
=> you need to do this every time you upgrade your kernel either with ubuntu's update manager tools or manually
4 configure X to read data from u810_tablet module
Notes about the method described to have the touchscreen working:
- I have noticed that in tablet mode, calibration is not needed; default parameters included in the following files should work as expected
- many methods in the web make us of evtouch x driver; this method works with evdev x driver, so forget anything you may have read before for setting up the touchscreen
- this method makes use of the automatic hardware discovery funcionality included in latest ubuntu, so the xorg.conf file doesn't need to have anything configured. Everything is setup on-the-fly
as root:
create the following file
/etc/hal/fdi/policy/u810_tablet.fdi
download the file here
5 install two small programs to auto-rotate touch coordinates when screen is rotated
- download u810_rotate_helper and u810_rotate.py
as root,
- copy both files to /usr/bin
- make u810_rotate_helper suid:
# chmod +s /usr/bin/u810_rotate_helper
6 activate u810_rotate.py to start when you log into gnome
Once logged into gnome, go to System -> Preferences -> Starup Applications and add /usr/bin/u810_rotate.py to start when you log in
7 reboot
Reboot and enjoy the touchscreen !!
I can recommend xournal, gournal as hand-writing note taking applications (no handwriting recognition though)
8 pending tasks
- autorotate integrated mouse-pointer coordinates when screen is rotated. That should be easy....
- configure evdev to handle long-press as right-mouse click
- work out another method to have u810_tablet module properly loaded without messing with initramfs
- make sure u810_tablet can handle suspend/resume without including in in the MODULES variable
- post source code: I need to make small cleaning as well as include copyright stuff. Just give me a couple of days ...
- any other?
debugging tools
- once the u810_tablet module is loaded, you should see the device created in
/dev/input/by-id; if the device doesn't appear here after loading the module, don't go any further and solve it
- to verify coordinates:
- to verify hal has identified the device
some helpers and tools
xinput list
some old notes
when using a non-working module
The rest of this entry is obsolete !!
Having the touchscreen working is what involved more work.
Fast steps to have touchscreen working:
1. bios setup
go into bios and select touchscreen a tablet mode
In tablet mode the touchscreen works well both in windows and linux
I know most other sources tell to select touchscreen mode; but my method works great with tablet mode, as well as touch sensitivity is very sharp in all screen areas
2. download the u810_tablet kernel module and install it
Detailed information about the u810_tablet kernel module can be found here (TBD).
- get the module here
as root:
- copy the module to /lib/modules/`uname -r`/extra/
# cp u810_tablet.ko /lib/modules/`uname -r`/extra/
- run depmod command
# depmod -a
- make sure u810_tablet handles acpi properly, to have ssuspend/resume working
edit the file /etc/default/acpi-support
to include the following
# Add modules to this list to have them removed before suspend and reloaded
# on resume. An example would be MODULES="em8300 yenta_socket"
#
# Note that network cards and USB controllers will automatically be unloaded
# unless they're listed in MODULES_WHITELIST
MODULES="u810_tablet"
3. make sure u810_tablet module is loaded before any other module, specially before usbhid
as root:
- edit file /etc/initramfs-tools/modules to look like:
# List of modules that you want to include in your initramfs.- update your initram file to have the u810_tablet module load the very first one
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
u810_tablet
# update-initramfs -u 'all'
=> note: I'm trying to find another way to have u810_tablet module loading before usbhid module; playing with modprobe.conf files didn't work as expected, but I need to do more testing
=> you need to do this every time you upgrade your kernel either with ubuntu's update manager tools or manually
4 configure X to read data from u810_tablet module
Notes about the method described to have the touchscreen working:
- I have noticed that in tablet mode, calibration is not needed; default parameters included in the following files should work as expected
- many methods in the web make us of evtouch x driver; this method works with evdev x driver, so forget anything you may have read before for setting up the touchscreen
- this method makes use of the automatic hardware discovery funcionality included in latest ubuntu, so the xorg.conf file doesn't need to have anything configured. Everything is setup on-the-fly
as root:
create the following file
/etc/hal/fdi/policy/u810_tablet.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains="Fujitsu Component USB Touch Panel">
<merge key="input.x11_driver" type="string">evdev</merge>
<merge key="input.x11_options.MinX" type="string">130</merge>
<merge key="input.x11_options.MinY" type="string">250</merge>
<merge key="input.x11_options.MaxX" type="string">3820</merge>
<merge key="input.x11_options.MaxY" type="string">3920</merge>
<merge key="input.x11_options.MoveLimit" type="string">0</merge>
<merge key="input.x11_options.ReportingMode" type="string">Raw</merge>
<merge key="input.x11_options.SendCoreEvents" type="string">True</merge>
<merge key="input.x11_options.TapTimer" type="string">90</merge>
</match>
</device>
</deviceinfo>
download the file here
5 install two small programs to auto-rotate touch coordinates when screen is rotated
- download u810_rotate_helper and u810_rotate.py
as root,
- copy both files to /usr/bin
- make u810_rotate_helper suid:
# chmod +s /usr/bin/u810_rotate_helper
6 activate u810_rotate.py to start when you log into gnome
Once logged into gnome, go to System -> Preferences -> Starup Applications and add /usr/bin/u810_rotate.py to start when you log in
7 reboot
Reboot and enjoy the touchscreen !!
I can recommend xournal, gournal as hand-writing note taking applications (no handwriting recognition though)
8 pending tasks
- autorotate integrated mouse-pointer coordinates when screen is rotated. That should be easy....
- configure evdev to handle long-press as right-mouse click
- work out another method to have u810_tablet module properly loaded without messing with initramfs
need to confirm this:
"I can confirm blacklisting usbhid worked for me. I simply made a blacklist entry for usbhid an
d then in /etc/modules I loaded bcm5974 and then usbhid.
That way usbhid still gets loaded, but after bcm5974"
- make sure u810_tablet can handle suspend/resume without including in in the MODULES variable
- post source code: I need to make small cleaning as well as include copyright stuff. Just give me a couple of days ...
- any other?
debugging tools
- once the u810_tablet module is loaded, you should see the device created in
/dev/input/by-id; if the device doesn't appear here after loading the module, don't go any further and solve it
- to verify coordinates:
xinput --list
xinput test 3 and verify coordinates match max/min x/y
- to verify hal has identified the device
lshal -u /org/freedesktop/Hal/devices/usb_device_430_530_noserial_if0_logicaldev_input
hal-find-by-capability --capability input | xargs -I{} hal-device {}
some helpers and tools
xinput list
some old notes
when using a non-working module
xinput --list-props "EVTouch TouchScreen"
xinput get-button-map "EVTouch TouchScreen"
xinput query-state "EVTouch TouchScreen"
xinput test "EVTouch TouchScreen" => doesn't receive coordinates well
Linux on a Fujitsu U810 - Special keys
To have special buttons located around the screen working, just install the fjbtndrv driver package from the ppa.launchpad.net repository.
With this module installed, functionality is:
- press the rotate button to rotate screen to left, inverted, right and back to normal
- press the scrolling up/down buttons to scroll current window
This module will give you three components:
- fsc_btns kernel driver
- fscd daemon
- fscrotd daemon
Notes abous fscrotd
This application detects when you put the computer in tablet mode, and then rotates the screen accordingly.
My recommendation is not to use the fscrotd daemon, as it doesn't work very nicely. Instead, just rotate the screen and after press the rotate screen button to make screen rotation happen.
To deactivate fscrotd daemon, once logged into gnome, go to System -> Preferences -> Starup Applications and de-select fscrotd to avoid being launched when logging in.
You can monitor that this driver is working looking at dbus events:
dbus-monitor --system
Devel notes
- http://fjbtndrv.wiki.sourceforge.net/usage
- fscd: buttons activation:
/:
//:
quad: screen rotate
fn:
up: scrolling up
down: scrolling down
fsc_btns: hal integration - tablet mode:
* $ uid=`hal-find-by-property --key "button.type" --string "tablet_mode"`
* $ hal-get-property --udi $uid --key button.state.value
With this module installed, functionality is:
- press the rotate button to rotate screen to left, inverted, right and back to normal
- press the scrolling up/down buttons to scroll current window
This module will give you three components:
- fsc_btns kernel driver
- fscd daemon
- fscrotd daemon
Notes abous fscrotd
This application detects when you put the computer in tablet mode, and then rotates the screen accordingly.
My recommendation is not to use the fscrotd daemon, as it doesn't work very nicely. Instead, just rotate the screen and after press the rotate screen button to make screen rotation happen.
To deactivate fscrotd daemon, once logged into gnome, go to System -> Preferences -> Starup Applications and de-select fscrotd to avoid being launched when logging in.
You can monitor that this driver is working looking at dbus events:
dbus-monitor --system
Devel notes
- http://fjbtndrv.wiki.sourceforge.net/usage
- fscd: buttons activation:
/:
//:
quad: screen rotate
fn:
up: scrolling up
down: scrolling down
fsc_btns: hal integration - tablet mode:
* $ uid=`hal-find-by-property --key "button.type" --string "tablet_mode"`
* $ hal-get-property --udi $uid --key button.state.value
Linux on a Fujitsu U810 - Patch Intel Xorg driver
I hope this step will not be necessary in the near future, I hope within a month of this post.
See this newer post before continuing reading.
In order to patch the intel driver to have external monitor correctly working, theses are the steps to follow:
1. get all code from repositories, as well as latest intel driver code, which already includes the patch
apt-get source xserver-xorg-video-intel
apt-get build-dep xserver-xorg-video-intel
apt-get install devscripts
2. build the package
cd xserver-xorg-video-intel-VERSION
dch -l zmiq "Xorg-intel patched for external monitor on u810"
dpkg-buildpackage -b
dh_builddeb
3. install the created package
now you should have a file named like
xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
in your directory; that's the package you need to install.
As root, run:
dpkg -i xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
4. reboot
5. misc
- make sure the new module is installed at /usr/lib/xorg/modules/drivers/ (look for the date/time of intel_drv.so file)
- you must run steps 3 and 4 every time you upgrade the video-intel driver module using ubuntu's update manager, since it will install an old unpatched version; you may also unselect the xorg-xserver-video-intel driver package from the packages list, so it doesn't overwrite your made package
- at some point I had the effect that doing a single click on a mouse it made double click most of the times, so the effect was that instead of selecting items I was opening applications and documents. It seems it was a bug in ubuntu 8.04, which was solved by issuing the command, as root:
# dpkg-reconfigure -phigh xserver-xorg
See this newer post before continuing reading.
In order to patch the intel driver to have external monitor correctly working, theses are the steps to follow:
1. get all code from repositories, as well as latest intel driver code, which already includes the patch
apt-get source xserver-xorg-video-intel
apt-get build-dep xserver-xorg-video-intel
apt-get install devscripts
2. build the package
cd xserver-xorg-video-intel-VERSION
dch -l zmiq "Xorg-intel patched for external monitor on u810"
dpkg-buildpackage -b
dh_builddeb
3. install the created package
now you should have a file named like
xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
in your directory; that's the package you need to install.
As root, run:
dpkg -i xserver-xorg-video-intel_2.6.1-1ubuntu1zmiq1_i386.deb
4. reboot
5. misc
- make sure the new module is installed at /usr/lib/xorg/modules/drivers/ (look for the date/time of intel_drv.so file)
- you must run steps 3 and 4 every time you upgrade the video-intel driver module using ubuntu's update manager, since it will install an old unpatched version; you may also unselect the xorg-xserver-video-intel driver package from the packages list, so it doesn't overwrite your made package
- at some point I had the effect that doing a single click on a mouse it made double click most of the times, so the effect was that instead of selecting items I was opening applications and documents. It seems it was a bug in ubuntu 8.04, which was solved by issuing the command, as root:
# dpkg-reconfigure -phigh xserver-xorg
Linux on a Fujitsu U810 - External Monitor
external monitor
External resolution goes up to 1920x1600, which is better than the external resolution achieved under windows using the original fujitsu video driver.
As of 2009.03.31, video driver intel (xserver-xorg-video-intel) provided by ubuntu jaunty release does not include a patch that makes external monitor to function as expected. This problem was not present on ubuntu 8.04, so you might prefer to stay with 8.04 until ubuntu includes that fix.
update - 2009.05.06: please see this other post, since there's a way to obtain the package with the patch included!
The bug is: https://bugs.freedesktop.org/show_bug.cgi?id=17823
and the patch is already submitted:
If you want to have external monitor working you must apply the patch by yourself; otherwise, wait until ubuntu maintainers include the patch in the official release.
See this other post about notes how to apply the patch yourself.
Update (2009.04.15): See this other post about how to install a patched driver or install the patch yourself.
I'm monitoring when the patch is included, and I'll update this page accordingly; analyzing current patch speed, I expect this patch to be included by 2009.04.20.
external monitor switch hack
Since the Fn+A button doesn't work as expected to activate external monitor, I suggest to take advantage of the brightness-up button (Fn+D) to have the computer switch between the LCD and the external monitor.
In order to do so, as root edit the file /etc/acpi/video_brightnessup.sh to look as follows:
/etc/acpi/video_brightnessup.sh
With this hack, external monitor switch always works either the external monitor is connected or not. If you want to bring screen brightness up without switching the screen, just use the brightness control provided by ubuntu.
other hints
- if you cannot get past 1024x1024 resolution on the external display, with the updated driver, verify that int he /etc/X11/xorg.conf file there's a line like
- this is my /etc/X11/xorg.cong
- commands to add a mode for a display
=> things to watch
- watch when ubuntu has the proper patch applied to xserver-xorg-video-intel (expected: sometime in 2009.04)
- watch when ubuntu properly detects the FN+A key to activate/deactivate external monitor (need to test as new ubuntu releases happen)
External resolution goes up to 1920x1600, which is better than the external resolution achieved under windows using the original fujitsu video driver.
As of 2009.03.31, video driver intel (xserver-xorg-video-intel) provided by ubuntu jaunty release does not include a patch that makes external monitor to function as expected. This problem was not present on ubuntu 8.04, so you might prefer to stay with 8.04 until ubuntu includes that fix.
update - 2009.05.06: please see this other post, since there's a way to obtain the package with the patch included!
The bug is: https://bugs.freedesktop.org/show_bug.cgi?id=17823
and the patch is already submitted:
2009-03-05 | SDVO: handle multifunction encoder (try 2) | Zhenyu Wang | 1 | -65/+160 |
If you want to have external monitor working you must apply the patch by yourself; otherwise, wait until ubuntu maintainers include the patch in the official release.
Update (2009.04.15): See this other post about how to install a patched driver or install the patch yourself.
I'm monitoring when the patch is included, and I'll update this page accordingly; analyzing current patch speed, I expect this patch to be included by 2009.04.20.
external monitor switch hack
Since the Fn+A button doesn't work as expected to activate external monitor, I suggest to take advantage of the brightness-up button (Fn+D) to have the computer switch between the LCD and the external monitor.
In order to do so, as root edit the file /etc/acpi/video_brightnessup.sh to look as follows:
/etc/acpi/video_brightnessup.sh
#!/bin/sh test -f /usr/share/acpi-support/key-constants || exit 0 . /usr/share/acpi-support/key-constants acpi_fakekey $KEY_BRIGHTNESSUP logger "auto screen selection" X_USER=$(w -h -s | grep ":[0-9]\W" | head -1 | awk '{print $1}') export DISPLAY=:0.0 export XAUTHORITY=/home/$X_USER/.Xauthority if [ -e /tmp/xrandr.auto ] then logger "activating lvds" rm -rf /tmp/xrandr.auto /usr/bin/xrandr --output VGA-1 --off >> /tmp/xrandr.auto.log 2>&1 /usr/bin/xrandr sleep 1 /usr/bin/xrandr --output LVDS --auto >> /tmp/xrandr.auto.log 2>&1 else logger "activating external" touch /tmp/xrandr.auto /usr/bin/xrandr --output LVDS --off >> /tmp/xrandr.auto.log 2>&1 /usr/bin/xrandr sleep 1 /usr/bin/xrandr --output VGA-1 --auto >> /tmp/xrandr.auto.log 2>&1 fi |
With this hack, external monitor switch always works either the external monitor is connected or not. If you want to bring screen brightness up without switching the screen, just use the brightness control provided by ubuntu.
other hints
- if you cannot get past 1024x1024 resolution on the external display, with the updated driver, verify that int he /etc/X11/xorg.conf file there's a line like
SubSection "Display"
Virtual 2048 2048
EndSubSection
- this is my /etc/X11/xorg.cong
Section "Device"
Identifier "Configured Video Device"
Option "SDVOBOutput" "VGA-1"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
SubSection "Display"
Virtual 2048 2048
EndSubSection
EndSection
- commands to add a mode for a display
mode definition
xrandr --newmode "1920x1200@60" parameters
mode assignment
xrandr --output VGA-1 --addmode "1920x1200@60"
mode activation
xrandr --output VGA-1 --mode "1920x1200@60"
=> things to watch
- watch when ubuntu has the proper patch applied to xserver-xorg-video-intel (expected: sometime in 2009.04)
- watch when ubuntu properly detects the FN+A key to activate/deactivate external monitor (need to test as new ubuntu releases happen)
Linux on a Fujitsu U810 - Installation
I first installed Ubuntu 8.04 from a cheap usb cd which I bought from ebay. Installation was fine, just using all default settings and so; I didn't have to do anything to have Ubuntu working properly!
I have original disk (40GB) dual boot with original windows vista, 50% for each. Surprisingly, even I have almost nothing installed in the windows partition, it is already full! I'll have to take a look at that sometime....
Later upgraded with Ubuntu update manager tools to Jaunty; no problems in this upgrade.
I have original disk (40GB) dual boot with original windows vista, 50% for each. Surprisingly, even I have almost nothing installed in the windows partition, it is already full! I'll have to take a look at that sometime....
Later upgraded with Ubuntu update manager tools to Jaunty; no problems in this upgrade.
Installing linux on a Fujitsu U810 - General status
Current status: as of 2009.11.27
status | ||
linux distribution | ubuntu karmic 10.04 updated to latest | |
installation | ok | out-of-the-box - details |
laptop screen | ok | out-of-the-box |
keyboard | ok | out-of-the-box |
special keys | ok | need special driver - details |
touchscreen | ok | need special driver and files - details |
external monitor | ok | out-of-the-box - details |
lan | ok | out-of-the-box |
wifi | ok | out-of-the-box |
bluetooth | ok | out-of-the-box |
compact flash | ok | out-of-the-box |
sd slot | ok | out-of-the-box |
tablet mode | ok | need some tweaks - details |
external 3G modem | ok | out-of-the-box |
keyboard light | ? | needs some tweaks - details |
finger reader | ? | not tested |
suspend/resume | ok | out-of-the-box |
integrated webcam | ok | needs some tweaks - details |
integrated speaker | ok | out-of-the-box |
headphones jack | ok | out-of-the-box |
elgato eyetv usb | ok | analog tv by now - details |
Subscribe to:
Posts (Atom)