- C 89%
- Assembly 7.4%
- Makefile 3.6%
| include | better font | |
| output/objects | init | |
| source | better font | |
| tests | init | |
| LICENSE | init | |
| makefile | big changes + other font | |
| PROTOCOL.md | init | |
| README.md | better font | |
miniboot
Miniboot is a multi-protocol bootloader/bootmanager for x86_64 uefi and bios platforms. Supported protocols:
- miniboot (see PROTOCOL for info)
- linux (UNTESTED!)
NOTE: bios hd booting is not supported yet (cd works).
Building:
miniboot requires some tools to build:
- make
- clang
- nasm
- objcopy
- imgr (https://codeberg.org/CodePoet2005/imgr)
Before building, update the makefile with paths on your system. Then type make.
For testing you can download qemu and ovmf.
The configuration file:
The bootloader is configured with a .cfg file located at the boot partition. /boot/mini.cfg
Lines starting with # are comments.
keys:
The default key can be used to set the default boot entry:
DEFAULT=(name)
The autoboot key can be used to control autoboot:
AUTOBOOT=(true|false)
The entry key can be used to describe a boot entry (an os):
ENTRY=(name)
The protocol key can be used to specify protocol:
PROTOCOL=(linux|mini)
The kernel key can be used to specify kernel to boot (on boot partition):
KERNEL=(path)
The cmdline key can be used to specify a command line:
CMDLINE=(string)
The ramdisk key can be used to specify a ramdisk:
RAMDISK=(path)
The resolution key can be used to specify a specific resolution:
RESOLUTION=(widthxheight)
Acknowledgments:
Tamsyn is the font used.
TODO:
- More boot protocols.
- Fat formatted bios harddisk booting.
- Test if linux protocol works on other distros (only tested on puppy).