Add readme and prebuilt image

This commit is contained in:
mintsuki 2020-04-07 07:24:19 +02:00
parent 2ecd4a8016
commit df22bcc17f
4 changed files with 42 additions and 4 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
/**/*.img
/bochsout.txt
/bx_enh_dbg.ini
!/qloader2.bin

View File

@ -1,2 +1,37 @@
# qloader2
x86/x86_64 BIOS Bootloader
## How to use
This repository contains a prebuilt version of qloader2 so building it won't
be necessary.
In order to install qloader2 on a device (which can just be a raw image file),
run the provided `qloader2-install` script as such:
```bash
./qloader2-install ./qloader2.bin <path to device/image>
```
Then make sure the device/image contains at least 1 partition formatted in
echfs containing a `qloader2.cfg` file and the kernel/modules one wants to load.
An example `qloader2.cfg` file can be found in `test/qloader2.cfg`.
For example, to create an empty image file of 64MiB in size, 1 echfs partition
on the image spanning the whole device, format it, copy the relevant files over,
and install qloader2, one can do:
```bash
dd if=/dev/zero bs=1M count=0 seek=64 of=test.img
parted -s test.img mklabel msdos
parted -s test.img mkpart primary 1 100%
echfs-utils -m -p0 test.img quick-format 32768
echfs-utils -m -p0 test.img import path/to/qloader2.cfg qloader2.cfg
echfs-utils -m -p0 test.img import path/to/kernel.elf kernel.elf
echfs-utils -m -p0 test.img import <path to file> <path in image>
...
./qloader2-install $THIS_REPO/qloader2.bin test.img
```
One can get `echfs-utils` by installing https://github.com/qword-os/echfs.

View File

@ -3,17 +3,19 @@
set -e
# We take 1 argument, the device to use.
if [ -z "$1" ]; then
echo "Usage: $0 <device>"
if [ -z "$2" ]; then
echo "Usage: $0 <path to qloader2 binary> <device>"
exit 1
fi
# Variables.
DEVICE="$1"
DEVICE="$2"
MBR="$(mktemp)"
QLOADER2="src/qloader2.bin"
QLOADER2="$1"
# Copy the loader to the device.
dd if="$DEVICE" of="$MBR" bs=1 count=64 skip=446
dd if="$QLOADER2" of="$DEVICE" conv=notrunc
dd if="$MBR" of="$DEVICE" conv=notrunc bs=1 count=64 seek=446
rm "$MBR"

BIN
qloader2.bin Normal file

Binary file not shown.