After an upgrade from RH9 I spent today making our "shining new" server with Fedora Core 1 to talk with his disk through a QLA2200 adapter.
Problem:
Fedora standard Kernel doesn't include support for any qlogic card, so you have to rebuild your kernel to add support for these adapters.
This is what I have done:
1) Fedora Kernel is built with gcc 3.2, but the standard now is 3.3, so you have to download and install package gcc32-3.2.3-6 (this is the update version while I'm writing, you can download it here, or you can use apt or yum)
2) Download and install last kernel source, I installed kernel-source-2.4.22-1.2149.nptl
3) Cd to /usr/src/linux-2.4/drivers/addon/ and edit the file Config.in, you'll see 2 lines commented:
#dep_tristate ' Experimental QLogic 2100/2200 support' CONFIG_FC_QLA2200 $CONFIG_PCI m #dep_tristate ' Experimental QLogic 2300 support' CONFIG_FC_QLA2300 $CONFIG_PCI muncomment one or both (check your hardware) to something like this
dep_tristate ' Experimental QLogic 2100/2200 support' CONFIG_FC_QLA2200 $CONFIG_PCI mOr
dep_tristate ' Experimental QLogic 2300 support' CONFIG_FC_QLA2300 $CONFIG_PCI m
4) In the same directory edit the file Makefile and change this line:
mod-subdirs := cipe aep bcminto
mod-subdirs := cipe aep bcm qla2200Then add one or both of these lines:
..... subdir-$(CONFIG_FC_QLA2200) += qla2200 subdir-$(CONFIG_FC_QLA2300) += qla2200 ......I put these just after
subdir-$(CONFIG_CRYPTO_BROADCOM) += bcm
5) Cd to /usr/src/linux-2.4 and copy from the configs directory the config for your hardware:
$ cd /usr/src/linux-2.4 $ cp configs/kernel-2.4.22-i686-smp.config .config
6) In the same directory (/usr/src/linux-2.4) run:
$ make menuconfigCheck under "Additional device driver support" to have your qlaxxxx set to M, after this save and exit.
7) Compile as usual the kernel:
$ make dep $ make clean $ make bzImage $ make modules $ make modules_install
8) Check in the dir /lib/modules/yourkernelcustom/kernel/drivers/addon to have qla2200 dir, and the object inside that dir:
$ ls /lib/modules/2.4.22-1.2149.nptlcustom/kernel/drivers/addon/ aep bcm cipe qla2200 $ ls /lib/modules/2.4.22-1.2149.nptlcustom/kernel/drivers/addon/qla2200 qla2200.o qla2300.oIf you miss the dir or the modules check point 3 and 4 again.
9) If you are here we have almost ended :). Change dir to /boot and run:
$ cd /boot $ mkinitrd initrd-custom-2.4.22-1.2149.nptlsmp.img 2.4.22-1.2149.nptlcustomThis creates under /boot the file initrd-custom-2.4.22-1.2149.nptlsmp.img
10) cp your bzImage and System.map under /boot
$ cp /usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-custom-2.4.22-1.2149.nptlsmp $ cp /usr/src/linux-2.4/System.map /boot/System.map-2.4.22-1.2149.nptlsmpcustom
11) cd /boot and update the link to System.map
$ cd /boot $ ln -sf System.map-2.4.22-1.2149.nptlsmpcustom System.map
12) Add an entry into your grub for the new kernel, edit the file /boot/grub/grub.conf and add something like this:
title Fedora Core (2.4.22-1.2149.nptlsmp) custom root (hd0,0) kernel /vmlinuz-custom-2.4.22-1.2149.nptlsmp ro root=/dev/YOURROOTPARTITION initrd /initrd-custom-2.4.22-1.2149.nptlsmp.img
13) Reboot and good luck :)