HummingBoard – одноплатные компьютеры для “интернета вещей”. Как сделать сердце Железного Человека своими руками (40 фото)

мини-ПК - это не настольный компьютер, но и не ноутбук. Мини-ПК - это компактная версия обычного персонального компьютера, которая занимает мало место и при необходимости легко переносится. Миниатюрные персональные компьютеры не пользуются бешеной популярностью, поскольку являются более гибридным вариантом, чем даже нетбуки, но успешно применяются в разных профессиональных отраслях.

Компания Micro Mote представила рабочую модель компьютера объемом в 1 кубический миллиметр, причем вычислительной мощности этого «малыша» вполне достаточно для того, чтобы стать вычислительным центром самых разнообразных устройств: от небольших камер до медицинских приспособлений и другой миниатюрной техники все более популярного Интернета вещей.


Raspberry Pi 2, дебютировавшем в начале этого месяца, обнаружены аппаратные сбои, которые заключаются в самостоятельной перезагрузке устройства при воздействии света от вспышки фотоаппарата. Производитель признает этот глюк, но называет его «бонусом». Впервые фотоэлектрический эффект был обнаружен Альбертом Эйнштейном, который за свои старания получил Нобелевскую премию. Суть в том, что чувствительный компонент, реагируя на свет, генерирует электрический заряд и перезапускается.

Три новых одноплатных микрокомпьютера, которые уже окрестили «убийцами Raspberry Pi». При сопоставимой с Raspberry Pi цене разработанные SolidRun модели гораздо быстрее. В них установлен более мощный процессор и увеличен объём оперативной памяти, но самое главное – новинки обладают более внушительным набором современных интерфейсов.

Пару лет назад микрокомпьютеры семейства Raspberry Pi начали своё победное шествие на рынке. По всему миру их покупали тысячи любителей мастерить электронные схемы своими руками. На базе одноплатных систем создавались студенческие проекты, выполнялись логические узлы «умного» дома и компоненты носимой электроники. Среди множества других вариантов встречались самоделки самого разного назначения – начиная от кустарного смартфона с сенсорным экраном и заканчивая интеллектуальным дозатором лекарств для собаки. Единственное, что сдерживало фантазию кулибиных, – их собственный опыт и аппаратные ограничения. Появления более совершенных моделей ждали постоянно, вот только мало кто предполагал, что их сделает совсем другая фирма.


Название компании SolidRun было на слуху после выпуска мини-компьютера CuBox-i. Его первая версия оснащалась одноядерным процессором с частотой 1 ГГц, 512 мегабайтами оперативной памяти и скромным видеоядром. Самым впечатляющим достижением CuBox-i были его габариты: вся начинка уместилась в объёме пяти кубических сантиметров. При столь скромных размерах кубика на его задней стенке сумели расположить пять портов, слот для карты формата MicroSD и гнездо для подключения адаптера питания.


В наименовании семейства микрокомпьютеров HummingBoard обыгрывается англоязычное название колибри. Видимо, маркетологи рассчитывают на ассоциативную связь с ловкой птичкой, которая не оставит шансов “малине”, хоть в жизни она и не входит в её рацион. Эти компьютеры основаны на тех же инженерных решениях, что и представленный ранее CuBox-i, но все они «переведены в плоскость». Одноплатный компьютер представляет собой уже скорее не самодостаточное устройство, а элемент конструктора для взрослых. Главная идея его дизайна заключалась в том, чтобы обеспечить как можно больше возможностей для подключения внешних устройств и расширения функциональности конструируемой пользователем системы.

В современных смартфонах и планшетах используют однокристальные системы (SoC), в которых ядра процессора, модули радиосвязи и прочие вычислительные компоненты реализованы в виде одной микросхемы. SolidRun использует схожий подход, устанавливая чипы Freescale i.MX6, относящиеся к классу «микросистема на модуле» (MicroSOM). Отличие в том, что процессор можно заменять, как это показано на видео.

Сам процессор поколения ARMv7 превосходит своего предшественника не только числом (операций в секунду), но и умением. В нём реализована поддержка набора инструкций NEON (128-битное SIMD-расширение), который эффективнее обрабатывает мультимедийные задачи. По сравнению с Raspberry Pi на базе ARMv6, у HummingBoard такие процессы, как обработка изображений, кодирование и декодирование видео, распознавание и синтез речи, выполняются как минимум вдвое быстрее.

Младшая модель семейства HummingBoard (i1 Solo) содержит одноядерный процессор архитектуры Cortex A9 c частой 1 ГГц, видеоядро GC880 с поддержкой OpenGL ES1.1,2.0 и 512 мегабайт оперативной памяти стандарта DDR3. Она не предполагает подключения дисковых устройств, но имеет слот MicroSD с поддержкой карт памяти скоростного стандарта UHS-1. Это означает, что с минимальными затратами пользователь сможет «оживить» микрокомпьютер при помощи загрузочной флеш-карты.

Среди официально поддерживаемых операционных систем указаны Android, FreeBSD, различные версии Linux (Debian, Ubuntu, Arch) и XBMC (Xbox Media Center). Набор интерфейсов представлен портом HDMI версии 1.4 с поддержкой вывода изображения в формате 3D, сетевым портом Ethernet 10/100, USB-портами v.2.0 (HighSpeed), монофоническим аудиовыходом, интерфейсом CSI v.2.0 для подключения камеры, а также разъёмом стандарта GPIO (двадцать шесть входов/выходов общего назначения). Именно через последний можно подключать другие программируемые самоделки.

Разработчики считают, что их одноплатные компьютеры найдут место на растущем рынке гаджетов для «интернета вещей». По заявлению представителей SolidRun, микрокомпьютеры HummingBoard были созданы для того, чтобы вместить в себе и сделать доступнее все последние разработки открытого сообщества. Вероятно, на практике это означает, что проект для Raspberry Pi можно перенести на новый одноплатный компьютер без существенных модификаций.

Вторая версия HummingBoard (i2 Dual Lite) более мощная. На ней установлен двухъядерный процессор с частотой 1 ГГц и гигабайт оперативной памяти, работающей в двухканальном режиме.


Флагманом линейки стал одноплатный компьютер HummingBoard-i2eX. По сравнению с моделью Dual Lite в нём повышена частота работы ОЗУ (с 800 до 1 066 МГц), используется более производительное видеоядро GC2000 с поддержкой шейдеров, добавлены интерфейс LVDS для подключения ЖК-панелей (поддерживаются как обычные, так и сенсорные), разъём PCI-Express второй версии и порт mSATA II для подключения дисковых устройств. Кроме того, в ней появился отдельный модуль RTC, питающийся от собственной литиевой батарейки (время и дата не сбрасываются при перезагрузке).

В спецификациях флагмана указывается гигабитный порт Ethernet, но его реальная пропускная способность ограничена значением 470 Мбит/с из-за лимитов, накладываемых самой микросхемой Freescale i.MX6. Пока HummingBoard-i2eX – единственная модель, поддерживающая стереозвук и подключение микрофона, а также имеющая встроенный ИК-приёмник.

