Платформа Orange Pi One является наиболее дешевой платформой для разработки существующих сегодня на рынке, поэтому я решил приобрести один образец на Aliexpress чтобы опробовать прошивку, которая на всегда была идеальной, просто потому, что Shenzhen Xunlong специализируется на разработки и производстве аппаратной части оборудования и тратит мало времени на разработку программного обеспечения, чтобы держать стоимость на низком уровне, так что в разработке ПО в основном полагаются на сообщество. В последние месяцы Armbian стала популярно операционной системой для Linux ARM платформ, поэтому я решил написать руководство по быстрому старту для Orange Pi One используя образ Debian Desktop представленный сообществом Armbian.
Распаковываем Orange Pi One
Давайте начнем с проверки того что я получил. Платформа Orange Pi One лежала в антистатическом пакете, поставляется вместе с информационным листом о соответствии нормативным требованиям и безопасности, но нет руководства, вместо этого компания предлагает посетить сайт www.orangepi.org чтобы получить доступ к информации по использованию платы.
В верхней части платы есть наиболее интересные порты: Ethernet, micro USB и USB, HDMI, слот micro SD, разъем питания, кнопка питания, 40-контактный “Raspberry Pi” совместимый разъем, процессор Allwinner H3 и один чип оперативной памяти Samsung. 3-контактный разъем для подключения последовательной консоли можно найти в непосредственной близости (как видно на рисунке снизу) с RJ45 портом.
В нижней части платы находится еще один чип оперативной памяти Samsung (512 Мб всего) и интерфейс камеры.
Для сравнения размеров, я сфотографировал Orange Pi One, Orange Pi 2 mini, Raspberry Pi 2 и Raspberry Pi Zero.
В то время как официальные цены для Raspberry Pi ($5), Orange Pi One ($9.99) и C.H.I.P ($9) немного отличаются, я в конечном итоге платил примерно одинаковую цену за все три платы включая доставку: $12.77 за Raspberry Pi Zero, $13.38 за Orange Pi One и $14.22 за C.H.I.P. Компьютер C.H.I.P не показан на фото выше, так как я его еще не получил. Производительность Orange Pi One будет намного больше чем у остальных благодаря его четырехъядерному процессору.
Установка и настройка Armbian на Orange Pi One
Компания утверждает, что вы можете скачать прошивку на странице загрузки Orange Pi, но они так и не опубликовала образ прошивки специально для Orange Pi One, хотя вы можете найти образ для Orange Pi, я никогда не слышала, чтобы кто-нибудь когда-нибудь хвалил Shenzhen Xunlong за качество образов прошивок, которые они выпустили, совсем наоборот. Я много слышал об операционной системе Armbian – это дистрибутив на основе Debian нацеленный на ARM Linux платы, именно его я и собираюсь попробовать.
В настоящее время вы можете скачать Debian Jessie для сервера или для настольного ПК на базе ядра Linux 3.4.
Первым делом вам понадобиться микро SD карта объемом 8 Гб или больше, желательно с хорошей производительностью (Class 10 или лучше), используйте Windows, Mac OS или Linux компьютер для того чтобы скачать и прошить образ прошивки.
Я сделал это в Ubuntu 14.04 следующим образом. После того, как вы вставите микро SD карту в компьютер, вы, возможно, захотите узнать расположение SD-карты с помощью команды lsblk:
1 2 3 4 5 6 7 8 9 |
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 461.8G 0 part / └─sda3 8:3 0 3.5G 0 part [SWAP] sdb 8:16 1 29.3G 0 disk └─sdb1 8:17 1 29.3G 0 part /media/jaufranc/f3c9afc7-0761-48d7-afd1-7150df6 sr0 11:0 1 1024M 0 rom |
Я использовал 32 Гб микро SD карту class 10, в моем случае она была устройством /dev/sdb. Я собираюсь использовать командную строку, но вы можете использовать программу ImageWriter для Ubuntu или Windows, а также некоторые другие инструменты для Mac OS. Давайте скачаем прошивку, распакуем ее и запишем на микро SD карту (замените /dev/sdX на ваше устройство, SD карта):
1 2 3 4 5 6 7 |
wget http://mirror.igorpecovnik.com/Armbian_5.05_Orangepih3_Debian_jessie_3.4.110_desktop.zip unzip Armbian_5.05_Orangepih3_Debian_jessie_3.4.110_desktop.zip cd Armbian_5.05_Orangepih3_Debian_jessie_3.4.110_desktop/ sudo apt-get install pv umount /dev/sdX* dd if=Armbian_5.05_Orangepih3_Debian_jessie_3.4.110_desktop.raw | pv | sudo dd of=/dev/sdX bs=16M sync |
Теперь вставьте микро SD карту в Orange Pi One и подсоедините все необходимые кабели и аксессуары. Я подключил HDMI и Ethernet кабеля, RF донгл для аэромышки, USB OTG адаптер для USB flash диска, последовательная отладочная плата и блок питания. Обратите внимание, что микро USB порт не может быть использован для подключения питания к платформе, так что вам придется приобрести подходящий адаптер питания или недорого кабель USB -> 4.0/1.7 мм разъем питания для использования с USB адаптером питания 5 В/2 А.
Как только вы подключите блок питания, должен засветиться красный светодиод, через несколько секунд вы должны увидеть лог ядра на HDMI-телевизоре или мониторе. Я подключился к последовательной консоли через UART отладочную плату, она используется только в самом начале, но после того как фреймбуффер настроен все сообщения будут выводиться на монитор. Вот что получилось при первой загрузке в последовательной консоли:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
U-Boot SPL 2016.03-rc2-armbian (Mar 08 2016 - 20:18:51) DRAM: 512 MiB Failed to set core voltage! Can't set CPU frequency Trying to boot from MMC U-Boot 2016.03-rc2-armbian (Mar 08 2016 - 20:18:51 +0100) Allwinner Technology CPU: Allwinner H3 (SUN8I) I2C: ready DRAM: 512 MiB MMC: SUNXI SD/MMC: 0 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: No ethernet found. starting USB... No controllers found Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 2096 bytes read in 202 ms (9.8 KiB/s) ## Executing script at 43100000 gpio: pin PA15 (gpio 15) value is 1 gpio: pin PG11 (gpio 203) value is 1 0 bytes read in 162 ms (0 Bytes/s) ** File not found /boot/.next ** ** Unrecognized filesystem type ** ** File not found .next ** 35896 bytes read in 536 ms (64.5 KiB/s) 4866320 bytes read in 490 ms (9.5 MiB/s) Kernel image @ 0x48000000 [ 0x000000 - 0x4a4110 ] Using machid 0x1029 from environment Starting kernel ... [sun8i_fixup]: From boot, get meminfo: Start: 0x40000000 Size: 512MB ion_carveout reserve: 160m@0 256m@0 130m@1 200m@1 ion_reserve_common: ion reserve: [0x56000000, 0x60000000]! Debian GNU/Linux 8 orangepih3 ttyS0 orangepih3 login: |
Но я получил много сообщений об ошибке на мониторе “[cpu_freq] ERR: set cpu frequency top 1296MHz failed!”. На самом деле все нормально, потому что используется один и тот же образ прошивки для всех платформ Orange Pi Allwinner H3, а они используют разные регуляторы. Сообщение исчезнет, как только система определит Orange Pi One.
Вам придется быть терпеливым первые несколько минут при первой загрузке (2-3 минуты), как вы видите выше, сообщения об ошибках цикличны и кажется что они навсегда, но в итоге система вносит изменения размера раздела корневой файловой системы, создает аварийную область подкачки 128 Мб, создает SSH-ключ и обновляет некоторые пакеты. Как только это все закончится, система перезагрузится и вам будет предложено изменить пароль пользователя root, создать нового пользователя и настроить разрешение с помощью утилиты h3disp, которая автоматически исправит файл script.bin, который находится в FAT32 загрузочном разделе вашей микро SD карты. По умолчанию учетные данные, пользователь root с паролем 1234.
Утилита h3disp позволяет выбрать разрешение и частоту обновления вашего монитора, я выбрал 1080p50 и перезагрузил платформу в последний раз, примерно после 20 секунд загрузилась операционная система Debian с рабочим столом XFCE.
Разрешение рабочего стола действительно 1920×1080, локальная сеть работает, но раскладка клавиатуры по умолчанию установлена для Словенского языка. Я прошел в Настройки->Клавиатура (Settings->Keyboard), чтобы изменить раскладку.
Кажется, она работает случайным образом, иногда я получал QWERTY клавиатуру, в других случаях она возвращается на QWERTZ клавиатуру, я так и не понял почему. Следуя инструкциям на armbian documentation использование:
1 |
dpkg-reconfigure keyboard-configuration |
не полностью решило мою проблему, но в целом сейчас работает нормально…
Я также заметил некоторые проблемы с разрешениями, например сетевые команды ping и iperf требуют sudo, скорее всего проблема в параметре CONFIG_ANDROID_PARANOID в конфигурации ядра. Мой USB флэш-накопитель также не был смонтирован автоматически и мне пришлось использовать sudo для монтирования диска вручную.
Большинству людей, вероятно, понадобиться изменить часовой пояс:
1 |
dpkg-reconfigure tzdata |
Давайте проверим некоторые параметры с помощью командной строки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
root@orangepione:~# uname -a Linux orangepione 3.4.110-sun8i #18 SMP PREEMPT Tue Mar 8 20:03:32 CET 2016 armx root@orangepione:~# cat /etc/issue Debian GNU/Linux 8 \n \l root@orangepione:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 1200000 root@orangepione:~# sudo modprobe gpio-sunxi root@orangepione:~# ls /sys/class/gpio_sw/ PA0 PA10 PA14 PA21 PA6 PA8 PC4 PD14 PG7 PG9 PA1 PA13 PA2 PA3 PA7 PA9 PC7 PG6 PG8 root@orangepione:~# free -h total used free shared buffers cached Mem: 494M 175M 319M 4.9M 11M 69M -/+ buffers/cache: 93M 400M Swap: 127M 0B 127M root@orangepione:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 29G 2.1G 26G 8% / devtmpfs 168M 0 168M 0% /dev tmpfs 248M 0 248M 0% /dev/shm tmpfs 248M 4.5M 243M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 248M 0 248M 0% /sys/fs/cgroup tmpfs 256M 8.0K 256M 1% /tmp tmpfs 50M 0 50M 0% /run/user/1000 tmpfs 50M 0 50M 0% /run/user/0 root@orangepione:~# |
Система работает на ядре sunxi 3.4.110 Linux и Debian 8. Максимальная частота процессора установлена до 1.2 ГГц, GPIOs кажется будет поддерживаться так же, как и в Orange Pi 2 mini (но показано меньше операций I/Os), общий объем оперативной памяти составляет 494 Мб, в корневом разделе микро SD карты используется 2,1 Гб из 29 Гб. Я знаю, что некоторые ARM платы не могут быть выключен должным образом, но это в случае с Orange Pi One, я смог выключить ее без проблем, индикатор питания выключился в конце процесса завершения работы.
Вот и все для этой инструкции, 3D-графику и аппаратное декодирование видео, я рассмотрю в отдельном посте. Вы можете получить информацию о развитии проверяя страницу Armbian Orange Pi One, следуйте инструкциям чтобы собрать свой собственный образ Armbian и просматривайте ветку Orange Pi One в форумах armbian.
Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.