Orange pi настройка debian

Обновлено: 02.07.2024

В статье будет рассмотрен процесс установки минимального Linux-дистрибутива Debian Wheezy на микрокомпьютер Orange Pi PC. Ииструкция подойдёт для установки других образов дистрибутивов.

Debian_wheezy_mini.img.xz - подготовленный минимальный образ системы без иксов, но включая программы первой необходимости типа mc;
scriptbin_kernel.tar.gz - последние версии скомпилированных и собранных файлов ядра и загрузчика.

Шаг 2. Подготавливаем микро-SD карту. Объём накопителя выбирается исходя из задачи. Минимальный Debian занимает 1,2Гб без установки дополнительных программ. Установка производится на Linux-машине. Переходим в каталог, куда сохранены файлы.

Распаковываем образ системы:

Для распаковки ядра и загрузчиков создаём каталог, копируем в него scriptbin_kernel.tar.gz и уже в нём производим распаковку:

Шаг 3. Записываем на накопитель образ системы: Подключаем накопитель к компьютеру. Проверяем как накопитель увиделся в системе:

Будьте внимательны! Нужно выбрать именно SD-карту! Для примера это будет /dev/sdh Переходим в каталог с файлом образа и производим запись:

Прим. Размер блока в 4096 байтов выбран по причине, что у автора установка бОльшего размера приводило к ошибке во время записи.
Пьём кофе\чай - процесс длится около 10 минут.

Шаг 4. Настрока ядра и загрузчика После окончания процесса записи, на накопителе будут созданы два раздела. Первый - fat32-раздел, в нём находится загрузчик и ядро, - аналог каталога /boot , но действующего только в момент загрузки; второй - ext4-раздел, на котором располагается всё остальное.

Теперь нужно примонтировать fat32-раздел к системе и заменить старое ядро и загрузчик файлами, входящими в scriptbin_kernel.tar.gz

Переходим в каталог и удаляем из него все файлы:

Открываем файловый менеджер (mc), переходим в каталог, куда был распакован архив scriptbin_kernel.tar.gz . Примерно в нём будет такой список каталогов и файлов:

Теперь, если у вас компьютер Orange Pi PC или Orange Pi 2, копируем файл uImage_OPI-2 в примонтированный каталог. Если Orange Pi PLUS - копируем uImage_OPI-PLUS.

Далее выбираем файл загрузчика, исходя из модели микрокомпьютера и разрешения экрана и также копируем в примонтированный каталог. Например, для Orange Pi PC с разрешением 720pх по ширине и частотой кадров 60Гц, нужно выбрать script.bin.OPI-PC_720p60

Теперь переходим в примонтированный каталог и переименовываем файлы до вида:
uImage_OPI-PLUS → uImage
script.bin.OPI-PC_720p60 → script.bin

Должно получиться так:

Запуск и отладка

Прежде чем приступать включению и опробованию стоит ознакомиться с особенностями микрокомпьютера и минимального Debian:

Аналоговый видео-выход не работает (HDMI-порт не проверялся). Единственный способ отладки в данном случае - подключение компьютера к отладочному TTL UART порту (J3) через преобразователь TTL UART — RS-232. Не исключено, что HDMI-порт всё же работает, и дело останется лишь за USB-клавиатурой (проверялась, работает). Сетевой адаптер получает адрес по DHCP (в сети нужен DHCP_сервер). После успешной загрузки дистрибутива доступ к системе можно получить через ssh, подключившись на адрес микрокомпьютера. Доступ по SSH логин\пароль: 1) root\orangepi 2) orangepi\orangepi

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

Включение питания: светодиод D8 - не светится, RX и TX Ethernet-порта непрерывно горят. Примерно через пару секунд: светодиод D8 - непрерывно горит красным, RX и TX Ethernet-порта непрерывно горят. Примерно через 15…20 секунд: D8 - горит красным, RX и TX Ethernet-порта мигают около 3-х секунд. Ещё через несколько секунд: D8 - горит красным, RX и TX Ethernet-порта гаснут на секунду и включаются снова, но при этом уже индицируют реальную работу порта. Работа. D8 - горит красным. Если в конфигах указана загрузка модулей sunxi, горит D7