Базовая версия HummingBoard уже продаётся по цене от $45. Более продвинутые варианты будут представлены до конца июля по ориентировочной цене $75 и $100 соответственно.

Исходя из названия, одноплатный компьютер - это компьютер, собранный на одной плате, с полным набором необходимых для полноценного функционирования модулей: процессором, оперативной памятью, видео-процессором, сетевым(и) интерфейсами, системой ввода-вывода и т.д. Такие компьютеры, как правило, имеют очень компактные размеры (с пластиковую карту и даже меньше), низкое энергопотребление, а так же сравнительно невысокую цену. Эта публикация познакомит Вас с некоторыми интересными представителями данного сегмента рынка.

Сфера применения

Для чего же нужны одноплатные компьютеры? Первоначальная сфера применения одноплатников - образовательно-демонстрационная: при помощи данных устройств можно изучать информатику, основы электроники, схемотехнику и программирование. Благодаря наличию универсальных портов (GPIO, UART) для работы с любыми другими устройствами, одноплатные компьютеры могут применяться в робототехнике, в системах "умный дом" и в любых проектах, требующих программного управления электроникой. Одноплатные компьютеры с установленной операционной системой на базе ядра Linux возможно использовать в построении сетевых устройств, маршрутизаторов (роутеров), различных серверов.

На сегодняшний день одноплатные компьютеры стали достаточно производительными, что ещё больше расширило возможности их применения - большинство современных моделей, имеющих на борту 1, 2 Gb и более оперативной памяти, 4-х и даже 8-ми ядерные процессоры, достаточно мощные графические и качественные звуковые подсистемы, могут быть использованы как домашние медиа-центры, в системах видеонаблюдения, а так же как энергоэффективные десктопы, мини-компьютеры под управлением операционных систем на основе ядра Linux - Debian, Ubuntu, Fedora, Android и т.д.

Существует большое количество производителей, выпускающих одноплатники с использованием мобильной архитектуры ARM, мы рассмотрим некоторых, наиболее интересных из них:

Raspberry Pi

Один из первых одноплатных компьютеров на мобильной архитектуре ARM, разработан Raspberry Pi Foundation. В последствии получил большую популярность и породил множество аналогов и клонов, как более производительных и дорогих, так и более дешёвых. Выпускается в нескольких комплектациях, от самой дешёвой (Raspberry PI Zero) с одноядерным процессором и 256 Mb оперативной памяти и до топовой (на момент написания статьи - Raspberry Pi 3 Model B) с 4х ядерным процессором Broadcom BCM2837 и 1Gb оперативной памяти. Во всех версиях имеются USB порты (от 1го до 4х, в зависимости от модели), порт GPIO (general purpose input/output, 26-пиновый или 40-пиновый). Есть модели с сетевым интерфейсом Ethernet, есть с Ethernet + Wi-Fi и Bluetooth, и есть модели вовсе без сетевых интерфейсов (Raspberry Pi 1 Model A). Стоимость данных плат варьируется от $10 до $40

Установка операционной системы производится путём развертывания заранее подготовленного образа (скачивается на официальном сайте) на MicroSD карту, которую нужно покупать отдельно. Поддерживаемые операционные системы: Debian, Fedora, Arch Linux, Gentoo, RISC OS, Android, Firefox OS, NetBSD, FreeBSD, Slackware, Tiny Core Linux, Windows 10 IOT.

Banana Pi, Banana Pro

Фактически это клон Raspberry Pi с улучшенными характеристиками, разработан компанией "Lemaker". построен на аппаратной платформе Allwinner A20 SoC (центральный процессор ARM Cortex-A7 dual core + графический процессор ARM Mali400MP2 dual GPU core) и 1GB DDR3 SDRAM. В отличии от Raspberry Pi имеет порт SATA с отдельным разъёмом питания (поддержка жёстких дисков до 4 ТБ), сетевой интерфейс Ethernet 10/100/1000 Mbps (против 10/100 Mbps у Raspberry Pi), возможна установка отдельного Wi-Fi-модуля (USB WiFi Dongle). Так же имеется коннектор для камеры (Camera Serial Interface) и встроенный ИК-порт. Кроме цифрового видеовыхода HDMI есть LVDS connector для сенсорных дисплеев и композитный видеовыход (AV video).

Версия отличается наличием встроенного WiFi 802.11 b/g/n 2.4GHz, шиной расширения на 40 пин. (вместо 26 у Banana Pi), отсутствием композитного видеовыхода.

Так же существует много модификаций данной платы, например:

  • - на аппаратной платформе Allwinner A31S , с более мощным, 4-ех ядерным процессором (Cortex A7 quad-core) и графическим ядром (PowerVR SGX544MP2).
  • (версия 1.2) - на аппаратной платформе Allwinner A83T , с 8-ми ядерным процессором (ARM Cortex-A7 octa-core, 1.8 ГГц), графическим ядром (PowerVR SGX544MP1), 2 ГБ LPDDR3 SDRAM оперативной памяти и со встроенной 8G eMMC памятью.
  • - отличается богатством сетевых интерфейсов: 5 интерфейсов Ethernet 10/100/1000 Mbps, Wi-Fi 802.11 a/b/g/n 2.4 ГГц/5 ГГц, а так же Bluetooth 4.1. Кроме этого, данная модель имеет CSI вход для видеокамеры и встроенный микрофон. Такая конфигурация даёт широкие возможности в построении сетевых шлюзов, маршрутизаторов, беспроводных точек доступа, систем видеонаблюдения и т.д.

Banana Pi M3 (version 1.2)

Доступные для установки операционные системы: Debian, Raspbian, Scratch, Lubuntu, openSUSE, ArchLinux, Bananian Linux, Android, Fedora, Kali Linux. Установка ОС возможна как на TF-карту (MicroSD), так и на внутреннюю eMMC память (для тех моделей, у которых она есть).

Официальный сайт производителя - www.lemaker.org

Orange Pi

Ещё один последователь "Малины" от китайской компании Shenzhen Xunlong Software CO, отличается очень демократичной ценой и неплохими характеристиками. Богатый модельный ряд даёт возможность выбрать одноплатник этого производителя под любые технические требования и любой бюджет: Orange Pi Zero, Orange Pi One, Orange Pi Lite, Orange Pi PC (PC2), Orange Pi PC Plus, Orange Pi Plus 2E, Orange Pi Plus (Plus 2), Orange Pi Zero Plus2, Orange Pi 2G-IOT, Orange Pi Win/ Win Plus, Orange Pi Prime, Orange Pi i96.

Рассмотрим некоторые из них:

Один из самых компактных одноплатников: его размеры составляют всего 48 мм × 46 мм при весе в 26г. Такие габариты позволят использовать эту модель в проектах, требующих от всех компонентов минимальных размеров и минимального энергопотребления. При своих скромных габаритах данная модель имеет неплохие характеристики - на нём используется аппаратная платформа AllWinner H2 SoC (центральный процессор Quad-core Cortex-A7 1,2 GHz + графика Mali400MP2 GPU), 256MB/512MB DDR3 SDRAM оперативной памяти, встроенный сетевой контроллер 10/100M Ethernet RJ45 с PoE (Power over Ethernet - технология, позволяющая устройству получать питание из кабеля витой пары), модуль Wi-Fi 802.11 b/g/n, 26 пиновый порт расширения, 13 пиновый функциональный интерфейс (2xUSB 2.0, ИК вход, вход микрофона и видеовыход), а так же USB OTG (с возможностью получения питания).

