Меню Рубрики

Установка qemu для raspberry

Запускаем и эмулируем Windows на Raspberry Pi с помощью QEMU

Скорее всего это первый русскоязычный мануал о настройке QEMU на Raspberry.

Какое-то время назад я загорелся идеей запустить на своей Raspberry Pi 2 какую-нибуть Windows систему. Сначала я хотел узнать возможно ли установить её, просто записав на SDCARD и вставив в «малинку», но этому не дано было осуществится…

После я стал искать возможность запуска через какие-нибудь эмуляторы. Наткнулся на QEMU и стал копаться с ним. Пытался я запустить эмулятор очень долго, почти всё, что я находил на форумах, было написано на английском, причём информации там было «по-минимуму», а людей, которые запустили, было совсем немного. После нескольких неудачных попыток запуска QEMU, я решил написать на 4PDA в теме, посвящённой Raspberry. Там мне помогли, и я благополучно запустил Windows 98 (почти идеально. ). Запускал я это на Raspibiane (Debian).

Начнём, открываем терминал и прописываем это:

Желательно всё это делать через putty, чтобы всё символы точно соответствовали написанному.

Команда начинает скачивать «внутренности» эмулятора, этот процесс не займёт много времени.

После того, как файл скачается и распакуется, появится папка (расположение /home/%username%/qemu), в которой будут расположены все файлы, которые необходимы для работы эмулятора. После того, как у нас всё скачалось и распаковалось, прописываем это:

Начинается процесс конфигурации, это не займёт много времени (

30-60 секунд). Теперь нам нужно запустить процесс отладки:

После ввода команды, начнётся отладка, она выглядит примерно так:

15-20 минут). Последнее, что мы должны сделать, это подправить конфиги и отладить.

Иногда при выполнение вышеперечисленных команд система создаёт новый файл, тогда выходим из редактора и руками открываем необходимые конфиги.

Зажимаем Ctrl+W, открывается строка поиска, вводим: static void tcg_out_addi. Меняем на static inline void tcg_out_addi. Переходим ко второму конфигу, так же вызываем строку поиска и вводим этот текст: static void tcg_out_opc и меняем на static inline void tcg_out_opc. Если вы не нашли какую-то из строк, то ничего не делаем, а просто закрываем конфиг и выполняем следующий шаг (в первом конфиге я не нашёл нужную строку, однако эмулятор у меня работает нормально).

Если вы закончили с заменой строк, продолжаем дальше мучать нашу «малинку»:

Настройку эмулятора мы закончили. Теперь перейдём к запуску системы. Насколько я знаю, эмулятор поддерживает данные форматы образов:

.img — Образ системы.
.vhd — Виртуальный «хард»
.iso — Образ диска.

Скачать образы интересующих вас систем можно тут, там же есть инструкция по созданию своего образа системы.

Я собрал на Яндекс.Диске все образы, которые запускаются на QEMU и взяты из темы, ссылка на которую дана выше. Стоит заметить, что в названии образа Linux KDE написан пароль от пользователя.

Переходим к запуску систему. Пишем в консоль:

Если все настройки верны, должна начаться загрузка образа системы.

Это фото, как скринить в линуксе я так и не освоил.

QEMU может эмулировать не только i386 процессоры, но и другие «платформы», подробнее:

Данный запрос вызывает список команд QEMU:

Поиграйтесь с настройками QEMU, сам ещё не до конца разобрался с ним. Стоит учесть, что я запускал систему, используя ресурсы только одного ядра «малинки», при этом компьютер нагружался на 25-26% (запускал Win98). Я читал на форумах о многопоточной работе QEMU с образом системы, но так и не понял как заставить эмулятор использовать ресурсы больше, чем одного ядра. Опять же, поиграйтесь с настройками и возможно вы поймёте как настроить многопоточность (не забудьте написать в комментариях как вы это сделали).

источник

Raspbian и QEMU


