[CentOS] Adding a kernel module to the ISO/installer initrd?

Thu May 28 17:17:08 UTC 2009
Tim Nelson <tnelson at rockbochs.com>

Greetings list!

Because of the sheer number of box (re)installations we do that have a CentOS base, I've converted our provisioning process to PXE. However, I've found that an alarming number of motherboards are coming with the Realtek RTL8168 ethernet controller onboard. When the system boots, it cannot find an ethernet controller and the installer process hangs.

I made a new initrd from a running system that was installed via CD and had the kernel module installed afterwards. However, when using the new initrd to PXE boot a new box, it dies saying something about not being able to use/find /dev. The original initrd from the ISO is 5.1MB whereas the initrd I built from the working system is only 2.4MB. I have a feeling that the initrd I built (using mkinitrd -v --with=r8168 <path to output initrd> <kernel version>) does not include modules required by the installer.

So, my question is this: is there a way to (1) create an initrd with ALL available modules or at the very least, (2) take the original ISO initrd and simply add the module I need? This initrd will need to work with all of the other hardware I support and should not be specialized for this single motherboard if possible.

I've been up and down Google/CentOS Wiki/etc and cannot seem to find a valid way of doing either of the above.

Suggestions, ideas, help?

Tim Nelson
Systems/Network Support
Rockbochs Inc.
(218)727-4332 x105