Цена этого мини-компьютера на Aliexpress - от $7 за версию с 256Mb оперативной памяти и от $9 за 512Mb.

Orange Pi PC 2 - модель построена на базе AllWinner H5 SoC (Четырёхядерный 64-битный Cortex-A53 + восьмиядерная графика Mali450), имеет 1GB DDR3 оперативной памяти, гигабитный Ethernet-порт, CSI вход для подключения видеокамеры, HDMI-выход, на борту присутсвует звуковая подсистема с 3,5 мм аудиоджеком и встроенным микрофоном. Плата имеет поддержку TF card (до 64Gb), NOR flash (2MB), ИК-приемник, 3 USB 2.0 порта, один USB 2.0 OTG порт. Так же имеется 40-ка пиновый порт расширения (совместимый с Raspberry Pi B+), UART, ground.

Модель с 2Gb оперативной памяти и аппаратной платформой AllWinner H3 SoC (четырёхядерный Cortex-A7 1,6 Ghz + Mali400MP2 GPU). Отличается наличием встроенной eMMC флеш-памяти объёмом 16GB, которая имеет большее быстродействие чем TF-карты памяти, а так же наличием интерфейса SATA 2.0 для подключения магнитных жестких дисков (HDD) и твердотельных дисков (SSD) и наличием встроенного Wi-Fi модуля. Остальные характеристики практически повторяют предыдущую модель за исключением наличия 4-ёх портов USB вместо 3-ёх у Orange Pi PC 2.