Всем здравствуйте! Подарили мне недавно raspberry pi, и решил я его поиспользовать. Но, как это обычно бывает, дома времени для этого очень мало, а на работе подключить его не к чему. Поэтому решил поставить себе raspbian на виртуальную машину, для того чтобы использовать на работе. Кому интересно как я это делал прошу присоединиться
Для достижения своей цели я использовал множества статей и сообщений на форумах в различных уголках интернета, ссылки на те статьи, которые вспомню приведу в конце своего повествования. Так же, прошу не пинать за ошибки и стиль повествования, а указывать все недочеты в комментариях, т.к. это первая моя публикация на хабре в частности, и где-либо в общем.

Итак начнём! Чтобы заставить работать raspbian на QEMU нам для начала понадобится ядро линукса под arm-платформу. Существуют уже готовые ядра, но для общего развития я решил попробовать собрать сам.
Для этого на понадобится машина с операционной системой из семейства Linux (на самом деле я просто не знаю можно ли это сделать на других операционках). Я использовал одну из разновидностей Debian, а именно Kali Linux, т.к. он был в тот момент под рукой.
1. С начала скачаем пакеты, которые нам понадобятся для сборки ядра, выполнив следующую команду:

Читайте также:  Установка концевиков газель бизнес

Если вы используете 32х разрядную систему, то нужно будет еще установить х86 библиотеки:

2. Так же нужно установить кросс-компилятор, для этого нужно добавить репозиторий:
deb www.emdebian.org/debian unstable main
И выполнить следующие комманды:

И для совместимости создать символьную метку на компилятор:

3. Следующим шагом нужно выкачать исходники ядра и патч для поддержки ядром архитектуры ARM11 и применить этот патч к исходникам. Для этого выполним следующие команды:

4. Дальше нам нужно будет сконфигурировать ядро под нужды Raspbian.
Для этого выполним следующие комманды:

И в появившемся меню выбираем следующие настройки.
ВАЖНО. При выборе опции, если у Вас напротив опции появилась , нажмите еще раз пробел, чтобы появилась .
а) Указываем кросс-компилятор:
General Setup -> Cross-compiler tool prefix
arm-linux-gnueabihf-
ВАЖНО!Не забудьте указать ‘-‘ в конце

б)Настрйки CPU:
System Type->
[*] Support ARMV6 processor
[*] ARM errata: Invalidation of the Instruction Cache Operation fail
[*] ARM errata: Possible cache data corruption with hit-under-miss enabled

в) Включение поддержки для hard-float бинарников:
Floating point emulation ->
[*] VFP-format floating point maths

г) Включение EABI для ARM:
Kernel Features ->
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel

д) Включение поддержки дисков QEMU:
Bus Support->
[*] PCI Support
Device Drivers ->
SCSI Device Support
[*] SCSI Device Support
[*] SCSI Disk Support
[*] SCSI CDROM Support
[*] SCSI low-level drivers ->
[*] SYM53C8XX Version 2 SCSI support

е) Включение devtmpfs:
Device Drivers ->
Generic Driver Options ->
[*] Maintain a devtmpfs filesystem to mount at /dev
[*] Automount devtmpfs at /dev, after the kernel mounted the root

ё) Включение важных файловых систем:
File Systems ->
Ext3 journaling file system support
The Extended 4 (ext4) filesystem
DOS/FAT/NT Filesystems ->
VFAT (Windows-95) fs support

ж) Включение tmpfs:
File Systems ->
Pseudo filesystems->
[*] Tmpfs Virtual Memory file system support (former shm fs)

з) Включение интерфейса сообщений:
Device Drivers ->
Input device support ->
[*] Event interface

и)(по желанию) Включение /proc/config.gz
General Setup ->
[*] Kernel .config support
[*] Enable access to .config through /proc/config.gz

к)(по желанию) Использовать более крупных шрифтов и включение логотипа:
Device Drivers ->
Graphics Support ->
[*] Bootup logo
Console display driver support ->
[*] Select compiled-in fonts
[*] VGA 8×16 font

Далее перходим к самой компиляции ядра. Для этого выполним следующие команды:

Ну и я сразу его копирую в корень, т.к. потом буду прописывать параметры от корня.

На этом сборка ядра для QEMU закончена. Если Вам не хочется повторять всё это, то в конце я выложу ссылки на все файлы.

