How to boot from the ITE IT8212 raid module by: Hendrik-Jan Heins, 15-06-2004, rev.1.41 The ITE IT8212 Raid controller has drivers for Linux available. Both in distro specific as sourcecode form. All these are available in one package on: http://www.ite.com.tw/productInfo/Download.html These seem to work just as wel for the on-mainboard solutions like Gigabyte provides as for the pci raid cards containing the chip. The driver also appears to be working for the ITE IT8211 chip. (thanks to Peter K. for this information). Kernel 2.4 As module You can compile it for your own distro from source as a module. To do that, download the driver source from ITE, get the kernel source for your distro, go to the ite-directory for your distro, type "make" and copy the file "iteraid.o" to your kernel modules directory in the scsi map. Reboot your system, and type "modprobe iteraid" to test the module. If it works, place the modulename "iteraid" in your "/etc/modules" file. You can find the ITE IT8212 drivers as pre-packaged modules for several Distro's, but also the source all in one file at: http://www.ite.com.tw/productInfo/Download.html In the kernel Unpack the kernel source and the IT8212 driver source. Copy the files "iteraid.c" and "iteraid.h" to the scsi subdir of the kernel source(-> /usr/src/linux/driver/scsi ). Next, before configuring your kernel, you will have to modify the files "Config.in" and "Makefile" in the directory /usr/src/linux-2.4.x/driver/scsi. I do not pretend that the following is the only solution, or even that it is correct, but it seems to work: In "Config.in" I added a line with: "dep_tristate ' ITE8212F software RAID (EXPERIMENTAL)' CONFIG_SCSI_ATA_ITE $CONFIG_SCSI_IDE $CONFIG_EXPERIMENTAL" I added this line below the line about the Via SATA module. This line is needed for the module to be found during the config. Now you can find it in the scsi section, in the subsection card-specific drivers. In "Makefile" I added the following: "obj-$(CONFIG_SCSI_ATA_ITE) += libata.o iteraid.o" below the line about the sata_via.o (and the other sata drivers). Next, go to the Building and compiling section, below the Kernel 2.6 section. Kernel 2.6 As module The driverpackage now also contains a module for the 2.6 kernel! Go to: http://www.ite.com.tw/productInfo/Download.html and get it there. This module won compile correctly yet. In the file "Makefile" there's: "KERNEL_SRC = /usr/src/linux-2.6.1". Replace "linux-2.6.1" by the name of the directory your kernel has. Save the changes and compile the module with the "make" command. Next, copy the file "iteraid.ko" to your kernel module dir, the scsi subdir. type "modprobe iteraid" to test the module. If it works, place the modulename "iteraid" in your "/etc/modprobe.preload" file. You can find the ITE IT8212 drivers as pre-packaged modules for several Distro's, but also the source all in one file at: http://www.ite.com.tw/productInfo/Download.html In the kernel Now to integrate this module in the 2.6 kernel: Unpack the kernel source and the IT8212 driver source. Place the files "iteraid.c" and "iteraid.h" in the scsi directory of the kernel source (-> /usr/src/linux-2.6.x/driver/scsi). Next, before configuring your kernel, you will have to modify the files "Kconfig.in" and "Makefile" in the directory /usr/src/linux-2.6.x/driver/scsi. In "Kconfig.in" I added: "config SCSI_ITE_RAID tristate "ITE IT8212 support" depends on SCSI && PCI && EXPERIMENTAL help For use of the ITE IT8212 RAID controller. If unsure, say N. " Below the SCSI_SATA_VIA rules. and in "Makefile" I added: "obj-$(CONFIG_SCSI_ITE_RAID) += iteraid.o" Below the line about the Sata_Via module. Building and compiling Now compile the kernel as usual, but don't do a "make dep" when you use a 2.6 series kernel!! You can configure the kernel: choose make config / make menuconfig or make xconfig , whichever you like. To install with the raid module in the kernel, select the iteraid in the kernel (from the scsi card specific subsection), and add the lowlevel drivers sg (generic scsi) and sd_mod (scsi disk support) to the kernel. These drivers are needed for the RAID to work. Note that if you add the flag "experimental", you should make sure "experimental" modules wil be shown in the config. You can do so by turning on the "[*] Prompt for development and/or incomplete code/drivers" flag in "Code maturity level options ". Next, do a "make dep", "make bzImage" and "make modules" Now you can install the modules to the disk: "make modules_install" Copy the kernel image to the "/boot" directory Next, edit your lilo.conf file (for Grub users: sorry, I don't know how you should do this, but the settings are probably quite similar). You will have to make an entry for your raid boot, but you will also have to change the boot order of your disks. This is how the main section should look: boot=/dev/sda <- important! map=/boot/map vga=791 default="raid" keytable=/boot/us-latin1.klt compact prompt nowarn timeout=100 message=/boot/message menu-scheme=wb:bw:wb:bw disk=/dev/hda bios=0x81 <- important! disk=/dev/sda bios=0x80 <- important! Now the settings for the raid boot itself: image=/boot/bzImage label="raid" root=/dev/sda1 initrd=/boot/initrd-2.4.22-21mdkcustom.img append="devfs=mount hdc=ide-scsi" vga=791 read-only I know not all of these lilo settings are required, but this is how it works for me. Do not forget to run "lilo -v" next, and if you use initrd, also run "mkinitrd" to activate the changes. Now you can reboot from your raid! If you have any comments or additional information, don't hesitate to drop me a line: hjh@.passys.nl