Jaunty Jackalope Woes
alexei — Thu, 14/05/2009 - 11:59
Beware of upgrading to the latest Ubuntu/Kubuntu distribution (9.04 "Jaunty Jackalope") if you use a tablet or have an intel based graphics chip. The latest release includes some significant upgrades to the X server and if you're on the wrong system you're more likely to come out thinking it should have been called Jaundiced Jackalope. X.org is undergoing a transition to hot-pluggable HAL controlled input devices and away from the static configuration in xorg.conf. This means tablet devices may no longer be called "stylus", "eraser" etc and if you're using Nokia's QT toolkit this is a problem (from the QT 4.5 docs):
Notes for X11 Users
Qt uses the following hard-coded names to identify tablet devices from the xorg.conf file on X11 (apart from IRIX): 'stylus', 'pen', and 'eraser'. If the devices have other names, they will not be picked up Qt.
Found how to fix this (see below) but it's not pretty.
The other big headache is the acceleration code for the graphics card. It seems that for some systems (like mine) the new release is significantly slower than the last one. Read about it here: https://wiki.ubuntu.com/X/Troubleshooting/IntelPerformance . In my case it was slow and full of rendering bugs - windows would not refresh properly and show patches of the background underneath. I was not receiving stylus event as often as before making note-taking near impossible.
Switching to the newer UXA with the following in /etc/X11/xorg.conf
Section "Device"
Identifier "Configured Video Device"
Option "AccelMethod" "UXA"
EndSection
produced a spectacularly fast and smooth system, but unfortunately X does not survive a suspend cycle on my Fujitsu 4220 laptop, making it less than useless. I got back a more tolerable system by going back to EXA with the MigrationHeuristic option set to greedy:
Section "Device"
Identifier "Configured Video Device"
Option "AccelMethod" "EXA"
Option "MigrationHeuristic" "greedy"
EndSection
At least now it seems to be drawing windows correctly and has survived a couple of suspend cycles. It's still sluggish though and KDE keeps switching off compositing because of bad performance so you lose all the nice effects. Overall, on my laptop it feels worse than the last Kubuntu release.
Here's how to get stylus and eraser events back in QT based apps (no warranty implied :):
use lshal to find out what the wacom devices are know by (pipe to less with "lshal | less" and search for wacom). Look for the info.product key. In my case they were called "PnP Device (FUJ02e5)" for the stylus and "PnP Device (FUJ02e5) eraser" for the eraser. Take note of the info.udi key or something else that uniquely identifies the entry. My info.uid values were:
"/org/freedesktop/Hal/devices/pnp_FUJ02e5_serial_platform_0" and
"/org/freedesktop/Hal/devices/pnp_FUJ02e5_serial_platform_0_subdev"
now you want to rewrite the info.product key to say "stylus" and "eraser" since this is what QT picks up on ... so create an fdi file in /etc/hal/fdi/policy/ with the following edited for your values:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.udi" string="/org/freedesktop/Hal/devices/pnp_FUJ02e5_serial_platform_0">
<merge key="info.product" type="string">stylus</merge>
</match>
<match key="info.udi" string="/org/freedesktop/Hal/devices/pnp_FUJ02e5_serial_platform_0_subdev">
<merge key="info.product" type="string">eraser</merge>
</match>
</device>
</deviceinfo>
what it does, is match the entry based on info.udi, and replace the info.product value.
Now restart HAL with /etc/init.d/hal restart, check that everything worked with
lshal and if it did restart X, and you should be good to go.... phew.

Post new comment