Как добавить новые типы машин QEMU без изменения основного исходного кода?

Можно ли добавить новый тип машины для qemu-system-arm -M <MachineType> без необходимости перекомпилировать QEMU или писать код? Есть документы для этого? Я хотел бы иметь возможность эмулировать Raspberry Pi и Pandaboard с помощью QEMU.

Я знаю, что meego-форк qemu поддерживает pandaboard, но я пытаюсь придерживаться основного потока qemu, которым я могу управлять с помощью менеджера пакетов apt-get. основной поток qemu теперь поддерживает beagleboard rev C и beagleboard xm, которые ранее поддерживались только в meego fork.

2 ответа

Решение

без необходимости перекомпилировать QEMU или писать код?

Нет. Должен быть какой-то код, выполняющий эмуляцию конкретного устройства, например, способ, которым Raspberry Pi или Pandaboard реализуют видеовыход. Это не просто несколько файлов конфигурации.

Я был в состоянии подражать Пи с -M versatilepb: https://raspberrypi.stackexchange.com/questions/165/emulation-on-a-linux-pc/53991 и -M raspi2 позже был добавлен в QEMU 2.6.

Может быть, эту функцию можно реализовать, посмотрите мой опыт с добавлением нового устройства на платформе: Как добавить новое устройство в исходный код QEMU?

Там мне нужно было только добавить одну строку, чтобы подключить новое устройство к versatilepb:

sysbus_create_simple("lkmc_platform_device", 0x101e9000, pic[18]);

так что, возможно, у нас может быть файл конфигурации, содержащий строки типа:

type    name                  regid        irq
sysbus  lkmc_platform_device  0x101e9000   18

Связанный: устройства вне дерева: Как создать устройства вне дерева QEMU?

Другие вопросы по тегам