<div>Hi all,</div><div><br></div><div>Below is a kinda crazy idea that I'm working on, and I'm now stuck due to my gPxe kernel not having the 'boot protocol' >= 2.08. I'm not a kernel guru; so I hope someone on this list may have some ideas/pointers to move forward. </div>




<div><br></div><div><b>The context:</b></div><div>I'm trying to create an Amazon EC2 AMI that just boots a gPxe kernel which then chain to the EC2 user data to get its pxe configuration. This would enable to directly provision any kind of machine on EC2 using pxe, removing the hassle of building/uploading images. Kickstart based install also enable to customize the partition table, the packages, etc.. </div>




<div><br></div><div><b>What I did so far:</b></div><div>EC2 (which is Xen based) enable to boot on custom kernels (using pv-grub). So I managed to build the right volume, with proper grub configuration to boot on the gpxe.lkrn (build from latest sources on git). When I boot on this kernel, here is what EC2 provides me as output:</div>



<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><font face="'courier new', monospace" size="1">kernel /boot/gpxe.krn <br><br>ERROR Invalid kernel: xc_dom_probe_bzimage_kernel: boot protocol too old (0207) xc_dom_bzimageloader.c:351: panic: xc_dom_probe_bzimage_kernel: boot protocol too old (0207) <br>



<br>ERROR Invalid kernel: xc_dom_find_loader: no loader found xc_dom_core.c:523: panic: xc_dom_find_loader: no loader found xc_dom_parse_image returned -1<br></font><br></blockquote><b>The problem:</b><br>Digging into xen source for this error [1], I realized that the xen loader used on EC2 only supports kernel packaged with a boot protocol greater or equal to 2.08 [2]. And from the error message, it seems the current boot protocol in gPxe is 2.07. I could also verify this in the source code [3].<div>


<br></div><div>This is where I'm stuck, having no clue on how to update gPxe boot protocol, what it actually means, if this has been done, or if even remotely possible.</div><div><br></div><div>Any pointers/ideas appreciated !</div>


<div><br></div><div>Cheers,</div><div><br></div><div>Laurent</div><div><br></div><div>[1] <a href="https://gist.github.com/2000467" target="_blank">https://gist.github.com/2000467</a> (see line 102)</div><div>[2] <a href="http://www.mjmwired.net/kernel/Documentation/x86/boot.txt#46" target="_blank">http://www.mjmwired.net/kernel/Documentation/x86/boot.txt#46</a></div>

<div>[3] <a href="http://git.etherboot.org/gpxe.git/blob/HEAD:/src/arch/i386/prefix/lkrnprefix.S#l122">http://git.etherboot.org/gpxe.git/blob/HEAD:/src/arch/i386/prefix/lkrnprefix.S#l122</a><br>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><font face="'courier new', monospace" size="1"><br></font></blockquote><br>
</div>