[syslinux] Syslinux EFI + TFTPBOOT Support

Gene Cumm gene.cumm at gmail.com
Fri Mar 7 13:56:31 PST 2014


On Fri, Mar 7, 2014 at 10:50 AM, Steven Shiau <steven at nchc.org.tw> wrote:
>
> On 2014年03月07日 23:05, Ady wrote:
>> I understand that these remarks might seem not the main issue, but I
>> tend to think that once you are successful while using only "default"
>>
>> values and in a minimalistic case, you could add complexity
>> (different paths, multiple firmwares, additional kernels, multiple
>> cfg files...).
> Ady,
> Thanks. I will follow your advice to test more.
>
> Gene,
> You mentioned you have booted several EFI64 systems with x86-64 kernels
> successfully.
> Could you please share your config files of dhcp, tftpd, pxelinux, and
> the tree of your tftpboot dir?
> Thanks in advance.

In /etc/vmware/vmnet8/dhcpd/dhcpd.conf I added the following:

host 7x {
        hardware ethernet 00:0C:29:38:6B:6E;
        filename "e6/bootx64.efi";
        next-server 172.21.1.1;
#       option vendor-encapsulated-options
d2:1B:68:74:74:70:3A:2F:2F:31:37:32:2E:32:31:2E:31:2E:31:2F:74:66:74:70:2F:65:36:2F:00:FF;
}

Currently atftpd (better logging and not interested in 92+MiB files
via TFTP when I have HTTP).

>From /tftpboot, I have a directory e6/ containing all EFI64 files and
a bunch of symlinks within the directory and to the parent (where I
keep BIOS stuff, including some kernel/initrds that can do BIOS and
EFI64).  bootx64.efi is a symlink to syslinux.efi.  syslinux.efi is a
symlink to slcur/syslinux.efi.  slcur is a symlink to a directory
containing whatever version I'm testing (say sl603p7/ for 6.03-pre7)
since I have about 20 versions prepped for use at the moment, half of
which I built for testing various patches.

e6/b/ is a symlink to ../b/ and contains tck3810i64.bz (TinyCore 5.0
x86-64 kernel), tc502rt32.gz (TinyCore 5.0.2 root-only 32bit),
tc502rt32m64.gz (TinyCore 5.0.2 modules for the x86-64 kernel) and
tckscsi64.cgz (A CPIO.GZ containing the SCSI modules for the x86-64
kernel and a file to mark it as loaded on boot).

The LABEL stanza I use is:

LABEL tc
    MENU LABEL TC
    LINUX b/tck3810i64.bz
    APPEND via-tftp
initrd=b/tc502rt32.gz,b/tc502rt32m64.gz,b/tckscsi64.cgz vga=771
    SYSAPPEND 2

I have a restart script as follows (which must run as root):

#!/bin/bash
PID=$(ps ax|grep '^.\{22\}0:00 /usr/bin/vmnet-dhcpd.*vmnet8'|awk '{print$1}')
echo "KIlling pid $PID"
kill $PID
/usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet8/dhcpd/dhcpd.conf -lf
/etc/vmware/vmnet8/dhcpd/dhcpd.leases -pf
/var/run/vmnet-dhcpd-vmnet8.pid vmnet8

-- 
-Gene



More information about the Syslinux mailing list