Ubuntu and the Compaq Smart Array Controller (cpqarray.ko)

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.

Incoming search terms:

This entry was posted in Linux. Bookmark the permalink.

7 Responses to Ubuntu and the Compaq Smart Array Controller (cpqarray.ko)

  1. jbower says:

    to get around the messed up term go to tty 2 and chroot /target/

  2. Philip Lindborg says:

    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.

  3. Andrew Hodel says:

    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.

  4. 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).

  5. Devin Vignali says:

    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 /.

  6. Stefan Rubner says:

    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.

  7. 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)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>