根据一篇文章:https ://wiki.osdev.org/GNU-EFI,我试图用 GNU-EFI 编写一个“hello world”x86_64 操作系统,但我遇到了一些问题。
当我使用以下命令启动 img
sudo qemu-system-x86_64 -drive file=$(BUILD_DIR)/$(OSNAME).img -m 256M -cpu qemu64 \
-drive if=pflash,format=raw,unit=0,file="$(OVMF_DIR)/OVMF_CODE.fd",readonly=on \
-drive if=pflash,format=raw,unit=1,file="$(OVMF_DIR)/OVMF_VARS.fd" \
-net none
打印后 Qemu 挂起Found bootloader on fs0:
我不知道是什么原因造成的。我怀疑我在 Makefile 中犯了一些错误。下面是代码仓库:https ://github.com/xubury/myos用于重现。
顺便说一句,您可能需要指定 Makefile 的路径gnu-efi
和路径ovmf
。
我在操作系统下运行代码:Arch Linux x86_64 和内核:5.11.1-arch1-1
提前谢谢了!