qemu在启动GNU-EFI操作系统后挂起



我想写一个" hello world ";x86_64操作系统与GNU-EFI根据一篇文章:https://wiki.osdev.org/GNU-EFI,但我遇到了一些问题。

当我使用以下命令

引导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

打印Found bootloader on fs0:后Qemu挂起

我找不出是什么原因引起的。我怀疑我在Makefile中犯了一些错误。这里是代码repo:https://github.com/xubury/myos用于复制。

顺便说一句,您可能需要在Makefile中指定gnu-efiovmf的路径。

我在OS: Arch Linux x86_64和Kernel: 5.11.1-arch1-1下运行代码

提前感谢!

所以,当我将-lgnuefi -lefi放在链接的末尾时,显然问题就消失了。但我不知道确切的原因。此外,对于一些ABI兼容性问题,应该使用uefi_call_warpper调用gnu-efi函数。

相关内容

  • 没有找到相关文章

最新更新