Как подключить SD-карту с ОС Raspberry Pi к ПК с Linux и загрузить ОС в эмуляторе?
Почему не работает VMWare?
Каковы ограничения этого метода?
Связанный: Эмуляция на ПК с Windows
Как подключить SD-карту с ОС Raspberry Pi к ПК с Linux и загрузить ОС в эмуляторе?
Почему не работает VMWare?
Каковы ограничения этого метода?
Связанный: Эмуляция на ПК с Windows
Ответы:
Да, это вполне возможно. Однако на самом деле это немного отличается от того, как вы думаете.
преамбула
SD-карта содержит образ операционной системы. И работает, надувая это изображение, когда устройство включено.
Как я ожидаю, вы уже знаете, что вы прошиваете это изображение на SD-карту, чтобы создать работающую систему. Однако то, что вы можете сделать перед тем, как прошить образ, - это поиграться с ним, используя QEMU , который является эмулятором процессора и позволяет нам эмулировать набор инструкций ARM.
Таким образом, любые изменения, которые вы вносите в образ (установка, компиляция и т. Д.), Будут сохраняться после того, как вы перенесете его на карту SD.
Сейчас я расскажу вам, как использовать QEMU для загрузки изображения. Я буду демонстрировать с помощью образа Arch Linux, но процесс должен быть одинаковым независимо.
Использование QEMU
Prerequesites
Вам нужно будет приобрести QEMU для вашей системы. У QEMU должно быть только одно требование: для того, чтобы устройства ввода работали, вам нужно установить пакет разработки SDL, который должен быть доступен в вашем менеджере пакетов.
Я рекомендую скачать пакет с помощью вашего обычного менеджера пакетов:
Арка :
Ubuntu :
Более свежие версии (с 14.04) имеют пакет для этого:
Для более старых версий:
Собираю QEMU самостоятельно
Кроме того, вы можете создать QEMU самостоятельно. Это замечательно, если вы хотите попробовать новую версию, но она может быть медленной и быть готовой к множеству ошибок во время компиляции! Обратите внимание, что при сборке QEMU с их сайта он должен быть скомпилирован для поддержки ARM. Поэтому сначала проверьте ваши дистрибутивные репозитории. Это можно сделать так;
Убедитесь, что у вас есть поддержка ARM с:
Получение изображения
Мы работаем с Arch Linux, поэтому будем использовать образ Arch Arm. Но замените это тем, с чем вы хотите работать, или, возможно, у вас уже есть изображение. В этом случае пропустите этот шаг.
Для работы QEMU нам также необходим образ ядра (который находится внутри файла .img).
К счастью, есть предварительно скомпилированные изображения, и вы можете использовать одно из них здесь ( прямая загрузка ).
Запуск ВМ
Теперь вы должны иметь:
Виртуальная машина теперь может быть запущена с помощью следующей длинной команды:
источник
Ubuntu 16.04, QEMU 2.9.0 -M raspi2, Raspbian 2016-05-27, ядро ванили
Скомпилируйте QEMU 2.9.0 из исходного кода:
Скачайте образ и извлеките ядро и dts из него:
Загрузите изображение и распакуйте его:
Смонтируйте второй образ раздела. Самый простой способ это:
Это работает только с последними
losetup
на Ubuntu 16.04, другие методы по адресу: https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device/496576#496576Это печатает устройство петли, например:
Итак, мы делаем:
Бегать:
Затем вы можете войти на терминал, который отображается на вашем хост-терминале.
Текущие ограничения:
-M raspi2
был добавлен в QEMU 2.6.0, а Ubuntu 16.04 имеет только QEMU 2.5.0, поэтому мы должны скомпилировать QEMU из исходного кода. Но это не сложно.Ubuntu 16.04, QEMU 2.5.0, Raspbian 2016-05-27, модифицированное ядро
Этот метод использует,
-M versatilepb
который присутствует в QEMU 2.5.0 Ubuntu 16.04.Недостатком является то, что вам нужно загрузить модифицированное ядро (см. Эмуляция с Qemu: почему дополнительное ядро? ) И изменить образ, чтобы он был менее представительным для реальной системы.
Загрузить: https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/36ede073f4ccb64f60200ede36c231afe9502070/kernel-qemu-4.4.12-jessie
Мы выбираем,
4.4.12
так как это версия ядра в образе Распбиана.Процесс создания этого большого двоичного объекта ядра описан в хранилище по адресу: https://github.com/dhruvvyas90/qemu-rpi-kernel/tree/36ede073f4ccb64f60200ede36c231afe9502070/tools
Зачем нужен этот дополнительный образ ядра: Эмуляция с Qemu: зачем дополнительное ядро?
Измените изображение Raspbian, как упомянуто по адресу: https://github.com/dhruvvyas90/qemu-rpi-kernel/wiki/Emulating-Jessie-image-with-4.x.xx-kernel/0068f0c21d942b0f331e18014ff8e22c20cada5c
Резюме:
Смонтируйте образ так же, как мы это делали для
-M raspi2
, но используйте второй раздел вместо первого:Редактировать изображение:
Бегать:
[не удалось] Ubuntu 17.04, QEMU 2.8.0 -M raspi2, Raspbian 2016-05-27, ядро ванили
В этой более новой Ubuntu QEMU 2.8.0 используется по умолчанию, поэтому нам не нужно компилировать QEMU из исходного кода для
-M raspi2
. Однако 2.8.0 зависает при загрузке после сообщения:Это показывает, насколько нестабильна
-M raspi2
ситуация.[не удалось] Ubuntu 16.04, QEMU 2.9.0 -M raspi2, Raspbian 2017-08-16, ядро ванили
На этом новом образе, используя тот же метод для 2016-05-27, ядро паникует при загрузке с:
bztsrc/raspi3-tutorial
RPI3 голый металл на QEMUhttps://github.com/bztsrc/raspi3-tutorial представляет собой хороший набор примеров, которые работают только с QEMU. UltraQuick начинается с: Как сделать эмуляцию QEMU для изображений Raspberry Pi с голым металлом
источник
Вы не можете делать то, что вы предлагаете, потому что Raspberry Pi имеет архитектуру процессора, отличную от большинства ПК. В то время как большинство ПК основаны на x86, RPi - это компьютер на базе ARM.
Это та же самая причина, по которой вы не можете запустить, например, Microsoft Windows на RPi.
VmWare не будет работать, потому что он может виртуализировать только операционные системы на базе x86 (32-разрядные и 64-разрядные). Существуют другие эмуляторы, которые могут виртуализировать ARM, такие как QEMU, но в них запущена полная программная эмуляция без встроенной поддержки виртуализации ЦП, поэтому можно ожидать, что они будут довольно медленными.
источник
Вы можете легко попробовать симулятор Raspberry Pi в комплекте с сенсором, командной строкой и редактором файлов на iotify.io. Ознакомьтесь с нашей документацией по адресу https://docs.iotify.io/, чтобы начать работу с различными проектами, ОС и ознакомиться с рабочей средой Raspberry Pi.
источник