diff --git a/Makefile b/Makefile index b5bd258e0d86198e3cdea7ff7585ce83625f769d..22091c6bfd9ecb5e395e2616b94a778892009fed 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,25 @@ -default: assemble +default: assemble-legacy -bootloader: - $(MAKE) -C bootloader +bootloader-legacy: + $(MAKE) -C bootloader-legacy + +bootloader-uefi: + $(MAKE) -C bootloader-legacy kernel: $(MAKE) -C kernel -.PHONY: bootloader kernel +.PHONY: bootloader-legacy bootloader-uefi kernel + +build: bootloader-legacy bootloader-uefi kernel -build: bootloader kernel +assemble-legacy: build + cat bootloader-legacy/boot.img kernel/kernel.img > legacy.img -assemble: build - cat bootloader/boot.img kernel/kernel.img > disk.img +assemble-uefi: build -run: assemble - qemu-system-x86_64 disk.img +run-legacy: assemble-legacy + qemu-system-x86_64 legacy.img diff --git a/bootloader/Makefile b/bootloader-legacy/Makefile similarity index 100% rename from bootloader/Makefile rename to bootloader-legacy/Makefile diff --git a/bootloader/boot.asm b/bootloader-legacy/boot.asm similarity index 100% rename from bootloader/boot.asm rename to bootloader-legacy/boot.asm diff --git a/bootloader/mbr_end.inc b/bootloader-legacy/mbr_end.inc similarity index 100% rename from bootloader/mbr_end.inc rename to bootloader-legacy/mbr_end.inc diff --git a/bootloader/str.16.inc b/bootloader-legacy/str.16.inc similarity index 100% rename from bootloader/str.16.inc rename to bootloader-legacy/str.16.inc diff --git a/bootloader/str.32.inc b/bootloader-legacy/str.32.inc similarity index 100% rename from bootloader/str.32.inc rename to bootloader-legacy/str.32.inc diff --git a/bootloader/test.asm b/bootloader-legacy/test.asm similarity index 100% rename from bootloader/test.asm rename to bootloader-legacy/test.asm diff --git a/bootloader-uefi/scripts/assemble-hdd-image.fish b/bootloader-uefi/scripts/assemble-hdd-image.fish new file mode 100755 index 0000000000000000000000000000000000000000..ee233d1e5bdca8a34edaba9abc8e5a9654876f6b --- /dev/null +++ b/bootloader-uefi/scripts/assemble-hdd-image.fish @@ -0,0 +1,43 @@ +#!/usr/bin/fish + +set efi_file $argv[1] +set kernel_file $argv[2] +if test (count $argv) -lt 2 + echo "Usage: $argv[0] <efi_file> <kernel_file>" + exit 1 +end + +set output_file ./disk.img +set mountp ./tmp.mount.point +set disk_size 256M + +# Create disk image +dd if=/dev/zero of=$output_file bs=$disk_size count=1 status=progress +and sgdisk -n 1:0:+128M $output_file # EFI system partition + +# Format partitions +and sudo losetup /dev/loop5 $output_file --partscan +and sudo mkfs.fat -s2 -F32 /dev/loop5p1 + +# Mount EFI partition +and rm -rf $mountp ; and mkdir $mountp +and sudo mount /dev/loop5p1 $mountp +and sudo mkdir -p $mountp/efi/boot + +# load files +and sudo cp $efi_file $mountp/efi/boot/BOOTX64.efi +and sudo cp $kernel_file $mountp/kernel.efi + +# Cleanup +and sudo umount $mountp +and sudo sync +and sudo losetup -d /dev/loop5 +and rmdir $mountp + +and echo "Success" +or echo "Failed." + + + + + diff --git a/efi/efi-to-hdd-image.fish b/efi/efi-to-hdd-image.fish deleted file mode 100755 index 190e69d29c482a822033db439c1f9da4d72a2585..0000000000000000000000000000000000000000 --- a/efi/efi-to-hdd-image.fish +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/fish - -set efi_file $argv[1] -set output_file ./output.img -set mountp ./tmp.mount.point - -dd if=/dev/zero of=$output_file bs=560M count=1 status=progress -and sgdisk -n 1:0:0 $output_file - -and sudo losetup /dev/loop5 $output_file --partscan -and sudo mkfs.vfat -F32 /dev/loop5p1 - -and rm -rf $mountp ; and mkdir $mountp -and sudo mount /dev/loop5p1 $mountp -and sudo mkdir -p $mountp/efi/boot - -and sudo cp $efi_file $mountp/efi/boot/BOOTX64.efi - -and sudo umount $mountp -and sudo sync -and sudo losetup -d /dev/loop5 - -and echo "Success" -or echo "Failed." - - - - -