为什么此内核映像无法在QEMU上引导

时间:2019-05-04 11:06:26

标签: c qemu

我试图按照以下说明在QEMU上引导内核映像(在执行obj/kern/kernel.img之后在make中创建):

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab1.pdf

但是在make qemu之后运行make并不能达到预期的效果。我仅在QEMU窗口中看到“从硬盘启动”消息不断闪烁。理想情况下,它应该按照pdf中的说明打印出一堆日志。

压缩的项目:

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/lab1.tar.gz

注意:我正在使用Ubuntu 18.04 LTS

makefile与zip文件完全相同,我只在这部分进行了更改:

...........................

# try to infer the correct QEMU
ifndef QEMU
QEMU := $(shell if which qemu > /dev/null; \
    then echo qemu; exit; \
    else \
    qemu=/usr/bin/qemu-system-i386; \
    if test -x $$qemu; then echo $$qemu; exit; fi; fi; \
    echo "***" 1>&2; \
    echo "*** Error: Couldn't find a working QEMU executable." 1>&2; \
    echo "*** Is the directory containing the qemu binary in your PATH" 1>&2; \
    echo "*** or have you tried setting the QEMU variable in conf/env.mk?" 1>&2; \
    echo "***" 1>&2; exit 1)
endif

...........................

准确地说,qemu=部分

1 个答案:

答案 0 :(得分:0)

不要更改makefile。而是应按提示更改conf / env.mk。但首先,通过直接调用qemu二进制文件来验证您是否确实具有正常工作的可执行文件:

qemu-system-i386 -machine help

这应该输出受支持机器的列表。然后,找出二进制文件实际所在的位置:

which qemu-system-i386

更新conf / env.mk以使用此路径并从头开始。