initial
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
set quiet := true
|
||||
|
||||
OS_NAME := os()
|
||||
ARCH_NAME := arch()
|
||||
|
||||
OVMF_ARM := if OS_NAME == "macos" {
|
||||
"/opt/homebrew/share/qemu/edk2-aarch64-code.fd"
|
||||
} else {
|
||||
"/usr/share/edk2/aarch64/QEMU_EFI.fd"
|
||||
}
|
||||
|
||||
ACCEL := if OS_NAME == "macos" {
|
||||
if ARCH_NAME == "arm64" { "-accel hvf" } else { "" }
|
||||
} else {
|
||||
""
|
||||
}
|
||||
|
||||
ACCEL_INFO := if ACCEL == "" { "none (TCG)" } else { ACCEL }
|
||||
|
||||
CPU := if ARCH_NAME == "arm64" { "host" } else {
|
||||
if ARCH_NAME == "aarch64" { "host" } else { "max" }
|
||||
}
|
||||
|
||||
export BUILD_DIR := justfile_directory() + "/.build"
|
||||
export TEMP_DIR := BUILD_DIR + "/temp"
|
||||
export BOOT_BIN := BUILD_DIR + "/bootloader/BOOTAA64.EFI"
|
||||
export IMG_FILE := BUILD_DIR + "/termOS.img"
|
||||
|
||||
mod Bootloader
|
||||
|
||||
_prep:
|
||||
@mkdir -p {{BUILD_DIR}}/bootloader
|
||||
@mkdir -p {{TEMP_DIR}}/bootloader
|
||||
|
||||
@build: _prep
|
||||
@echo "🛠️ Building everything..."
|
||||
just Bootloader build
|
||||
|
||||
@image: build
|
||||
@echo "💾 Creating image..."
|
||||
@dd if=/dev/zero of={{IMG_FILE}} bs=1M count=64 status=none
|
||||
@mkfs.fat -F 32 {{IMG_FILE}} > /dev/null
|
||||
@mmd -i {{IMG_FILE}} ::/EFI ::/EFI/BOOT
|
||||
@mcopy -i {{IMG_FILE}} {{BOOT_BIN}} ::/EFI/BOOT/BOOTAA64.EFI
|
||||
|
||||
@run: image
|
||||
@echo "🚀 Launching..."
|
||||
# Создаем копию переменных, если её нет (чтобы не портить системный файл)
|
||||
@cp /usr/share/edk2/aarch64/QEMU_VARS.fd {{TEMP_DIR}}/vars.fd
|
||||
qemu-system-aarch64 {{ACCEL}} \
|
||||
-machine virt \
|
||||
-cpu {{CPU}} \
|
||||
-m 512M \
|
||||
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/aarch64/QEMU_EFI.fd \
|
||||
-drive if=pflash,format=raw,file={{TEMP_DIR}}/vars.fd \
|
||||
-drive file={{IMG_FILE}},format=raw,if=none,id=hd0 \
|
||||
-device virtio-blk-device,drive=hd0 \
|
||||
-serial mon:stdio
|
||||
Reference in New Issue
Block a user