:: commit df22bcc17f8d1159ba05c0d0a7da933676648c1d

mintsuki <mintsuki@protonmail.com> — 2020-04-07 05:24

parents: 2ecd4a8016

Add readme and prebuilt image

diff --git a/.gitignore b/.gitignore
index d363c0ae..b0018fe9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
 /**/*.img
 /bochsout.txt
 /bx_enh_dbg.ini
+!/qloader2.bin
diff --git a/README.md b/README.md
index 5b06fdb8..6fe8a5df 100644
--- a/README.md
+++ b/README.md
@@ -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.
diff --git a/qloader2-install b/qloader2-install
index 6c8ec6d8..c3ca44bf 100755
--- a/qloader2-install
+++ b/qloader2-install
@@ -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"
diff --git a/qloader2.bin b/qloader2.bin
new file mode 100644
index 00000000..7269a98d
Binary files /dev/null and b/qloader2.bin differ
tab: 248 wrap: offon