OpenSUSE 11.1

I thought it’d be a tolerably good idea to celebrate boxing day with installing OpenSUSE 11.1. After all, given that this laptop is a Thinkpad X61t with built-in tablet, installing a new version of any distribution tends to be interesting.

And indeed, I ran into two glitches: at first, OpenSUSE 11.1 refused to install my chosen grub configuration. Putting grub on the mbr fixed that, but it was quite a bit of a bother since my laptop didn’t boot except from the external cd drive. But it was also my own fault for accidentally pressing the wrong key in the dialog that asked me whether I wanted to revisit my grub options or install anyway.

The tablet was a bit harder to get working, although the fix is simple and detailed in this bug report — simply use ttyS4 instead of ttyS0, which used to be the right port to use for a tablet pc. And you know what? The touch screen of this laptop works, too, now! Only I have to use a nail, not my fingers. I think it’s time to send Danny Kukawka cookies 🙂.

Now everything is fine, and rotating the screen with krandrtray very, very nearly works perfectly: only the wacom input devices aren’t told about the rotation yet.

If I get that configured correctly, I’ll be totally happy. Sound works, wireless network works (but it’s still more convenient to use ifup instead of network manager, but the 11.0 bug where I’d have to restart the wireless network after booting to get it working is fixed. KDE looks great and feel very stable and I’m already recompiling KOffice.

Next: give it a try on the kids’ laptops.

Update:

Of course, don’t forget to manually change the device names from Mouse[x] to stylus and eraser in your xorg.conf: otherwise Krita won’t work. And the following script, copied &amp bug-fixed from Thinkwiki
makes the rotation work just fine:

  #!/bin/sh

output="(normal left inverted right)" #LVDS
 # if [ "$XROT_OUTPUT" ]
 # then     
 #         output=$XROT_OUTPUT;
 # fi
devices="stylus cursor eraser"

geomnbr=0
xrandr=normal
wacom=normal
if [ "$1" == "-" ] || [ "$1" == "+" ] || ! [ "$1" ];
then    
        operator="$1";
        [ "$1" ] || operator='+';
        case `xrandr --verbose | grep "$output" | sed "s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/"` in
                normal)         geom=0;;
                left)          geom=1;;
                inverted)       geom=2;;
                right)          geom=3;;
        esac
        let geom=${geom}${operator}1+4
        let geom=${geom}%4      
else    
        geom="$1"
fi
case $geom in
        1)      wacom=2; xrandr=left ;;
        2)      wacom=3; xrandr=inverted ;;
        3)      wacom=1; xrandr=right ;;
        *)      wacom=0; xrandr=normal ;;
esac

echo "xrandr to $xrandr, xsetwacom to $wacom" >&2

if xrandr -o "$xrandr"; then
        for d in $devices
        do      
                xsetwacom set "$d" Rotate "$wacom"
        done
fi

#workaround for linuxwacom bug
if [ "`xsetwacom get stylus Mode`" == '1' ]; then
        for d in $devices
        do      
                xsetwacom set $d CoreEvent "off"
                xsetwacom set $d Mode "off"
        done
        { sleep 1;
        for d in $devices
        do      
                xsetwacom set $d Mode "on"
                xsetwacom set $d CoreEvent "on"
        done; } &
fi

My changes are to actually use the $d from the $devices and to add the eraser…