[syslinux] EFI: HP + syslinux = crash

Oscar Roozen oscar.roozen at brightcomputing.com
Fri Jul 31 05:43:16 PDT 2015



In another mail I discussed my adventures on netbooting syslinux 6.03 
and newer from iPXE, either from an emulated rom on qemu/kvm/ovmf or by 
chainloading via ipxe.efi onto a real HP Proliant DL360 gen9 piece of 
iron. You might have asked yourself, why chainload? Why not load it 
directly? Believe me, i tried.

First I had to 'fix' my dhcpd.conf because HP probably read the docs on 
http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.txt 
instead of https://tools.ietf.org/html/rfc4578, so it advertises itself 
as architecture 0x07 (EFI Byte Code) instead of 0x09 (EFI X64).

For the record: During the first tests, the System ROM is at version 
1.32 and the NIC Firmware is at version 2.13.5.

The result for version 6.0.3 compiled from the tarball:

     >> Booting Embedded LOM 1 Port 1 : HP Ethernet 1Gb 4-port 331i Adapter
     - NIC (PXE IPv4)

     >> Booting PXE over IPv4.
     Station IP address is 10.141.166.254

     Server IP address is 10.141.255.254
     NBP filename is efi64/syslinux-603.efi
     NBP filesize is 175848 Bytes
     Downloading NBP file...

     NBP file downloaHello again dear list,ded successfully.
     Getting cached packet
     My IP is 10.141.166.254
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: stalling on configure with no mapping
     core_tcp_connect: aborting on no mapping
     tcp close failed: 17

So... this is EFI_NO_MAPPING. Is this very different from the 
EFI_NO_MEDIA I get when booting via iPXE?

Testing with commit 8702009f yields worse results:


     >> Booting Embedded LOM 1 Port 1 : HP Ethernet 1Gb 4-port 331i 
Adapter - NIC (PXE IPv4)

     >> Booting PXE over IPv4.
       Station IP address is 10.141.166.254

       Server IP address is 10.141.255.254
       NBP filename is efi64/syslinux-87020-or.efi
       NBP filesize is 196440 Bytes
      Downloading NBP file...

       NBP file downloaded successfully.
     Getting cached packet
     My IP is 10.141.166.254

     X64 Exception Type 0D - General Protection Exception

     RCX=0000000000000000 DX=000000006BBC55B0 R8=00000000790C33E0 
R9=0000000073180218
     RSP=000000006BBC5558 BP=000000006BBC00B0 AX=0000000000000038 
BX=00000000770FCE18
     R10=0000000000000000 11=0000000000000000 12=0000000000000040 
13=0000000000000000
     R14=00000000772CCDD8 15=000000006BBC566F SI=000000006BBC55B0 
DI=000000006BBC55B0
     CR2=0000000000000000 CR3=000000006BB25000 CR0=80000013 CR4=00000668 
CR8=00000000
     CS=0038 DS=0038 SS=0030 ES=0038 RFLAGS=00010A07 MSR1D9=4801 
345=32C4 1C9=0003

     LBRs From      To       From      To       From      To       From 
      To
     01h  00093009->746EC191 7846C3B4->0005E598 7846C39A->7846C3B4 
7846E2B5->7846C392
     05h  746ECBEB->7846E290 0005E598->746ECBE0 7846C3B4->00000BC4 
7846C39A->7846C3B4
     09h  7846E2B5->7846C392 746ECBEB->7846E290 00000BC4->746ECBE0 
772899F7->00000000
     0Dh  772893F1->7728999D 6BBD4063->772893E8 6BBD425D->6BBD405F 
746EC19C->7846E290

     CALL ImageBase        ImageName+Offset
     00h  0000000000000000 No Image Information

(Excuses for the horrible wrapping... and the actual text is in RED)

In short: it just crashes with no helpful information whatsoever. The 
last message from syslinux is "My IP is %s".

Now I upgrade the System ROM to version 1.40 and the NIC Firmware to 
version 2.15.10. The results:

Version 6.0.3 just reboots shortly after printing "My IP is %s".

Version 8702009f still throws around various exceptions.



My questions:

Did anyone successfully boot syslinux on HP gen9 hardware? If so, which 
versions of syslinux, System ROM, NIC Firwmware and what dhcp config did 
you use?

How could I go further troubleshooting this problem? Booting takes ages 
and I'm not very familiar with how syslinux should work. What debugging 
steps do you propose?


Quoting from a blog post the support site for HP:
http://h30507.www3.hp.com/t5/Reality-Check-Server-Insights/Learn-how-to-modify-a-Linux-based-PXE-server-to-support-HP/ba-p/179983
> Unlike legacy BIOS systems, UEFI does not utilize pxelinux from the
 > syslinux package. UEFI requires a bootloader such as GRUB2 or ELILO.

Does this mean HP thinks syslinux does not support UEFI at all?

Any other suggestions?

Again, thanks for reading this and hopefully somebody can help me out here.


Using VMware
Regards,

Oscar Roozen
Linux Developer




More information about the Syslinux mailing list