Elilong Home Page
Welcome to the elilong home page
Elilong is a c based UEFI bootloader wih a bash install script.
Project History
It was created because the author was unable to boot using elilo when his bios had "above 4G decode" turned on and "resize-bar" turned on. Because elilo is dormant, and has issues compiling, there was no way to patch it. As a result this project was started from scratch, with the objective of booting in those circumstances, and having a similar config file.
The name is a play on "elilo Next Generation" and long aka 64bit (above 4g decoding support). It is deliberately simple for those that have used lilo and elilo, unlike grub2 which is a much more complex bootloader
The current version is 0.2.0 and the latest source can be downloaded from
https://downloads.sourceforge.net/project/elilong/elilong-0.2.0.tar.gz and the md5 sum is 48678ed3ddc14f0fe24a02be28e39833
Status
This software works for the author. your mileage may vary. consider it beta for now. In theory it supports dual booting gnu-linux and windows, providing it is installed on the linux distro.
Generic install instructions
extract the source code, see the README.md for dependencies and important comment about secure boot.
wget https://downloads.sourceforge.net/project/elilong/elilong-0.2.0.tar.gz
tar -xvf elilong-0.2.0.tar.gz
cd elilong-0.2.0/core-source
make clean && make
sudo make install
sudo elilongsetup
Extra notes
The makefile variable DESTDIR can be specified when running make install.
eg:
make install DESTDIR="/packagingstuff/elilong/"
This changes the temporary root location of make install, and it is expected that the files in DESTDIR will be moved to the root mount by whatever packaging system you use.
Slackware installation
A Slackware package can be created by downloading and extracting the files in
https://downloads.sourceforge.net/project/elilong/elilong-0.2.0-slackbuild.tar.gz.
wget https://downloads.sourceforge.net/project/elilong/elilong-0.2.0-slackbuild.tar.gz
tar -xvf elilong-0.2.0-slackbuild.tar.gz
cd elilong
wget https://downloads.sourceforge.net/project/elilong/elilong-0.2.0.tar.gz
sudo ./elilong.SlackBuild
sudo installpkg /tmp/elilong-0.2.0-*.txz
sudo elilongsetup
Help
There is a man page. man elilong will give information on elilong, elilongsetup and elilong.config
Changelog
Changelog - elilong
[0.2.0] - 2026-06-01
Added
- added support for 32bit x86, and 32 and 64bit arm and riscv (untested) in the makefile. x86_64 is tested.
note due to uefi limitations you can only boot the bitness that the uefi bios is written in. At the moment
elilong just supports booting kernels with the bitness it was compiled with.
- added example message.txt text art files for some distros, so that you can tell which distro
elilong was compiled on. it is injected into elilongsetup at compile time, and is copied to the efi system directory if an existing message.txt file is not present.
Fixed
- improved the "manual ci". corrected update of README.md before source archive (and md5sum) is created.
- fixed file permisions for the slackbuild tar.gz, and also for the sbo slackbuild tar.gz
- minor fix to man page.
[0.1.9] - 2026-05-27
Added
- added detection of secureboot and indicating it in the top right of the menu border.
- handle uefi watchdog timer so that the system doesn't reboot on the menu if the user waits 5mins. We enable the watchdog timer again when we are past the menu and ready to boot.
- impovements to the "manual ci" including fixing permissions for slackbuild generation for sbo, and running it through sbolint. changed project slackbuild to be in elilong subdir instead of slackware to standardise, and fix TAG for both slackbuilds.
- added indicator of binary bitness in bottom left of menu border. Note: at the moment, although the source
should be fine for any 32 or 64bit platform that efilib supports, the makefile just supports x86_64 at the moment
- improvements to makefile for elilongsetup and man page
[0.1.8] - 2026-05-25
Added
- added description keyword and logic, including screen text dimensions and menu generation.
- added support for arrow keys to select menu item, and supporting more than 9 boot options.
- added a cap on menu items of 18. this allows a menu to fit on a standard 80x25 character eufi text display. we'll have to impliment a scrolling list to allow any more than 18 items.
f
[0.1.7] - 2026-05-17
Added
- restructured project directories, added gplv3 license and references to it in the source and setup script.
[0.1.6] - 2026-05-17
Added
- added message keyword, and logic. if an (ascii) message file is specified and exists, the first 2000
characters will be displayed prior to showing the menu.
[0.1.5] - 2026-05-12
Added
- added prompt keyword, and logic. if prompt is specified and delay or timeout is not specified then wait indefinitely for the user to select a boot entry, otherwise use the biggest value of delay or timeout.
[0.1.4] - 2026-05-12
Added
- fixed menu display and selection when pressing enter
- added default= keyword and updated man page and elilong.conf generation
[0.1.3] - 2026-05-11
Added
[0.1.2] - 2026-05-11
Added
- support for root= keyword
- support for read-only keyword
- added version and date to created config file.
- updated ci.
[0.1.1] - 2026-05-10
Added
- visual countdown timer to the boot menu
- support for "enter" key to immediately boot the first entry
[0.1.0] - 2026-05-08
- initial version of elilong, a simple bootloader using a elilo style config file
- basic support for image, initrd and label in the config file. delay hardcoded to 10sec
- if file does not exist, it is created by elilongsetup, and in theory can also boot windows (not tested)
- it falls back to elilo.conf if elilong.conf does not exist, and if that fails, tries to run \BOOT\BOOTX86.EFI on the efi sytem partition if it exists
features so far are
- boots with or without "above 4gb decoding" or "resizebar" enabled in the bios
(this was the reason for the project, as elilo was failing to boot on the author's machine with it enabled.)
- limited parsing of elilong.conf or elilo.conf for boot options.
it understands image, label, initrd and append, and ignores blank lines, comments, ie
lines beginning with #, and any other keywords that elilo.conf may have
- the project was named as a play on elilo Next Generation, and elilo long (aka passing 64bit data to the kernel)
it is not based on elilo source code.
- immediate planned improvements are:
- indicating the timeout before starting if nothing is pressed
- allowing the timeout to be specified in the config file
- allowing for the default keyword in the config.
- longer term plans
- allow for a graphical output/background image
- allowing some sort of secureboot bypass to allow booting if secureboot is enabled, without checking signatures
- testing booting to windows (non-secure boot)
- option to boot to last kernel/system booted, with menu fallback
- option to manually list and specify .efi file to boot, and enter any options.