Следующий этап — это установка QEMU.
Для пользователей ОС Windows всё очень просто. Идем на QEMU ON WINDOWS и качаем архив с последней версией QEMU.
ВАЖНО. Версия QEMU должна быть не ниже 1.5.0, т.к. в ней исправлен критичный баг для эмуляции Raspbian
Для пользователей Windows подробно описывать процесс запуска Raspbian не буду, т.к. он очень похож с процессом запуска на ОС семейства Linux. Если будут вопросы, встретимся в коментариях.

Итак, для начала копируем себе исходники QEMU:

Так же установим зависимости:

Переходим к настройке и установке:

Если у вас появиться сообщение Error: DTC not present, то выполните следующую команду:

Теперь у Вас есть QEMU и ядро, осталось скачать образ Raspbian и провести «настроечную» загрузку.

Для первого запуска Raspbian нужно выполнить следующую комманду:

После загрузки вы увидите приглашение bash:

Закоментируйте строку, нажмите [Ctrl]+[x], сохраните и выйдете

Так же выполните:

И введите:
KERNEL==»sda»,SYMLINK+=»mmcblk0″
KERNEL==»sda?»,SYMLINK+=»mmcblk0p%n»,

Сохраните, закройте и выключите виртуалку:

Теперь всё готово для запуска виртуального Raspbian. Выполните команду:

И если всё прошло удачно, то вы увидите стандартное приглашение Raspbian:

Так же может быть полезным изменение размера диска. Для этого на хосте выполните:

Затем загрузите Raspbian и выполните следующее:

Нажмите [p] и запомните значение Start для sda2.
Затем нажмите [d] и удалите 2 раздел.
Затем нажмите [n] — для создания нового раздела.
Нажмите [p], чтобы указать что он будет primary.
Укажите, что он будет вторым, нажав [2].
Укажите First sector, равный Start.
Для Last Sector просто нажмите [Enter], чтобы использовалось всё свободное место.
Нажмите [w], чтобы выйти, сохранив изменения в таблицу разделов.
Перезагрузитесь, выполнив комманду:

Читайте также:  Установка esp в tiida

После перезагрузки выполните комманду:

На этом всё. Выполнив комманду

Вы увидите новый размер вашего диска.

На этом, наверное всё что я хотел сказать. Пожалуйста, сильно не пинайте за стиль изложения, а лучше указываёте на конкретные ошибки в комментариях.

источник

Эмулятор Raspberry Pi 3

Raspberry Pi — это недорогой микрокомпьютер, который можно приобрести всего за 40 долларов. За последнее время он набрал большую популярность среди разработчиков и пользователей, которые хотят создавать различные проекты. Он очень дешевый и в то же время позволяет делать множество вещей, начиная от домашнего медиацентра и до файлового хранилища или управления роботом.

Но перед тем, как вы точно решите что он вам нужен, желательно как-нибудь протестировать его возможности, например, с помощью эмулятора. Вы можете проверить в эмуляторе некоторые свои программы, чтобы понять как они будут работать на Raspberry. В этой статье мы рассмотрим как установить эмулятор Raspberry Pi 3 на свой компьютер под управлением Linux или Windows.

Установка эмулятора Raspberry Pi 3

Нам нужно будет сделать три вещи. Во-первых, необходимо раздобыть образ Raspberry Pi 3, во-вторых установить эмулятор Qemu, в котором мы сможем запустить образ, и скачать ядро Raspberry, специально предназначенное для Qemu, потому что с оригинальным ядром ничего не выйдет.

1. Загрузка образа Raspberry

Нам нужен самый обычный образ Raspberry, который используется для установки на реальное устройство. Вы можете использовать Raspbian Stretch самой последней версии. Эта инструкция тестировалась c образом stretch и jessie, хотя все должно заработать и при использовании Noobs версии или более новых версий в будущем. Вы можете скачать нужную версию на официальном сайте:

Здесь доступна как торрент версия, так и прямая ссылка на загрузку.

2. Установка Qemu

