Add readme and prebuilt image
This commit is contained in:
parent
2ecd4a8016
commit
df22bcc17f
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/**/*.img
|
||||
/bochsout.txt
|
||||
/bx_enh_dbg.ini
|
||||
!/qloader2.bin
|
||||
|
35
README.md
35
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.
|
||||
|
@ -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
BIN
qloader2.bin
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user