Skip to content

Commit ec562bb

Browse files
committed
fix: try fix keyboard errors
1 parent a841e30 commit ec562bb

7 files changed

Lines changed: 524 additions & 216 deletions

File tree

Makefile

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ CFLAGS = -m32 -nostdlib -nostdinc -fno-builtin -fno-stack-protector \
1313

1414
ASMFLAGS_ELF = -f elf32
1515

16-
C_SOURCES = $(shell find $(SRC_DIR) -name '*.c')
16+
C_SOURCES = $(shell find $(SRC_DIR) -name '*.c')
1717
ASM_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

2626
KERNEL_ELF = $(BIN_DIR)/kernel.elf
2727
ISO_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

5586
clean:
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

Comments
 (0)