<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
This is a change request for ipxe to build as a bzImage instead of a
zImage and for xen virtual network interface (netfront) support in
ipxe.<br>
<br>
I have recently tested ipxe.lkrn with XenServer 6.0 to load a PV
RHEL 6 instance and found that the domain builder guts of xen
require the newer bzImage format. We are slowly switching to VMs on
XenServer but have an extensive pxe build system that we would like
to continue to use. PXE works with fully virtualized guests (HVMs
and Qemu) but not the more efficient paravirtualized systems.<br>
<br>
To test the PV build I did the following<br>
<br>
cp ipxe.lkrn to build server under
<a class="moz-txt-link-freetext" href="http://">http://</a><server>/<path1>/<path2>/ipxe.lkrn<br>
<br>
setup RHEL 6 VM from Citrix template<br>
set the boot path to <a class="moz-txt-link-freetext" href="http://">http://</a><server>/<path1><br>
set the VM to NOT start automatically<br>
<br>
changed the kernel and initrd that would be requested with the
following<br>
xe vm-param-set uuid=<vm-uuid>
other-config:install-kernel=<path2>/ipxe.lkrn<br>
xe vm-param-set uuid=<vm-uuid>
other-config:install-ramdisk=None<br>
<br>
edited the /usr/bin/eliloader script used by XenServer to turn on
debugging.<br>
log_details = True<br>
# Set this if you want to see verbose logging on both me and
my pygrubs<br>
<br>
When I started the VM it failed with "xc_dom_probe_bzimage_kernel:
boot protocol too old (0207): Invalid kernel". The full syslog
entries for eliloader is below. (The bold highlights are mine.)
Note that the loader copies ipxe.lkrn locally to vmlinuz-QxLM_u,
which I verified via md5sum. Also the domainbuilder part of xen can
use ELF-generic and multiboot-binary formats in addition to the
bzImage format in case one of those makes more sense.<br>
<br>
Lastly, the netfront virtual network interface of xen is
(partially?) documented here.<br>
<a class="moz-txt-link-freetext" href="http://wiki.xensource.com/xenwiki/XenNetFrontBackInterface">http://wiki.xensource.com/xenwiki/XenNetFrontBackInterface</a><br>
<br>
Note: If someone knows of another way to get access to our
pxelinux/menu.c32 entries that works with xen PVs let me know. A
modified ipxe.lkrn seems like the sanest solution I could come up
with.<br>
<br>
Thanks,<br>
Peter<br>
<br>
<br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT <br>
[12703] domainbuilder: detail: ### ----- xc domain builder logfile
opened ----- <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT <br>
[12703] domainbuilder: detail: xc_dom_allocate: cmdline="graphical
utf8 method=h<br>
ttp://ksimage.fsl.noaa.gov/pxe-boot/", features="" <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_kernel_file:
filename="/var/run/xend/boot/<b>vmlinuz-QxLM_u</b>" <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_malloc_filemap
: 355 kB <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_ramdisk_file:
filename="/var/run/xend/boot/ramdisk-H6wzN4" <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_malloc_filemap
: 27917 kB <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_boot_xen_init:
ver 4.1, caps xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64 <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_parse_image:
called <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_find_loader:<b>
trying ELF-generic loader</b> ... <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: loader probe failed <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_find_loader: <b>trying
Linux bzImage loader </b>... <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] xc: error: panic: xc_dom_bzimageloader.c:563: <b>xc_dom_probe_bzimage_kernel:
boot protocol too old (0207): Invalid kernel </b><br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: loader probe failed <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_find_loader: <b>trying
multiboot-binary loader</b> ... <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: loader probe failed <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] xc: error: panic: xc_dom_core.c:540:
xc_dom_find_loader: no loader found: Invalid kernel <br>
May 22 16:12:41 nemesis /opt/xensource/libexec/xenguest: 2012-05-22
16:12:41 MDT [12703] domainbuilder: detail: xc_dom_release: called <br>
May 22 16:12:41 nemesis xapi: [error|nemesis|218002|Async.VM.start
R:f95845c19327|xenguesthelper] Received: xc_dom_linux_build 2
panic: xc_dom_core.c:540: xc_dom_find_loader: no loader\"<br>
<br>
</body>
</html>