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

в 5:54, , рубрики: emulation, qemu, Raspberry Pi, Raspberry Pi 2 Model B, windows 98, Программирование, Разработка под Linux

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

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

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

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

sudo apt-get install
sudo apt-get uprage
sudo apt-get install git zlib1g-dev libsdl1.2-dev libpixman-1-0 libpixman-1-dev

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

Идём далее:

git clone git://git.qemu-project.org/qemu.git

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

image

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

cd qemu
./configure --target-list="i386-softmmu" --enable-sdl --prefix=/usr

Начинается процесс конфигурации, это не займёт много времени (~30-60 секунд). Теперь нам нужно запустить процесс отладки:

sudo make

Скриншот

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

image

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

sudo nano /home/pi/qemu/tcg/arm/tcg-targe­t.c
sudo nano /home/pi/qemu/tcg/i386/tcg-targ­et.c

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

image

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

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

sudo make
sudo make install

Скриншот

image

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

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

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

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

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

qemu-system-i386 здесь тип образа (-hda, -fda, -cdrom) НазваниеВашегоОбраза.img -m Тут_Кол-во_ОЗУ_В_МБ(Без подчёркиваний разумеется).

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

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

Результат

image

image

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

ls /usr/bin/qemu*

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

qemu-system-i386 --help

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

Автор: Raspberries

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js