iPXE discussion forum

Full Version: iPXE and OpenBSD
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

I'm trying to boot an OpenBSD kernel from iPXE. So far, I'm having no luck.

If I try to load an OpenBSD 5.0 amd64 bsd.rd kernel in iPXE, I get:

Code:
Could not select: Exec format error (http://ipxe.org/2e008001)

My second attempt was to chainload OpenBSD's PXE loader, however this doesn't quite work either. OpenBSD pxeboot reads /etc/boot.conf from TFTP and I have it set up to boot a specified kernel. When I boot straight into OpenBSD pxeboot, this works perfectly. However, when I chainload it through iPXE, I get this:

Code:
probing: pc0 com0 com1 pxe![2.1] mem[558K 246M 408K a20=on]
disk: fd0 hd0+
net: mac ab:cd:ef:12:34:56, ip 10.1.2.3, server 10.5.6.7
>> OpenBSD/amd64 PXEBOOT 3.16

pxe_netif_open: PXENV_UDP_OPEN failed: 0x1
net_open: netif_open() failed
boot>

However, I can manually type in a kernel filename at the prompt, and it will boot, but I can't automate it.

Anyone have any ideas what's happening here?

Thanks!


Alex
Most likely the OpenBSD kernel format is not supported by iPXE directly, which is why you need to use pxeboot (which is a PXE binary, supported by iPXE).

I can only assume that when you try to automate pxeboot, it has some problems with a prefix so it doesn't actually load the file you think it does. Have you tried enabling debug logging on your tftp server to see exactly what file it asks for? If you can't get it to tell you that, you might also have luck with a packet trace on the tftp server to see what's being requested.

It would be beneficial if you show us the iPXE script/commands you use to load pxeboot (in the automated way) and how you do it manually. Maybe it can shine some more light on the subject matter.
(2013-02-23 23:27)robinsmidsrod Wrote: [ -> ]Most likely the OpenBSD kernel format is not supported by iPXE directly, which is why you need to use pxeboot (which is a PXE binary, supported by iPXE).

"file" says that it's an ELF binary, and ELF appears in the list of supported features in the iPXE banner...

Quote:Have you tried enabling debug logging on your tftp server to see exactly what file it asks for?

Yes, I have, it doesn't ask for anything, I don't see any requests from it. When I boot it directly (not from iPXE), it asks for /etc/boot.conf in the beginning, but it throws up the error instead of doing it when I chainload it from iPXE.

Quote:If you can't get it to tell you that, you might also have luck with a packet trace on the tftp server to see what's being requested.

That's what I did, I didn't see any packets.

Quote:It would be beneficial if you show us the iPXE script/commands you use to load pxeboot (in the automated way) and how you do it manually.

For the purposes of these tests, I was typing commands into iPXE (undionly.kkpxe) manually. They were:

Code:
set use-cached 1
dhcp net0
chain tftp://<server>/openbsd/pxeboot

After this, it fails as I described.

If I boot into OpenBSD pxeboot straight from the PXE ROM, it all works fine.

Thanks for your help!

Alex
Hello,
Did you try a script using memdisk to chain into a OpenBSD floppy boot image ?
My two cents,
Gilles

#!ipxe
kernel memdisk
initrd floppy.image
boot
m0ckt: Maybe there is a problem with the ELF image used that is not compatible with iPXE's ELF loader. I believe you might have found a bug. Please report it on the mailing-list.
Reference URL's