Refactor of disk image handling
This commit is contained in:
parent
ebf1983b6f
commit
087825fa8b
13
Makefile
13
Makefile
|
@ -4,13 +4,11 @@ include mk/config.mk
|
||||||
# Dependencies
|
# Dependencies
|
||||||
include mk/depends.mk
|
include mk/depends.mk
|
||||||
|
|
||||||
all: build/harddrive.bin
|
all: build/harddrive.img
|
||||||
|
|
||||||
coreboot: build/coreboot.elf
|
coreboot: build/coreboot.elf
|
||||||
|
|
||||||
live: build/livedisk.bin
|
live: build/livedisk.iso
|
||||||
|
|
||||||
iso: build/livedisk.iso
|
|
||||||
|
|
||||||
rebuild:
|
rebuild:
|
||||||
touch $(FILESYSTEM_CONFIG)
|
touch $(FILESYSTEM_CONFIG)
|
||||||
|
@ -62,15 +60,14 @@ include mk/bochs.mk
|
||||||
include mk/virtualbox.mk
|
include mk/virtualbox.mk
|
||||||
|
|
||||||
# CI image target
|
# CI image target
|
||||||
|
IMG_TAG?=$(shell git describe --tags)
|
||||||
ci-img: FORCE
|
ci-img: FORCE
|
||||||
$(MAKE) INSTALLER_FLAGS= \
|
$(MAKE) INSTALLER_FLAGS= \
|
||||||
build/harddrive.bin.gz \
|
build/harddrive.img.gz \
|
||||||
build/livedisk.bin.gz \
|
|
||||||
build/livedisk.iso.gz
|
build/livedisk.iso.gz
|
||||||
rm -rf build/img
|
rm -rf build/img
|
||||||
mkdir -p build/img
|
mkdir -p build/img
|
||||||
cp "build/harddrive.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive.bin.gz"
|
cp "build/harddrive.img.gz" "build/img/redox_$(IMG_TAG)_harddrive.img.gz"
|
||||||
cp "build/livedisk.bin.gz" "build/img/redox_$(IMG_TAG)_livedisk.bin.gz"
|
|
||||||
cp "build/livedisk.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk.iso.gz"
|
cp "build/livedisk.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk.iso.gz"
|
||||||
cd build/img && sha256sum -b * > SHA256SUM
|
cd build/img && sha256sum -b * > SHA256SUM
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
megs: 1024
|
megs: 1024
|
||||||
boot: disk
|
boot: disk
|
||||||
ata0-master: type=disk, path="build/harddrive.bin", mode=flat
|
ata0-master: type=disk, path="build/harddrive.img", mode=flat
|
||||||
|
|
||||||
#com1: enabled=1, mode=file, dev=build/serial.log
|
#com1: enabled=1, mode=file, dev=build/serial.log
|
||||||
cpu: model=p2_klamath
|
cpu: model=p2_klamath
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
megs: 1024
|
megs: 1024
|
||||||
boot: disk
|
boot: disk
|
||||||
ata0-master: type=disk, path="build/harddrive.bin", mode=flat
|
ata0-master: type=disk, path="build/harddrive.img", mode=flat
|
||||||
|
|
||||||
#com1: enabled=1, mode=file, dev=build/serial.log
|
#com1: enabled=1, mode=file, dev=build/serial.log
|
||||||
#cpu: model=corei7_haswell_4770
|
#cpu: model=corei7_haswell_4770
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
bochs: build/harddrive.bin
|
bochs: build/harddrive.img
|
||||||
bochs -f bochs.$(ARCH)
|
bochs -f bochs.$(ARCH)
|
||||||
|
|
18
mk/disk.mk
18
mk/disk.mk
|
@ -1,4 +1,4 @@
|
||||||
build/harddrive.bin: $(FILESYSTEM_CONFIG)
|
build/harddrive.img: $(FILESYSTEM_CONFIG)
|
||||||
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
rm -rf $@ $@.partial
|
rm -rf $@ $@.partial
|
||||||
|
@ -6,7 +6,7 @@ build/harddrive.bin: $(FILESYSTEM_CONFIG)
|
||||||
$(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
|
$(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
|
||||||
mv $@.partial $@
|
mv $@.partial $@
|
||||||
|
|
||||||
build/livedisk.bin: $(FILESYSTEM_CONFIG)
|
build/livedisk.iso: $(FILESYSTEM_CONFIG)
|
||||||
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
rm -rf $@ $@.partial
|
rm -rf $@ $@.partial
|
||||||
|
@ -14,27 +14,17 @@ build/livedisk.bin: $(FILESYSTEM_CONFIG)
|
||||||
$(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
|
$(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
|
||||||
mv $@.partial $@
|
mv $@.partial $@
|
||||||
|
|
||||||
build/livedisk.iso: build/livedisk.bin
|
|
||||||
rm -rf build/iso/ $@.partial
|
|
||||||
mkdir -p build/iso/
|
|
||||||
cp -v $< build/iso/livedisk.bin
|
|
||||||
genisoimage -o $@.partial \
|
|
||||||
-hard-disk-boot \
|
|
||||||
-b livedisk.bin \
|
|
||||||
build/iso/
|
|
||||||
mv $@.partial $@
|
|
||||||
|
|
||||||
mount: FORCE
|
mount: FORCE
|
||||||
mkdir -p build/filesystem/
|
mkdir -p build/filesystem/
|
||||||
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
||||||
redoxfs/target/release/redoxfs build/harddrive.bin build/filesystem/
|
redoxfs/target/release/redoxfs build/harddrive.img build/filesystem/
|
||||||
sleep 2
|
sleep 2
|
||||||
pgrep redoxfs
|
pgrep redoxfs
|
||||||
|
|
||||||
mount_extra: FORCE
|
mount_extra: FORCE
|
||||||
mkdir -p build/filesystem/
|
mkdir -p build/filesystem/
|
||||||
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
|
||||||
redoxfs/target/release/redoxfs build/extra.bin build/filesystem/
|
redoxfs/target/release/redoxfs build/extra.img build/filesystem/
|
||||||
sleep 2
|
sleep 2
|
||||||
pgrep redoxfs
|
pgrep redoxfs
|
||||||
|
|
||||||
|
|
57
mk/qemu.mk
57
mk/qemu.mk
|
@ -42,9 +42,9 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(live),yes)
|
ifeq ($(live),yes)
|
||||||
HARDDRIVE=build/livedisk.bin
|
DISK=build/livedisk.iso
|
||||||
else
|
else
|
||||||
HARDDRIVE=build/harddrive.bin
|
DISK=build/harddrive.img
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(serial),no)
|
ifeq ($(serial),no)
|
||||||
|
@ -102,50 +102,55 @@ ifeq ($(UNAME),Linux)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(UNAME),Linux)
|
ifeq ($(UNAME),Linux)
|
||||||
build/extra.bin:
|
build/extra.img:
|
||||||
fallocate --posix --length 1G $@
|
fallocate --posix --length 1G $@
|
||||||
else
|
else
|
||||||
build/extra.bin:
|
build/extra.img:
|
||||||
truncate -s 1g $@
|
truncate -s 1g $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
build/firmware.rom:
|
build/firmware.rom:
|
||||||
cp $(QEMU_EFI) $@
|
cp $(QEMU_EFI) $@
|
||||||
|
|
||||||
qemu: $(HARDDRIVE) $(FIRMWARE) build/extra.bin
|
qemu: $(DISK) $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-drive file=$(HARDDRIVE),format=raw \
|
-drive file=$(DISK),format=raw \
|
||||||
-drive file=build/extra.bin,format=raw
|
-drive file=build/extra.img,format=raw
|
||||||
|
|
||||||
qemu_no_build: $(FIRMWARE) build/extra.bin
|
qemu_no_build: $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-drive file=$(HARDDRIVE),format=raw \
|
-drive file=$(DISK),format=raw \
|
||||||
-drive file=build/extra.bin,format=raw
|
-drive file=build/extra.img,format=raw
|
||||||
|
|
||||||
qemu_nvme: $(HARDDRIVE) $(FIRMWARE) build/extra.bin
|
qemu_cdrom: $(DISK) $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-drive file=$(HARDDRIVE),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
-boot d -cdrom $(DISK) \
|
||||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
-drive file=build/extra.img,format=raw
|
||||||
|
|
||||||
qemu_nvme_no_build: $(FIRMWARE) build/extra.bin
|
qemu_cdrom_no_build: $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-drive file=$(HARDDRIVE),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
-boot d -cdrom $(DISK) \
|
||||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
-drive file=build/extra.img,format=raw
|
||||||
|
|
||||||
qemu_iso: build/livedisk.iso $(FIRMWARE) build/extra.bin
|
qemu_nvme: $(DISK) $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-boot d -cdrom build/livedisk.iso \
|
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||||
-drive file=build/extra.bin,format=raw
|
-drive file=build/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||||
|
|
||||||
qemu_iso_no_build: $(FIRMWARE) build/extra.bin
|
qemu_nvme_no_build: $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-boot d -cdrom build/livedisk.iso \
|
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
|
||||||
-drive file=build/extra.bin,format=raw
|
-drive file=build/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||||
|
|
||||||
qemu_extra: $(FIRMWARE) build/extra.bin
|
qemu_usb: $(DISK) $(FIRMWARE)
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-drive file=build/extra.bin,format=raw
|
-drive if=none,id=usbstick,format=raw,file=$(DISK) \
|
||||||
|
-device usb-storage,drive=usbstick
|
||||||
|
|
||||||
qemu_nvme_extra: $(FIRMWARE) build/extra.bin
|
qemu_extra: $(FIRMWARE) build/extra.img
|
||||||
$(QEMU) $(QEMUFLAGS) \
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
-drive file=build/extra.img,format=raw
|
||||||
|
|
||||||
|
qemu_nvme_extra: $(FIRMWARE) build/extra.img
|
||||||
|
$(QEMU) $(QEMUFLAGS) \
|
||||||
|
-drive file=build/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
virtualbox: build/harddrive.bin
|
virtualbox: build/harddrive.img
|
||||||
echo "Delete VM"
|
echo "Delete VM"
|
||||||
-$(VBM) unregistervm Redox --delete; \
|
-$(VBM) unregistervm Redox --delete; \
|
||||||
if [ $$? -ne 0 ]; \
|
if [ $$? -ne 0 ]; \
|
||||||
|
|
Loading…
Reference in a new issue