Совсем недавно вышел в свет микрокомпьютер Orange PI. На момент октябрь 2015-го года выпускается шесть разновидностей плат с разной аппаратной конфигурацией и соответственно ценой. Проект достаточно молодой и пока не обзавёлся широким кругом пользователей и специалистов. Всё что есть для начинающего пользователя - это форум на официальном сайте где можно по крупицам собрать нужную информацию. Автор статьи собрал на базе микрокомпьютера стенд и разрабатывает сетевой Интернет-радио плейер. И чтобы не забыть, публикует порядок действий по установке ОС.

Характеристики микрокомпьютера

 внешний вид платы

  • CPU: H3 Quad-core Cortex-A7 H.265/HEVC 4K
  • GPU: Mali400MP2 GPU @600MHz, Supports OpenGL ES 2.0
  • Memory (SDRAM): 1GB DDR3 (shared with GPU)
  • Onboard Storage: TF card (Max. 64GB) / MMC card slot
  • Onboard Network: 10/100M Ethernet RJ45
  • Video Input: A CSI input connector Camera. Supports 8-bit YUV422 CMOS sensor interface, Supports CCIR656 protocol for NTSC and PAL, Supports SM pixel camera sensor, Supports video capture solution up to 1080p@30fps.
  • Audio Input: Onboard MIC
  • Video Outputs: Supports HDMI output with HDCP, Supports HDMI CEC, Supports HDMI 30 function, Integrated CVBS, Supports simultaneous output of HDMI and CVBS
  • Audio Output: 3.5 mm Jack and HDMI
  • Power Source: DC input can supply power, but USB OTG input don’t supply power,
  • USB 2.0 Ports: Three USB 2.0 HOST, one USB 2.0 OTG
  • Buttons: Power Button(SW4)
  • Low-level peripherals: 40 Pins Header,compatible with Raspberry Pi B+, GPIO(1×3) pin, UART, ground.
  • LED: Power led & Status led
  • Key: IR input, POWER
  • Supported OS: Android Ubuntu, Debian, Rasberry Pi Image
  • Product size: 85 mm × 55mm
  • Weight: 38g

Установка минимального дистрибутива Debian Wheezy на микрокомпьютере OrangePi PC

Статья создана по мотивам темы "Debian & Ubuntu for Orange PI H3 boards" созданной на форуме сайта www.orangepi.org В этой теме любители микрокомпьютеров Orange Pi подготовили образы некоторых операционных систем Linux и инструкции по установке на платформе Orange Pi.

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

Шаг 1. Скачиваем с ресурса drive.google.com (ссылка взята с форума www.orangepi.org) два файла, это:

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

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

$ ls -l 
Debian_wheezy_mini.img.xz
scriptbin_kernel.tar.gz

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

$ xz -d Debian_wheezy_mini.img.xz

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

$ mkdir kernel
$ cp scriptbin_kernel.tar.gz kernel/
$ cd kernel
$ tar -zxvf scriptbin_kernel.tar.gz

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

# fdisk -l

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

# cd ..
# dd bs=4096 if=Debian_wheezy_mini.img of=/dev/sdh

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

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

# fdisk -l

Disk /dev/sdh: 2002 MB, 2002780160 bytes
4 heads, 16 sectors/track, 61120 cylinders, total 3911680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5effe41d

        Device Boot      Start         End      Blocks   Id  System
/dev/sdh1           40960      172031       65536    b  W95 FAT32
/dev/sdh2          172032     3910656     1869312+  83  Linux

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

Монтирование:

# mount -t vfat -o rw /dev/sdh1 /mnt

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

# cd /mnt
# rm *

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

boot0_OPI.fex
/lib
script.bin.OPI-2_1080p50
script.bin.OPI-2_1080p60
script.bin.OPI-2_720p50
script.bin.OPI-2_720p60
script.bin.OPI-PC_1080p50
script.bin.OPI-PC_1080p60
script.bin.OPI-PC_720p50
script.bin.OPI-PC_720p60
script.bin.OPI-PLUS_1080p50
script.bin.OPI-PLUS_1080p60
script.bin.OPI-PLUS_720p50
script.bin.OPI-PLUS_720p60
u-boot_OPI-emmc.fex
u-boot_OPI.fex
uImage_OPI-2
uImage_OPI-PLUS

Теперь, если у вас компьютер 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

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

# cd /mnt
# ls -l 
script.bin
uImage

Отмонтируем накопитель:

# umount /mnt

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

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

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

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

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

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

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

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

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

# fs_resize
# reboot

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

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

# shutdown -h now

или

# init 0

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

# mount -t ext4 -o rw /dev/sdh2 /mnt

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

Отмонтируем накопитель:

# umount /mnt

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

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

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

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

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

cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo 

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

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo eth0
iface lo inet loopback

iface eth0 inet static
 address 192.168.1.10
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-nameservers 192.168.1.1

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

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

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

server 192.168.1.1 iburst
# server 0.debian.pool.ntp.org iburst
# server 1.debian.pool.ntp.org iburst
# server 2.debian.pool.ntp.org iburst
# server 3.debian.pool.ntp.org iburst

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

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

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

#For SATA Support
#sw_ahci_platform

##Display and GPU
##lcd
hdmi
#ump
##disp
#mali
##mali_drm
##8192cu
##8188eu
8189es
#gpio-sunxi
gpio-sunxi
sunxi-ir-rx

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

# lsmod
Module                  Size  Used by
sunxi_ir_rx             6793  0 
gpio_sunxi              8233  0 
8189es                887631  0 
Проверка инфракрасного приёмника

Просматриваем устройства:

# cat /proc/bus/input/devices

I: Bus=0019 Vendor=0002 Product=0001 Version=0100
N: Name="vmouse"
P: Phys=vmouse/input0
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0 
B: PROP=0
B: EV=7
B: KEY=70400 0 0 0 0 0 0 0 0
B: REL=143

I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="sunxi-ths"
P: Phys=sunxiths/input0
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1 
B: PROP=0
B: EV=9
B: ABS=100 0

I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="sunxi-ir"
P: Phys=RemoteIR/input1
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=sysrq kbd event2 cpufreq_interactive 
B: PROP=0
B: EV=100003
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe

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

#  cat /dev/input/event2 | hexdump

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

Смотрите также

Печать/экспорт