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
