RHEL/Centos/Scientific Linux 6.0: PXE install fails due to missing network driver

I experienced an issue trying to run a networked install of SL6.0 on a Dell Optiplex 380 with a Broadcom 57780 network card. The install fails to download the kickstart file due to a missing driver in the pxe kernel. This card uses the tg3 driver, which in turn loads the broadcom driver.

Pre-requisites: a kickstart/PXE server, a working RHEL/Centos/SL machine to obtain the broadcom.ko file (found in /lib/modules/`uname -r`/kernel/drivers/net/phy)

To resolve:

#make a scratch dir
mkdir -p $basedir; cd $basedir
# download the initrd.img (i have a copy on my kickstart server)
wget http://kickstart/install/SL60/images/pxeboot/initrd.img
# unpack the file.
gunzip -c --suffix=.img ../initrd.img | cpio -i
#now let's move the original file out of the way
mv initrd.img ../initrd-original.img
# assuming you are on a working 6.0 install, you can do the following
cp /lib/modules/`uname -r`/kernel/drivers/net/phy/broadcom.ko $basedir/modules/`uname -r`/kernel/drivers/net/phy
gzip $basedir/modules/`uname -r`/kernel/drivers/net/phy/broadcom.ko

Now add the word “broadcom.ko” without quotes on a new line to the file: $basedir/modules/`uname -r`/modules.networking

#now run depmod to create modules.dep files
depmod -b $basedir
# finally, ensure we are in $basedir; remove the original initrd.img repackage the initrd
cd $basedir
find ./ | cpio -H newc -o > ../initrd-new.cpio
cd ../
gzip initrd-new.cpio
mv initrd-new.cpio.gz initrd-modified.img

Now scp the file to the /tftpboot directory of your PXE server, and edit your pxe config file to use initrd-modified.img instead of initrd.img (or change this temporarily on the grub command line on your next boot to test)

Update: this is resolved in Scientific Linux 6.1 (therefore Centos and RHEL too)

This entry was posted in Linux, RHEL and tagged , , , , , . Bookmark the permalink.

2 Responses to RHEL/Centos/Scientific Linux 6.0: PXE install fails due to missing network driver

  1. Ahmed Kamal says:

    Oh this is awesome! Thanks. Broadcom is always troublesome on Linux 😉

  2. Lyix says:


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s