Qemu — это популярный эмулятор с открытым исходным кодом, который поддерживает огромное количество архитектур, среди которых и ARM процессор Raspberry Pi. Мы могли бы использовать VirtualBox, но там возможна эмуляция только компьютерной архитектуры x86, а это значит, что вы сможете запустить на нем только компьютерный Raspbian и ничего не добьетесь в плане тестирования. Поэтому давайте установим Qemu, установка программы довольно проста, в дистрибутивах Ubuntu выполните такую команду:

sudo apt-get install qemu qemu-kvm

Пакет qemu устанавливает поддержку всех архитектур, а kvm добавляет поддержку модуля ядра аппаратной виртуализации, который очень сильно увеличивает производительность гостевой системы. Мы уже рассматривали как пользоваться qemu. Чтобы посмотреть версию программы выполните:

3. Подготовка окружения

Нам понадобится несколько файлов для того, чтобы запустить Raspberry Pi в эмуляторе, поэтому лучше создать одну рабочую папку:

Скопируйте в эту папку ваш образ Raspberry, который предварительно нужно извлечь из архива, если он запакован в zip:

Также можете переименовать этот образ в rpi.img чтобы просто копировать команды из этой инструкции и не вводить имя вручную. Но оригинальный файл оставьте в другой папке, чтобы если потом что-либо сломаете, не пришлось скачивать полтора гигабайта заново.

4. Подготовка образа

Наш образ просто так не загрузиться, и нам нужно его еще немного подправить. Нужно примонтировать корневую файловую систему образа, но это не так просто. Поскольку это образ диска, а не раздела и на нем есть своя файловая система то мы не можем его просто так примонтировать. Откройте файл в gparted:

sudo gparted raspberry-stretch.img

Найдите корневой раздел, размером четыре гигбайта с файловой системой Ext4 и нажмите «Свойства»:

Тут найдите надпись «Первый сектор», полученное число нужно умножить на 512 чтобы узнать по какому адресу нужно монтировать файловую систему, только после этого монтируем:

sudo mount -o loop,offset=48234496 raspberry-jessie.img /mnt

Затем откройте файл /mnt/etc/ld.preload.so и закомметируйте там одну строчку:

Сохраните изменения и закройте файл. Нужно еще добавить несколько правил udev, чтобы Raspbian правильно определял вашу SD карту. По большому счету программе неважно что это будет жесткий диск, файл или реальная SD карта, вот только она ожидает что это будет устройство /dev/mmcblk. Поэтому создайте файл 90-qemu.rules и добавьте туда такие строки:

KERNEL==»sda», SYMLINK+=»mmcblk0″
KERNEL==»sda?», SYMLINK+=»mmcblk0p%n»
KERNEL==»sda2″, SYMLINK+=»root»

Сохраните изменения и отмонтируйте раздел:

5. Получение ядра

Вы можете скачать ядро для вашего образа из специального репозитория Github. Или же просто используйте такую команду для загрузки всего репозитория:

Читайте также:  Установка ssl сертификата comodo iis

git clone https://github.com/dhruvvyas90/qemu-rpi-kernel.git

Здесь есть не самые свежие версии ядер, но они вполне работают. Да, мы будем использовать ядро Jessie для Stretch, все будет работать.

6. Запуск эмулятора

Теперь все готово и мы можем запустить эмулятор Raspberry Pi 3. Для запуска эмулятора мы будем использовать вот такую команду:

qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu-4.4.26-jessie -cpu arm1176 -m 1024 -M versatilepb -no-reboot -serial stdio -append «root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash» -hda rpi.img

Здесь мы, кроме стандартных опций, qemu указываем параметры ядра root (корневой раздел) на /dev/sda2, нет это не в вашей файловой системе, это в файловой системе образа, указываем тип файловой системы — ext4.

Вы получите полноценную систему Raspbian ARM и сможете протестировать там все, что вам будет необходимо. Здесь можно протестировать запуск нужных вам программ, проверить как работает код и так далее. Что нельзя проверить, так это только работу портов ввода/вывода GPIO, но для этого не нужен эмулятор, есть специальные инструменты на Python. Если для вас не принципиально использовать архитектуру ARM, вы можете установить версию x86 операционной системы Raspbian на компьютер или VirtualBox, там все очень просто.

