Banana pi m64 windows

Какие ОС можно запустить на одноплатных компьютерах Banana Pi?

В статье поговорим об операционных системах, которые можно запустить на разных версиях одноплатного компьютера Banana Pi. Некоторые дистрибутивы работают лишь на паре устройств, другие поддерживаются практически всей линейкой и предназначены для разных целей – от развлечений до организации умных домашних систем.

Banana Pi BPI-R64

О Banana Pi

Banana Pi — одноплатный компьютер. Это значит, что все электронные элементы, включая процессор, память, видеоподсистема, разъемы для внешней периферии и средства коммуникации с сетью, распаяны непосредственно на одном куске текстолита размером с ладонь.

В мире существует не один десяток одноплатных устройств от разных производителей в разнообразных модификациях под любые нужды. Но сегодня мы поговорим о другом. Допустим, у вас уже есть Banana Pi, и теперь нужно его как-то включить. Естественно, в комплекте идет базовая операционная система, которая позволяет запустить микрокомпьютер и посмотреть, на что он способен.

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

Android

Андроид можно запустить практически на всех компьютерах, процессоры которых основываются на архитектуре ARM, или по крайней мере поддерживают ее инструкции. Одноплатные компьютеры базируются именно на архитектуре ARM.

Например, для Banana Pi M2+ H3 в интернете существует дистрибутив Android 4.4 и 7.0. Его образ можно найти на официальной странице banana-pi.org.

Banana Pi M2+ H3

А вот на плату PI R2 официально Android не портировали, лишь на отдельных сайтах выложены любительские образы ОС, среди которых популярностью пользуется образ системы с версией 2017-10-02. Стоит отметить, что пользователькие образы чаще всего нестабильны, и часть функционала в них работать не будет. Например, конкретно в этой сборке не работает Ethernet.

Платы Banana Pi M2 Berry и M2 ULTRA могут запускать Android шестой версии без каких-либо глюков. Для платы BPI-M64 можно скачать версии 6.0, 7.0, и 8.1.

Ubuntu

На «банане» можно запустить версию 16.04 Mate. Большинство моделей способны запускать операционную систему Ubuntu в том или ином виде, но здесь есть оговорка: не каждая сборка системы является полноценной. Для некоторых одноплатных компьютеров часть функционала операционной системы была намеренно вырезана, чтобы образ легко запускался на маломощном железе.

Если вы обладатель модели M64, под ваш компьютер вы сможете найти дистрибутив с версией 17.04.

Kali Linux

Еще одна вариация операционной системы Linux. По большей части дистрибутив нацелен на программирование и поиск уязвимостей в системах. Для тех, кто ценит безопасность, доступен дистрибутив на Banana Pi.

С его помощью можно протестировать уязвимости окружающих вас гаджетов и компьютеров. Но увы – не на все версии микрокомпьютера она была портирована. Например, для BPI-M1, PI R2, BPI-P2 ZERO официально в списках дистрибутивов Kali Linux не значится. Для всех остальных она доступна.

Windows 10 IoT

Данная разновидность операционной системы Windows создана специально для интернета вещей. Дистрибутив поддерживается лишь Banana Pi M64, для всех остальных моделей микрокомпьютера система слишком тяжела.

Armbian

Система на ядре Linux для создания своего домашнего сервера, медиацентра, игрового сервера или комплекса «умный дом». Практически на любом Banana Pi система спокойно запускается и может быть использована для загрузки, например, своего веб-сайта.

Debian

Данный дистрибутив линукс пользуется огромной популярностью. Он является свободным программным обеспечением и предназначен для разработчиков, однако его вполне можно использовать, как мультимедийную оболочку. Debian скомпилирован и готов к установке для большинства старых и новых моделей Banana Pi.

CentOS

Основывается на все том же линукс ядре. Как сказано на официальном сайте, CentOS предназначена для создания надежной экосистемы с открытым исходным кодом, отличается надежностью и стабильностью, часто применяется в корпоративных целях. Для разных модификаций Banana Pi образы существуют как полноценные сборки, так и сборки CentOS с пометкой Lite.