Данная модель имеет на борту встроенный GSM/GPRS-модуль с поддержкой SIM-карт мобильных операторов, встроенный микрофон и аудиовыход, встроенный модуль Wi-Fi и Bluetooth, вход для аккумуляторных батарей, CSI вход для видеокамеры, а так же выход для подключения LCD. Остальные характеристики достаточно скромны: аппаратная платформа RDA8810 SoC (центральный процессор ARM Cortex-A5 32bit и графический процессор Vivante"s GC860), 256Mb оперативной памяти, один USB 2.0 порт и один USB OTG 2.0 порт, поддержка карт-памяти и встроенные 500Mb SLC Nand Flash.

Такая конфигурация делает возможным построение на её базе различных систем мониторинга и безопасности, с возможностью автономного питания (при использовании аккумулятора).

Операционные системы, доступные для установки: Android, ArchLinux, Armbian, Ubuntu, Lubuntu, Debian, Rasbian, OpenSuse, Fedora, Kali Linux.

Cubieboard

Cubieboard - имеет в модельном ряду одни из самых производительных конфигураций на рынке одноплатников. На сегодня выпускаются такие модели: Cubieboard 1, Cubieboard 2, Cubieboard 3 (Сubietruck), Cubieboard 4 (CC-A80), Cubieboard 5 (Сubietruck Plus), CubieAIO-A20.

Самая младшая модель в линейке Cubieboard имеет совсем не такие уж и малые характеристики: аппаратная платформа Allwinner A10 SoC (ARM Cortex A8 @ 1 ГГц процессор, с Mali 400MP GPU и CedarX VPU), 1Gb DDR3 памяти, 4 Гб встроенной NAND Flash, 1x MicroSD слот, 1x SATA порт, HDMI выход, разъем сетевого интерфейса 10/100 Ethernet, 2x USB порта, 1x USB OTG порт, ИК-приёмник, 96-ти контактный порт расширения (I²C, SPI, LVDS, CSI/TS, FM-IN, ADC, CVBS, VGA, SPDIF-OUT, R-TP)

Модель на базе Allwinner A20 с огромным количеством портов расширения: разъём miniPCIE с поддержкой модулей 3G/4G, интерфейс SATA 2.0 с поддержкой mSATA, 6xUSB портов, 1 x OTG порт, 1 x Toslink (SPDIF оптический), 54 пиновый порт расширения включающий UART, LineIN, MicIn, PWM, Low Resolution ADC, SPI, I2C, LCD, GPIO, CCIR656, MIPI_CSI, I2S, сеть 100M/1000M Ethernet RJ45, встроенные 4/8GB TSD/emmc памяти, 1GB DDR3 оперативной памяти, встроенный модуль Wi-fi и Bluetooth 4.0.

Cubieboard 5 (Cubietrack Plus) - топовая модель на момент написания статьи, имеет внушительные характеристики, немалые размеры и цену (как для одноплатных компьютеров). Построена на базе аппаратной платформы AllWinner H8 (восьмиядерный ARM Cortex A7 с максимальной частотой 2.0 Ghz и графикой PowerVR 544), имеет 2Gb DDR3 оперативной памяти, гигабитную сеть, встроенный Wi-Fi модуль, работающий в двух диапазонах (2,4 и 5 Ghz), Bluetooth, встроенные 8Gb eMMC памяти, интерфейс SATA 2.0, традиционный слот для microSD карт, выход HDMI, аналоговый аудио выход 3,5 мм, встроенный микрофон, 2 USB 2.0 порта, 1 USB OTG порт, 70-ти пиновый порт расширения, а так же встроенный аккумулятор RTC (CMOS) на 40 mAh. На плате присутствует распайка для литиевых аккумуляторов - возможно подключение автономного питания. Кстати о питании: для полноценной работы Cubieboard 5 рекомендуется блок питания не меньше 2,5A при 5 вольтах (12,5 Вт). Плата имеет достаточно большие размеры (опять же, как для одноплатных ПК) - 112мм х 82мм и немалую цену - в комплектации со всеми шнурами и кейсом около $90. Данная конфигурация имеет достаточные параметры для использования Cubieboard 5 как обычного десктопа (или мини-компьютера) под управлением Linux.

Официальный сайт одноплатника - cubieboard.org

Odroid

Odroid - серия одноплатников от южнокорейской компании Hardkernel Co. От предыдущих рассматриваемых моделей отличаются использованием аппаратной платформы Amlogic SoC (для младших моделей) и Samsung Exynos SoC (для старших моделей) вместо более дешёвого Alwinner. На сегодня модельный ряд состоит из: ODROID-C0, ODROID-C1+, ODROID-C2, ODROID-XU4, ODROID-XU4Q.

Рассмотрим некоторые из них:

Младшая модель в линейке, использует Amlogic S805 (четырёхядерный Cortex-A5(ARMv7) 1.5Ghz и графика Mali-450 MP2). На борту 1Gb DDR3 SDRAM оперативной памяти, слот для подключения eMMC памяти, слот для microSD карт, 40 + 7 пиновый порт GPIO, 2 порта USB 2.0, ИК приёмник, зарядка для литиевых аккумуляторов. Плата имеет весьма компактные размеры (65х56 мм) и позиционируется производителем как платформа для создания роботов и дронов (квадрокоптеров).

Платформа этой модели - Amlogic S905 SoC (четырёхядерный ARM Cortex-A53 (ARMv8) 1.5GHz и ARM Mali-450), модель имеет 2Gb DDR3 SDRAM, модуль для подключения eMMC памяти объёмом от 8 до 64 Gb и слот для подключения карт памяти MicroSD (до 128 Gb), 4 порта USB2.0, порт USB2.0 OTG, сеть 10/100/1000Mbps Ethernet, видеовыход HDMI 2.0, аудио вход, разъём для подключения видеокамеры, слот расширения 40pin (GPIO / UART / I2C / ADC) и 7pin port (I2S).

ODROID-XU4 / ODROID-XU4Q

Обе модели построены на базе Samsung Exynos5422 (Cortex-A15 2Ghz и Cortex-A7 восьмиядерный процессор + Mali-T628 MP6), 2Gb LPDDR3 оперативной памяти, модуль подключения чипов памяти eMMC (которая гораздо быстрее чем microSD карты), слот для MicroSD карт памяти, сеть 10/100/1000Mbps Ethernet, HDMI выход, 2 порта USB 3.0 и 1 порт USB 2.0 возможность подключения через USB Serial ATA3 адаптера для HDD или SDD дисков.

В аппаратной платформе Samsung Exynos5422 применена технология ARM big.LITTLE , которая предполагает совмещение на одном ядре нескольких высокопроизводительных процессоров и нескольких энергоэффективных. Данная технология призвана снизить энергозатраты при выполнении операций не требующих всей мощности, путём использования в таких задачах только энергоэффективных ядер, и наоборот, когда системе нужны все ресурсы в работу включаются высокопроизводительные ядра.

Различие у этих двух моделей в системе охлаждения - у XU4 она активная (радиатор + кулер), а у XU4Q пассивная (только радиатор), что, по тестам производителя, ведет к 10% потере мощности при максимальной нагрузке (а следовательно максимальном тепловыделении), зато такая система полностью бесшумна. Впрочем, кулер у модели XU4 работает не всё время, а только при достижении процессором определённого температурного предела.

Дополнительные модули и аксессуары

Купив одноплатный компьютер Вам понадобится также приобрести минимально необходимый набор аксессуаров для его работы: блок питания, microSD карту памяти или модуль памяти eMMC (если у модели нет встроенной памяти) для установки операционной системы, радиатор охлаждения (если он необходим). Данный набор может поставляться как в комплекте с платой, так и отдельно. Об этих и других аксессуарах поговорим далее:

Блоки питания

При покупке отдельно блока питания для одноплатного компьютера следует поинтересоваться у продавца (или производителя) какой мощности он должен быть для стабильной работы платы и всей периферии, подключенной к ней. Для большинства одноплатников подходят блоки питания 5В при 2-2,5А (10-12,5 Вт), но есть модели требующие большей мощности от блока питания (например ODROID XU4 необходимо 5В и 4А - 20 Вт). Так же следует обратить внимание на тип вилки, и просить у продавца евро-вилку, чтобы потом не пришлось покупать переходники с китайского или американского стандарта.

Система охлаждения и корпуса

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

Дополнительные модули, дисплеи

Практически ко всем одноплатником существует возможность подключения дополнительных модулей (плат расширения), которые служат для получения функционала, отсутствующего в базовой комплектации, например:

  • Платы расширения GPIO - служат для значительного расширения стандартного GPIO порта, подключения большего количества устройств.
  • Различные датчики: инфракрасные датчики, датчики приближения, датчики температуры и влажности, датчики звука, сейсмодатчики, фото датчики, датчики огня, газовые датчики, датчики шума, ультразвука и т.д., что позволяет использовать одноплатный компьютер в самых разнообразных проектах. Такие датчики, как правило, продаются комплектами и стоят в пределах $5 - $12.
  • Дополнительные контроллеры: SATA-контроллеры, контроллеры USB, аудиоконтроллеры и т.д.
  • Видеокамеры
  • Дополнительные радиомодули: Wi-Fi и Bluetooth (для плат, у которых их нет в базе), GSM и т.д.
  • LCD-мониторы (для плат, на которых есть выход для подключения LCD) с сенсорными экранами от 3 до 10 дюймов

Другие производители одноплатных компьютеров

Рынок одноплатных компьютеров достаточно велик и в данной статье рассмотрена лишь небольшая его часть, с целью познакомить читателя с основными характеристиками и возможностями одноплатников. Кроме описанных в статье производителей, существует и множество других, чьи модели представляют не меньший интерес. Если Вас заинтересовали данные устройства и Вы уже придумали как бы могли их использовать для воплощения своих идей в жизнь, возможно Вы захотите поискать в интернете, для сравнения, и другие модели от других производителей. Вот неполный их список: Arduino, Arndale Board, BeagleBone, Cotton Candy, Cubox, Gumstix, Hawkboard, Hummingboard, IGEPv2, PandaBoard, Parallella, Rascal, Rockchip, Roseapple Pi, Snowball, Stick PC, UDOO, Virt2Real.

Маленькие компьютеры еще не сильно популярны, но я уверен что многие пользователи оценят их по достоинству. Лично я и ранее присматривался маленьким компьютерам, но в то время в продаже не было такого мини компьютера на Windows который смог бы заменить настольный компьютер.

Есть конечно и ноутбуки, которые компактны и универсальны, да они могут заменить системный блок. Но для меня в недорогих ноутбуках есть 2 серьезных минуса:

  1. в ноутбуках маленькая диагональ экрана и маленькое разрешение. Качество дисплея очень низкое, при отклонении от прямого угла изображение выцветает.
  2. в недорогие ноутбуки не ставят SSD, а это серьезный минус для быстродействия.

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

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

Мини компьютер поставляется в небольшой коробке,


в комплект поставки входят:


1 — сам компьютер
2 — блок питания
3 — кабель 220В
4 — две антенны Wi-FI, крепежные винты. Отдельно у того же продавца я купил VESA крепление к монитору.
5 — крепежные винты
6 — VESA крепление (в комплект не входит, надо заказывать отдельно)

Габариты

Как вы уже успели заметить размеры компьютера очень компактные 14 x 11 x 3,5 см, размеры сравнимы с размерами 3,5″ жесткого диска для настольного компьютера:

Технические характеристики

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

Внешние разъемы

Все разъемы располагаются на двух противоположных торцах.
С одной стороны


  • кнопка включения питания
  • разъем блока питания
  • 1 порт USB 3.0
  • 4 порта USB 2.0

Со второй стороны


  • 2 разъема под антенны
  • 3,5″ аудиовыход
  • 3,5″ разъем для микрофона
  • RJ-45 сетевой адаптер
  • HDMI выход
  • VGA выход

Что внутри

Если мы заглянем во внутрь мини компьютера, то увидим что внутри все расположено компактно. Здесь можно увидеть 1 слот SO-DIMM с модулем памяти, mSATA разъем со вставленным диском SSD, Mini PCIE разъем в который вставлен модуль Wi-Fi.


А также тут есть разъем для SATA для подключения жесткого диска, и нестандартный разъем питания для жесткого диска. Подключать дополнительный диск я не пробовал, потому что не было кабеля питания. И если честно сомневаюсь что его можно будет уместить в этом корпусе, по крайней мере креплений под него нет.

Охлаждение

Система охлаждения здесь пассивная, то есть в этом компьютере нет никаких вентиляторов , а за отвод тепла отвечает ребристый корпус маленького компьютера. При заявленных требованиях теплоотвода процессора — TDP 7,5W корпус вполне справляется с отводом тепла. Что касается перегрева, то пока с ним я не сталкивался компьютер за 2 месяца ни разу не завис и не отключился.

Замер температуры производился по встроенному в процессор датчику, в течении всех тестов, это примерно 80 минут. Как видно из замеров:

  • минимальная температура составила 40°C
  • максимальная температура составила 50°C

При этом запас до критической температуры составлял 50°C от максимума.

Отсутствие вентилятора и классического жесткого диска — это полное отсутствие шума, для меня это большой плюс.

Операционная система

Компьютер поставлялся с предустановленной английской Windows 7, копия была не лицензионная. Я сразу установил Windows 8.1 x64 драйвера установились все, единственное что я сделал, так это обновил их.


Linux системы на этом малыше работают, Live CD Ubuntu запустился без проблем. думаю все остальные дистрибутивы так же будут прекрасно работать.

В характеристиках компьютера заявлено что он поддерживает старую добрую Windows XP, но эту систему я не устанавливал, поэтому точно сказать насколько корректно она работает, и как обстоят дела с драйверами не могу.

Производительность

Сразу скажу геймерам — этот компьютер не для вас ! Как я уже писал графика здесь Intel HD Graphics, встроенная в процессор, к сожалению современные игры она не потянет. Но для некоторых игр его вполне хватит.

Если же вы выбираете компьютер, который занимал бы мало места, для работы в Интернет, для работы в офисных приложениях, для просмотра видео и прослушивания музыки, для работы в фотошоп и других графических редакторах — то можете не сомневаться, этот малыш легко справится со всеми этими задачами!

Тест производительности

Для измерения производительности использовался тест PerfomanceTest 8, скачать его можно на этой странице сайта www.passmark.com , в этом тесте:

  • Общий бал компьютера 680.4-709.0
  • Процессор показал результат на 30% ниже чем Core2Duo E8400
  • Графика , как и ожидалось слабая, примерно в 2 раза медленнее Radeon 6450
  • По тесту памяти отставание от DDR2 — 16%, от DDR3 — более 37%
  • Диск показал результат в 2,5 раза быстрее обычных дисков и на 38% медленнее других SSD дисков

Детальные результаты тестов:
2D графика :

3D графика :

Процессор :

Память :

Диск :

Итоговый результат :

И мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ - это было увлекательно…

Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью - все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта.

Проекты на микроконтроллерах мне порядком поднадоели - подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» - ни гибкости, ни сложности. С системами на кристалле - SoC (System on Chip) до этого я дела особо не имел - разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.

Выбор у меня был небольшой, и определялся сложностью изготовления платы - только выводные корпуса, никаких BGA, максимум четырехслойный дизайн, а все потому, что я собирался прилепить свою платку к одному сравнительно простому рабочему проекту. Еще это означало, что в последующем я получу с производства уже спаянную плату, готовую к экспериментам.

Проектирование

В результате обзора доступных SoC я остановил свой выбор на iMX233 от Freescale. Выводной корпус, 454 МГц, контроллер DDR памяти, интерфейс к карте памяти SD/MMC, отладочный порт - отличный набор новичка. В придачу - композитный видеовыход («тюльпан»), аудио вход/выход, SPI, I2C, UART, USB, LCD. Будет чем заняться на досуге.

После чтения статей о платформе BlackSwift в потенциальных кандидатах появился Qualcom Atheros AR9331, но смутило отсутствие подробной информации в открытом доступе. Жаль, занимательный кандидат.

Меня интересовала минимальная конфигурация, достаточная, чтобы запустить на ней Linux. Соответственно к процессору была выбрана микросхема памяти на 32 МБ (256 МБит) (по тому простому принципу, что она у нас была в наличии). На тот момент я еще не вычитал на десятках форумов о существовании сложностей с этим процессором, только изучил рекомендации производителя по трассировке и, довольный как слон, делал все по рекомендациям.

Вообще, процессор (или SoC, так правильнее) интереснее с той точки зрения, что при его запуске значительно дороже выходят ошибки проектирования. Например, некорректная разводка DDR памяти может выразиться как минимум в последующих ошибках чтения-записи, как максимум - в невозможности инициализации памяти вообще. Цепи питания процессора - ошибка сожжет процессор при первом включении, интерфейсы - потеря периферии на этих интерфейсах, и так далее.

Поэтому начинать проще с изучения готовых отладочных комплектов, например официальной платы и ее документации. Платы у меня не было, но документация доступна всем желающим. В придачу полезно изучить все инструкции по применению, почитать форумы (это уже жизненный опыт:)) - в общем, изучить всю доступную информацию о жертве. После изучения начинается механическая работа - нарисовать схему, а затем и плату. Четыре слоя, минимальная ширина проводника 0.2мм, зазора 0.2мм, отверстия 0.3мм.

