First, get the latest 2.4 kernel from kernel.org. 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: bunzip2 linux-2.4.28.tar.bz2 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: 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: apt-get install kernel-package Then run: 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. apt-get source boot-floppies This will give you a directory named "boot-floppies-3.0.22" Change into this directory, remove the kernel.sh script there, then download the kernel.sh script from this location. Then run: ./kernel.sh . 2.4.28 bf2.4 Then install the mkisofs package apt-get install mkisofs In the boot-floppies directory, run: ./mini-iso.sh bf2.4 http://archive.inetbone.de/debian yes Next you need to mount the freshly downloaded rescue image: 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: cp /root/boot-floppies-3.0.22/linuxbf2.4.bin /mnt/linux.bin cp /root/boot-floppies-3.0.22/sys_mapbf2.4.gz /mnt/sys_map.gz 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: umount /mnt Then, in your boot-floppies directory, download the mini-iso.sh script, and run: ./mini-iso.sh bf2.4 http://archive.inetbone.de/debian 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.