RetroPie

Система, нацеленная на развлечение. Дистрибутив содержит в себе оболочку для легкого доступа к библиотеке классических игр для старых консолей (Nintendo, Sega, Atari, Gameboy, Playstation и пр.). Как правило, внутри оболочки есть встроенный мультиплатформенный эмулятор RetroArch, который отвечает за максимальную совместимость со старыми играми.
К сожалению, найти на официальном сайте дистрибутив для Banana Pi не удастся, но существуют неофициальные порты от народных умельцев.

Читайте также:  Windows те готика возвращение

Raspbian

Это ответвление от системы Debian, созданное специально для одноименных одноплатников семейства Raspberry Pi. Как ни странно, но запустить систему возможно и на конкурентном компьютере Banana Pi.

Увы, но дистрибутив портирован не на все модели. Лишь пользователи, имеющие на руках платы BPI-M2 Berry, M64, M3, M2+ или M2 Ultra, смогут поработать с этой системой.

RetrOrangePi

Еще одна неофициальная оболочка для старых игровых систем, но это порт для другого микрокомпьютера Orange Pi. На Banana Pi его тоже можно установить (правда, через танцы с бубнами). На разных сайтах можно найти инструкцию правильной установки на Banana Pi с другой платформы. Неофициально порт поддерживают платы BPI-M2+STD И BPI-M2+EDU.

OpenWrt

Система, предназначенная в первую очередь для домашних маршрутизаторов. Главной особенностью ОС является поддержка файловой системы JFFS2 (специальная структурированная файловая система). Предназначена в первую очередь для пользователей, которые хотят сделать сетевое оборудование. Устройства, для которых существуют дистрибутивы OpenWrt: BPI-R1, BPI-R2, BPI-M1 и BPI-M1+

Подключаем дисплей SPI LCD ILI9341 к одноплатному компьютеру Banana Pi BPI-M64 или любому другому на ОС Armbian

Пост содержит инструкцию как подключить TFT-LCD дисплей на популярном контроллере ILI9341 к одноплатному компьютеру на ОС Armbian с помощью дерева устройств (Device Tree overlays) без танцев с бубном. В сети Интернет много материала как подключать различные LCD экраны к Raspberry Pi. Но что если у вас нет Raspberry Pi, а хочется подключить недорогой LCD экран на SPI интерфейсе? Все что вам необходимо, это любая плата с поддержкой ОС Armbian. В каталог поддерживаемых плат ОС Armbian входят платы: Asus, Pine64, Hardkernel, Orange Pi, Banana Pi, и т.д. На данный момент в каталоге более 114 моделей плат, объявлена поддержка различного оборудования из коробки. Доступны для подключения: 4G/LTE модемы, USB Wi-Fi, USB Bluetooth, USB Ethernet, сканеры DVB-тюнеры и т.д. К всем этим платам можно легко подключить SPI LCD дисплей ILI9341, как это реализовать прошу под кат.

Преамбула

Многие одноплатные компьютеры снабжены HDMI выходом, но подключение полноценного дисплея с поддержкой HDMI входа достаточно дорогое удовольствие для небольшого проекта. В особенности, если необходимо реализовать минимальный функционал взаимодействия с пользователем, терминал распечатки документов, вывод текущего статуса работающего приложения. Для подобных задач можно использовать символьные дисплеи LCD HD44780 на интерфейсе I2C, они достаточно дешевы и удобны. Но в тоже время сильно ограничены в функциональности, на эти экраны невозможно вывести консоль Linux и нативный UI приложения, вдобавок площадь LCD экрана нельзя использовать как панель ввода информации. Для решения этих задач прекрасно подойдут LCD экраны на SPI интерфейсе, дисплей диагональю 3.5 дюйма с резистивным слоем можно приобрести за 9.57$ (включая доставку). На LCD экран можно выводить консоль Linux и подсистему X11. Таким образом, использование SPI LCD является лучшим вариантом по соотношению функциональности к стоимости.

