Please note: This is the archived version of my former homepage. The information presented is most likely out of date. Click here to visit my current homepage.

Manuel Kiessling's Personal Home Page

[Full version] [ Search ]

Site navigation: Home | Personal | Photos | Projects | Topics | About this site

Debian Woody Install CD with support for 3Ware 9500 Raid Controller

Contents of this page

Download the ISO

Here is the complete ISO for the Debian Woody Install/Boot CD described below, with these modules compiled in: Download by clicking here: debian3.0_install_2.4.28_with_3w-9xxx_2.iso (11 MB).
You can find other ISOs and helper scripts by clicking here.

Step by step HOWTO

First, get the latest 2.4 kernel from In my case, this was 2.4.28.

Place the linux-2.4.28.tar.bz2 file in /usr/src.

Unpack and extract the kernel:
bash:~ # bunzip2 linux-2.4.28.tar.bz2
bash:~ # tar xvf linux-2.4.28.tar.bz2

Get the patch that adds the 3w-9xxx driver to the kernel source: 3w-9xxx-2.4.28.diff

Place it in /usr/src, too.

Patch the kernel source:

in /usr/src, execute:
bash:~ # patch -p0 < ./3w-9xxx-2.4.28.diff

Run "make menuconfig" in /usr/src/linux-2.4.28. Make sure you configure important drivers statically, not as modules.

These are:
RAM disk support (CONFIG_BLK_DEV_RAM)
Initial RAM disk (initrd) support (CONFIG_BLK_DEV_INITRD)
Kernel support for ELF binaries (CONFIG_BINFMT_ELF)
Loop device support (CONFIG_BLK_DEV_LOOP)
FAT and Ext2 file systems (and Ext3, ReiserFS etc. if you want to use them)
Socket filtering for DHCP (CONFIG_FILTER)
Packet socket, also for DHCP (CONFIG_PACKET)
Unix domain sockets for system logging ? is provided as a module in the vanilla flavor (CONFIG_UNIX)
Drivers for your network card(s) (you need to install the base system over the network)
SCSI, SCSI Disk support, and the 3w-9xxx driver (in SCSI support -> SCSI low-level drivers)

The menu point for the 3w-9xxx driver is named "3ware Hardware ATA-RAID support 9000 series", don't mix it up with the "3ware Hardware ATA-RAID support" (although it probably won't do any harm if you choose both, but please remember that your kernel has to be as small as possible!)

Now install "kernel-package", which contains tools to properly build kernels on a Debian system:
bash:~ # apt-get install kernel-package

Then run:
bash:~ # make-kpkg --append-to-version='-bf2.4' kernel_image

This will give you a file in /usr/src named "kernel-image-2.4.28-bf2.4_10.00.Custom_i386.deb". Rename it to "kernel-image-2.4.28-bf2.4.deb".

Now you have to install the boot-floppies package, which is a source package. You should probably do this in your home directory.
bash:~ # apt-get source boot-floppies

This will give you a directory named "boot-floppies-3.0.22"

Change into this directory, remove the script there, then download the script from this location.

Then run:
bash:~ # ./ . 2.4.28 bf2.4

Then install the mkisofs package
bash:~ # apt-get install mkisofs

In the boot-floppies directory, run:
bash:~ # ./ bf2.4 yes

Next you need to mount the freshly downloaded rescue image:
bash:~ # mount -t msdos -o loop resc2880bf2.4.bin /mnt

In order to do this, your system needs support for the MSDOS FAT file format and the loopback device. If the mount does not work, you need to load these modules, and if you don't have these modules installed, simply recompile your current system kernel with these modules (make menuconfig, then make dep modules modules_install).

If the mount worked, then copy the files linuxbf2.4.bin, sys_mapbf2.4.gz and configbf2.4.gz over the files linux.bin, sys_map.gz and config.gz on your mounted image:

bash:~ # cp /root/boot-floppies-3.0.22/linuxbf2.4.bin /mnt/linux.bin
bash:~ # cp /root/boot-floppies-3.0.22/sys_mapbf2.4.gz /mnt/sys_map.gz
bash:~ # cp /root/boot-floppies-3.0.22/configbf2.4.gz /mnt/config.gz

An important note: The rescue image can only have a maximum size of 2.88 MB! You will therefore probably have problems copying all the files to the mounted image. First of all, delete the three files on the image, then copy the new files onto the image. Try makeing room by deleting the .txt files. If it still doen't fit, skip the sys_map.gz file - it worked fine without it for me.

Now unmount the image file:
bash:~ # umount /mnt

Then, in your boot-floppies directory, download the script, and run:
bash:~ # ./ bf2.4 yes

This will give you a file called "bootbf2.4.iso" in your boot-floppies directory.

Burn it to a CD, and you have a custom Debian Woody Install-CD with a 2.4.28 kernel and suppport for your 3Ware controller.

Top of page | Previous | Next

Last update of this page: $Date: 2005-01-04 13:17:13 $ by Manuel

Everything on this page is (c) 2000-2005 Manuel Kiessling unless otherwise stated. You may use it after you read the About section.
For any questions or suggestions send me an eMail.

Valid HTML 4.0 | Valid CSS 2.0 | Viewable with Any Browser | Bobby approved

This page was generated with QuickHP.