aic7xxx/kernel version mismatch

Doug Ledford dledford at
Wed Mar 4 09:47:44 PST 1998

Togath wrote:
> Hello,
> I'm hoping one of you more experienced Linux admins or AIC7XXX programmers
> can help me with a problem I've been struggling with for several hours now.
> I have RedHat Linux 5.0 (kernel version 2.0.32) running on my Pentium 133
> system with an Adaptec 2940 SCSI host adapter (it's using the aic7xxx.o
> loadable module).  Everything works fine as of the RedHat install.
> I later built a smaller kernel without all the things I don't need, and
> everything was fine with that, too.
> However, last night I applied the patch-2.0.33 to the source distribution
> (which also upgrades the aic7xxx module from 4.1 to 4.1.1) and did the
> "make mrproper...xconfig...dep...clean...zImage...modules" etc and
> installed it.
> Now when I reboot using that new kernel, I get the following error message
> and kernel panic:
> Loading aic7xxx module
> /lib/aic7xxx.o: kernel-module version mismatch
>         /lib/aic7xxx.o was compiled for kernel version 2.0.32
>         while this kernel is version 2.0.33.
> VFS: Cannot open root device 08:14

The long and short of the problem is this.  The aic7xxx module is loaded
from an initrd ram disk image.  In order to have the new module you just
compiled get loaded instead of the old one that came with the distro, then
you need to remake the initrd file.  (Think about it, how could the system
read the /lib/modules/2.0.33/scsi/aic7xxx.o module from the disk if the
driver for the SCSI card isn't loaded yet?)  The easiest way to do this is
to issue the following commands:

mv /boot/initrd /boot/initrd-2.0.32
mkinitrd --ifneeded -f /boot/initrd-2.0.33 2.0.33
vi /etc/lilo.conf
  In here are one (or more) sections that start with a line that is
  For any of these sections that happen to point to a 2.0.33 kernel, change
  line that says initrd=/boot/initrd to initrd=/boot/initrd-2.0.33
  Save the file when all of these changes have been made (I recommend you
add a
  section to the lilo.conf file like this:
      root=/dev/sd??     <whatever your root drive is>
  which will then allow you to be able to boot the original 2.0.32 kernel as
  rescue kernel in case something goes wrong elsewhere.  NOTE: the file
  /boot/vmlinuz-2.0.32 should already exist as it should have been installed
  during the machine installation)  

 Doug Ledford  <dledford at>
  Opinions expressed are my own, but
     they should be everybody's.

To Unsubscribe: send mail to majordomo at
with "unsubscribe aic7xxx" in the body of the message

More information about the aic7xxx mailing list