Дисплей ILI9341 2.2 inch 2.2″ SPI TFT

Контроллер ILI9341 предназначен для управления TFT панелью. Под контроллер ILI9341 поставляются панели диагональю от 2.2 до 3.2 дюймов, разрешение 240×320, к некоторым LCD добавляют резистивный слой.
К одноплатному компьютеру Banana Pi BPI-M64 будем подключать модуль SPI LCD ILI9341 диагональю 2.4 дюйма без резистивного слоя.

Рассмотрим характеристики и распиновку SPI LCD ILI9341 2.4 inch

  • 2,4-дюймовый цветной экран, поддержка 65K цветов
  • разрешение 320X240
  • интерфейс подключения SPI
  • доступен слот для SD-карты
  • питание модуля 3.3V

5V

  • Напряжение управления логикой 3.3V(TTL)
  • Контакты подключения LCD

    Number Pin Label Description
    1 VCC 5V/3.3V power input
    2 GND Ground
    3 CS LCD chip select signal, low level enable
    4 RESET LCD reset signal, low level reset
    5 DC/RS LCD register / data selection signal,high level: register, low level: data
    6 SDI(MOSI) SPI bus write data signal
    7 SCK SPI bus clock signal
    8 LED Backlight control, high level lighting,if not controlled, connect 3.3V always bright
    9 SDO(MISO) SPI bus read data signal, if you do not need to the read function, you can not connect it

    Для управления подсветки используется контакт номер 8 — LED. Максимальное напряжение 3.3V соответствует максимальной яркости от общего питания VCC. Если необходимо задать 50% яркости экрана, то на LED необходимо подать напряжение в 1.65V. Для программного управления яркости подсветки необходимо контакт LED подключать к аналоговому выходу GPIO на одноплатном компьютере. В случае наличия только цифровых выходов, доступна лишь возможности включить или полностью выключить подсветку экрана.

    Исходя из характеристик LCD экрана предъявляются следующие требования к одноплатному компьютеру:

    • наличие SPI интерфейса
    • напряжение логики на контактах 3.3V (большинство плат)
    • потребуется еще два (RESET, DC/RS) свободных контактов GPIO

    Что ты за зверь Armbian и какой одноплатный компьютер необходим

    На странице armbian.com/download представлено большое количество разнообразных одноплатных компьютеров. С точки зрения удобства подключения, лучше выбирать плату с 40-контактным разъемом GPIO совместимым с Raspberry Pi 3. Например, если подключать SPI LCD ILI9341 2.4 inch к плате Banana Pi BPI-M64 и Orange Pi PC, то номера физически подключаемых контактов GPIO будут совпадать (не путать с названиями контактов процессора, они будут различны, далее потребуется для конфигурирования). В случае если одноплатный компьютер будет построена не на процессоре Allwinner, то возможно потребуется изменять больше параметров в файле: sun50i-a64-spi-ili9341-led-always-on.dts (будет далее по тексту).

    Armbian — это самый популярный дистрибутив Linux, предназначенный для одноплатных компьютеров построенных на ARM процессоре, список поддерживаемых плат огромен: Orange Pi, Banana Pi, Odroid, Olimex, Cubieboard, Roseapple Pi, Pine64, NanoPi и др. Дистрибутив Armbain основан на Debian и Ubuntu.

    После явления миру Raspberry Pi, китайские производители решили тоже влиться в движение Open Hardware Source, и сделали много разнообразных плат. Но программная поддержка была крайне слабой, для решения данной проблемы зародился проект Armbian. На данный момент Armbian уже исполнилось 7 лет, поддерживается 114 моделей плат, объявлена поддержка различного оборудования из коробки. Доступны для подключения: 4G/LTE модемы, USB Wi-Fi, USB Bluetooth, USB Ethernet, сканеры DVB-тюнеры и т.д.

    Для запуска Armbian на одноплатном компьютере необходимо загрузить образ с сайта, затем скопировать его на microSD карту, с которой в последствие нужно будет загрузиться. Если на плате размещена eMMC память достаточного объема, то через утилиту armbian-config, операционная система легко переносится с microSD карты на eMMC память вместе с загрузчиком.

    Создание IoT-проекта с использованием Armbian в отличие от Raspberry Pi, позволяет выбирать платы различающие по производительности, и набора периферии. Например, на всех версиях Raspberry Pi размещен только один Ethernet порт. Но если требуется сделать маршрутизатор с несколькими Ethernet портами, то из списка поддерживаемых плат Armbian подойдут модели: Helios64, Espressobin, Bananapi R2, и т.д.

    Поддерживаемые SoC

    • Allwinner A10, A20, A31, H2+, H3, H5, H6, A64
    • Amlogic S805 and S905 (Odroid boards), S802/S812, S805, S905, S905X and S912 (fork by @balbes150)
    • Actionsemi S500
    • Freescale / NXP iMx6
    • Marvell Armada A380
    • Rockchip RK3288/RK3328/RK3399
    • Samsung Exynos 5422

    Схема подключения SPI LCD ILI9341 2.4 inch к Banana Pi BPI-M64 (порт GPIO Raspberry Pi 3)

    SPI интерфейс LCD экрана подключаем к SPI1 на Banana Pi BPI-M64. Контакты CS, RESET, DC/RS можно подключать к любым цифровым выводам.

    Таблица контактов подключения:

    Номер LCD Метка LCD Номер контакта на Banana Pi BPI-M64 (порт GPIO Raspberry Pi 3)
    1 VCC 1 или 2 (если необходима максимальная яркость, то контакт №2 на 5V)
    2 GND 39, или любой другой Ground
    3 CS 24
    4 RESET 18
    5 DC/RS 22
    6 SDI(MOSI) 19
    7 SCK 23
    8 LED 1 или любой свободный GPIO на 3.3V
    9 SDO(MISO) 21

    Если контакт LED подключать к цифровому выводу GPIO, то для включения подсветки вручную потребуется подавать логическую «1» — для включения или «0» — для выключения экрана.

    Схема подключения SPI LCD ILI9341:

    Одноплатный компьютер Banana Pi BPI-M64

    Banana Pi BPI-M64 — это 64-битный четырехъядерный мини-одноплатный компьютер, поставляемый как решение с открытым исходном кодом. Ядром системы является процессор Allwinner A64 с 4-мя ядрами Cortex-A53 с частотой 1.2 ГГц. На плате размещено 2 ГБ DDR3 SDRAM 733МГц оперативной памяти и 8 ГБ eMMC.

    Самое главное для успешного подключения SPI LCD необходимо знать название контактов для SPI интерфейса, их номер и название зависит от модели процессора. Для решения этой задачи необходим Allwinner A64 Datasheet. На Wiki-странице Banana Pi BPI-M64 представлена распиновка 40-контактного разъема GPIO, из которого мы узнаем название контактов: PD2, PD3, и т.д.

    40 PIN GPIO of Banana pi BPI-M64
    GPIO Pin Name Default Function Function2:GPIO Function3
    CON2-P18 PD4 PD4
    CON2-P19 SPI1-MOSI PD2 UART4-TX
    CON2-P21 SPI1-MISO PD3 UART4-RX
    CON2-P22 PC0 PC0
    CON2-P23 SPI1-CLK PD1 UART3-RX
    CON2-P24 SPI1-CS PD0 UART3-TX

    Помимо название контакта, необходимо узнать порядковый номер этого контакта на ножке процессора, легко вычисляется по формуле: (позиция буквы в алфавите — 1) * 32 + позиция вывода. Рассчитаем номер ножки для контакта PD2. Первая буква не учитывается т.к. P — PORT, позиция буквы D в алфавите = 4, получаем (4-1) * 32 + 2 = 98. Контакту с меткой PD2 соответствует 98 ножка на процессоре, далее потребуется для конфигурирования дерева устройств.

    Дерево устройств (Device Tree, DT) в Linux

    Дерево устройств (Device Tree, DT) — это структура данных в системе Linux, состоящая из именованных узлов и свойств, описывающих оборудование, которое невозможно обнаружить путем опроса оборудования. Дерево должно включать имя базового процессора, конфигурацию его памяти и любые периферийные устройства (внутренние и внешние). DT не используется для описания программного обеспечения, хотя перечисление аппаратных модулей вызывает загрузку модулей драйверов.

    Сердцем любой отладочной платы или одноплатного компьютера является SoC. SoC имеет множество контактов (ног) для подключения линий электропитания и различных устройств.

    Контакты могут быть объедены вместе для формирования интерфейса, например MIPI DSI(MIPI Display Serial Interface). Интерфейс MIPI DSI предназначен для подключения LCD панелей, активно используется в смартфонах и планшетах. Но если к устройству не планируется подключать дисплей по MIPI DSI, то эти линии можно использовать для других целей, путем изменения DT. В отличие от архитектуры x86 в системах построенных на SoC нет возможности произвести полностью опознание всех устройств в режиме Plug and Play. Поэтому необходимо явное декларирование какие контакты используются для интерфейсов и какие именно устройства подключены к этим интерфейсам.

    До появления DT информация об устройствах в Linux являлась неотъемлемой частью ядра, и в случае изменения состава периферийных устройств требовалось пересобрать образ системы. Это было крайне неудобно, и поэтому описание периферийных устройств перенесли в конфигурационные файлы, которые собираются на логическом уровне в дерево. Где ветвь — устройство с указанием драйвера необходимого для работы этого устройства.

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

    Наложения дерева устройств (Device Tree overlays)

    Device Tree overlays (наложения дерева устройств) — добавление к DT принципа наложения слоев устройств. Если конфигурация описывает интерфейс UART к которому был подключен Bluetooth, и необходимо Bluetooth заменить на GPS модуль, то можно не удалять существующие настройки Bluetooth а добавить дополнительный слой для GPS модуля который переопределит предыдущие настройки.

    Для работы с DT используются следующие термины:

    DT Дерево устройств
    DTB (*.dtb) Бинарный файл дерева устройств
    DTBO (*.dtbo) Бинарный файл дерева устройств для наложения
    DTC Компилятор дерева устройств
    DTO Наложения дерева устройств
    DTS (*.dts) Исходный файл для дерева устройств
    FDT Flattened Device Tree, двоичный формат, содержащийся в файле .dtb

    Аппаратная конфигурация описывается в файлах исходниках DT ( .dts ) затем они компилируется в бинарные файлы DT ( .dtb ) уже для конечного использования в системе. Так же можно выполнить обратную процедуру декомпиляции файлов *. dtb в *. dts, компилятор/декомпилятор присутствует в системе.

    Реализация DTO включает разделение дерева устройств, построение, разбиение на разделы и исполнение.

    Разделение DT

    DT разделяются на две части:

    • Main DT (основное дерево устройств). Предоставляет разработчик SoC и является настройкой по умолчанию. В данном случае предоставляет компания Allwinner разработчик процессора Allwinner A64.
    • Overlay DT (Накладываемое дерево устройств). Специфическая конфигурация производителя платы, включает периферийные устройства которые размещены на плате. Для платы Banana Pi BPI-M64 предоставляет компания SinoVoip Co.,

    Тема Device Tree overlays в Linux достаточно большая, чтобы не превращать пост в многотомное произведение Ленина, более детально можно почитать в публикации Работа с GPIO на примере Banana Pi BPI-M64. Часть 2. Device Tree overlays.

    Формирование DTS для SPI LCD ILI9341 2.4 inch

    Тестирование производилось на образе Armbian_20.08.2_Bananapim64_bionic_current_5.8.6_minimal.img.xz, на основе Ubuntu 18.04.5 LTS (Bionic Beaver), ядро Linux 5.8.6. uname: Linux bananapim64 5.8.6-sunxi64 #20.08.2 SMP Fri Sep 4 08:52:31 CEST 2020 aarch64 aarch64 aarch64 GNU/Linux.

    В Armbian уже есть драйвер для ILI9341, поэтому все что требуется, это создать файл описания устройства в формате DTS, скомпилировать его в формат DTBO, и перезагрузить одноплатный компьютер. Как говорится Easy!

    Для формирования файла DTS необходимо узнать ссылку на gpiochip в котором находится SPI интерфейс, для этого откроем терминал Armbian и выполним команду cat /sys/kernel/debug/gpio:

    Данная команда выведет все доступные устройства gpiochip и номера задействованных контактов в операционной системе. В предыдущем разделе для контакта SPI1-MOSI, название контакта PD2, определили номер ножки процессора — 98. Исходя из полученного результата номер 98 приходится на диапазон GPIOs 0-255, который соответствует чипу gpiochip1: GPIOs 0-255, parent: platform/1c20800.pinctrl, 1c20800.pinctrl. Далее для формирования файла DTS потребуется узнать ссылку на 1c20800.pinctrl.

    Создадим файл DTS с названием: sun50i-a64-spi-ili9341-led-always-on.dts (в основе dts файл для платы Orange Pi PC):

    Запустим утилиту конфигурирования платы: $ armbian-config. Перейдем по меню: System > Hardware, и включим слой (overlay): spi-ili9341-led-always-on. После перезагрузки платы, консоль Linux будет на SPI LCD экране:

    Midnight Commander

    Htop

    Название контактов
    Для всех процессоров Allwinner формат записи контакта, соответствует виду cs-gpios = , для других процессоров формат записи контакта будет отличаться.

    Решение проблем

    Если изображение не появилось на LCD, выполните команду для проверки: $ dmesg | grep -E ‘ili9341’.

    В консоли должна быть следующая информация:

    Настройка SPI LCD для графического интерфейса Xfce и подсистемы X11

    Для вывода консоли Linux достаточно добавить файл DTS и все, но для вывода графики этого недостаточно.

    1) Установим XORG и XFCE:

    2) Для процессора Allwinner необходимо дополнительно устанавливать GPU драйвер — fbdev:

    3) Создать конфигурационный файл по пути /usr/share/X11/xorg.conf.d/99-fbdev.conf и разместить в нем следующий фрагмент:

    Где /dev/fb0 — устройство SPI LCD. Если к плате подключена HDMI панель, то может быть два устройства /dev/fb0 и /dev/fb1.

    Запускаем графический интерфейс командой: startx или startxfсe4:

    Если необходимо сразу переходить в графический интерфейс, то необходимо дополнительно установить пакеты:

    Для возвращения запуска только консоли необходимо отключить автозапуск службы display-manager.service

    Решение проблем

    Если графический интерфейс не запускается то для решение проблем необходимо посмотреть журнал событий X11, командой:

    Установка и настройка SPI LCD не требует никаких компиляций модулей из исходного текста, что существенно упрощает установку. Главное внимательно выставить контакты и все заработает из коробки. Поставленные цели успешно решены.

    RoadMap

    1. Подключение дисплея большего размера 3.5 дюйма на контроллере ILI9488.
    2. Настройка Touch интерфейса для Xfсe.
    3. Вывод на SPI LCD только одного графического приложения используя подсистему X11 из Docker контейнера (решение для публичных терминалов, киосков, POS-терминалов).

    Файл sun50i-a64-spi-ili9341-led-always-on.dts и другие файлы наложения дерева доступны в каталоге GitHub Banana-Pi-BPI-M64/dt-overlays/

    Update: Дополнение варианта с драйвером gpio-backlight для управления подсветки и вывод графики на устройство Framebuffer в публикации Работа с GPIO в Linux на примере Banana Pi BPI-M64. Часть 4. Device Tree overlays. Подключение дисплея SPI LCD ILI9341

    Читайте также:  Gta для windows rus
    Оцените статью