Server upgrades are fun!

Last night I felt a bit bored, so I downloaded Kubuntu (Ubuntu Hoary + KDE). This morning, I archived my 50 GB /home area to my RAID, along with a few odds and sods like my postfix config, various MySQL databases (including wordpress), popped in a CD and booted off of the Kubuntu AMD64 installer CD. ~30 minutes later I had a pristine Kubuntu install loaded. So far, so good.

I then remembered that the driver for my RAID is a finicky beast, written by the company that make the chipset (IT8212F) and not written very well. It’s a 2.4 kernel module that’s been barely ported to 2.6, and requires lots of love and fuss to make it work. To start with, it uses the deprecated MOD_DEC and MOD_INC routines on loading and unloading the driver. To make it compile under a modern 2.6 series kernel, these lines have to be commented out.

Unfortunately, even applying all the tricks I’ve applied before didn’t work – 2.6.10 and the iteraid driver just don’t get along, reporting fun things like

Apr 10 13:26:59 highlander kernel: iteraid: no version for "struct_module" found
: kernel tainted.
Apr 10 13:27:03 highlander kernel: Found Controller: IT8212 UDMA/ATA133 RAID Con
troller
Apr 10 13:27:03 highlander kernel: FindDevices: device 0 is IDE
Apr 10 13:27:03 highlander kernel: Channel[0] BM-DMA at 0xAC00-0xAC07
Apr 10 13:27:03 highlander kernel: Channel[1] BM-DMA at 0xAC08-0xAC0F
Apr 10 13:27:03 highlander kernel: scsi0 : ITE RAIDExpress133
Apr 10 13:27:03 highlander kernel: Vendor: ITE Model: IT8212F
Rev: 1.3
Apr 10 13:27:03 highlander kernel: Type: Direct-Access
ANSI SCSI revision: 00
Apr 10 13:27:03 highlander kernel: SCSI device sda: 240121726 512-byte hdwr sect
ors (122942 MB)
Apr 10 13:27:03 highlander kernel: SCSI device sda: 240121726 512-byte hdwr sect
ors (122942 MB)
Apr 10 13:27:36 highlander kernel: /dev/scsi/host0/bus0/target0/lun0:AtapiStart
Io: already have a request!
Apr 10 13:27:36 highlander kernel: AtapiResetController enter
Apr 10 13:27:36 highlander kernel: IT8212ResetAdapter: reset channel 0
Apr 10 13:27:36 highlander kernel: IT8212ResetAdapter Success!
AApr 10 13:27:36 highlander kernel: AtapiResetController enter
Apr 10 13:27:36 highlander kernel: IT8212ResetAdapter: reset channel 0
Apr 10 13:27:36 highlander kernel: IT8212ResetAdapter Success!
Apr 10 13:27:36 highlander kernel: AtapiResetController exit
Apr 10 13:28:18 highlander kernel: AtapiStartIo: already have a request!
Apr 10 13:28:18 highlander kernel: AtapiResetController enter
Apr 10 13:28:18 highlander kernel: IT8212ResetAdapter: reset channel 0
Apr 10 13:28:18 highlander kernel: IT8212ResetAdapter Success!
Apr 10 13:28:18 highlander kernel: AtapiResetController exit
Apr 10 13:28:18 highlander kernel: AtapiResetController enter
.
.
Apr 10 13:29:00 highlander kernel: IT8212ResetAdapter: reset channel 0
Apr 10 13:29:00 highlander kernel: IT8212ResetAdapter Success!
Apr 10 13:29:00 highlander kernel: AtapiResetController exit
Apr 10 13:29:00 highlander kernel: AtapiResetController enter
Apr 10 13:29:00 highlander kernel: IT8212ResetAdapter: reset channel 0
Apr 10 13:29:00 highlander kernel: IT8212ResetAdapter Success!
Apr 10 13:27:36 highlander kernel: AtapiResetController exit
.
.
.
Apr 10 13:38:09 highlander kernel: AtapiResetController exit
Apr 10 13:38:19 highlander kernel: SCSI error : <0 0 0 0> return code = 0x600000
0
Apr 10 13:38:19 highlander kernel: end_request: I/O error, dev sda, sector 6
Apr 10 13:38:19 highlander kernel: unable to read partition table
Apr 10 13:38:19 highlander kernel: Attached scsi disk sda at scsi0, channel 0, i
d 0, lun 0

So my RAID is dismantled for the time being, with one drive unplugged totally and the other plugged in as /dev/hdc so that I can get my files off. At least the RAID implemented by the ITE driver doesn’t mess around with the filesystem in any way (that I can detect). Perhaps I can find a linux-kernel hacker who’ll take 15 minutes to look at the driver and tell me if it’s even worth bothering trying to clear it up. I’m not that good of a C programmer, so destroying my drives isn’t something I really want to try doing 🙂

The next disappointment is that the Postfix that is available for Ubuntu is behind the curve – 2.1.5 – and requires the external TLS patch. 2.2.2 is out, so I suppose I better start learning how to do .deb packages and install my own 2.2.2 package (or I’ll just roll from source). That was one thing to be said for Gentoo (which was about the only distribution doing AMD64 when I got this server) – the ~ ebuilds were usually right up on the bleeding edge. Sadly, I can’t even find 2.2 in Ubuntu universe, and I don’t know if Ubuntu have an experimental branch like Debian.

PHP is throwing mad errors about exceeding memory limits trying to load my random picture block on the right (yeah, the one that’s missing as I write this), so I’ll have to see what’s up with that at some point and get my gallery back on track. The gallery itself works (now that I’ve set the permissions properly), but the random block doesn’t. Isn’t technology wonderful?