Эмулятор Raspberry Pi в Windows

Поскольку эту статью могут читать не только пользователи Linux, я не могу не затронуть проблему запуска эмулятора в Windows. Настроить эмулятор Raspberry Pi для Windows. Все работает по тому же принципу, только более автоматизировано. Скачать архив, который уже содержит образ, ядро и эмулятор qemu можно по ссылке.

Затем распакуйте архив и выполните двойной клик по файлу run.bat. Сразу же после этого начнется загрузка Raspbian Wheezy. После загрузки система запустит конфигуратор Raspberry Pi, raspi-config, ничего не рекомендуется менять, иначе рискуете получить проблемы со стабильностью.

Выводы

В этой небольшой статье мы рассмотрели как установить и использовать эмулятор Raspberry Pi 3 на ваш компьютер. Естественно, что реальное устройство будет работать быстрее, но здесь вы можете протестировать практически все, что вам нужно. А вы используете Raspberry Pi? Для каких целей? Напишите в комментариях!

источник

Редактирование образа Raspberry Pi с помощью qemu-user-static (Ubuntu 14.04)

Иногда необходимо редактирование стандартных загрузочных образов, а также конфигурирование систем с последующим тиражированием на большое количество плат Raspberry Pi. Для решения подобных задач удобно использовать пакеты qemu-user-static и binfmt-support.

Запускаем терминал и устанавливаем пакеты qemu-user-static и binfmt-support:

QEMU в режиме qemu-user-static позволяет запускать бинарные файлы, скомпилированные для одного процессора, используя процессор другой архитектуры. Пакет binfmt-support позволяет запускать бинарные файлы напрямую.

После установки смотрим список поддерживаемых бинарных файлов:

Как видим, поддержка ARM файлов включена — qemu-arm (enabled).

Переходим на страницу www.raspberrypi.org/downloads и выбираем нужную систему. В качестве примера возьмем Raspbian Wheezy, на данный момент актуальная версия 2015-05-05-raspbian-wheezy.img.

Скачиваем и распаковываем архив:

Сначала получим информацию об образе:

Подцепляем весь образ к устройству loop0, а второй раздел (начинается с сектора 122880, каждый сектор по 512 байт) к loop1.

Это привяжет устройство /dev/loop0 ко всему образу и /dev/loop1 к разделу, который мы хотим расширить.

Запускаем parted, удаляем второй раздел в устройстве /dev/loop0 и создаем его с новым размером.

Затем проверяем и изменяем размер нового раздела:

Теперь убедимся, что размер нового раздела увеличился на 1 Gb:

(необязательно) Монтируем /boot:

Чтобы все работало правильно (например, сеть) перед изменением корневого каталога нужно закомментировать все строки в файле

для редактирования нажмите клавишу i, впишите # перед каждой строкой, затем нажмите ESC :wq ENTER

Изменение корневого каталога (CHROOT).

Прежде всего, нужно убедиться что binfmt-support запустит наш код, как только мы изменим корневую файловую систему. Для этого скопируем файл в корневой каталог образа:

Проверим изменение корневого каталога:

Теперь можно добавлять и удалять программы, конфигурировать систему, после чего скопировать полученный образ на множество устройств Raspberry Pi, без необходимости подключения монитора и клавиатуры к каждой отдельной плате.

Вход в меню конфигурации Raspberry Pi:

Удаление окружения рабочего стола:

Убедитесь, что в списке нет лишних пакетов и запустите еще раз без «—dry-run».

Обновление системы. Для обновления до новой версии (например, jessie, stretch и др.), должен быть смонтирован /boot (также проверьте все файлы в /etc/apt/sources.list.d для обновления). Перед обновлением сохраните нужные конфигурационные файлы.

Для записи образа на SD карту необходимо:

1. Выйти из CHROOT (наберите exit)
2. Раскомментировать строки в файле /etc/ld.so.preload:

удалите добавленные ранее символы # нажатием x, затем нажмите ESC :wq ENTER

3. Размонтировать все разделы:

Вставляем SD карту, смотрим путь и записываем образ:

источник

Добавить комментарий

Adblock
detector