# [elilong]

elilong is a os bootloader. it uses a simple text conf similar to elilo. it includes `elilongsetup`
which will copy the binary from the staging location to the efi system partition, create a elilong.conf
file if one does not exist, it will add a vmlinuz entry, and a windows boot entry if it detects the windows
boot loader, and add a boot entry in the uefi firmware/bios. *Note*: if you use secure boot you **must**
add the `elilong.efi` file to the list of safe binaries in the uefi bios for it to be able to boot. At the moment you will also need to add the boot kernels to the uefi bios list as well.
if elilong cannot find/read elilong.conf it will look for and try to read elilo.conf
At the moment the  project has only been tested in 64bit environments booting 64bit os/kernels although should boot 32bit os/kernels from a 32bit environment, if you can find a uefi bios that works in 32bit.

## project origins
elilong was created because elilo was not booting on the author's pc with `above 4g decoding` enabled, or
`resize bar` enabled, which has become standard for am5 based motherboards. elilong does. also elilo is no
longer supported/active, so it wasn't possible to fix, and it has difficulties compiling.

## requirements
elilong requires `efi` and `libefi` libraries and the `gnu c compiler` to compile.
elilongsetup requires `bash` and a few linux utilities, such as `lsblk`, `md5sum`, `cut`, `cp`, `efibootmgr` and *root* priviledges to run. (in order to mount the efi system partition if needed, and write an entry to the bios.)
(the project "manual ci" requires python3)

## License & Usage
This project is open-source software licensed under the **GNU GPL v3** with additional terms permitted under Section 7.

### The "Plain English" Summary:
* **Free to Use:** You can compile, run, and use this code for any purpose.
* **Share Alike:** If you modify this code and share it with others, you **must** also make your modified source code available for free under the same license.
* **No Liability:** This software is provided "as-is" without any warranty. The author is not liable for any damages arising from its use.

### Important: Rebranding Requirements
To prevent user confusion with the official version, any derivative works or modified versions of this software **must**:
1. Change the primary **executable name**.
2. Change the **setup script name**
3. Change the **configuration filename**.
4. Not be marketed as "Official" or use the original project's branding/logos.

## Installation & Compilation
### Generic instructions on how to build and install the project from source.
```bash
# Example build command as root once you have downloaded the source
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
sudo make install
sudo /usr/sbin/elilongsetup
```
### Slackware compilation and installaion instructions.
for slackware the process is similar but there is a package script to create a managed package. Run the slackbuild and installpkg and elilongsetup commands as root.
```bash
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
./elilong.SlackBuild
```
to install the created package (as root)
```bash
installpkg /tmp/elilong-0.2.0.tgz
elilongsetup
```