Если D8 не загорелся спустя несколько секунд после включения, значит загрузка не пошла. Возможна проблема с файлами загрузчика, самим накопителем, питанием.

Светодиод D7 участвует только когда загружается модуль ядра - sunxi (по умолчанию модуль отключен). Светодиод загорается зелёным после инициализации модуля, причём вместо D8. После выключения компьютера через команду shutdown -h now или init 0 , светодиоды Ethernet-порта гаснут, процессор отключается, а D7 так и продолжает гореть зелёным. Чтобы запустить компьютер снова, нужно снять питание с платы и снова его подать. Такая особенность у модели Orange Pi PC, как обстоит дело с остальными компьютерами - неизвестно.

После успешной загрузки нужно вычислить адрес, выданный DHCP-сервером микрокомпьютеру и подключиться к нему по ssh.

Первое действие, которое нужно выполнить - увеличить размер ext4-раздела на весь объём накопителя. Об этом выходит напоминание после входа в систему. Выполняем команду расширения раздела и перезагружаем компьютер:

Если же на накопителе нужно создать отдельный раздел, то это делается на рабочей Linux-машине соответствующими средствами: 1-й раздел (boot) остаётся неизменным; 2-й раздел (система) увеличивается до нужного размера с учётом потребностей операционки; создаются последующие разделы по необходимости.

Теперь необходимо обновить модули ядра в уже установленной системе. Выключаем микрокомпьютер одним из способов:

, подключаем накопитель к Linux-машине, монтируем второй раздел к машине:

Переходим в /lib/modules и удаляем каталог, например это 3.4.39.
В то же место записываем каталог, взятый из распакованного архива scriptbin_kernel.tar.gz из каталога lib/modules

Вставляем обратно в микрокомпьютер и запускаем его. Компьютер должен корректно загрузиться.

Базовое конфигурирование

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

1. Статический IP-адрес

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

Если нужен статический адрес, правим файл /etc/network/interfaces до вида:

Вставьте свои параметры вместо приведённых адресов.

2. Указание своего NTP-сервера

Микрокомпьютер в базовой версии не имеет своих энергонезависимых часов, поэтому после включения время выставляется в 1 января 1970г. (начало эпохи Unix). Для установки часов в актуальное время, необходимо настроить сервис NTP. Если внутри сети, где эксплуатируется микрокомпьютер уже работает внутренний сервер времени, его адрес можно вписать в конфигурационный файл /etc/ntp.conf

3. Загрузка модулей, проверка работоспособности

Для работы порта GPIO необходимо настроить автозагрузку модуля gpio-sunxi. Для работы инфракрасного приёмника - sunxi-ir-rx. Всё находится в файле /etc/modules

После перезагрузки микрокомпьютера, с помощью команды lsmod можно просмотреть список загружаемых модулей:

Проверка инфракрасного приёмника

ИК приёмник числится за /devices/virtual/input/input2 Ставим на выполнение:

и светим пультом в сенсор. В терминале должны появиться посылки с виде 16-тиричного дампа.

Дистрибутив Debian для Orange PI PC поставляется с довольно ограниченным количеством поддерживаемых устройств “из коробки”, поэтому имеет смысл дособрать нужные модули самому.

Но это не совсем тривиальная задача, из-за того, что в сборках от loboris отсутствует deb-пакет kernel-headers, а ручное копирование нужных “запчастей” как правило не приводит к успеху.

Поэтому задачу будем решать комплексно.

Нам понадобится либо “живой” компьютер с Ubuntu, либо виртуальная машина.
Я тестировал на 14.04 LTS 64bit, все прошло довольно гладко.

Для начала поставим git штатными средствами

sudo apt-get install git

Скорее всего, нужно будет доставить еще и вот эти пакеты:

sudo apt-get install uboot-mkimage sudo apt-get install u-boot-tools sudo apt-get install libusb-1.0-0-dev sudo apt-get install debootstart sudo apt-get install debootstrap sudo apt-get install qemu-user-static sudo apt-get install ia32-libs sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 sudo apt-get install lib32stdc++6 sudo apt-get install mkimage sudo apt-get install build-essential fakeroot kernel-package u-boot-tools zlib1g-dev libncurses5-dev

