[syslinux] Using pxelinux mboot.c32 to multiboot Solaris

Doug Scoular dscoular at gmail.com
Mon Apr 30 23:22:42 PDT 2007


Hi All,

Now that we have multiboot capable pxelinux, thanks to mboot.c32,
I decided to try and remove pxegrub from my x86 jumpstart infrastructure
since, in theory, pxelinux can now do it all.

The problem I'm having is I'm not very sure I'm following Tim's documentation
correctly... I'm not 100% what comes after the --- and whether the Sun kernel
needs it's arguments specified their as well or whether it just needs the
contents of the initial RAM disk aka the miniroot.

Simply put, I'm trying to convert the following pxegrub menu.lst entry to a
pxelinux.cfg mboot.c32 entry. Here's the pxegrub menu.lst entry:


title PXEGrub x86 Jumpstart
kernel /solaris/multiboot.sol10 kernel/unix -v -m verbose install
http://64.104.195.120/jumptest/test1.tar -B
install_media=172.16.254.129:/export/install
module /solaris/x86.miniroot.sol10

And here's my attempt to convert the above to pxelinux multiboot:

LABEL JUMPSTART
        MENU LABEL ^Solaris Jumpstart
        kernel mboot.c32
        APPEND /solaris/multiboot.sol10 kernel/unix -v -m verbose
install http://64.104.195.120/jumptest/test1.tar -B
install_media=172.16.254.129:/export/install ---
/solaris/x86.miniroot.sol10

While both manage to boot into Solaris miniroot only pxegrub configures it's
network interface via DHCP and starts to jumpstart. The pxelinux multiboot fails
to configure it's network interface and drops to a shell.

In the Solaris miniroot, the script /sbin/install-discovery calls
/sbin/netstrategy to
determine whether it needs to configure it's interfaces. This seems to be the
differentiator between the two behaviours, on pxegrub I get:

localhost# /sbin/netstrategy
ufs pcn0 dhcp

On pxelinux multiboot I get:

# /sbin/netstrategy
ufs none none

When I looked at the source for netstrategy:

http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/cmd-inet/sbin/netstrategy/netstrategy.c

It appears to call sysinfo(SI_DHCP_CACHE, &dummy, sizeof (dummy))) to
determine whether the kernel used DHCP.

My question is, why is there a difference between pxegrub booting Solaris
and mboot.c32 ?

Any help hugely appreciated!

P.S. Apologies for some of the longer lines being wrapped by gmail.

Cheers,

Doug

--

The big print giveth and the small print taketh away.




More information about the Syslinux mailing list