On 2/7/07, Chris Rouch <chris.rouch@xxxxxxxxx> wrote:
I have a diskless via epia m10K with a via-rhine network chip. This chip had buggy firmware, so that when the system is shut down cleanly (into D3 state according to the kernel code, though I'm not sure what that means), the firmware is switched off and does not become active again until re-started from the OS. On a diskfull setup this probably doesn't matter, but on a diskless client trying to boot from the network this is a significant problem. Fortunately the kernel developers have realised that via aren't going to fix their firmware and have added a patch that stops the kernel going to D3 state when given the appropriate parameter. From the code I see this: /* Work-around for broken BIOSes: they are unable to get the chip back out of power state D3 so PXE booting fails. bootparam(7): via-rhine.avoid_D3=1 */ My question is: where do I supply this parameter. I've tried adding "via-rhine.avoid_D3=1" to the boot stanza, but it is explicitly ignored when the system boots. Similarly I've tried adding options via-rhine avoid_D3=1 to /etc/modprobe.conf This doesn't generate any error messages but doesn't seem to help. Of course, as this is diskless I suspect the option has to go into the initrd.img.
From the overwhelming response, either I asked this question really
badly, or else no-one is doing this. In any case, and for the benefit of anyone who googles this later, the solution seems to be to add options via-rhine avoid_D3=1 to /etc/modprobe.conf, but the copy inside initrd.img, not the one on the running system. Setup like this, my diskless box has been powered down and netbooted half a dozen times successfully. Chris