После этого склонируем репозитарий ядра.

На диске в вашей рабочей директории появится еще одна:

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

В своем варианте перед сборкой я запустил

и включил все возможные wifi-usb драйвера.

После сборк НЕ ЗАБЫВАЕМ собрать все варианты script.bin. Они нам понадобятся. Для этого есть специальный скрипт -

Впрочем, readme достаточно исчерпывающее, главное - помнить, какой девайс мы используем.

После успешной сборки нужно собрать образ системы. Для этого нужно склонировать еще один репозиторий.

==Внимание, не выполняйте эту команду в той директории, где собирали ядро.
Здесь и далее подразумевается, что папки с ядром и с образом системы лежат “рядом”.==

Если все хорошо, у вас теперь две директории - одна с ядром, другая с запчастями для сборки образа.

Перейдем в папку OrangePi-BuildLinux и сделаем так, чтобы для сборки использовались наше ядро, которое мы собрали на предыдущем шаге, а не то, которое приехало из GIT.

cd OrangePi-BuildLinux rm -rf orange
ln -s ../OrangePI-Kernel/build orange

На этом шаге мы подменяем папку orange из репозитория на то, что мы собирали до этого.

Все почти готово. Осталось лишь указать параметры дистрибутива, которые мы собираем. Для этого отредактируем файл params.sh.
Комментируем внутри секцию “ubuntu” и снимаем комментарии с Debian

Тут мы указываем, что хотим Jessie, это нифига не Raspbian и репозитарий будем использовать хорватский. Кстати, это можно изменить на желаемый.

Дальше - собираем согласно README.
sudo ./create_image

Процесс долгий. И будьте внимательны - финальный образ помещается в файл с расширением .img.xz. Не надо использовать просто .img.

Образ нужно распаковать и записать на microSD (как обычно).
После чего, подложить правильный script.bin - то есть переименовать файл вида script.bin.platform.video просто в script.bin.
Не ошибитесь - это важно для работы всего. Он находится на партиции FAT32, поэтому операцию можно выполнить даже в Windows. Не забывайте извлечь флешку “правильно”.

Это собственно была прелюдия =).

Зачем это всё ? Всего лишь для обеспечения возможности установки сторонних модулей путём сборки их из исходных текстов.
Собирать мы их будем на той же машине с Ubuntu.
Итак, предположим мы добыли исходник “дров” для чудо-вайфая по цене 3 рубля за пучок в Китае.

Распакуем содержимое и перейдем в директорию.

tar -xzvf super_wifi_src_driver_for_linux.tar.gz cd super_wifi_src_driver_for_linux

Ну а дальше нам помогут 2 команды - либо одна, либо другая.

make LINUX_SRC=/home/user/OrangePI-Kernel/linux-3.4/ ARCH=arm CROSS_COMPILE=/home/user/OrangePI-Kernel/brandy/gcc-linaro/bin/arm-linux-gnueabi-

Либо команда два:

make KSRC=/home/user/OrangePI-Kernel/linux-3.4/ ARCH=arm CROSS_COMPILE=/home/user/OrangePI-Kernel/brandy/gcc-linaro/bin/arm-linux-gnueabi-

Как видно, они различаются только именем переменной, описывающей местонахождение ядра.

Для того, чтобы понять, какую именно, нужно заглянуть в Makefile.

grep KSRC Makefile

Остальное дело техники - если у вас “вылупилось” один или несколько .ko файлов, то можно переносить их на целевую систему, класть в соответствующую папку (уж местонахождение-то должны знать) и запускать depmod -a.

С помощью этого “приёма” были собраны следующие модули:

  • Обновленный модуль Realtek 8188 - протестирован
  • Стабильный модуль для mt7601 - протестирован. Он, кстати, “заточен” на ядра меньше 3.10 (наш случай)
  • Модуль для mt7601 для работы в режиме точки доступа - собран, не протестирован

В целом, всё не так плохо. Остается дождаться работающего ядра 4.x и жизнь заиграет совершенно другими красками :).

Установка на OrangePi

Armbian 5.75 stable Debian GNU/Linux 9 (stretch) 4.19.20-sunxi

надо сначала удалить старый скрипт командой

