Как добавить новые типы машин 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?