Package: initrd-tools
Version: 0.1.71
When upgrading from a 2.4 series kernel to a 2.6 series kernel, mkinitrd
properly builds the ramdisk image for the Intel ICH5 SATA storage
controller.
However, when upgrading from 2.6 to a newer 2.6 version, the boot
process fails due to some missing initrd modules (ata_piix and sd_mod)
Mounting the initrd image shows that the ata_piix and sd_mod are in fact
missing from the image. There are no problems if you generate the initrd
image while running a 2.4 kernel. It only occurs when running 2.6 and
using mkinitrd to generate an initrd.
The following patch seems to fix things.
--- mkinitrd 2004-08-08 13:59:04.000000000 -0700
+++ mkinitrd-working 2004-08-08 13:59:58.000000000 -0700
@@ -353,6 +353,10 @@
print_module \
drivers/scsi/ata_piix \
drivers/scsi/sd_mod
+ elif ! [ $oldkernel ]; then
+ print_module \
+ drivers/scsi/ata_piix \
+ drivers/scsi/sd_mod
fi
IDE_MODULE=none
The original logic seems to test for an old kernel AND new module style
(i.e. *.ko) which works fine going from 2.4 to 2.6. The problem is that
the test fails going from 2.6 to 2.6 and the print_module statement
never executes. Seems there also needs to be a check to catch a
situation where uname -r returns a new kernel (i.e. 2.6) and hence
$oldkernel is unset.
Using Debian GNU/Linux, kernel 2.4.25-1-386 (Sarge)
and kernel 2.6.7-1-686-smp
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev c2)
0000:00:1f.0 ISA bridge: Intel Corp. 82801EB/ER (ICH5/ICH5R) LPC Bridge (rev 02)
0000:00:1f.1 IDE interface: Intel Corp. 82801EB/ER (ICH5/ICH5R) Ultra ATA 100 Storage Controller (rev 02)
0000:00:1f.2 IDE interface: Intel Corp. 82801EB (ICH5) Serial ATA 150 Storage Controller (rev 02)
0000:00:1f.3 SMBus: Intel Corp. 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
Attachment:
signature.asc
Description: This is a digitally signed message part