Вам необходимо связать -drive
и -device
с помощью параметра id
:
qemu-system-arm \
`: [...]` \
-device nand,chip_id=0x59,id=myubiflash \
-drive if=mtd,format=raw,file=data.ubi,id=myubiflash \
`: [...]`
Если вы действительно внимательно прочитаете сообщение, вы заметите, чтоИдентификатор диска по умолчанию равен mtd0
:
Внимание: диск-сирота без устройства: id = mtd0 , file = data.ubi, if = mtd, bus = 0, unit= 0
И, конечно, qemu не может волшебным образом догадаться, что вы намеревались определить -device nand
для привода.
Сообщение об ошибке здесь точно на месте.
Edit
Я признаю, что с моей стороны также нет идеального понимания уровней синтаксиса в командной строке QEMU.Кроме того, QEMU doc не самый легкий для чтения;однако он имеет следующий отрывок:
Узел драйвера блока, созданный с помощью -blockdev, можно использовать для гостевого устройства, указав его имя узла для свойства диска в аргументе -device, который определяет блочное устройство.
-blockdev
является синонимом -drive
в этом контексте.
Если я могу правильно это интерпретировать, смысл этого в том, что вместо
-device […],id=foo
, -drive […],id=foo
вы должны использовать
-device […],drive=foo
, -drive […],id=foo
Можетне тестируйте этот банкомат, но любой из них должен заставить его работать на вас.