Bad news first - Patrick wrote:
download the above image,
[...]
then follow my instructions for LSI drivers - replacing the image with the hp one.
I tried, buit didn't work - the installer doesn't find the driver, I guess it's a kernel version mismatch problem.
Good news last - Stuntshell wrote:
Have you solved this problem yet?
I'm having a similar issue here!
I managed to install SME Server on the DL380G4, and published the procedure that follows as a revised, full fledged How-To. To access it, go to
Compaq Proliant DL 380 G4 Installation.
The problem is that onboard Smart Array 6i is not recognized by the 2.4.20 kernel used by SME Server, so we have to work out a solution to update its drivers.
Basically, I installed SME Server configured as Server only on a clean PC (a VMware virtual machine, to be nitpicky), followed by the kernel source, the development tools and the cciss driver sources (open source, from SourceForge); then, I compiled the
cciss.o kernel module for each kernel involved (the boot, UP and SMP), updated the
drvblock.img additional block driver disc with the new boot kernel module, modified the
boot.img installation floppy with the missing kickstart file and created a floppy with the UP and SMP
cciss.o modules.
Then, I was able to force the installer to ask for additional drivers, load the new
cciss.o, install as usual then shell to a command line before rebooting to copy the updated driver on the system and do a bit of needed reconfiguration.
In detail, here's what I did; as root on the new SME Server (the VMware machine):
# mkdir -p ~/SME-6.0.1-01-cciss/rpm-devel
# cd ~/SME-6.0.1-01-cciss/rpm-devel
In this directory I downloaded the developer packages (kernel source included) from
http://mirror.contribs.org/smeserver/contribs/hpe/devtools-6.01/dev-rpms/.
Then I installed it, overriding the dependency problems:
# rpm -Uvh --nodeps *.rpm
Time to get the cciss driver sources, available on SourceForge from the CCISS Project (
http://sourceforge.net/projects/cciss/); I copied the sources archive in a specific directory, then inserted its content in the kernel source tree:
# mkdir -p ~/SME-6.0.1-01-cciss/cciss
# cd ~/SME-6.0.1-01-cciss/cciss
# cp [...]cciss_2.4.50.tar.gz .
# cd /usr/src/linux-2.4/drivers/block
# mv cciss_cmd.h cciss_cmd.h.original
# mv cciss.c cciss.c.original
# mv cciss.h cciss.h.original
# mv cciss_ioctl.h ccis_ioctl.h.original
# mv cciss_scsi.c cciss_scsi.c.original
# mv cciss_scsi.h cciss_scsi.h.original
# cd /usr/src/linux-2.4/include/linux
# mv cciss_ioctl.h cciss_ioctl.h.original
# cd /usr/src/linux-2.4/Documentation
# mv cciss.txt cciss.txt.original
# mv mkdev.cciss mkdev.cciss.original
# cd /usr/src/linux-2.4
# tar xvzf ~/SME-6.0.1-01-cciss/cciss/cciss_2.4.50.tar.gz
# cp -a Makefile Makefile.original
Compilation time!The kernel modules must be compiled three times, one for each kernel involved (2.4.20-18-7BOOT, 2.4.20-18-7BOOT, 2.4.20-18-7smp); each time it's necessary to use the right configuration file and to tell make what kernel the modules are to be compiled for.
The configuration file issue is a matter of copying the right file, while the kernel type must be specified editing the
Makefile and setting the EXTRAVERSION variable accordingly.
In other words, for the boot kernel:
# cd /usr/src/linux-2.4
# cp -a Makefile.original Makefile
cp: overwrite Makefile'? y
# make clean mrproper
# cp configs/kernel-2.4.20-i386-BOOT.config .config
# vi Makefile
(EXTRAVERSION = -18.7BOOT)
# make oldconfig
(or "make menuconfig", then immediately "Exit" and save configuration)
# make dep
# make SUBDIRS=drivers/block modules
# mkdir -p ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7BOOT/kernel/drivers/block
# cp drivers/block/cciss.o ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7BOOT/kernel/drivers/block/
The UP and the SMP kernel module can be built in the same way:
# cd /usr/src/linux-2.4
# cp -a Makefile.original Makefile
cp: overwrite Makefile'? y
# make clean mrproper
# cp /boot/config-2.4.20-18.7 .config
# vi Makefile
(EXTRAVERSION = -18.7)
# make oldconfig
(or "make menuconfig", then immediately "Exit" and save configuration)
# make dep
# make SUBDIRS=drivers/block modules
# mkdir -p ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7/kernel/drivers/block
# cp drivers/block/cciss.o ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7/kernel/drivers/block/
and
# cd /usr/src/linux-2.4
# cp -a Makefile.original Makefile
cp: overwrite Makefile'? y
# make clean mrproper
# cp /boot/config-2.4.20-18.7smp .config
# vi Makefile
(EXTRAVERSION = -18.7smp)
# make oldconfig
(or "make menuconfig", then immediately "Exit" and save configuration)
# make dep
# make SUBDIRS=drivers/block modules
# mkdir -p ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7smp/kernel/drivers/block
# cp drivers/block/cciss.o ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7smp/kernel/drivers/block/
Let's juggle discsThe additional block device driver disk
drvblock.img can now be updated with the new
cciss.o boot kernel module:
# cd ~/SME-6.0.1-01-cciss
# mkdir -p floppy/files
# mount /dev/cdrom /mnt/cdrom
# cd floppy
# cp /mnt/cdrom/images/drvblock.img .
# mount -o loop -t auto drvblock.img /mnt/floppy
# cp /mnt/floppy/* files/
# umount /mnt/floppy
# cd files
# mv modules.cgz modules.cgz.original
# zcat modules.cgz.original | cpio -iv --make-directories
# cp ~/SME-6.0.1-01-cciss/lib/modules/2.4.20-18.7BOOT/kernel/drivers/block/cciss.o 2.4.20-18.7BOOT/
# find 2.4.20-18.7BOOT | tail +2 > cpio.list
# cpio -o -H crc < cpio.list | gzip -c9 - > modules.cgz
The disc
pcitable must be updated, too. Create a patch file
diff.patch as follows:
3,4c3,11
< 0x0e11 0xb060 "cciss" "Compaq|Smart Array 5300 Controller"
< 0x0e11 0xb178 "cciss" "Compaq|Smart Array 5i/532"
---
> 0x0e11 0x4070 "cciss" "Compaq|Smart Array 5300"
> 0x0e11 0x4080 "cciss" "Compaq|Smart Array 5i"
> 0x0e11 0x4082 "cciss" "Compaq|Smart Array 532"
> 0x0e11 0x4083 "cciss" "Compaq|Smart Array 5312"
> 0x0e11 0x409a "cciss" "Compaq|Smart Array 641"
> 0x0e11 0x409b "cciss" "Compaq|Smart Array 642"
> 0x0e11 0x409c "cciss" "Compaq|Smart Array 6400"
> 0x0e11 0x409d "cciss" "Compaq|Smart Array 6400 EM"
> 0x0e11 0x4091 "cciss" "Compaq|Smart Array 6i"
(fields must be separated by a single TAB character)
Then patch the
pcitable file:
# cp pcitable pcitable.original
# patch pcitable diff.patch
A new updated image
drvblock.img can now be created:
# cd ..
# cp drvblock.img drvblock.img.original
# chmod a+rw drvblock.img
# mount -o loop -t auto drvblock.img /mnt/floppy
# cp files/modules.cgz files/pcitable /mnt/floppy
cp: overwrite /mnt/floppy/modules.cgz'? y
cp: overwrite /mnt/floppy/pcitable'? y
# umount /mnt/floppy
As usual, the floppy can be created from the image with the command
dd if=drvblock.img of=/dev/fd0 bs=1440k.
It's time to create another image, containing the
cciss.o UP and SMP kernel modules:
# cd ~/SME-6.0.1-01-cciss
# tar cvzf floppy/cciss.o.tgz lib/modules/2.4.20-18.7/kernel/drivers/block/cciss.o lib/modules/2.4.20-18.7smp/kernel/drivers/block/cciss.o
# cd floppy
# dd if=/dev/zero of=cciss.o.img bs=1440k count=1
1+0 records in
1+0 records out
# losetup /dev/loop7 cciss.o.img
# mke2fs -c /dev/loop7
mke2fs 1.27 (4-Mar-2002)
[...]
Writing superblocks and filesystem accounting information: done
[...]
# losetup -d /dev/loop7
# mount -o loop -t auto cciss.o.img /mnt/floppy
# cp cciss.o.tgz /mnt/floppy/
# umount /mnt/floppy
As usual, the floppy can be created with the command
dd if=cciss.o.img of=/dev/fd0 bs=1440k.
The installation CD-ROM has a flaw: the installer doesn't ask for additional devices. I checked it, so it's positive.
This means that the installation must be started from the boot floppy. But the boot floppy is flawed, too: the kickstart file is missing. So, the
boot.img must be modified. Insert the SME Server CD-ROM:
# mount /mnt/cdrom
# cp /mnt/cdrom/images/boot.img .
# cp boot.img boot.img.original
# mount -o loop -t auto boot.img /mnt/floppy
# cp /mnt/cdrom/images/ks_stub.cfg /mnt/floppy/ks.cfg
# umount /mnt/floppy
# umount /mnt/cdrom
As usual,
dd if=boot.img of=/dev/fd0 bs=1440k to create the boot floppy.
Installation time!Ingredients: the modified boot disc, the updated additional block device driver disc, the
cciss.o kernel modules disc, the SME Server CD-ROM, the HP ProLiant DL380G4 - of course

Boot from the floppy, leaving the CD-ROM reader empty: the installer will not find the SME CD and will ask for it; go "Back", and select the (non existent) hard driver as installation media.
Tell the installer you want to configure additional devices, and press F2 to search them on a separate driver disk.
Insert the updated additional block device driver disk, press OK and select the sparkling new cciss driver. The hard disk now is recognized, but it's empty, so the installer will ask for the installation media again. Select "Local CDROM", press OK and insert the SME CD in the drive when the installer will ask for it.
From now on, it's business as usual, until the installation is complete. Instead of rebooting, press CTRL-ALT-F2 to the command line and dismount the driver disc:
# umount /tmp/drivers
Then insert the
cciss.o modules disc and do:
# chroot /mnt/sysimage
# mount -t auto /dev/fd0 /mnt/floppy
# tar xvzf /mnt/floppy/cciss.o.tgz
# /sbin/depmod -a 2.4.20-18.7
# /sbin/depmod -a 2.4.20-18.7smp
# cd /boot
# mv initrd-2.4.20.18.7.img initrd-2.4.20.18.7.img.original
# mv initrd-2.4.20.18.7smp.img initrd-2.4.20.18.7smp.img.original
# /sbin/mkinitrd initrd-2.40.20.18.7.img 2.40.20.18.7
# /sbin/mkinitrd initrd-2.40.20.18.7smp.img 2.40.20.18.7smp
# /sbin/lilo -v
# exit
The system now sees the Smart Array 6i and can boot from it. Press CTRL-ALT-F1 to go back to the installer and press OK to reboot.
During the first boot, the admin console asks for configurations: business as usual, the tg3 net drivers work just fine.
If you can read this line, you are a superhero. Apply for a job as a member of the "Incredibles" team...