Установка MajorDoMo с помощью скрипта от Immortal

Изменяем права на запуск скрипта installmd, позволяя выполнить запуск файла:

Запускаем скрипт установки:

Параметры:
нет параметров - справка.
-h - справка
-t [dbrootpassword] [pipassword] - установка базовой системы MajorDoMo, если пароль dbrootpassword не задан то пароль спросит при установке, если pipassword не задан, но задан dbrootpassword то pipassword=dbrootpassword
-c [path] - альтернативная конфигурация, параметр не обязательный, если не указан, то конфигурация базовая, path - путь к своей конфигурации (если путь не задан то устанавливается расширенная конфигурация)
-b - установка/обновление Blynk сервера, устанавливает или обновляет автоматически последнюю версию Blynk server
-l - отключение логов
-j - установка Java
-a - установить webmin
-n - установить node.js из исходников (установка долгая 2-3 часа)
-o [type [port]] - установить owfs. type - тип 1-wire адаптера (usb, uart, i2c), port - порт uart 1-wire адаптера без /dev/ (ttyS2, ttyUSB. )
-r - установить RHVoice
-w [type] - установить WiringPi. [type] - тип платы: 1 - OrangePi, 2 - Asus tinker board, 3 - RaspberryPi, 4 - BananaPi, 5 - NanoPi, 6 - Cubieboard2, 7 - BananaPro
-e - установить MySensors
-v - VPN клиент OpenVPN
-m - MQTT сервер и клиент Mosquitto
-u - 433Utils
-p - phpMyAdmin
-s - оптимизация работы с SD картой (база в tmpfs)
-d - часы реального времени DS3132 на i2c
Возможна установка компонентов по отдельности.

(не рекомендую) Для работы системы Majordomo достаточно установить только с флагом -t (apache) или -x* (ngnix).

(не рекомендую) На данный момент автор скрипта рекомендует установку вэб сервера nginx + php-fpm.

Для OrangePI+ имеет значение очередность установки

VPN клиент OpenVPN

установить MQTT сервер и клиент Mosquitto

установить оптимизация работы с SD картой (база в tmpfs)

установка/обновление Blynk сервера, устанавливает или обновляет автоматически последнюю версию Blynk server Java

установить WiringPi. [type] - тип платы: 1 - OrangePi Java

установить часы реального времени DS3132 на i2c

установить становка базовой системы MajorDoMo

Устанавливаем базовую систему УД с расширенной конфигурацией:

В самом начале вводим логин и пароль для БД
Введите пароль root для MariaDB (MySQL) >
Введите пароль пользователя pi (для пользователя системы и пользователя базы данных MajorDoMo) >
и больше нигде не вводить пароль, во время установки базы данных выйдет окно пароля, не вводить пароль просто нажать дальше (enter)

осталось перезапустить систему командой

Поскольку в подавляющем большинстве (если не у всех) у наших сайтов дефолтной страницей будет index.php, а не index.html, то открываем следующий файл.

или чере mc что быстрее

И здесь index.php помещаем в начало строки DirectoryIndex, перед index.html. Должно получиться так.

Сохраняем и закрываем.

В дериктории /etc/php/7.0/apache2/php.ini все изменения уже сделаны

В файле т /etc/php7/cli/php.ini вносим изменения

Строку error_reporting привести к виду:

А так же строки:

Для применения изменений, необходимо перезапустить Apache:

Скрипт установки просто скачивает последнюю версию исходников и распаковывает в папку www, для установки phpMyAdmin скриптом введите в консоли команду:

Запустите следующую команду для установки этих пакетов в систему. Обратите внимание, что процесс установки требует, чтобы вы ответили на ряд вопросов для корректной настройки phpMyAdmin.

Здесь представлены параметры, которые вы должны выбрать при запросе для корректной настройки вашей установки:

представлены параметры, которые вы должны выбрать при запросе для корректной настройки вашей установки:

Для выбора сервера вы можете выбрать apache2

Предупреждение. При появлении запроса вариант «apache2» выделен, но не выбран.

Если вы не нажмете ПРОБЕЛ для выбора Apache, установщик не будет перемещать необходимые файлы при установке.

