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], чтобы выйти, сохранив изменения в таблицу разделов.
Перезагрузитесь, выполнив комманду:
После перезагрузки выполните комманду:
На этом всё. Выполнив комманду
Вы увидите новый размер вашего диска.
На этом, наверное всё что я хотел сказать. Пожалуйста, сильно не пинайте за стиль изложения, а лучше указываёте на конкретные ошибки в комментариях.
Как работает Windows 10 на Raspberry Pi 4 и Pi 3
Разработчики наконец установили оптимизированную для ARM версию Windows 10 на Raspberry Pi 4 после того, как некоторым людям удалось запустить ее на Raspberry Pi 3 в первой половине 2019 года.
Raspberry Pi 4 и Pi 3 официально поддерживают версию Windows 10 для IoT Core, которая не совпадает с версией Windows 10, которая работает на настольном компьютере, но является упрощенной версией для маломощных компьютерных плат.
Например, Windows 10 IoT Core не позволяет запускать традиционные приложения Win32 или даже загружаться на рабочий стол. IoT позволяет вам запускать одновременно одно приложение UWP, и реальная цель ОС на Pi – запускать небольшие приложения, предназначенные для миниатюрных компьютерных плат.
К счастью, есть новое руководство, чтобы заставить Windows 10 на ARM работать на Pi 3 B + и Pi 4B, используя неподдерживаемую техническую предварительную сборку. В отличие от IoT, Windows 10 on ARM представляет собой ARM-ориентированную версию ОС, которая поставляется с традиционным десктопом и поддержкой приложений Win32 посредством эмуляции.
Разработчику Marcin удалось установить Windows 10 on ARM на Raspberry Pi 4 Model B, и он также опубликовал подробное руководство.
Как установить Windows 10 на Raspberry Pi 4
– Загрузите прошивку UEFI отсюда и распакуйте ее на карту MicroSD в формате FAT32.
– Загрузите сборку Windows 10 ARM64 отсюда . Только сборка 17134 была протестирована, но любая более новая сборка, которая проходит OOBE, также должна быть совместимой.
– Загрузите ISO-компилятор отсюда . В соответствии с разработкой, это создаст файл ISO, но вам все равно понадобится файл «install.wim» из «sources».
– Загрузите «Windows на Raspberry» отсюда . Оно установит Build 17134 или новее на USB-накопитель, но необходимо выбрать разметку GPT.
После загрузки этих файлов вы должны запустить командную строку и выполнить действия, описанные здесь .
Стоит отметить, что некоторые функции Raspberry Pi 4 могут не работать с Windows 10 на ARM. Например, вы можете использовать только USB-порт Type-C для зарядки и OTG. Windows 10 on ARM также ограничивает использование ОЗУ только в 1 ГБ, а драйвер контроллера Broadcom auxspi не работает.
Разработчики также портируют Windows 10 on ARM на телефоны Android, такие как Galaxy S8, OnePlus 6 и Xiaomi Mi Mix.
10 лучших операционных систем, которые вы можете запустить на Raspberry Pi в 2020 году (Часть 1)
Сегодня мы представляем вам список лучших дистрибутивов Linux, которые вы можете отлично запустить на Raspberry Pi . Но прежде чем мы углубимся в этот список, позвольте мне проинформировать вас о NOOBS.
NOOBS
В большинстве случаев Raspberry Pi поставляется с SD-картой, которая включает в себя NOOBS ( новое программное обеспечение «из коробки» ) — ОС, которая включает в себя множество операционных систем, из которых вы можете выбрать, какую выбрать для запуска.
Этот список включает операционные системы, как правило, в NOOBS .
1. Raspbian
Raspbian — это система на основе Debian, разработанная специально для Raspberry Pi, и это идеальная ОС общего назначения для пользователей Raspberry.
В нем используется оконный менеджер Openbox и улучшенная среда Pi Xwindows в сочетании с рядом предустановленных программ, включая Minecraft Pi , Java , Mathematica и Chromium .
Raspbian — официальная поддерживаемая ОС Raspberry Foundation, способная выполнять любые задачи.
2. OSMC
OSMC (Open Source Media Center) — это бесплатная, простая и открытая автономная ОС Kodi, способная воспроизводить практически любой медиаформат.
Он имеет современный красивый минималистский пользовательский интерфейс и полностью настраивается благодаря нескольким встроенным изображениям, которые он поставляется. Выберите OSMC, если вы запускаете Raspberry Pi для управления медиа-контентом.
3. OpenELEC
OpenELEC (Open Embedded Linux развлекательный центр) представляет собой небольшой Linux на основе JeOS , разработанные с нуля, чтобы превратить ПК в Codi медиа — центр.
Вы можете подумать об OpenELEC как о скелете Kodi, так как он имеет меньше параметров настройки и ограничивает доступ к определенным областям, например SSH, и его более сложно настроить.
Тем не менее, OpenELEC — это мощный медиацентр, который может удовлетворить ваши потребности.
4. RISC OS
RISC OS — это уникальная ОС с открытым исходным кодом, разработанная специально для процессоров ARM создателями оригинального ARM. Он не связан ни с Linux, ни с Windows и поддерживается специальным сообществом добровольцев.
Если вы хотите установить RISC OS , вы должны знать, что она сильно отличается от любого дистрибутива Linux или ОС Windows, которые вы использовали, поэтому потребуется некоторое время чтобы привыкнуть к нему.
5. Windows IoT Core
Windows IoT Core — это ОС Windows, созданная специально для Raspberry Pi в качестве платформы разработки для программистов. Его цель заключается в том, чтобы программисты могли использовать его для создания прототипов устройств IoT (Интернет вещей) с использованием Raspberry Pi и Windows 10 .
Особое внимание уделяется безопасности, связности, созданию и интеграции в облаке. В отличие от других ОС в этом списке, вы не можете использовать его без запуска Windows 10 на вашем компьютере, так как вам нужна Visual Studio на Windows 10 для работы с ним.
6. Lakka
Lakka — это бесплатный, легкий и открытый дистрибутив, с помощью которого вы можете превратить даже самый маленький компьютер в полноценную игровую приставку без клавиатуры или мыши.
Он имеет красивый пользовательский интерфейс и имеет много вариантов настройки. Внешне интерфейс схож с PS3 и PS4.
7. RaspBSD
RaspBSD — это бесплатный образ FreeBSD 11 с открытым исходным кодом, предварительно настроенный на 2 образа для компьютеров Raspberry Pi.
Если вы не знали, FreeBSD — это не Linux, но она работает почти так же, как и потомок исследования Berkeley Software Distribution, и сегодня она является одной из наиболее широко используемых операционных систем в мире.
8. RetroPie
RetroPie — это библиотека программного обеспечения на основе Debian с открытым исходным кодом, с помощью которой вы можете эмулировать ретро-игры на Raspberry Pi , ПК или ODroid C1 / C2, и в настоящее время она является наиболее популярным вариантом для этой задачи.
RetroPie использовал интерфейс EmulationStation и SBC, чтобы предложить пользователям приятные ретро-игры.
9. Ubuntu Core
Ubuntu Core — версия Ubuntu, разработанная для приложений интернет вещей. Ubuntu — это одна из самых популярных операционных систем на основе Linux в мире и, учитывая, что она имеет активный и гостеприимный форум, вам будет легко начать работать с Ubuntu Snappy Core на вашем Raspberry Pi .
10. Linutop OS
Linutop OS — это безопасная ОС на основе Raspbian. Он предназначен для профессионалов, которым необходимо развернуть публичные интернет-киоски и решения для цифровых вывесок с использованием Raspberries.
Эта ОС идеально подходит, если вы управляете отелями, ресторанами, магазинами, офисами, музеями и т.д. И совместима с Raspberry Pi B, B + и 2.
Заключение
Если статья была для вас полезной, просим поставить лайк и подписаться на наш канал . Также посетите наш сайт , чтобы увидеть больше подобного контента.