Вопрос или проблема
Я использую машину с Windows и хочу эмулировать операционную систему Debian с архитектурой arm64. Я скачал ISO-образ для настройки новой виртуальной машины. Я использовал следующую команду:
qemu-system-arm.exe -cdrom debian-8.3.0-arm64-xfce-CD-1.iso -boot d -machine kzm
Я также пробовал другие машины, но результат остается тем же:
Warning: Orphaned drive without device: id=ide1-cd0,file=debian-8.3.0-arm64-xfce-CD-1.iso,if=ide,bus=1,unit=0
qemu: fatal: Trying to execute code outside RAM or ROM at 0x00004000
R00=00000000 R01=00000000 R02=00000000 R03=00000000
R04=00000000 R05=00000000 R06=00000000 R07=00000000
R08=00000000 R09=00000000 R10=00000000 R11=00000000
R12=00000000 R13=00000000 R14=00000000 R15=00004000
PSR=400001d3 -Z-- A svc32
s00=00000000 s01=00000000 d00=0000000000000000
s02=00000000 s03=00000000 d01=0000000000000000
s04=00000000 s05=00000000 d02=0000000000000000
s06=00000000 s07=00000000 d03=0000000000000000
s08=00000000 s09=00000000 d04=0000000000000000
s10=00000000 s11=00000000 d05=0000000000000000
s12=00000000 s13=00000000 d06=0000000000000000
s14=00000000 s15=00000000 d07=0000000000000000
s16=00000000 s17=00000000 d08=0000000000000000
s18=00000000 s19=00000000 d09=0000000000000000
s20=00000000 s21=00000000 d10=0000000000000000
s22=00000000 s23=00000000 d11=0000000000000000
s24=00000000 s25=00000000 d12=0000000000000000
s26=00000000 s27=00000000 d13=0000000000000000
s28=00000000 s29=00000000 d14=0000000000000000
s30=00000000 s31=00000000 d15=0000000000000000
FPSCR: 00000000
Это приложение запросило завершение работы Runtime необычным образом.
Пожалуйста, свяжитесь с командой поддержки приложения для получения дополнительной информации.
Что означает это сообщение об ошибке и как мне правильно загрузить архитектуру arm на моем ПК с Windows?
Ну, прежде всего, qemu-system-arm
и kzm
оба 32-битные.
Вам нужен qemu-system-aarch64
, и, вероятно, -m virt
.
Поскольку это “универсальная” виртуальная платформа, необходимо отдельно указать объем оперативной памяти (-M 1024
) и модель процессора (-cpu cortex-a57
).
Во-вторых, если вы не загружаете ядро напрямую, вам понадобится какое-то прошивочное обеспечение. Если вам не важна постоянная конфигурация загрузки, вы можете просто загрузить это изображение и добавить -bios QEMU_EFI.fd
в командной строке.
Если вы действительно хотите постоянную конфигурацию загрузки, загрузите другой образ, распакуйте его, создайте еще один пустой файл на 64 МБ (назовите его params.bin
) и добавьте -pflash QEMU_EFI.img -pflash params.bin
в командную строку (в таком порядке).
Вам, вероятно, придется как-то добавить образ диска, но эта часть не зависит от ARM или прошивки.
О, и использование -cdrom
и -hdX
с qemu-system-aarch64
не существовало для -m virt
до QEMU 2.3-2.4 где-то.
Ответ или решение
Зачем стоит использовать QEMU для эмуляции Debian ARM64 на Windows
Если вы хотите запустить операционную систему Debian с архитектурой ARM64 на компьютере с Windows, то эмуляция с помощью QEMU является одним из лучших решений. Однако, работа с QEMU может быть непростой, особенно если вы столкнулись с подобными проблемами, как в вашем случае. Ниже вы найдете подробное руководство по устранению ошибок и правильной настройке системы.
Ошибки и их значения
При попытке загрузки системы с использованием вашей команды вы столкнулись с ошибками:
-
"Warning: Orphaned drive without device…" – Это предупреждение говорит о том, что у вас есть виртуальный CD-привод (в вашем случае файла ISO), который не установлен корректно для вашего конфигурации.
-
"qemu: fatal: Trying to execute code outside RAM or ROM at 0x00004000" – Эта фатальная ошибка указывает на то, что QEMU пытается выполнить код, который находится за пределами выделенной памяти. Это часто происходит из-за неверной конфигурации виртуальной машины (например, ошибочная указания платформы, объема ОЗУ и т.д.).
Исправление ошибок и рекомендации
1. Используйте правильный эмулятор и архитектуру
Ваши текущие команды используют qemu-system-arm.exe
, который предназначен для 32-битных архитектур. Вам следует перейти на qemu-system-aarch64
, который поддерживает 64-битные ARM-архитектуры. Пример команды:
qemu-system-aarch64.exe -m 1024 -machine virt -cpu cortex-a57 -cdrom debian-8.3.0-arm64-xfce-CD-1.iso -bios your_bios_file.fd
Здесь:
-m 1024
указывает размер оперативной памяти (1024 МБ).-machine virt
предоставляет вам универсальную платформу.-cpu cortex-a57
выбирает архитектуру процессора.
2. Загрузите необходимый BIOS
Чтобы успешно загрузить систему, вам понадобится образ прошивки UEFI. Вы можете использовать следующий BIOS, который предоставляет Linaro:
- Скопируйте их UEFI (например,
QEMU_EFI.fd
) и добавьте в команду-bios QEMU_EFI.fd
.
Если вам нужна постоянная конфигурация загрузки, используйте -pflash
вместе с параметрами:
-pflash QEMU_EFI.img -pflash params.bin
Создайте пустой файл params.bin
для конфигураций.
3. Проверка совместимости ISO
Не забудьте убедиться, что ISO-образ Debian, который вы используете, действительно предназначен для архитектуры ARM64 и совместим с QEMU. В некоторых случаях вам может понадобиться загрузить другой образ системы или использовать специализированные версии.
Заключение
Следуя представленным рекомендациям, вы сможете избежать распространенных ошибок при эмуляции Debian ARM64 на Windows с помощью QEMU. Убедитесь, что вы используете правильные команды и настройки, чтобы успешно завершить процесс Boot. Если вы еще раз столкнетесь с проблемами, проверьте документацию QEMU для получения дополнительной информации по настройке вашей виртуальной машины.