Запускать файлы MLO в QEMU - PullRequest
0 голосов
/ 08 января 2020

У меня есть чип ARMv7 Cortex-A8 со встроенным чипом TI AM335x (мой чип очень близок к контроллеру Beaglebone Black). Я скомпилировал весь системный стек, начиная с файлов MLO, до u-boot, до Linux ядра zImage и до пользовательского пространства Linux, а также программ, которые должны работать на моем контроллере. , Однако для конкретных случаев анализа c мне может понадобиться эмулировать архитектуру и системный стек моего контроллера, скажем, в QEMU. Поскольку я исследовал последовательность загрузки большинства встроенных устройств, последовательность выглядит следующим образом: MLO -> u-boot -> ядро ​​-> пространство пользователя -> et c.

Как я начал эмулировать систему, я начал с qemu-system-arm (поскольку я использую 32-разрядное устройство ARM, следовательно, ARMv7), и передал следующий тип компьютера (так как это единственное устройство Cortex-A8, доступное в QEMU): realview-pb-a8 и следующий процессор: cortex-a8. Я также загрузил свой скомпилированный u-boot.bin, используя аргумент -bios. Однако на дисплее VGA ничего не отображается, кроме Guest has not initialized the display (yet), и на последовательном вводе-выводе ничего не отображается. Мой муж говорит, что мне нужно загрузить MLO до файла u-boot, но как мне это сделать, если это возможно?

1 Ответ

1 голос
/ 10 января 2020

Вы не можете запустить низкоуровневую программу (например, u-boot или ядро), созданную для одного типа встроенной платы Arm на другом. realview-pb-a8 - это совершенно другое оборудование для AM335x. Так что C, и гостевой код просто взломает sh, как только он попытается что-то сделать с оборудованием.

Вам понадобится модель правильного оборудования в QEMU для запуска этого программного обеспечения, но QEMU не имеет такой модели. Так что C, так что, боюсь, вы не можете.

...