Трудности эмуляции AT91SAM9260, встроенного Linux на машину qemu-system-arm virt - PullRequest
0 голосов
/ 01 февраля 2020

Я собрал ядро ​​и root файловую систему для AT91SAM9260 со следующими пунктами меню сборки root в «Настройках файловой системы»:

enter image description here

И параметры сборки ядра, включая параметр at91_dt_defconfig. Выходные папки

build root содержат следующие изображения:

rootfs.cpio rootfs.ext2 rootfs.tar zImage

Я пытался загрузиться, используя qemu, с помощью следующих команд:

qemu-system-arm -machine virt -kernel zImage -initrd rootfs.cpio -hda rootfs.ext2 -append "console=ttyS0,115200 root=/dev/sda" -serial stdio

В результате появился пустой экран qemu.

Что я делать неправильно? Это QEMU операция или сборка root проблема конфигурации?

1 Ответ

1 голос
/ 03 февраля 2020

Проблема в том, что ядро ​​будет загружаться только на части оборудования Arm, если оно скомпилировано для этого оборудования. В противном случае обычно происходит сбой, обычно из-за сбоя, прежде чем он сможет вывести что-либо полезное. Это связано с тем, что (в отличие от систем x86) каждая встроенная плата Arm и So C отличаются друг от друга, с разными устройствами, устройствами и ОЗУ по разным адресам и т. Д. Плата QEMU "virt" не является AT91SAM9260 и не будет запускать ядро, созданное для этого. Итак, C.

Вы можете:

  • собрать ядро, которое предназначен для работы на плате 'virt' и запускает ее
  • для записи моделей устройств и модели So C для QEMU для интересующего So C (будьте осторожны, это большой объем работы; это примерно столько же усилий, сколько потребуется для переноса ядра Linux и написания драйверов для аппаратного обеспечения; для этого также требуется наличие или изучение большого количества внутренних данных QEMU)
...