iPXE discussion forum

Full Version: "try to free memory without signature"
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi All,

I have a bunch of identical machines that all happily iPXE boot except one, which gives me the "try to free memory without signature" when initializing devices.

The NIC that is PXE booting is an onboard Intel I210V, and intel boot agent GE 1.5.73, and i am not able to flash it with intel's bootutil (not supported).

The motherboards are all on identical BIOS versions, and set up with identical options (I've tried reflashing the BIOS). I'm booting in legacy mode as UEFI settings in the BIOS cause the machines (all of them) to POST extremely slowly.

In any case, does this mean this one machine's motherboard is borked? Anything I could try to fix this?

What exactly are you booting?
As in which iPXE binary (for example ipxe.efi, undionly.kpxe etc)

The machines that are working are not really relevant...
instead, on the machine that is failing, what is the pciids of any nics in that machine?

If it is onboard NICs, than you need to flash the BIOS/firmware, since it is unlikely to have it's own ROM
Thanks for the reply!
In Linux, lspci -nn gives me:
02:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
for the only NIC i could use for PXE booting. This is the same on the working and not working machines. The Intel Boot Agent is exactly the same version as is the BIOS, which is the latest. Yeah, indeed i noticed that the onboard NIC doesn't have its own ROM.

Embarrassingly, I am not 100% sure what is being PXE booted exactly. I am using CloneDeploy in ipxe BIOS mode. looking at the log of my tftp server, a client first boots a file pxeboot.0 (as set in the DHCP options). If i read CloneDeploy sourcecode correctly, this file is undionly.kpxe
OK, undionly.kpxe uses the firmware/ROM pxe stack.

Is it the same BIOS version on all the devices?
It would be interesting to know what is causing this, but might be hard to debug.
A factory reset of BIOS settings might change it, but unlikely.

It would however be good if you could reproduce with stock undionly.kpxe from boot.ipxe.org or similar.
Thanks for that tip. I have already tried resetting BIOS, reflashing it, etc.

The machine (and all the others) do boot from undionly.kpxe from boot.ipxe.org. When i drop to shell and issue ifstat, I notice that there is a difference between the undionly.kpxe supplied with clonedeploy and the one i just downloaded. the clonedeploy one is a bit over 300kb and ifstat reports "using i210 on PCI02:00:0" whereas the fresh undionly.kpxe reports "using undiononly on 0000:02:00:0"

So i (randomly) guess quite some custom config went into the clonedeploy-supplied one (and perhaps the file is misnamed?). I'll try to build a clean undionly as i need to embed a script i think. Will report back (and would be happy to hear your insight with this new info)

Ok, i have built undionly.kpxe with an embedded script.
This one works fine:

chain http://boot.ipxe.org/demo/boot.php

But this one does not:

chain pxelinux.cfg/default.ipxe

I get http://ipxe.org/err/3c0920 after the dhcp command completed fine (it seems).
If i use a freshly self-compiled undionly without embedded script, get stuck in a boot loop, break to shell and issue the above two commands manually, things work fine. My DHCP server does provide a next server. How would I debug this? / Do you have a hunch what may be up?

Thanks a lot!
real undionly.kpxe will never display anything other than undi, the intel part which is showing in your output is from the iPXE native drivers which are included in ipxe.pxe builds.

I would recommend using latest ipxe.pxe as a test as well and see if you get the same memory signature error there as well.

Now over to your script... if you get a boot loop your dhcp is not configured to deal with that, you can read more at http://ipxe.org/howto/chainloading#break...inite_loop

What is it that you really want to boot? is it a file on tftp?
If the later of your scripts don't work, what is the actual ipxe error (including ipxe error url, don't exclude the message) that you are seeing after the chain command?
I do not get the memory error with the latest ipxe.pxe build (so guess whatever bug i hit is resolved, or some funky build thing from the custom build isn't in this latest build), but will keep using undionly.kpxe as it works equally fast it seems to me.

I indeed use the embedded script to break the loop. Turns out changing the last line to this:
chain tftp://${next-server}/pxelinux.cfg/default.ipxe
Does the trick.

Herewith all my issues are resolved. Thanks a lot for the great support!
Reference URL's