Home > Linux > Fixing “Waiting for driver initialization” delay issue while booting on RHEL 5.4

Fixing “Waiting for driver initialization” delay issue while booting on RHEL 5.4

September 29, 2010 Leave a comment Go to comments

Recently I had a new installation of RHEL 5.4 on my home desktop. I observed that kernel/initrd boot time goes around 30 seconds (without including time to start init services and X). I already faced this using RHEL 5.4 on vmware and ignored it by thinking that it is vmware performance issue. I could not do same when it appears on actual desktop.So, I fixed it in this way.

I have removed “quiet” parameter from kernel line in grub.conf to see where it is taking more time. It is taking more than 15 seconds when it is doing “Waiting for driver initialization“. As it message is appearing after starting nash, it is the issue in initrd image, not with kernel. After extracting initrd image, and reviewing init script in that, got who is culprit. Here it is,

echo Waiting for driver initialization.

stabilized –hash –interval 1000 /proc/scsi/scsi

To know what is “stabilized”, checked manual of nash, it is not there. Did a google for it, and found there is a bug logged against it. Unfortunately this bug is not going to be fixed by RedHat :-(. Did not get any workaround in my search.

So, as a last resort downloaded its source code (actually, it is in mkinird-XX.src.rpm). After reviewing nash.c, stabilized has a checksum function and delay function. I guessed that this may be removed. So, experimented by removing it.

The init script in initrd image will be generated by mkinitrd script. I commented the line which contains,

emit “stabilized –hash –interval 1 /proc/scsi/scsi”

And generated initrd image again. Yes, as I guessed, with new initrd image there is no long “Waiting for driver initialization“.

Categories: Linux
  1. Nils
    December 23, 2011 at 4:14 AM

    Amazing. This “Bug” still exists in 5.7. Red Hat said that you just have to pass “–iterations 1” to reduce the time to the expected value. The core problem is that some SCSI-devices seem to need that wait as it is. Your Desktop (just like mine) propably has SATA – which does not need that delay – but also will not initialize as scsi-device. So we hit the full wait here…

  2. Ch Simhachalam
    January 1, 2012 at 9:44 PM

    This is the best explanation I have found on this issue in google. I request all to find a simple solution for the benefit of all.

  1. No trackbacks yet.

Leave a reply to Nils Cancel reply