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