Подключил все, что можно подключить безболезненно – аудио входы и выходы, вывел видеосигнал на контактные площадки, всякую простую периферию - микросхему памяти с I2C интерфейсом, еще одну с SPI, держатель для uSD карты, конфигурационные перемычки, обязательно отладочный порт, и потом на свободное место все что осталось. Плата получилась небольшая - 70х40мм, с минимумом компонентов. Для NAND памяти места не осталось, но я планировал запускаться с SD/MMC. Работы на одну ночь.

Получилось страшненько. Слева направо: верхний слой, два внутренних, нижний. Процессор на верхнем слое, память на нижнем; на каждый сигнальный проводник DDR интерфейса по одному переходному отверстию; длины проводников выровнены, их средняя длина в пределах рекомендуемой, полигон земли между процессором и памятью почти без разрывов, и т.д.

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

Становится не по себе - проблемы у людей вплоть до третьей переработки платы, процессор не работает с некоторыми модулями памяти, встроенная подсистема питания очень нестабильна, процессор очень придирчив к питанию, errata (документ, описывающий ошибки на процессор) на многие проблемы отвечает «ничем помочь не можем», софт в открытом доступе кривой, даже внутренний загрузчик нуждается в патче от производителя, в общем, проблемы намечаются серьезные. Выкачиваю BSP (board support package) от производителя - там каша из сотен скриптов и пакетов. Веселье начинается.

Спустя месяц приходят платы, и я начинаю эксперименты. Что-то в уголке подсознания всплывает, связанное с проблемами у монтажного производства.

Отступление

Эта система на кристалле приглянулась мне еще и тем, что несет на борту все необходимые для ее жизни регуляторы питания - как DC/DC (импульсные) так и LDO (линейные). В том числе и зарядное устройство для Li-Pol аккумулятора. Заводишь на SoC 5 вольт от USB - получаешь 1V8, 2V5, 3V3 и 4V2 на выходе. Что-то достается самому процессору, что-то уходит на память, можно аккумулятор подзарядить. Удобно. Можно сжечь все и сразу:)