Нажмите ПРОБЕЛ, затем TAB, а потом ENTER для выбора Apache.


Выберите Да при ответе на вопрос о том, необходимо ли использовать dbconfig-common для настройки базы данных.

по умолчанию вход пользователем root в phpmyadmin запрещено, чтобы войти используйте пользователя pi

Пришел ко мне Xunlong Orange Pi Zero с 512Mb памяти. Полностью собранный, помещается на ладони.



Пульт от зомбоящика для сравнения.

Сердцем является 4-х ядерный Allwiner H2+. По слухам - это тот же H3 только без аппаратной поддержки 4K и с 100Mbit-м LAN. На плате расположены: один LAN, один USB, слот под micro SD карточку, гребенка COM порта, GPIO гребенка совместимая с Raspberry Pi, гребенка для платы расширения, выносная антенна WiFi и micro USB порт, он же OTG, для питания устройства. HDMI нет.


Рекомендуемая мощность блока питания - 5v/2A. Рекомендуемый тип карты от 4Gb, как минимум 10-й класс. Дополнительно можно купить плату расширения и отличный корпус. На шилде расположен 3.5мм аудио разъем совмещенный с ТВ выходом и фильтр, убирающий посторонние шумы из аудиотракта. Также присутствуют: микрофон, ИК приемник и два дополнительных USB порта.


Корпус выполнен из темно-синего, полупрозрачного пластика пропускающего ИК излучение. При ярком освещении кажется абсолютно черным. За счет не гуманой доставки, дешевле брать весь набор целиком.


Даже без корпуса температура процессора вызывает тревогу. Встроенный в Linux монитор показывает +50C. В корпусе, с платой расширения и наклеенным радиатором 14х14х8мм - температура заваливает за +56C.

На официальном сайте много полезной информации о плате и готовые сборки Linux и Android. Продвинутые красноглазики советутют обходить их стороной и ставить Ubuntu Xnenial или Debian Jessie от команды Armbian. На их сайте находится зоопарк Linux версий в которых очень трудно разобраться начинающему линуксоиду. Дробление произошло из-за нежелания Allwiner выкладывать исходники, а те что есть давно протухли. За это Allwiner и не любят, но все решает копеечная цена процессоров. Вобщем если нужна поддержка аппаратного декодирования видео, то качаем древнее ядро/legacy kernel - Ubuntu_xenial_default.7z. Если ТВ выход использовать не планируется, накатываем свежак/mainline kernel - Debian_jessie_default.7z.

ока качается образ подготовим SD карту. Идем на сайт ассоциации производителей SD карт и качаем чудо-утилиту для омоложения. Позволяет привести БУ карту к заводским настройкам и вернуть былую резвость. Подробнее об этом, на антимонгольском тут. Если вылетает с ошибкой, поменяйте кардридер. Теперь качаем Rufus - программа для развертывания iso/img/dos образов на флешку. Повторяем все как на картинке, жмем Start.


Все. Вставляем карту, подключаем LAN, подаем питание и даем системе 30-40 секунд на загрузку. Для того, чтоб произвести начальную настройку нам понадобится PuTTY
и IP адрес нашего Апельсина. Идем в вебморду WiFi роутера и ищем там IP - orangepizero. Сразу советую поменять IP на статический, а то при каждом включении Апельсина вам придется искать его заново. Загружаем PuTTY, вписываем IP и устанавливаем SSH соединение на порту 22. Вводим login - root и пароль - 1234. Система тут-же предложит его поменять. Отказаться нельзя.


С того времени как был собран наш Linux многое могло измениться, поэтому опытные красноглазики перед тем как что-то делать всегда обновляют пакеты и ядро:

Теперь когда все свежее можно и WiFi настроить через УДОБНОЕ текстовое меню. Спасибо Armbian за это!

Идем в Network -> wlan0 -> Wifi Manage Wireless networking выбираем точку доступа и вводим пароль.


Отключаем LAN кабель и на всякий случай перегружаем Апельсин:

Скорость WiFi на скачку около 2Mb/s. Все, минимальная настройка завершена.

Можно дальше лазить по меню включать/отключать пакеты и переферию. Например деактивирование HDMI/GPU, экономит 200mW.

Читайте также: