【问题标题】:qemu hangs after booting a GNU-EFI os启动 GNU-EFI 操作系统后 qemu 挂起
【发布时间】:2021-05-29 15:45:23
【问题描述】:

根据一篇文章: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 中犯了一些错误。 这是代码 repo:https://github.com/xubury/myos 用于重现。

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

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

非常感谢!

【问题讨论】:

  • 您没有提供太多上下文,您的代码不在问题中,而是在链接中。您希望看到您的问题的人只知道引导加载程序中的工作方式以及设置方式。相反,您应该解释您尝试过哪些无效的方法,给出上下文,甚至告诉我们您认为事情如何运作。也许那时有人可以让你更清楚地了解你错过了什么。对于您发布的问题,我认为没有人可以帮助您。

标签: linux operating-system gnu-efi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 2011-10-14
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多