As I already mentioned, I wanted to get rid of OpenSUSE on my master server and run Ubuntu on that machine instead. This proved to be a bit more difficult than expected for Ubuntu installed just fine but then refused to boot. The reason was that in the latest kernels of the 2.6 series you just can’t load the driver for the Compaq Smart Array controller (cpqarray.ko) as a module. If you do, all you’ll get is a “cpqarray: error sending ID controller”.
So, to get the beast up and running, you’ll have to boot from the CD into the rescue system. From there, mount the drive and chroot into it. Then get the packages needed to compile the kernel:
apt-get install kernel-package linux-source libncurses5-dev initrd-tools
To get all of them, you’ll have to edit /etc/apt/sources.list to include the universe repository. To be able to edit the file, you should do a export TERM=xterm first. Next, unpack the downloaded kernel sources and copy the original configuration from /boot into the source tree:
cd /usr/src
tar xjf linux-source-2.6.15.tar.bz2
ln -s linux-source-2.6.15 linux
cd linux
cp /boot/config-<your_current_kernel_version> .config
Don’t bother trying to use make menuconfig – you won’t be able to see a thing. So fire up vi, search for CPQ and replace every “m” at the end of the lines found with a “y”. Save and then it’s just
make
make modules_install
make install
cd /boot
mkinitrd -o ./initrd.img-2.6.15.7-ubuntu1 2.6.15.7.ubuntu1
to install your new kernel. Last, edit /boot/grub/menu.lst so your new kernel will be booted. This ismade a bit tricky by the terminal emulation so be careful to check the result using cat menu.lst.
Note: If you have another computer available it’s a lot easier to also install openssh-server on the machine you want to build the kernel on. Then copy the config file to the other machine, edit it there and copy it back to the target system. Likewise, editing of Grub’s menu.lst is a lot easier when done on an external machine.

to get around the messed up term go to tty 2 and chroot /target/
I was having problem compiling the kernel with the Compaq drivers compiled in. Reason was I didn’t also enable CONFIG_SCSI. So if you have problems compiling the kernel – make sure you also enable CONFIG_SCSI in your configuration.
https://launchpad.net/distros/ubuntu/+source/initramfs-tools/+bug/26632
Workaround (confirmed 1/28/2006 with Dapper Drake on DL380):
1. Install in expert mode.
2. Do steps up to “Install the Base System” as normal
3. After the “Install the Base System” step hit Alt+F2 to bring up the console.
4. echo “cpqarray” >>/target/misc/mkinitramfs/modules
5. Exit the console. Press Alt+F1 to return to the install.
6. Continue the installation steps as normal.
I didn’t see anything called /target/misc/mkinitramfs/modules. But there is a
/target/etc/mkinitramfs/modules. Typo? Obfuscation? You decide.
But it worked for me (with etc).
In this line: 4. echo “cpqarray” >>/target/misc/mkinitramfs/modules
What do you mean by /target? Is target just the name of the partition? My root drive is just /.
The /target directory is used by Ubuntu during the install process. It’s just a mount to the drive where you told the installer to put your Ubuntu installation on. So while in the install process, you can use [Alt]-[F2] to switch to tty2. There you should be able to see the /target directory. Once innstallation is complete and the system is rebooted, there will be no more /target directory available.
What worked for me was
echo “cpqarray” > /target/etc/mkinitramfs/modules
The file did not exist and I had to create it. Worked like a charm.
Its etc, not misc. (Ubuntu Server 6.06 LTS)