Pxe boot with Broadcom BCM5754 does not work
I am using Knoppix 6.7.0 in a PXE boot environment. I have remastered it a little bit to remove some packages and whatnot, but it's pretty vanilla. It's been working fine for a few months now, on lots of different hardwares.
I am having a problem with PXE booting a Dell 740 which has a Broadcom BCM5754 Gigabit card. I believe the problem is the firmware for the card, although I don't know. I can boot the machine using the Knoppix 6.7.0 CD, and it loads the NIC driver fine.
The exact behavior is this: I do the PXE boot, and it loads the minirt.gz image. I see kernel loading lines flash through the screen very very quickly, and then the machine reboots. It appears to be rebooting at the point it's trying to execute udhcp. I can't say with certainty because it is rebooting so fast. Sometimes so fast I barely see the kernel lines show up.
I booted to cd (also Knoppix 6.7.0) to diagnose what modules are loaded etc, and found that the tg3.ko module has 3 firmware files it loads. Those files are not in the minirt.gz packing. (but they are on the cd). So i copied the /lib/firmware folder to the minirt.gz, but it is not working. I then found a post on writing a custom hotplug script in /sbin/hotplug to load the firmware, but that does not seem to be executing, or if it is, it is not working. The article I found targeted Knoppix 5, so maybe it's not applicable anymore. (i tried to put an echo and a sleep to test, but for all i know it's in a background thread)
While I was at it, I modified the init script to not call the restart command in the bailout() function.
this does not stop the machine from rebooting!
I am at a loss as to how to diagnose this. It works from CD but not PXE, which shouts NIC, but I just don't know. I've tried removing the driver altogether to see if the script will pause and complain about no network / driver etc. No joy.
Any one have any ideas on how to approach this?
I booted to the CD and did a lsmod to get a list of everything. Then I used modinfo to go through the list for dependencies.
I then copied all of the .ko files to a drivers folder and renamed them to go in order. (ie, 0_ttm.ko, so that the nouveau.ko file can load).
I repacke the initram and rebooted, and this time the screen locks up with what looks like a kernel panic screen. This makes me feel like I'm moving in the right direction, but ... well, I put all of the kernel modules that I saw in /proc/modules. So I'm stumped again.
So i figured it out. and it makes no sense to me..
Somehow a while ago (like 5 months) I must have made a typeo when creating my customzed initrd. (this was when I was fixing the broadcomm b44.ko driver to work)
The root of the minirt.gz had a file called ..miniroot
I found it by accident. Once I removed that file and re-created the pxe minirt.gz it worked fine.
I don't understand how just this one model of machine broke, or even why it broke. but it's fixed now.
chalk this up to PEBKAC