SoC bringup

Прочь сомнения, подать питание!
И никаких признаков жизни. Это хорошо, хорошо потому, что без дыма. Подпаиваю кнопку «Power», смотрю осциллографом на ножку кварцевого резонатора, запускаю - есть генерация на кварце. 24 МГц, страшненькие, но есть. Щуп осциллографа с делителем, пассивный, спишем на него. «Дедушка старый, ему все равно»

Начинается самое интересное - bringup. Как этот термин лаконично перевести на русский в данном контексте? Попытка вдохнуть жизнь? Не звучит.

В процессоре есть свой первоначальный загрузчик, который при включении проверяет условия старта - откуда и что грузить. Он же отвечает на запросы по шине USB. Его можно сконфигурировать перемычками на плате, или однократно прошиваемой OTP-памятью. Если перемычки перепаять я еще смогу, то перепрошить неперепрошиваемое вряд ли. Распаиваю перемычки, подаю питание, и о чудо - с отладочного порта приходят первые байты данных! Это значит, что процессор доволен питанием, самые базовые его узлы запустились, и можно что-то делать дальше. Что значат эти коды, я узнал из кривоватого заголовочного файла, в виде PDF документа, с невнятными пояснениям, пропусками и за авторством huashan. Все ясно.

Хорошо, чтобы максимально оперативно работать с платой, оптимальнее будет подключить ее по проводам, и загружать исполняемый код по нажатию одной кнопки. Ок, подключаю по USB к компу. И ничего.

Никаких транзакций по шине USB, даже генерации на кварце. Плохо. Начинаю думать, изучаю плату, вспоминаю все тонкие моменты. Например, на этой плате рядом с процессором я поставил свой DC/DC преобразователь, с расчетом на питание какой-либо потребляющей нагрузки, подключил его к шине питания USB 5V, и ничем не нагрузил. Промеряю осциллографом - на входе 5 вольт, на выходе 5 вольт. Всплывают слова с производства, что-то по поводу резистора. Да, так и есть - в цепи обратной связи нет резистора. (- Капитан, капитан, якорь всплыл! - Хммм, скверная примета…)

Паяю резистор, и о чудо! Плата определяется по USB! До этого я смотрел на уровень напряжения шины питания - 5.1 вольт, никаких существенных помех, никаких пульсаций. Но процессору виднее. После запайки резистора заработал и DC/DC источник, пока без нагрузки, но, по крайней мере, перестал мешать процессору. Хорошо, что дальше.

Дальше надо разобраться с первоначальным запуском процессора и проверить работу DDR. Начинаю копать, и в процессе поисков собираю набор утилит и «бутлетов» - исходных кодов, позволяющих проинициализировать подсистемы питания, связку DDR контроллер-память и подготовить систему к дальнейшей работе. То, что надо - максимально простые исходники, с обилием индусского кода, но главное, они работают.

Утилиты позволяют загрузить эти бутлеты в память процессора и запустить их на исполнение. Все так сложно, потому что после включения встроенный загрузчик ничего не знает про внешнюю оперативную память, а поскольку нет памяти – некуда загружать, к примеру, ядро Linux. Получается цепочка из нескольких звеньев, где на каждом этапе выполняется незначительный шаг вперед.

Отступление


Для подключения к последовательным портам, для реализации всяких внутрисхемных JTAG отладчиков, программаторов и аналогичных задач в другом проекте был реализован USB-UART мост на FT2232. Двухслойный дизайн, выведены оба порта на гребенку с шагом 2 мм. В этом проекте другая история – USB-UART мост + платка сбора данных размещается в центре основной платы, и конструктив прибора предполагает ее удаление.

Т.е. в прибор плата без дырки в центре встать просто не сможет. Мне показалось нерациональным выбрасывать текстолит, и я внес свои творческие правки – собственно вышеописанный мост USB-UART(поменьше), и контроллер (MSP430FR5738) с датчиком тока, напряжения, электромеханическим реле, источником тока и термометром. Вся эта «горячая» часть гальванически изолирована от интерфейса RS485 через пару ADuM1281 и развязанный DC/DC (на плате еще не установлен). В контроллере крутится Modbus стек, т.е. десяток таких плат можно объединить в сеть, завести данные с плат в SCADA систему, и автоматизировать произвольные процессы. В частности у нас эти платки будут использоваться для испытания приборов на -40/+60 в термокамере. Налепил их на проверяемый прибор, и сиди@наблюдай как меняются токи, напряжения и температуры на ответственных узлах.

Все эти платы проектировались параллельно, поэтому я сразу заложил идентичные размеры и возможности гибкого соединения. Не зря:)



Отлично, компилирую исходники, собираю этот конструктор, загружаю, и получаю первые строчки из отладочного порта! Подсистема питания запустилась!


Battery Voltage = 0.65V

EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002

Заглядываю в исходники инициализации памяти, разрешаю простейший тест, правлю ручками процедуру инициализации под мою конфигурацию платы, запускаю вновь:
PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected!!!.Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002

end memory test, at 0x41FFFFFC

Замечательно! Тест памяти пройден! Это очень хорошо, теперь туда можно загрузить что-то посерьезнее.

U-Boot

Посерьезнее у меня это U-Boot. Я знаком с этой системой, мне она кажется вполне адекватной и функциональной. Позволяет работать с периферией - актуальные версии работают с USB, SD/MMC, Ethernet, загружать образы c FAT/ext2 разделов, передавать управление, и главное - моргать светодиодиком - все то, что нужно для счастья и более гибкой отладки на первоначальном этапе.
Поэтому не долго думая выкачиваю актуальную версию из официального репозитория, беру самую близкую конфигурацию, компилирую, собираю с индусскими бутлетами в один файл, и загружаю в процессор:
PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected!!! Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002
start memory test, at 0x40000000
end memory test, at 0x41FFFFFC

CPU: Freescale i.MX23 rev1.4 at 227 MHz
BOOT: USB
DRAM: 32 MiB
MMC: MXS MMC: 0
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
Card did not respond to voltage select!
MMC init failed
Using default environment

In: serial
Out: serial
Err: serial

No ethernet found.

=>


И U-Boot запустился! Отлично, но плата запускается все еще по проводам. Надо разбираться с картой памяти. Хорошо, перепаиваю резисторы выбора загрузки, втыкаю карту - в терминале от процессора приходит ошибка. Вытаскиваю карту - другая. Вот это поворот!

SD/MMC

Начинаю искать, поиски выводят на русскоязычный форум, на полезные и интересные 380 страниц обсуждения. Боюсь, ребята до сих пор вспоминают этот SoC крепким словцом.

Выясняется, что для загрузки с SD/MMC карты нужно обязательно прошить OTP биты, тогда еще что-то может быть и получится. В частности надо перенастроить в регистре OTP Register: 24 биты SD MBR Boot - прошить в единицу, и SD_POWER_GATE_GPIO - выбрать NO_GATE - в моем дизайне управление питанием карточки не предусмотрено.

