Уже не раз замечал интерес к новой плате-клону всем известной 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), а главное — ЦЕНА.
Итак, давайте рассмотрим данную плату повнимательнее. Тут уже были её обзоры, но все они представляли из себя нечто вида „установил андроид и подключил к телеку на кухне“. Я предлагаю взглянуть на плату с другой стороны, а именно — установить туда линукс, поюзать её как настоящий ПК.
Для тех, кому лень читать полностью, прорезюмирую: Интересная штука, на данный момент вполне юзабельная, но имеется огромное количество огрехов и косяков, требующих допиливания напильником. Покупать только на свой страх и риск!
Простому пользователю, рассчитывающему иметь готовое решение „из коробки“, я бы посоветовал обратить внимание на ТВ-боксы на базе Android или Windows.
Продвинутому пользователю, знакомому с Linux, который не боится неизведанных челенджей в сыром продукте, и которому хотелось бы иметь неттоп для интернет-серфинга, работы с документами, программирования и скромных игр — must have! Особенно с учетом цены.
Комплектация и внешний вид
Минимальная комплектация: сама плата, коробка и инструкция
Итак, начнем с комплектации. Её нет. От слова совсем. Ведь я заказывал самую дешевую версию платы, без каких-либо ништяков. У продавца в наличии есть еще различные наборы — сама плата, блок питания, корпус из орг.стекла, радиатор, карточка памяти и т.д.
Рассмотрим плату со всех сторон:
На самой плате отчетливо выделяются:
— чип Allwinner H3 — не самый плохой, но Allwinner — контора все-таки довольно гнилая, уже ставшая печально известной своим нарушением открытых лицензий, а ее чипы — невыносимой прожорливостью слона и тепловыделением, сравнимым с небольшим вулканом. Единственным их преимуществом остается низкая цена, а это порождает вокруг чипов огромное коммьюнити (плодами которого, кстати, мы и будем пользоваться);
— два чипа оперативной памяти DDR3L Samsung K4B4G16460-HYKO по 512Mb каждый, дающие в сумме 1Gb RAM.
С верхней стороны платы мы видим IR-приемник и гребенку GPIO. Кому интересно, вот распиновка:
С правой стороны мы видим 3 USB 2.0 разъема и порт Ethernet 10/100. Кстати, насчет USB портов... По информации сlinux-sunxi.org, порты USB „чистые“, а не разведенные через встроенный хаб, поэтому подключенные устройства могут работать в параллели, не деля между собой канал. Такого даже в „малинке“ нет!
Снизу мы видим дурацкий нестандартный разъем питания (сделанный таким, видимо, для того, чтобы увеличить продажи кастомных блоков питания у производителя плат), гребенку для подключения UART (распиновка GND, RX, TX — все штырьки подписаны), полноценный HDMI-разъем, микрофон и разъем 3,5 для вывода на „колокольчики“.
Надо сказать пару слов про питание. В документации сказано, что плата очень прожорливая и требует твердых 5В и 2А от блока питания. Производитель платы продает к ней блоки питания на 5В и аж 3А (!), поэтому советую приобрести именно такой, на случай, если амперы в вашем блоке питания окажутся „китайскими“, иначе возможны „фризы“.
С нестандартным разъемом бороться можно просто — плату можно запитать через шину GPIO: +5В подключаем на 2 или 4 пин, „землю“ на 6 пин.
С левой стороны мы имеем microUSB-OTG, разъем для подключения камеры (модуль камеры продается отдельно), непонятную кнопку (якобы „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. Я использую такой свисток за 3 доллара на базе RTL8188EU:
Ну и конечно, перед работой неплохо бы подготовить некоторую периферию: мышь, клавиатуру и так далее. Помимо указанного свистка и мини-радиатора я использую переходник HDMI-VGA чтобы подключиться к обычному компьютерному монитору, переходник USB-PS/2, чтобы использовать старую компьютерную клавиатуру, USB-геймпад, MicroSD карточку class 10 uhs-1 LD 16Gb, и чудо-мышь со встроенным MicroSD-кардридером и колонкой (!), подключенной во встроенную в мышь USB-звуковуху (!).
Устанавливаем ОС
Первым делом, нам понадобится программа 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, чтобы „подогнать“ разметку диска в системе под размер вашей карточки.
Фиксим оверкерлокинг
Теперь очередная „особенность“ этой платы, а точнее — свинья, подсунутая производителем. Две основные проблемы, с которыми сталкиваются пользователи — перегрев процессора (а также связанный с ним троттлинг, отключение ядер, зависание плат» и просадки вольтажа (которые тоже вызывают зависания) имеют общие корни:
Для того, чтобы прорекламировать свою плату как «самую мощную, мощнее чем Raspberry Pi», производитель плат Xunlong зарядил дефолтный клокинг ядер ЦПУ на 1536 МГц, что является номинальным «верхним потолком» по документации на чип, но даже сам производитель не рекомендовал использовать его на этой частоте, предупреждая о проблемах с перегревом.
Мне лично вполне хватает плавающего клокинга на 480-1200МГц, в зависимости от задач, поэтому рекомендую накатить следующий скрипт (за него и за всю исследовательскую работу спасибо юзеру bronco с офиц. форума):
Код:
#!/bin/bash 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"
Код:
chmod +x fix.sh sudo ./fix.sh sudo reboot
Тест-драйв
Не знаю, что еще можно дельного сказать на этом этапе. По месячному опыту использования платы с нормальным клокингом и поддержкой GPU, могу сказать, что устройство вполне может заменить неттоп на одно/двухъядерном атоме.
Судите сами. LibreOffice отлично и шустро работает. Chromium работает как полноценный настольный браузер. Youtube-плагин для SMPlayer шустро переваривает и 720р, и 1080р потоковое видео (в предустановленном Chromium поддержки аппаратного декодирования пока нет). Можно даже попрограммировать в Eclipse или в Code::blocks!
4к видео я тоже проверял, играет вроде нормально, но не без шероховатостей. Смысла пока в нем не вижу, 1080р хватает за глаза.
В целом я покупкой весьма доволен. За относительно небольшие деньги я вдоволь наигрался с линуксом и получил мини-ПК, способный эмулировать старые консоли, играть игры, серфить интернет с комфортом на 10+ вкладках полноценного браузера и играть видео с ютьюба.Что еще для счастья надо? В будущем планирую задействовать железку в каком-нибудь проекте DIY с использованием библиотеки компьютерного зрения OpenCV, благо в отличие от ардуины у нее хватит ресурсов на обработку видео.
Кому я категорически НЕ порекомендовал бы брать эту железяку:
— тем, кто на «Вы» с линуксом;
— тем, кто хочет готовое решение «из коробки»;
— тем, у кого мало свободного времени и плохо с английским для чтения форумов;
— тем, кому нужна возможность поставить Windows;
— тем, кому нужна хорошая поддержка коммьюнити, уровня Raspberry Pi и Arduino;
— тем, кому надо побольше ядер и оперативки непонятно зачем.
Этим людям я бы посоветовал взять либо более популярное устройство (малину), либо более мощную плату (на подходе уже есть 8-ядерные платы с 2-3Гб оперативки), либо просто свисток для ТВ на Android или Windows. Это будет лучше, чем взять сгоряча «апельсинку» и потом негодовать, потому как этому поделию далеко до идеала.