Add make recipes for MBR-partitioned BIOS disks.

This commit is contained in:
4lDO2 2020-01-08 18:16:17 +11:00
parent d5dd998b53
commit a66af97a99
2 changed files with 18 additions and 2 deletions

View file

@ -5,6 +5,17 @@ build/bootloader: bootloader/$(ARCH)/**
build/harddrive.bin: build/filesystem.bin bootloader/$(ARCH)/** build/harddrive.bin: build/filesystem.bin bootloader/$(ARCH)/**
nasm -f bin -o $@ -D ARCH_$(ARCH) -D FILESYSTEM=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm nasm -f bin -o $@ -D ARCH_$(ARCH) -D FILESYSTEM=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
build/harddrive-mbr.bin: build/filesystem.bin bootloader/$(ARCH)/**
# TODO: Determine the correct size
nasm -f bin -o build/bootsector.bin -D ARCH_$(ARCH) -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
dd if=/dev/zero of=$@.partial bs=1M count=384
parted -s -a minimal $@.partial mklabel msdos
parted -s -a minimal $@.partial mkpart primary 2048s 786431s
dd if=build/bootsector.bin of=$@.partial bs=1 count=446 conv=notrunc
dd if=build/bootsector.bin of=$@.partial bs=512 skip=1 seek=1 conv=notrunc
dd if=$< of=$@.partial bs=1M seek=1 conv=notrunc
mv $@.partial $@
build/livedisk.bin: build/kernel_live bootloader/$(ARCH)/** build/livedisk.bin: build/kernel_live bootloader/$(ARCH)/**
nasm -f bin -o $@ -D ARCH_$(ARCH) -D KERNEL=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm nasm -f bin -o $@ -D ARCH_$(ARCH) -D KERNEL=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm

View file

@ -52,9 +52,14 @@ qemu: build/harddrive.bin build/extra.bin
-drive file=build/harddrive.bin,format=raw \ -drive file=build/harddrive.bin,format=raw \
-drive file=build/extra.bin,format=raw -drive file=build/extra.bin,format=raw
qemu_no_build: build/extra.bin qemu_mbr: build/harddrive-mbr.bin build/extra.bin
$(QEMU) $(QEMUFLAGS) \ $(QEMU) $(QEMUFLAGS) \
-drive file=build/harddrive.bin,format=raw \ -drive file=build/harddrive-mbr.bin,format=raw \
-drive file=build/extra.bin,format=raw
qemu_mbr_no_build: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-drive file=build/harddrive-mbr.bin,format=raw \
-drive file=build/extra.bin,format=raw -drive file=build/extra.bin,format=raw
qemu_efi: build/harddrive-efi.bin build/extra.bin qemu_efi: build/harddrive-efi.bin build/extra.bin