«Неудобненько как-то получается». Это означает, что нельзя сделать загрузочную карту памяти, которой можно будет прошивать готовые приборы в партии, вместо этого придется подключать каждый прибор, и вручную прошивать эти злосчастные OTP биты. Разумеется, этот процессор я не буду использовать в сколько-нибудь серьезном проекте, но про такой момент забывать не стоит. Скачиваю виндовую утилитку, прошиваю эти биты, вставляю карту памяти, аккумулятор… Система стартует, и циклически перезагружается. Блин!

PowerPrep start initialize power…
Battery Voltage = 3.75V


Battery Voltage = 3.75V
Boot from battery. 5v input not detected

PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
...


Правлю исходники бутлетов, в частности добавлю дополнительные отладочные сообщения, и выхожу на проблемный участок кода:
PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail

Падает при подаче питания на DDR память. Хм. Где-то я уже читал об этом. А как до этого работало? Ладно, нестабильность найдена, надо разбираться.

Вокруг микросхемы памяти расположены ее законные развязывающие конденсаторы, 8 шт. по 100 nF. Но на выходе встроенного в SoC источника питания для памяти я поставил 2x10 uF, хотя производителем рекомендовано всего 1uF (инструкции читаю, если ничего другое уже не помогает, да). Ломать, не строить: отпаиваю один конденсатор, подключаю аккумулятор, и система стартует!

На самом первом фото виден этот конденсатор - вокруг него грязь, и он припаян только одним контактом.

PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192

power 0x00820710
Frac 0x92926192
start change cpu freq
hbus 0x00000003
cpu 0x00010001

Initcall: 3e09f908 (relocated to 40002908)
initcall: 3e0a013c (relocated to 4000313c)
initcall: 3e0a2ec0 (relocated to 40005ec0)
initcall: 3e0a2ea8 (relocated to 40005ea8)
initcall: 3e0a2e88 (relocated to 40005e88)
initcall: 3e0a2e68 (relocated to 40005e68)
Net: Net Initialization Skipped
No ethernet found.
initcall: 3e0a2e5c (relocated to 40005e5c)
Initial value for argc=3
Final value for argc=3
### main_loop entered: bootdelay=3

### main_loop: bootcmd=«mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else»
Hit any key to stop autoboot: 0
=>
=>


Хе-хе, работает! Ок, запишу этот факт как причину потенциальных нестабильностей в будущем, ибо остался еще один 10uF, который тоже может усложнять жизнь. Теперь пробую с внешним питанием.
PowerPrep start initialize power…
Battery Voltage = 3.74V
5v source detected.Valid battery voltage detected.Booting from battery voltage source.
Mar 18 2015
07:59:13
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192
Try init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926192
start change cpu freq

Теперь начались зависания. Более того, ситуация не регулярная, периодически проявляется при питании от аккумулятора, периодически от внешних 5В, периодически стартует и работает. Опять правлю код, отключаю переключение процессора на PLL, ядро остается работать на 24МГц. Все стабильно. Меняю делитель PLL, скручиваю частоту, и плата успешно запускается на 320 МГц. Надо попробовать рекомендацию производителя - конденсатор на 100 pF в цепи импульсного DC/DC. Место на печатной плате под конденсатор я заложил. Позже вернусь к этому вопросу.

Linux kernel

Итак, на текущий момент есть плата, стартующая с карты памяти, и загружающая U-Boot. Дальше по плану надо загружать ядро.

Выкачиваю актуальные исходники ядра с kernel.org, распаковываю и в три клика собираю ядро.

make ARCH=arm CROSS_COMPILE=${CC} mxs_defconfig
make ARCH=arm CROSS_COMPILE=${CC} menuconfig
make ARCH=arm CROSS_COMPILE=${CC} -j4 zImage modules

Вот эти три клика

При настройке ядра надо строго указать слияние ядра+dtb

Boot options ---> Use appended device tree blob to zImage ----> Supplement the appended DTB with traditional ATAG information

Надо включить Kernel low-level debugging functions вместе с early printk
И еще enable dynamic printk() support
И еще видеоподсистему отключить
И еще половину лишних и не очень драйверов

И еще собрать dtb - device tree blob, структуру, описывающую ядру базовые вещи - количество памяти, периферию SoC, и т.д.

make ARCH=arm CROSS_COMPILE=${CC} imx23-olinuxino.dtb

И собрать все это в один файл
cat arch/arm/boot/zImage arch/arm/boot/dts/imx23-olinuxino.dtb > arch/arm/boot/zImage_dtb


После чего можно копировать ядро на флешь.

Запускаю, и получаю kernel panic. Логично, корневой файловой системы еще нет.

Debian

В качестве собственно операционной системы я выбираю Debian. По-моему, отличный дистрибутив - простой и надежный, как деревянная палка. Беру готовую сборку, распаковываю на раздел карточки, и указываю при загрузке ядра, где искать его законную корневую.

Лог загрузки

PowerPrep start initialize power…
Battery Voltage = 3.68V
Boot from battery. 5v input not detected
poweron_pll
turnon_mem_rail
init_clock
EMI_CTRL 0x1C084040
FRAC 0x92925E92
init_ddr_mt46v16m16_96Mhz
power 0x00820710
Frac 0x92925E92
start change cpu freq
Try now
hbus 0x00000003
cpu 0x00010001

U-Boot 2015.04-rc3-00209-ga74ef40-dirty (Mar 18 2015 - 14:26:18)

CPU: Freescale i.MX23 rev1.4 at 320 MHz
BOOT: USB
DRAM: 32 MiB
MMC: MXS MMC: 0
In: serial
Out: serial
Err: serial
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
2650994 bytes read in 906 ms (2.8 MiB/s)
Kernel image @ 0x41000000 [ 0x000000 - 0x284e60 ]

Starting kernel…

