Почему этот образ ядра не загружается в QEMU - PullRequest
0 голосов
/ 04 мая 2019

Я пытался загрузить образ ядра (созданный в obj/kern/kernel.img после выполнения make) в QEMU, следуя приведенным здесь инструкциям:

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 голосов
/ 24 июля 2019

Не меняйте make-файл.Вместо этого измените conf / env.mk, как это предлагается.Но сначала убедитесь, что у вас действительно есть рабочий исполняемый файл, вызвав двоичный файл qemu напрямую:

qemu-system-i386 -machine help

Это должно привести к выводу списка поддерживаемых машин.Затем выясните, где в действительности находится двоичный файл:

which qemu-system-i386

обновите файл conf / env.mk, чтобы использовать этот путь, и начните все сначала.

...