[syslinux] Syslinux EFI + TFTPBOOT Support

Steven Shiau steven at nchc.org.tw
Sat Mar 8 19:20:31 PST 2014


On 2014年03月09日 01:39, Gene Cumm wrote:
> So that should be vlance or flexible (which can be PCNet32 or e1000).
> Could you verify with a real OS?
>
> I see it has two cores per socket. Is it one socket? What exact make/model
> is the CPU in the host? You might be choking the VM.  Have you considered
> just 1 socket and 1 core per socket?
>
> --Gene
Hi Gene,
I made some progress. By creating a new VMWare WS 10 efi client, and
making sure the ethernet device is using "e1000" in .vmx file:
ethernet0.virtualDev = "e1000"
As you mentioned, 6.03-pre7 has some regression. This testing was done
with 6.03-pre6.
Now my client is able to EFI PXE boot. The log shows PXElinux required
files were downloaded, and finally it booted:
===============
Mar  9 10:36:23 drbldbn dhcpd: DHCPACK on 192.168.120.3 to
00:0c:29:68:f3:23 via vmnet1
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving bootx64.efi to
192.168.120.3:1808
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving bootx64.efi to
192.168.120.3:1809
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving ldlinux.e64 to
192.168.120.3:1810
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving
pxelinux.cfg/564d880a-57b6-3c13-26d5-a2af8968f323 to 192.168.120.3:1811
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving
pxelinux.cfg/01-00-0c-29-68-f3-23 to 192.168.120.3:1812
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A87803 to
192.168.120.3:1813
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A8780 to
192.168.120.3:1814
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A878 to
192.168.120.3:1815
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A87 to
192.168.120.3:1816
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A8 to
192.168.120.3:1817
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A to
192.168.120.3:1818
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0 to
192.168.120.3:1819
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/C to
192.168.120.3:1820
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving pxelinux.cfg/default to
192.168.120.3:1821
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving vesamenu.c32 to
192.168.120.3:1822
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving efi64/vesamenu.c32 to
192.168.120.3:1823
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving libcom32.c32 to
192.168.120.3:1824
Mar  9 10:36:23 drbldbn atftpd[10590]: Serving efi64/libcom32.c32 to
192.168.120.3:1825
Mar  9 10:36:24 drbldbn atftpd[10590]: Serving libutil.c32 to
192.168.120.3:1826
Mar  9 10:36:24 drbldbn atftpd[10590]: Serving efi64/libutil.c32 to
192.168.120.3:1827
Mar  9 10:36:24 drbldbn atftpd[10590]: Serving pxelinux.cfg/default to
192.168.120.3:1828
Mar  9 10:36:24 drbldbn atftpd[10590]: Serving drblwp.png to
192.168.120.3:1829
Mar  9 10:36:25 drbldbn atftpd[10590]: Serving vmlinuz-pxe to
192.168.120.3:1830
Mar  9 10:36:28 drbldbn atftpd[10590]: Serving initrd-pxe.img to
192.168.120.3:1831
Mar  9 10:37:32 drbldbn dhcpd: Client 0:c:29:68:f3:23 requests
1:3:6:c:f:1c:2a - DRBLClient - no dhcp-client-id
Mar  9 10:37:32 drbldbn dhcpd: DHCPDISCOVER from 00:0c:29:68:f3:23 via
vmnet1
Mar  9 10:37:33 drbldbn dhcpd: DHCPOFFER on 192.168.120.3 to
00:0c:29:68:f3:23 via vmnet1
Mar  9 10:37:33 drbldbn dhcpd: Client 0:c:29:68:f3:23 requests
1:3:6:c:f:1c:2a - DRBLClient - no dhcp-client-id
Mar  9 10:37:33 drbldbn dhcpd: DHCPREQUEST for 192.168.120.3
(192.168.120.254) from 00:0c:29:68:f3:23 via vmnet1
Mar  9 10:37:33 drbldbn dhcpd: DHCPACK on 192.168.120.3 to
00:0c:29:68:f3:23 via vmnet1
Mar  9 10:37:33 drbldbn rpc.mountd[8609]: authenticated mount request
from 192.168.120.3:934 for /tftpboot/node_root (/tftpboot/node_root)
===============
One thing I noticed is, it took almost 1 minute to download  the
initrd-pxe.img (13 MB). Before I saw that, I thought it hanged. :)
To compare that with BIOS PXE booting, I commented the 'firmware =
"efi"' line in my .vmx file, and changed the line "PATH efi64/" to "PATH
bios/" in my pxelinux config file then did a BIOS PXE booting this time.
The log shows:
================
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.0 to
192.168.120.3:2070
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.0 to
192.168.120.3:2071
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving ldlinux.c32 to
192.168.120.3:49152
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving
pxelinux.cfg/564d880a-57b6-3c13-26d5-a2af8968f323 to 192.168.120.3:49153
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving
pxelinux.cfg/01-00-0c-29-68-f3-23 to 192.168.120.3:49154
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A87803 to
192.168.120.3:49155
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A8780 to
192.168.120.3:49156
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A878 to
192.168.120.3:49157
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A87 to
192.168.120.3:49158
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A8 to
192.168.120.3:49159
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0A to
192.168.120.3:49160
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C0 to
192.168.120.3:49161
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/C to
192.168.120.3:49162
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/default to
192.168.120.3:49163
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving vesamenu.c32 to
192.168.120.3:49164
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving bios/vesamenu.c32 to
192.168.120.3:49165
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving libcom32.c32 to
192.168.120.3:49166
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving bios/libcom32.c32 to
192.168.120.3:49167
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving libutil.c32 to
192.168.120.3:49168
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving bios/libutil.c32 to
192.168.120.3:49169
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving pxelinux.cfg/default to
192.168.120.3:49170
Mar  9 11:04:07 drbldbn atftpd[10590]: Serving drblwp.png to
192.168.120.3:49171
Mar  9 11:04:08 drbldbn atftpd[10590]: Serving vmlinuz-pxe to
192.168.120.3:49172
Mar  9 11:04:08 drbldbn atftpd[10590]: Serving initrd-pxe.img to
192.168.120.3:49173
Mar  9 11:04:14 drbldbn dhcpd: Client 0:c:29:68:f3:23 requests
1:3:6:c:f:1c:2a - DRBLClient - no dhcp-client-id
Mar  9 11:04:14 drbldbn dhcpd: DHCPDISCOVER from 00:0c:29:68:f3:23 via
vmnet1
Mar  9 11:04:14 drbldbn dhcpd: DHCPOFFER on 192.168.120.3 to
00:0c:29:68:f3:23 via vmnet1
Mar  9 11:04:14 drbldbn dhcpd: Client 0:c:29:68:f3:23 requests
1:3:6:c:f:1c:2a - DRBLClient - no dhcp-client-id
Mar  9 11:04:14 drbldbn dhcpd: DHCPREQUEST for 192.168.120.3
(192.168.120.254) from 00:0c:29:68:f3:23 via vmnet1
Mar  9 11:04:14 drbldbn dhcpd: DHCPACK on 192.168.120.3 to
00:0c:29:68:f3:23 via vmnet1
================
You can see that the client spent only 6 secs to download the
initrd-pxe.img file.
Therefore for the time being, the performance of pxelinux efi64 is not
as good as that of pxelinux bios.
Besides, I also did a test about "e1000e" by assigning:
ethernet0.virtualDev = "e1000e"
in my .vmx file. The result is the same with that of PCnet32 NIC.

Therefore for the time being, the conclusion to me:
1. Remember to use "e1000", not "PCnet32" or "e1000e" firmware for the
VM client.
2. Stay with syslinux 6.03-pre6 before the next testing release.

I will do some tests with real machine clients when I enter office tomorrow.
Thank you very much.

Steven.

-- 
Steven Shiau <steven _at_ nchc org tw> <steven _at_ stevenshiau org>
National Center for High-performance Computing, Taiwan. http://www.nchc.org.tw
Public Key Server PGP Key ID: 4096R/47CF935C
Fingerprint: 0240 1FEB 695D 7112 62F0  8796 11C1 12DA 47CF 935C



More information about the Syslinux mailing list