[ipxe-devel] Query on UEFI iPXE boot

Jarrod Johnson jarrod.b.johnson at gmail.com
Tue Jan 10 01:32:20 UTC 2012


Where did bootx64.efi come from in this specific example?  On the file
server, do you see the download request or are you saying it fails to even
download the file?  Also what are the expected benefits from chainloading
it from ipxe in the uefi context?  I ask as in UEFI world,things are
different and you will likely not get the behavior you expect after
understanding 'legacy' boot behavior.

For linux boots, I use a patched elilo (to use ipxe protocols, which is
only exported currently with a patch applied I got from Geoff Lywood).  I
haven't bothered chaining others (like the heavily patched grub redhat
ships with).  The only other payload I bother with is a patched ESXi
bootloader, and for Windows boot loader I never involve iPXE for UEFI boot
and go straight to bootmgfw.efi.
On Mon, Jan 9, 2012 at 9:36 AM, <Sanjeev.Roy at emulex.com> wrote:

> Hi Jarrod,****
>
> Thanks for the help.****
>
> I built the snponly.efi file.****
>
> I was using a bnx2  LOM for testing the iPXE NIC boot using UEFI. My iPXE
> server was hosted on a rhel5564 machine.****
>
> ** **
>
> The iPXE client was able to successfully download the snponly.efi file.
> However it got stuck immediately after downloading the bootx64.efi file.**
> **
>
> ** **
>
> Can you please suggest if I am doing anything wrong here?****
>
> ** **
>
> Below is the entry for the dhcpd.conf file:****
>
> ################################################****
>
> ** **
>
> cat /etc/dhcpd.conf****
>
> #****
>
> # DHCP Server Configuration file.****
>
> #   see /usr/share/doc/dhcp*/dhcpd.conf.sample  ****
>
> #****
>
> ** **
>
> option space ipxe;****
>
>   option ipxe-encap-opts code 175 = encapsulate ipxe;****
>
>   option ipxe.priority code 1 = signed integer 8;****
>
>   option ipxe.keep-san code 8 = unsigned integer 8;****
>
>   option ipxe.skip-san-boot code 9 = unsigned integer 8;****
>
>   option ipxe.no-pxedhcp code 176 = unsigned integer 8;****
>
>   option ipxe.bus-id code 177 = string;****
>
>   option ipxe.bios-drive code 189 = unsigned integer 8;****
>
>   option ipxe.username code 190 = string;****
>
>   option ipxe.password code 191 = string;****
>
>   option ipxe.reverse-username code 192 = string;****
>
>   option ipxe.reverse-password code 193 = string;****
>
>   option ipxe.version code 235 = string;****
>
>   option iscsi-initiator-iqn code 203 = string;****
>
>   # Feature indicators****
>
>   option ipxe.pxeext code 16 = unsigned integer 8;****
>
>   option ipxe.iscsi code 17 = unsigned integer 8;****
>
>   option ipxe.aoe code 18 = unsigned integer 8;****
>
>   option ipxe.http code 19 = unsigned integer 8;****
>
>   option ipxe.https code 20 = unsigned integer 8;****
>
>   option ipxe.tftp code 21 = unsigned integer 8;****
>
>   option ipxe.ftp code 22 = unsigned integer 8;****
>
>   option ipxe.dns code 23 = unsigned integer 8;****
>
>   option ipxe.bzimage code 24 = unsigned integer 8;****
>
>   option ipxe.multiboot code 25 = unsigned integer 8;****
>
>   option ipxe.slam code 26 = unsigned integer 8;****
>
>   option ipxe.srp code 27 = unsigned integer 8;****
>
>   option ipxe.nbi code 32 = unsigned integer 8;****
>
>   option ipxe.pxe code 33 = unsigned integer 8;****
>
>   option ipxe.elf code 34 = unsigned integer 8;****
>
>   option ipxe.comboot code 35 = unsigned integer 8;****
>
>   option ipxe.efi code 36 = unsigned integer 8;****
>
>   option ipxe.fcoe code 37 = unsigned integer 8;****
>
> ** **
>
> ** **
>
> ddns-update-style interim;****
>
> ignore client-updates;****
>
> subnet 192.168.1.0 netmask 255.255.255.0 {****
>
> range 192.168.1.50 192.168.1.90;****
>
> default-lease-time 3600;****
>
> max-lease-time 4800;****
>
> option subnet-mask 255.255.255.0;****
>
> option domain-name "pxe_text";****
>
> option time-offset -8;****
>
> }****
>
> ** **
>
> host bglinux45{****
>
>   next-server 192.168.1.1;****
>
>   hardware ethernet 5C:F3:FC:4B:B9:76; #HW addr of my client BNX2 interface
> ****
>
>   fixed-address 192.168.1.60;****
>
>   option host-name "linux-test";****
>
> ** **
>
> if exists user-class and option user-class = "iPXE" {****
>
>      filename "bootx64.efi";****
>
>   } else {****
>
>     filename "snponly.efi";****
>
>   }****
>
> }****
>
> #####################################################****
>
> ** **
>
> ** **
>
> Regards****
>
> Sanjeev****
>
> *From:* Jarrod Johnson [mailto:jarrod.b.johnson at gmail.com]
> *Sent:* Friday, January 06, 2012 8:58 PM
>
> *To:* Roy, Sanjeev
> *Cc:* mbrown at fensystems.co.uk; ipxe-devel at lists.ipxe.org
> *Subject:* Re: [ipxe-devel] Query on UEFI iPXE boot****
>
> ** **
>
> Instead of targeting *specifically* the device, I'd build snponly.efi.
> This is akin to undionly.kkpxe.
>
> I have successfully gotten it to work, but with some emulex firmware I've
> been messing with iPXE is having difficulty doing DHCP with SNP while I see
> no problems on any other nics (intel, broadcom, vmware's emulated intel,
> couple of others).
>
> xCAT when setting up chained UEFI boot constructs the following dhcp bit
> (s/xNBA/iPXE/ unless using the xCAT branch):
> host efitest1 {
>   dynamic;
>   hardware ethernet 42:8a:3b:42:a5:68;
>         supersede server.ddns-hostname = "efitest1";
>         supersede host-name = "efitest1";
>         if option user-class-identifier = "xNBA" and option
>              client-architecture = 00:00 {
>           supersede server.always-broadcast = 01;
>           supersede server.filename =
>                   "http://
> ${next-server}/tftpboot/xcat/xnba/nodes/efitest1";
>         } elsif option user-class-identifier = "xNBA" and option
>                 client-architecture = 00:09 {
>           supersede server.filename =
>                                       "http://
> ${next-server}/tftpboot/xcat/xnba/nodes/efitest1.uefi";
>         } elsif option client-architecture = 00:07 {
>           supersede server.filename = "xcat/xnba.efi";
>         } elsif option client-architecture = 00:00 {
>           supersede server.filename = "xcat/xnba.kpxe";
>         } else {
>           supersede server.filename = "";
>         }
> }
>
>
> ****
>
> On Fri, Jan 6, 2012 at 5:46 AM, <Sanjeev.Roy at emulex.com> wrote:****
>
> Hi All,
> Do we have any readme that suggests how we can execute iPXE UEFI boot?
> We tried UEFI IPXE boot with  an Intel igb CNA. The device ID was 10c9. We
> built 808610c9.efi. However while trying the UEFI iPXE boot using the .efi
> file we could see that the client is able to successfully download the.efi
> file. The client hangs after that. It never tries to get the bootx64.efi
> (required for booting to the EFI mode) file after that.****
>
>
> We were trying the UEFI boot with  Sles11sp164.
> Has anyone executed chain loading using iPXE in UEFI environment?****
>
> Regards
> Sanjeev****
>
>
> -----Original Message-----
> From: Roy, Sanjeev
> Sent: Thursday, December 22, 2011 12:32 AM
> To: Michael Brown; ipxe-devel at lists.ipxe.org
> Subject: RE: [ipxe-devel] Query on UEFI iPXE boot
>
>
> Hi All,****
>
> We tried UEFI IPXE boot with  an Intel igb CNA. The device ID was 10c9. We
> built 808610c9.efi. However while trying the UEFI iPXE boot using the .efi
> file we could see that the client is able to successfully download the.efi
> file. The client 808610c9hangs after that. It never tries to get the
> bootx64.efi (required for booting to the EFI mode) file after that.****
>
>
> We were trying the UEFI boot with  Sles11sp164.
> Has anyone executed chain loading using iPXE in UEFI environment?****
>
> Regards
> Sanjeev
>
> -----Original Message-----
> From: Michael Brown [mailto:mbrown at fensystems.co.uk]****
>
> Sent: Saturday, December 17, 2011 1:02 AM****
>
> To: ipxe-devel at lists.ipxe.org
> Cc: Roy, Sanjeev
> Subject: Re: [ipxe-devel] Query on UEFI iPXE boot****
>
> On Wednesday 14 Dec 2011 12:32:10 Sanjeev.Roy at emulex.com wrote:
> > We are using Emulex adapter.
> > We tried chainloading for EFI using iPXE similar to legacy boot, legacy
> > boot works fine.
> >
> > The configuration change in dhcpd.conf is
> > if exists user-class and option user-class = "iPXE" {
> >        filename "bootx64.efi"; # bootx64.efi is located @ tftp root
> > } else {
> >        filename "808610de.efi"; #808610de.efi is located @ tftp root
> > }
> > also tried with e1000e--r8169.efi and ipxe.efi instead of 808610de.efi
>
> 8086:10de is an Intel e1000 card.  You need to use the PCI IDs for your
> Emulex
> card instead.
>
> > Is there any specific way to generate the binary for Emulex adapter,
> which
> > is not been specified in e1000e_ich8lan.c, In this case how do we build
> > the driver image specific for this adapter.
>
> Emulex adapters are not (as far as I am aware) direct equivalents of Intel
> e1000 adapters.  You need to create an iPXE driver for Emulex adapters (or
> pay
> to have one created).
>
> Michael
> _______________________________________________
> ipxe-devel mailing list
> ipxe-devel at lists.ipxe.org
> https://lists.ipxe.org/mailman/listinfo/ipxe-devel****
>
> ** **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20120109/e9ba1df8/attachment.htm>


More information about the ipxe-devel mailing list