@@ -13,7 +13,7 @@ CFLAGS = -m32 -nostdlib -nostdinc -fno-builtin -fno-stack-protector \
1313
1414ASMFLAGS_ELF = -f elf32
1515
16- C_SOURCES = $(shell find $(SRC_DIR ) -name '* .c')
16+ C_SOURCES = $(shell find $(SRC_DIR ) -name '* .c')
1717ASM_SOURCES = $(SRC_DIR ) /bootloader/kernel_entry.asm \
1818 $(SRC_DIR ) /kernel/multiboot.asm \
1919 $(SRC_DIR ) /kernel/cpu/interrupt.asm
@@ -25,8 +25,9 @@ OBJS = $(ASM_OBJS) $(C_OBJS)
2525
2626KERNEL_ELF = $(BIN_DIR ) /kernel.elf
2727ISO_NAME = diskimgs/KintsugiOS.iso
28+ DISK_IMG = diskimgs/disk.img
2829
29- all : $(ISO_NAME )
30+ all : $(ISO_NAME ) $( DISK_IMG )
3031
3132$(KERNEL_ELF ) : $(OBJS ) $(SRC_DIR ) /kernel/linker.ld
3233 $(LD ) -m elf_i386 -T $(SRC_DIR ) /kernel/linker.ld -o $@ $(OBJS )
@@ -46,13 +47,43 @@ $(ISO_NAME): $(KERNEL_ELF)
4647 cp src/grub.cfg $(ISO_DIR ) /boot/grub/grub.cfg
4748 $(GRUB ) -o $@ $(ISO_DIR )
4849
49- run : $(ISO_NAME )
50- qemu-system-i386 -cdrom $< -m 64
51-
52- debug : $(KERNEL_ELF )
53- qemu-system-i386 -cdrom $(ISO_NAME ) -m 64 -s -S
50+ # Создаём образ диска FAT12 (1.44 MB флоппи) если его нет
51+ $(DISK_IMG ) :
52+ @mkdir -p diskimgs
53+ dd if=/dev/zero of=$@ bs=512 count=2880 status=none
54+ mkfs.fat -F 12 -n " KINTSUGI" $@
55+
56+ run : $(ISO_NAME ) $(DISK_IMG )
57+ qemu-system-i386 \
58+ -drive file=$(ISO_NAME ) ,format=raw,media=cdrom,index=0 \
59+ -drive file=$(DISK_IMG ) ,format=raw,media=disk,index=1 \
60+ -boot order=d \
61+ -m 64 \
62+ -no-reboot \
63+ -no-shutdown
64+
65+ debug : $(ISO_NAME ) $(DISK_IMG )
66+ qemu-system-i386 \
67+ -drive file=$(ISO_NAME ) ,format=raw,media=cdrom,index=0 \
68+ -drive file=$(DISK_IMG ) ,format=raw,media=disk,index=1 \
69+ -boot order=d \
70+ -m 64 \
71+ -no-reboot \
72+ -no-shutdown \
73+ -s -S
74+
75+ # Запуск с выводом serial в терминал
76+ run-serial : $(ISO_NAME ) $(DISK_IMG )
77+ qemu-system-i386 \
78+ -drive file=$(ISO_NAME ) ,format=raw,media=cdrom,index=0 \
79+ -drive file=$(DISK_IMG ) ,format=raw,media=disk,index=1 \
80+ -boot order=d \
81+ -m 64 \
82+ -no-reboot \
83+ -no-shutdown \
84+ -serial stdio
5485
5586clean :
5687 rm -rf $(BIN_DIR ) $(ISO_DIR ) diskimgs/
5788
58- .PHONY : all run debug clean
89+ .PHONY : all run debug run-serial clean
0 commit comments