Уже не раз замечал интерес к новой плате-клону всем известной Raspberry Pi от китайских энтузиастов из компании Xunlong под звучным названием Orange Pi PC. Прославилась она, в основном, своим неплохим «железом» (4-ядерный процессор Allwinner H3, 1Gb RAM и GPU Mali-400MP2 600MHz), наличием неплохого функционала (HDMI, AV, Ethernet, 3 USB, microUSB-OTG, инфракрасный порт для управления с пульта и GPIO-гребенка, по словам разработчиков, якобы «100% совместимая с Raspberry Pi), а главное — ЦЕНА. Создатели оценили свой девайс всего лишь в $15, ПЯТНАДЦАТЬ долларов, Карл! (скоро мы увидим, что это на самом деле весьма лукавое заявление, и конечный девайс стоит дороже).
Итак, давайте рассмотрим данную плату повнимательнее.
В рунете уже есть на нее обзоры, но все они представляли из себя нечто вида „установил андроид и подключил к телеку на кухне“. Я предлагаю взглянуть на плату с другой стороны, а именно — установить туда линукс, поюзать её как настоящий ПК, и даже немного поиграть.
Для тех, кому лень читать полностью, прорезюмирую:
Интересная штука, на данный момент вполне юзабельная, но имеется огромное количество огрехов и косяков, требующих допиливания напильником. Покупать только на свой страх и риск! Простому пользователю, рассчитывающему иметь готовое решение „из коробки“, я бы посоветовал обратить внимание на ТВ-боксы на базе Android или Windows. Продвинутому пользователю, знакомому с Linux, который не боится неизведанных челенджей в сыром продукте, и которому хотелось бы иметь неттоп для интернет-серфинга, работы с документами, программирования и скромных игр — must have! Особенно с учетом цены.
0. Предыстория. Немного о Raspberry Pi и его клонах
Raspberry Pi Model A, изображение из гугла
Когда в 2011 году создатели Raspberry Pi огласили на весь мир свои планы сделать миниатюрный (площадью примерно с пластиковую карту) и недорогой ($25) компьютер, весь мир компьютерных энтузиастов и гиков был в экстазе. Все только-только отходили от революции в домашней электронике „для Кузьмичей“, которую свершила Arduino со своей концепцией доступных и простых отладочных плат, а тут практически за те же деньги полноценный ПК на Linux!
Конечно, на ARM-процессоре от мобильного телефона с 256Мб оперативки особо не разгуляешься, но даже несмотря на все существовавшие ограничения, любители и гики пытались запускать на „малинке“ игры, серфили интернет, делали из нее всевозможные домашние серверы и, конечно, использовали в качестве „мозга“ во всевозможных DIY-проектах благодаря встроенному GPIO.
Но время шло. Несмотря на то, что первоначально Raspberry Pi задумывался как современный аналог BBC Micro — как простой, недорогой и всеми способами доступный компьютер для обучения школьников программированию и компьютерной науке, „малинка“ все же завоевала сердца простых обывателей, у которых были запросы более требовательные к железу, нежели интерпретатор Python'a и моргание светодиодом через GPIO. Гикам хотелось, чтобы их игрушка могла проигрывать качественные видео, запускать красивые 3D-игрушки и резво отрисовывать „тяжелые“ веб-страницы.
Поэтому в феврале 2015 создатели „малинки“ выпустили новую модель — Raspberry Pi 2. Тут уже был „полный фарш“ — процессор обзавелся 4 ядрами для распараллеливания „тяжелых“ задач и 1 гигабайтом оперативной памяти для облегчения жизни пользователей. Но было уже поздно.
Пока производители Raspberry Pi медлили с выпуском новой версии, у них появилось множество „идейных последователей“, в том числе и из Китая, которые кинулись выпускать клоны Raspberry Pi, в целом преследуя одну и ту же цель — удовлетворить спрос массового пользователя на недорогие и мощные платы.
Так появился целый сонм различных альтернатив „малинке“ — ODROID, Banana Pi, PandaBoard, Сubieboard, BeagleBone и многие другие (более полный список можно увидеть здесь, здесь и здесь ). Одной из этих альтернатив стала плата Orange Pi — мини-пк на базе двухъядерного SoC Allwinner A20. Позднее ее производитель, китайская компания Xunlong, выпустила ее обновленую версию, Orange Pi 2 на базе четырехъядерного SoC Allwinner H3, кастрированной версией которой и является герой нашего обзора — Orange Pi PC.
Обошелся он мне в $18.52 с доставкой почтой Финляндии. Заказ был сделан 26 октября, а 17 ноября заказ был уже у меня (довольно быстро, особенно если учесть многочисленные предупреждения от продавца о том, что в связи с высоким спросом отправка может занять дольше обычного).
1. Комплектация и внешний вид
Минимальная комплектация: сама плата, коробка и инструкция
Итак, начнем с комплектации. Её нет. От слова совсем. Ведь я заказывал самую дешевую версию платы, без каких-либо ништяков. У продавца в наличии есть еще различные наборы — сама плата, блок питания, корпус из орг.стекла, радиатор, карточка памяти и т.д.
Я решил пойти самым спартанским путем, поэтому мне в дополнение к плате досталась лишь коробочка с плохенькой полиграфией, склеенная, по ощущениям, вручную, и мятая бумажка с какими-то увещеваниями на тему „не суйте пальцы в розетку“, видимо, необходимая для соответствия различным гос.требованиям США и ЕС.
Рассмотрим плату со всех сторон:
На самой плате отчетливо выделяются:
— чип Allwinner H3 — не самый плохой, но Allwinner — контора все-таки довольно гнилая, уже ставшая печально известной своим нарушением открытых лицензий, а ее чипы — невыносимой прожорливостью слона и тепловыделением, сравнимым с небольшим вулканом. Единственным их преимуществом остается низкая цена, а это порождает вокруг чипов огромное коммьюнити (плодами которого, кстати, мы и будем пользоваться);
— два чипа оперативной памяти DDR3L Samsung K4B4G16460-HYKO по 512Mb каждый, дающие в сумме 1Gb RAM.
С верхней стороны платы мы видим IR-приемник и гребенку GPIO. Кому интересно, вот распиновка:
С правой стороны мы видим 3 USB 2.0 разъема и порт Ethernet 10/100.
Снизу мы видим дурацкий нестандартный разъем питания (сделанный таким, видимо, для того, чтобы увеличить продажи кастомных блоков питания у производителя плат), гребенку для подключения UART (распиновка GND, RX, TX — все штырьки подписаны), полноценный HDMI-разъем, микрофон и разъем 3,5 для вывода на „колокольчики“.
Надо сказать пару слов про питание. В документации сказано, что плата очень прожорливая и требует твердых 5В и 2А от блока питания. Производитель платы продает к ней блоки питания на 5В и аж 3А (!), поэтому советую приобрести именно такой, на случай, если амперы в вашем блоке питания окажутся „китайскими“, иначе возможны „фризы“. С нестандартным разъемом бороться можно просто — плату можно запитать через шину GPIO: +5В подключаем на 2 или 4 пин, „землю“ на 6 пин.
С левой стороны мы имеем microUSB-OTG, разъем для подключения камеры (модуль камеры продается у производителя за безумные $8.76 с доставкой), непонятную кнопку (якобы „Power Switch“, но в Lubuntu он не работает). Так же под разъемом для камеры находится разъем для подключения MicroSD карт памяти.
Ну что ж, пока плата выглядит неплохо. Есть свои „специфические моменты“, но пока они выглядят терпимо, скажете вы… Но на самом деле, интересное еще впереди!
Что нужно сделать, прежде чем включать плату. Это важно!
Даже производитель не рекомендует работать с Orange Pi PC без радиатора! Без охлаждения чип греется до адских 70-80 градусов и выше, и в лучшем случае, это закончится троттлингом процессора, поочередным отключением ядер процессора и фризом, в худшем — процессор будет безнадежно сожжен! Конечно, это можно и обойти вас стороной, но я бы все же не стал рисковать.
Я заблаговременно приобрел мини-радиаторы для Raspberry Pi, выглядят они вот так:
Стоят они доллар на алиэкспрессе, имеют самоклеющуюся поверхность и неплохо рассеивают тепло за свои деньги. Некоторые пользователи Orange Pi PC подключают активное охлаждение, кулеры и т.д., но я отказался от этого, ниже объясню почему.
Потом, как пишут на всех форумах, плата очень требовательна к скорости microSD карты! Рекомендуется брать карту со скоростью не ниже Class 10 UHS-1, иначе ни одна ОС приемлемо работать не будет, проверено на себе.
Последнее: если вы хотите использовать Wi-Fi, то учтите, встроенного wi-fi нет! Необходимо приобрести свисток, причем на определенном чипе. Умельцы запилили поддержку свистков на чипах Rtl8188cus, Rtl8192cu, Rtl8188eu/eus/etv, RT5370.
Я использую такой свисток за 4 доллара (ebay) на базе RTL8188EU:
Ну и конечно, перед работой неплохо бы подготовить некоторую периферию: мышь, клавиатуру и так далее.
Помимо указанного свистка и мини-радиатора я использую переходник HDMI-VGA чтобы подключиться к обычному компьютерному монитору, переходник USB-PS/2, чтобы использовать старую компьютерную клавиатуру, USB-геймпад, MicroSD карточку class 10 uhs-1 LD 16Gb, приехавшую по акции с JD и чудо-мышь со встроенным MicroSD-кардридером и колонкой (!), подключенной во встроенную в мышь USB-звуковуху (!). Очень удобно.
Как мы видим, уже само требование наличия блока питания ($5), радиатора ($1), wi-fi ($4) и microsd-карточки ($5) уже делает плату значительно дороже первоначальных $15 и приближает по стоимости к дешевым Android ТВ-боксам. Тем не менее, если все это у вас уже было, то с покупкой платы вам не придется переплачивать за ненужные опции (к примеру, вместо WiFi можно прекрасно использовать встроенный Ethernet).
2. Устанавливаем ОС
Первым делом, нам понадобится программа Win32DiskImager, скачать ее можно на sourceforge. Потом, нам понадобится образ ОС. Я использую образ Lubuntu от Jacer, в котором полноценно работает GPU Mali-400 и GPIO через библиотеку WiringOP (порт с Banana Pi) — ссылка. После установки Win32DiskImager и загрузки образа ОС, открываем программу, выбираем там нужный файл с образом, удостоверяемся, что пишем его на нужную карту памяти и нажимаем Write:
После успешного завершения записи на карту, у вас от карты в системе будем виден лишь крохотный BOOT раздел FAT32. На него необходимо скинуть правильный script.bin и uImage. Скачиваем этот архив, извлекаем из него файлы script.bin и uImage и скидываем с перезаписью на нашу карту. После этого вставляем ее в наш девайс и подключаем к нему питание. Если вы все сделали правильно, то на плате загорится красный LED и начнет загружаться система.
После включения система потребует ввести имя и пароль.
Имя пользователя — orangepi
Пароль — orangepi
Не забудьте открыть окно терминала (ctrl+alt+T) и ввести sudo fs_resize, чтобы „подогнать“ разметку диска в системе под размер вашей карточки.
3. Фиксим оверкерлокинг
Теперь очередная „особенность“ этой платы, а точнее — свинья, подсунутая производителем. Две основные проблемы, с которыми сталкиваются пользователи — перегрев процессора (а также связанный с ним троттлинг, отключение ядер, зависание плат» и просадки вольтажа (которые тоже вызывают зависания) имеют общие корни:
Для того, чтобы прорекламировать свою плату как «самую мощную, мощнее чем Raspberry Pi», производитель плат Xunlong зарядил дефолтный клокинг ядер ЦПУ на 1536 МГц, что является номинальным «верхним потолком» по документации на чип, но даже сам производитель не рекомендовал использовать его на этой частоте, предупреждая о проблемах с перегревом.
Мне лично вполне хватает плавающего клокинга на 480-1200МГц, в зависимости от задач, поэтому рекомендую накатить следующий скрипт (за него и за всю исследовательскую работу спасибо юзеру bronco с офиц. форума):
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if [ "$(id -u)" != «0» ]; then
echo «This script must be executed as root. Exiting» >&2
exit 1
fi
Fex2Bin="$(which fex2bin)"
if [ «X${Fex2Bin}» = «X» ]; then
apt-get -f -q -y install sunxi-tools
fi
Path2ScriptBin="$(df | awk -F" " '/^/dev/mmcblk0p1/ {print $6}')"
if [! -f "${Path2ScriptBin}/script.bin" ]; then
echo «Can not find script.bin. Ensure boot partition is mounted» >&2
exit 1
fi
MyTmpFile="$(mktemp /tmp/${0##*/}.XXXXXX)"
trap «rm »${MyTmpFile}"; exit 0" 0 1 2 3 15
bin2fex <"${Path2ScriptBin}/script.bin" | grep -v "^LV" | grep -v "^max_freq" | grep -v "^min_freq" | grep -v "^extremity_freq" >"${MyTmpFile}"
if [ $? -ne 0 ]; then
echo «Could not convert script.bin to fex. Exiting» >&2
exit 1
fi
cp -p "${Path2ScriptBin}/script.bin" "${Path2ScriptBin}/script.bin.bak"
sed -i '/[dvfs_table]/a
extremity_freq = 1296000000
max_freq = 1200000000
min_freq = 480000000
LV_count = 7
LV1_freq = 1296000000
LV1_volt = 1320
LV2_freq = 1200000000
LV2_volt = 1240
LV3_freq = 1104000000
LV3_volt = 1180
LV4_freq = 1008000000
LV4_volt = 1140
LV5_freq = 960000000
LV5_volt = 1080
LV6_freq = 816000000
LV6_volt = 1020
LV7_freq = 480000000
LV7_volt = 980' "${MyTmpFile}"
fex2bin "${MyTmpFile}" "${Path2ScriptBin}/script.bin" >/dev/null
if [ $? -ne 0 ]; then
mv "${Path2ScriptBin}/script.bin.bak" "${Path2ScriptBin}/script.bin"
echo «Writing script.bin went wrong. Nothing changed» >&2
exit 1
fi
echo «Successfully repaired broken overvolting/overclocking settings. Reboot necessary for changes to take effect»
Скопируйте и сохраните этот скрипт как fix.sh в домашней директории, после чего откройте терминал и выполните:
chmod +x fix.sh
sudo ./fix.sh
sudo reboot
После перезагрузки у вас окажется стабильная и холодная машинка, которой вполне будет хватать минимального пассивного охлаждения.
4. Тест-драйв
Не знаю, что еще можно дельного сказать на этом этапе. По месячному опыту использования платы с нормальным клокингом и поддержкой GPU, могу сказать, что устройство вполне может заменить неттоп на одно/двухъядерном атоме.
LibreOffice отлично и шустро работает
Chromium работает как полноценный настольный браузер
Youtube-плагин для SMPlayer шустро переваривает и 720р, и 1080р потоковое видео (в предустановленном Chromium поддержки аппаратного декодирования пока нет)
Можно даже попрограммировать в Eclipse или в Code::blocks!
4к видео я тоже проверял, играет вроде нормально, но не без шероховатостей. Смысла пока в нем не вижу, 1080р хватает за глаза.
GPIO вроде как работает, поморгал светодиодом, дальше не стал разбираться, может когда-нибудь руки и дойдут.
Отдельная тема — это игры, как же без них? Предлагаю оценить производительность в классике компьютерных игр, которая имеется под Linux — Quake 3 Arena.
0. (добавлено мной). Делаем симлинк и копируем заголовочные файлы, чтобы не править makefile:
ln -s /usr/include/khronos/GLES /usr/include/GLES
cp /usr/include/khronos/EGL/* /usr/include/khronos/GLES
1. Клонируем исходный код:
git clone --depth 1 git://github.com/mdrjr/ioquake3-odroid.git
2. Переходим в папку:
cd ioquake3-odroid
3. Собираем:
make -j5 ARCH=arm
4. Переносим папочку чтоб было аккуратно:
mv build/release-linux-arm ~/quake3
5. Кладем файлики игры pk*.pk3 (можно найти на диске с оригинальной игрой) в папку ~/.q3a/base3.
6. Запускаем файл ioquake3-smp.arm.
И играем!
Результат на видео:
От себя: идет идеально, по крайней мере я никаких глюков не заметил. Ребята молодцы, хорошо постарались, когда портировали драйвер GPU Mali под линукс!
Еще немного демонстрации графических/игровых способностей:
В целом я покупкой весьма доволен. За относительно небольшие деньги я вдоволь наигрался с линуксом и получил мини-ПК, способный эмулировать старые консоли, играть игры, серфить интернет с комфортом на 10+ вкладках полноценного браузера и играть видео с ютьюба.Что еще для счастья надо? В будущем планирую задействовать железку в каком-нибудь проекте DIY с использованием библиотеки компьютерного зрения OpenCV, благо в отличие от ардуины у нее хватит ресурсов на обработку видео.
Кому я категорически НЕ порекомендовал бы брать эту железяку:
— тем, кто на «Вы» с линуксом;
— тем, кто хочет готовое решение «из коробки»;
— тем, у кого мало свободного времени и плохо с английским для чтения форумов;
— тем, кому нужна возможность поставить Windows;
— тем, кому нужна хорошая поддержка коммьюнити, уровня Raspberry Pi и Arduino;
— тем, кому надо побольше ядер и оперативки непонятно зачем.
Этим людям я бы посоветовал взять либо более популярное устройство (малину), либо более мощную плату (на подходе уже есть 8-ядерные платы с 2-3Гб оперативки), либо просто свисток для ТВ на Android или Windows. Это будет лучше, чем взять сгоряча «апельсинку» и потом негодовать, потому как этому поделию далеко до идеала.
5. Вместо послесловия
На волне нового «тренда» производителей плат мини-пк выпускать ультра-дешевые изделия (C.H.I.P за $9, Raspberry Pi Zero за $5), создатели «апельсинки» Xunlong объявили о новом своем продукте: Orange Pi ONE и Orange Pi Lite (ссылка на официальный форум).
Новинка будет стоить $12 и $9.99 и размером будет меньше кредитной карты. Версия за 9,99 долларов, судя по анонсу, будет почти идентична герою обзора, но будет иметь лишь 512Mb RAM и 1 USB-порт (плюс один microUSB хост). Конечно, не разгуляешься, но должен признать, что это выглядит гораздо интригующе, чем 1-ядерные старенькие чипы на CHIP и RPi Zero.
Надеюсь лишь только, что вместе с выпуском плат Xunlong начнет, наконец, оказывать пользователям и сообществу нормальную поддержку в плане допиливания софта.
Автор: satie
Спасибо за обзор ! Понятно и достаточно подробно.