[Из песочницы] Запускаем и эмулируем Windows на Raspberry Pi с помощью QEMU
Скорее всего это первый русскоязычный мануал о настройке 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
Команда начинает скачивать «внутренности» эмулятора, этот процесс не займёт много времени.
После того, как файл скачается и распакуется, появится папка (расположение /home/%username%/qemu), в которой будут расположены все файлы, которые необходимы для работы эмулятора. После того, как у нас всё скачалось и распаковалось, прописываем это:
cd qemu
./configure --target-list="i386-softmmu" --enable-sdl --prefix=/usr
Начинается процесс конфигурации, это не займёт много времени (~30–60 секунд). Теперь нам нужно запустить процесс отладки:
sudo make
Отладка может продолжаться неопределённое время, (~15–20 минут). Последнее, что мы должны сделать, это подправить конфиги и отладить.
sudo nano /home/pi/qemu/tcg/arm/tcg-target.c
sudo nano /home/pi/qemu/tcg/i386/tcg-target.c
Зажимаем 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
Настройку эмулятора мы закончили. Теперь перейдём к запуску системы. Насколько я знаю, эмулятор поддерживает данные форматы образов:
.img — Образ системы.
.vhd — Виртуальный «хард»
.iso — Образ диска.
Скачать образы интересующих вас систем можно тут, там же есть инструкция по созданию своего образа системы.
Я собрал на Яндекс.Диске все образы, которые запускаются на QEMU и взяты из темы, ссылка на которую дана выше. Стоит заметить, что в названии образа Linux KDE написан пароль от пользователя.
Переходим к запуску систему. Пишем в консоль:
qemu-system-i386 здесь тип образа (-hda, -fda, -cdrom) НазваниеВашегоОбраза.img -m Тут_Кол-во_ОЗУ_В_МБ(Без подчёркиваний разумеется).
Если все настройки верны, должна начаться загрузка образа системы.
Это фото, как скринить в линуксе я так и не освоил.
QEMU может эмулировать не только i386 процессоры, но и другие «платформы», подробнее:
ls /usr/bin/qemu*
Данный запрос вызывает список команд QEMU:
qemu-system-i386 --help
Поиграйтесь с настройками QEMU, сам ещё не до конца разобрался с ним. Стоит учесть, что я запускал систему, используя ресурсы только одного ядра «малинки», при этом компьютер нагружался на 25–26% (запускал Win98). Я читал на форумах о многопоточной работе QEMU с образом системы, но так и не понял как заставить эмулятор использовать ресурсы больше, чем одного ядра. Опять же, поиграйтесь с настройками и возможно вы поймёте как настроить многопоточность (не забудьте написать в комментариях как вы это сделали).