Uncompressing Linux… done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.19.2 (freeman@freeman-PC) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.5
[ 0.000000] CPU: ARM926EJ-S revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine model: i.MX23 Olinuxino Low Cost Board
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 18972K/32768K available (3475K kernel code, 244K rwdata, 1372K rodata, 188K init, 8096K bss, 13796K reserved, 0K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector: 0xffff0000 - 0xffff1000 (4 kB)
[ 0.000000] fixmap: 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc: 0xc2800000 - 0xff000000 (968 MB)
[ 0.000000] lowmem: 0xc0000000 - 0xc2000000 (32 MB)
[ 0.000000] modules: 0xbf000000 - 0xc0000000 (16 MB)
[ 0.000000] .text: 0xc0008000 - 0xc04c42ac (4849 kB)
[ 0.000000] .init: 0xc04c5000 - 0xc04f4000 (188 kB)
[ 0.000000] .data: 0xc04f4000 - 0xc0531018 (245 kB)
[ 0.000000] .bss: 0xc0531018 - 0xc0d19264 (8097 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836480000000ns
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] Lock dependency validator: Copyright 2006 Red Hat, Inc., Ingo Molnar
[ 0.000000]… MAX_LOCKDEP_SUBCLASSES: 8
[ 0.000000]… MAX_LOCK_DEPTH: 48
[ 0.000000]… MAX_LOCKDEP_KEYS: 8191
[ 0.000000]… CLASSHASH_SIZE: 4096
[ 0.000000]… MAX_LOCKDEP_ENTRIES: 32768
[ 0.000000]… MAX_LOCKDEP_CHAINS: 65536
[ 0.000000]… CHAINHASH_SIZE: 32768
[ 0.000000] memory used by lock dependency info: 5167 kB
[ 0.000000] per task-struct memory footprint: 1152 bytes
[ 0.060000] Calibrating delay loop… 159.12 BogoMIPS (lpj=795648)
[ 0.070000] pid_max: default: 32768 minimum: 301
[ 0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.070000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.080000] CPU: Testing write buffer coherency: ok
[ 0.080000] Setting up static identity map for 0x40353070 - 0x403530c8
[ 0.110000] devtmpfs: initialized
[ 0.130000] pinctrl core: initialized pinctrl subsystem
[ 0.180000] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.290000] Serial: AMBA PL011 UART driver
[ 0.290000] 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 17, base_baud = 0) is a PL011 rev2
[ 0.480000] console enabled
[ 0.560000] mxs-dma 80004000.dma-apbh: initialized
[ 0.590000] mxs-dma 80024000.dma-apbx: initialized
[ 0.600000] SCSI subsystem initialized
[ 0.610000] pps_core: LinuxPPS API ver. 1 registered
[ 0.610000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti
[ 0.620000] Switched to clocksource mxs_timer
[ 1.130000] futex hash table entries: 256 (order: 1, 11264 bytes)
[ 1.290000] jffs2: version 2.2. (NAND) 2001-2006 Red Hat, Inc.
[ 1.320000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 1.330000] io scheduler noop registered (default)
[ 1.340000] of_dma_request_slave_channel: dma-names property of node "/apb@80000000/apbx@80040000/serial@80070000" missing or empty
[ 1.360000] uart-pl011 80070000.serial: no DMA platform data
[ 1.360000] 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 146, base_baud = 1500000) is a 8006c000.serial
[ 1.380000] mxs-auart 8006c000.serial: Found APPUART 3.0.0
[ 1.410000] mousedev: PS/2 mouse device common for all mice
[ 1.430000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0
[ 1.440000] i2c /dev entries driver
[ 1.450000] stmp3xxx_rtc_wdt stmp3xxx_rtc_wdt: initialized watchdog with heartbeat 19s
[ 1.460000] softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
[ 1.470000] Driver "mmcblk" needs updating - please use bus_type methods
[ 1.480000] 80010000.ssp supply vmmc not found, using dummy regulator
[ 1.540000] mxs-mmc 80010000.ssp: initialized
[ 1.630000] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1.640000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 1970-01-01 00:27:21 UTC (1641)
[ 1.660000] mmc0: new high speed SD card at address e624
[ 1.680000] mmcblk0: mmc0:e624 SU02G 1.84 GiB
[ 1.730000] mmcblk0: p1 p2 p3
[ 1.740000] usb0_vbus: disabling
[ 1.780000] EXT3-fs (mmcblk0p3): error: couldn"t mount because of unsupported optional features (240)
[ 1.800000] EXT2-fs (mmcblk0p3): error: couldn"t mount because of unsupported optional features (240)
[ 1.870000] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[ 1.880000] VFS: Mounted root (ext4 filesystem) on device 179:3.
[ 1.910000] devtmpfs: mounted
[ 1.920000] Freeing unused kernel memory: 188K (c04c5000 - c04f4000)
INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
Starting the hotplug events dispatcher: udevdudevd: error getting socket: Function not implemented

Error initializing control socketudevd: error initializing udevd socket
failed!
Setting the system clock.
Activating swap...done.
[ 6.410000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
Checking root file system...fsck from util-linux-ng 2.17.2
rootfs: clean, 10152/115920 files, 89453/462839 blocks
done.
[ 6.870000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
Setting the system clock.
Cleaning up ifupdown…
Setting up networking…
Loading kernel modules...done.
Activating lvm and md swap...done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Cleaning up temporary files…
Setting kernel variables ...done.
INIT: Entering runlevel: 2
Using makefile-style concurrent boot in runlevel 2.
Starting NTP server: ntpd.
Starting OpenBSD Secure Shell server: sshd.

Debian GNU/Linux 6.0 debian ttyAMA0

Debian login: root
Password:
Last login: Thu Jan 1 02:00:41 EET 1970 on ttyAM0
Linux debian 3.19.2 #5 Thu Mar 19 10:58:08 EDT 2015 armv5tejl

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@debian:~#
root@debian:~# free
total used free shared buffers cached
Mem: 19160 18292 868 0 1496 9756
-/+ buffers/cache: 7040 12120
Swap: 0 0 0
root@debian:~#
root@debian:~# cat /proc/cpuinfo
processor: 0
model name: ARM926EJ-S rev 5 (v5l)
BogoMIPS: 159.12
Features: swp half fastmult edsp java
CPU implementer: 0x41
CPU architecture: 5TEJ
CPU variant: 0x0
CPU part: 0x926
CPU revision: 5

Hardware: Freescale MXS (Device Tree)
Revision: 0000
Serial: 0000000000000000
root@debian:~#
root@debian:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 1789440 295900 1384592 18% /
tmpfs 9580 0 9580 0% /lib/init/rw
udev 10240 0 10240 0% /dev
tmpfs 9580 0 9580 0% /dev/shm
tmpfs 9580 0 9580 0% /var/volatile
tmpfs 9580 0 9580 0% /media/ram
root@debian:~#
root@debian:~# mount
rootfs on / type auto (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
tmpfs on /var/volatile type tmpfs (rw)
tmpfs on /media/ram type tmpfs (rw)


Дааа, есть над чем поработать.

Но, тем не менее, система работает, грузится с карточки памяти, размещается во всем диапазоне DDR памяти, и по праву может называться одноплатным компьютером! Это от схемы в голове до реализации в железе.
Итого, ошибок дизайна пока что не обнаружено, хотя нарекания уже есть. Что-ж, для начала, я считаю, достаточно.

Заключение

На самом деле это только начало. Еще есть над чем поработать - разобраться с периферией, в частности интересен аудио и видеовыход, протестировать SoC на штатных частотах, а еще лучше разогнать, измерить потребляемый ток, проверить при минусовых и плюсовых температурах (интересна устойчивость DDR контроллера), проверить на ресурсоемких задачах (например, видеотрансляция с веб камеры по USB WIFI), и в результате сделать на платке WiFi-управляемый танк с камерой и направленным микрофоном. Но не сейчас. Сейчас у меня есть деловое предложение:)

Есть три платы, которые я могу отдать. Все что нужно для получения - озвучить в комментариях идею, как можно применить получившуюся систему. Лучшие предложения получат по экземпляру даром, с надеждой, что вы реализуете свою идею, и расскажете, что у вас получилось. Раздачу слонов осуществлю 30 марта 2015 года, т.е. через неделю.

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

На этом пожалуй все, жду ваших комментариев.

UPD: по заявкам: первый экземпляр достается