> I have done another install to the usb stick. > > # syslinux --directory EFI/BOOT --install /dev/sdc1 > > ...this creates files ldlinux.c32 and ldlinux.sys in /EFI/BOOT > > I then mounted the 1st partition of the usb stick and copied > syslinux.efi and ldlinux.e64 from /usr/share/syslinux/efi64 to > /EFI/BOOT in the usb stick. > > I renamed syslinux.efi to BOOTX64.EFI > > I copied my files boot.msg, help.msg, logo.16, syslinux.cfg, vmlinuz > into /EFI/BOOT > > So, there are no files in the root directory of the 1st partition. > > Yes, it boots, I get the "Loadin vmlinuz... ok", then that's it. As > before, hangs, no output to screen. > > I have no idea what to do next. > > Regards > Barry > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >You are not supposed to execute the syslinux installer command. That command is for BIOS not UEFI! As noted in the Library modules wiki page, the c32 files have the same file name, but are different for each firmware/architecture. For UEFI, you simply _copy_ the relevant syslinux.efi (efi64) file to the adequate location: /EFI/BOOT/BOOTX64.EFI in your USB first partition (which should be FAT), and the ldlinux.e64 file. You also copy additional c32 modules to the same location if they are needed, and you create the /EFI/BOOT/SYSLINUX.CFG. Add the kernel+initrd+other file(s) according to your needs. Unmount. Reboot to your USB drive in UEFI mode. Regards, Ady.
On 11/6/14, Ady <ady-sf at hotmail.com> wrote:> >> I have done another install to the usb stick. >> >> # syslinux --directory EFI/BOOT --install /dev/sdc1 >> >> ...this creates files ldlinux.c32 and ldlinux.sys in /EFI/BOOT >> >> I then mounted the 1st partition of the usb stick and copied >> syslinux.efi and ldlinux.e64 from /usr/share/syslinux/efi64 to >> /EFI/BOOT in the usb stick. >> >> I renamed syslinux.efi to BOOTX64.EFI >> >> I copied my files boot.msg, help.msg, logo.16, syslinux.cfg, vmlinuz >> into /EFI/BOOT >> >> So, there are no files in the root directory of the 1st partition. >> >> Yes, it boots, I get the "Loadin vmlinuz... ok", then that's it. As >> before, hangs, no output to screen. >> >> I have no idea what to do next. >> >> Regards >> Barry >> _______________________________________________ >> Syslinux mailing list >> Submissions to Syslinux at zytor.com >> Unsubscribe or set options at: >> http://www.zytor.com/mailman/listinfo/syslinux >> > > You are not supposed to execute the syslinux installer command. That > command is for BIOS not UEFI! > > As noted in the Library modules wiki page, the c32 files have the > same file name, but are different for each firmware/architecture. > > For UEFI, you simply _copy_ the relevant syslinux.efi (efi64) file to > the adequate location: /EFI/BOOT/BOOTX64.EFI in your USB first > partition (which should be FAT), and the ldlinux.e64 file. You also > copy additional c32 modules to the same location if they are needed, > and you create the /EFI/BOOT/SYSLINUX.CFG. Add the > kernel+initrd+other file(s) according to your needs. Unmount. Reboot > to your USB drive in UEFI mode. > > Regards, > Ady. > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >Ok, thanks, things are becoming clearer. I have a success story now. I tested with both 32-bit and 64-bit kernels, got the same problem, that is, nothing after "Loading vmlinuz... ok". I took a punt on something. From the docs, I thought that the kernel parameter CONFIG_EFI_STUB is not required. However, I set it: CONFIG_EFI_PARTITION=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_MIXED=y CONFIG_FB_EFI=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_EFI_VARS=m # CONFIG_EFIVAR_FS is not set CONFIG_EARLY_PRINTK_EFI=y For a generic x86-64 kernel, after the "Loading vmlinux... ok", I now get kernel logging to the screen. It has a kernel panic as cannot run init, but that is another problem. The same EFI config with a 32-bit kernel does NOT work. Everything is somewhat clearer now, and I will refine the steps. I'll post a msg to the mail-list when I have got it all sorted out and documented. Thanks for your patience. Regards, Barry
> I have a success story now. I tested with both 32-bit and 64-bit > kernels, got the same problem, that is, nothing after "Loading > vmlinuz... ok". > > I took a punt on something. From the docs, I thought that the kernel > parameter CONFIG_EFI_STUB is not required. However, I set it: > > CONFIG_EFI_PARTITION=y > CONFIG_EFI=y > CONFIG_EFI_STUB=y > CONFIG_EFI_MIXED=y > CONFIG_FB_EFI=y > CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y > CONFIG_EFI_VARS=m > # CONFIG_EFIVAR_FS is not set > CONFIG_EARLY_PRINTK_EFI=y > > For a generic x86-64 kernel, after the "Loading vmlinux... ok", I now > get kernel logging to the screen. It has a kernel panic as cannot run > init, but that is another problem. > > The same EFI config with a 32-bit kernel does NOT work. > > Everything is somewhat clearer now, and I will refine the steps. I'll > post a msg to the mail-list when I have got it all sorted out and > documented. > > Thanks for your patience. > > Regards, > Barry >I am not an expert (very much far from it), but I think Syslinux does not rely on EFISTUB to boot EFI kernels. And yet, building the kernel with appropriate EFISTUB options might be helpful anyway. Syslinux might not need EFISTUB to boot the kernel, but perhaps the kernel itself needs the relevant EFISTUB options(?). Since you have not mentioned "CONFIG_RELOCATABLE=y" for the building options for your kernel, I wonder whether you have tried it in your tests. Testing the results might give you some clues (but I cannot assure it will). There is not much (or almost any) documentation targeted to building EFI kernels to be bootable specifically by Syslinux. UEFI is supposed to be some kind of (base for) simplification / standardization between firmware, bootloader and OS/kernel, so, in theory, most procedures were expected to be documented once and they should work for (most / all) UEFI bootloaders (except for the specific bootloader's configuration and/or features). In practice, this is not the case. I could post links to a lot of different documents / articles / blogs / wiki pages, targeting different levels of readers (developers, advance users, "plug and play" users and so on). Only few of them are really generic so to be helpful for different bootloaders, including Syslinux. Many of them have some skew / bias / particularities regarding one bootloader or another, or some type of hardware in particular, or some OS in particular. So, although I have read useful documentation about UEFI, procedures and what not, I am slightly reluctant to post specific links to existent UEFI documentation. Perhaps someone with experience in building kernels with UEFI support might consider posting in this Syslinux Mailing List; or maybe the Syslinux developers (past or present). Regards, Ady.