You are currently browsing the Carl’s notes weblog archives for May, 2009.

Squirrelmail error after updating

This error appeared after updating squirrelmail on a debian server.

Fatal error: Call to undefined function sq_change_text_domain() in /usr/share/squirrelmail/plugins/multilogin/functions.php on line 201

It’s due to the multilogin plugin which lets users choose between multiple mail servers and the compatibility plugin which is required by multilogin. Both these plugins are still installed after the update but the patches included in their respective folders need to be applied again as explained in their INSTALL files. Make sure you install the correct version of the patch. The 1.4.9 patch worked for me on the 1.4.15 update. Apply as follows:

cd /usr/share/squirrelmail/plugins/multilogin
patch -p0 < patches/multilogin-squirrelmail-1.4.9.diff
cd /usr/share/squirrelmail/plugins/compatibility
patch -p0 < patches/compatibility_patch-1.4.9.diff

Downgrading packages in Ubuntu – ATI driver problems

Ubuntu 9.04 Jaunty has a new version of the proprietary fglrx driver for ATI cards. This driver no longer supports my Macbook Pro 2,2 Radeon Mobility X1600. If you run aticonfig --initial you’ll get No supported adapters detected. Other symptoms may be that when you reboot, Xorg won’t start or it will complain about graphics drivers and try to run in low graphics mode.

It seems you can’t downgrade fglrx without also downgrading Xorg. Travis Whitton explains how to downgrade xorg packages from intrepid to hardy. To downgrade from jaunty to intrepid it’s very similar. Edit /etc/apt/sources.list and add the lines
deb http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted multiverse
deb http://gb.archive.ubuntu.com/ubuntu/ intrepid main restricted multiverse

Then aptitude update and apt-get --reinstall install xorg/intrepid xserver-xorg/intrepid .... There are a bunch of dependencies which will be requested and you may need to add to the end of that command. A load of unnecessary nvidia drivers were installed as dependencies.

My touchpad wasn’t working until I ran apt-get --reinstall install xserver-xorg-input-synaptics/intrepid.

To downgrade the fglrx drivers run apt-get --reinstall install fglrx-amdcccle/intrepid-updates fglrx-kernel-source/intrepid-updates fglrx-modaliases/intrepid-updates xorg-driver-fglrx/intrepid-updates xorg-driver-fglrx-dev/intrepid-updates.

To see what versions of a package are available use something like apt-cache policy xserver-xorg. This is useful to check that you’ve added the right lines in /etc/apt/sources.list.

Apparently these packages can be locked so they won’t be automatically upgraded by running aptitude hold packagename but when I tried this aptitude wanted to install a lot more things. It should also be possible to do this in the Synaptic graphical package manager.

I couldn’t initially make any of these changes because I couldn’t get a prompt. Recovery mode asks for the root password but since it’s not set by default in Ubuntu I was stuck. Solution: in the grub menu press ‘e’ to edit one of the entries and on the kernel line add rw init=/bin/bash at the end. Then press ‘b’ to boot. You’ll end up with a root prompt where you can run passwd to set the root password. Then you can reboot into recovery mode and ask for a root shell with network enabled. Networking didn’t work for me so I had to run ifconfig eth0 up and dhclient eth0.

After all this I can now log into Gnome but Xorg is using 100% of the CPU, fans are spinning very fast and I get the message
(WW) fglrx(0): ***********************************************
(WW) fglrx(0): * DRI initialization failed! *
(WW) fglrx(0): * (maybe driver kernel module missing or bad) *
(WW) fglrx(0): * 2D acceleraton available (MMIO) *
(WW) fglrx(0): * no 3D acceleration available *
(WW) fglrx(0): ********************************************* *

in /var/log/Xorg.0.log. I’ve tried installing previous versions of the linux-image, linux-hea,ders and linux-source, and reinstalling fglrx-kernel-source so it gets compiled with the right kernel but to no avail.

I’ve ended up updating everything to the latest versions and using the radeonhd driver. I don’t know how to tell Xorg which driver to use now that /etc/X11/xorg.conf is all empty so I uninstalled fglrx. radeonhd works but feels a bit slow even when web browsing or typing. On the other hand it seems that I can now use RandR with external displays, something that wasn’t supported by fglrx.