Статья «Микрокомпьютер Module MB 77.07 — русский ответ Raspberry Pi»

Читая новости о запрете на поставку электронной компонентной базы из США для отдельных производителей в РФ, мы решили рассказать об одноплатном микрокомпьютере Module МВ 77.07, который был разработан в российском научно-техническом центре «Модуль» на базе одного из наиболее производительных российских процессоров архитектуры ARM. Также мы рассмотрим установку Linux-дистрибутива Debian на этот микрокомпьютер.

МВ 77.07 построен на базе системы на кристалле К1879ХБ1Я, которая также является разработкой НТЦ «Модуль». И хотя схема К1879ХБ1Я, в первую очередь, предназначена для использования в качестве декодера видеосигнала в различных ТВ-приставках, устройствах для видеонаблюдения и системах «умного дома», сам микрокомпьютер МВ 77.07 с этим процессором на борту позиционируется в том числе как система для энтузиастов-программистов и учебная плата для студентов. Таким образом, можно сказать, что это русский аналог Raspberry Pi. Давайте кратко разберем основные характеристики процессора К1879ХБ1Я, а затем — и самой платы.

Система на кристалле К1879ХБ1Я построена на основе двух процессорных ядер — ARM11 (ARM1176JZF-S ) и дополнительного DSP-процессора оригинальной архитектуры NeuroMatrix, который входит в блок декодирования аудиосигналов.

Рабочая частота ARM-процессора — 324 МГц (и DSP — тоже), не самая большая по современным меркам, однако мы смогли убедиться на собственном опыте, что она позволяет комфортно запускать ОС Linux и пользоваться достаточно богатой периферией процессора: аппаратными видеодекодерами H.264, MPEG-2, VC-1; 2D-видеоускорителем; 8-канальным аудиопроцессором на основе DSP; блоком демультиплексирования TS-потока; криптопроцессором с поддержкой алгоритмов AES и 3DES.

К1879ХБ1Я оснащен следующими интерфейсами:

  • DDR2 SDRAM,
  • NAND и SPI Flash,
  • хостом HS USB 2.0,
  • 10M/100M Ethernet,
  • HDMI 1.2,
  • I2S,
  • S/PDIF,
  • UART,
  • SPI,
  • I2C,
  • JTAG,
  • TS,
  • GPIO.

Функциональная схема SoC К1879ХБ1Я

Перейдем к описанию самой платы МВ 77.07: её размер — 80x80 мм, помимо самого процессора на плате установлено 128 МБ системной памяти и 128 МБ видеопамяти (обе — DDR2-667 SDRAM), а также 1 ГБ NAND-памяти. Плата имеет следующие разъемы интерфейсов:

  • 10М/100М Ethernet,
  • два порта USB 2.0,
  • HDMI 1.2.

Кроме этого, на «гребенки» по бокам выведены следующие интерфейсы:

  • I2S,
  • SPI Flash,
  • TS (интерфейс транспортного потока),
  • 8 GPIO,
  • на отдельных разъемах UART, JTAG и два USB-порта.

Питание платы — 5 В, оценочная стоимость — в пределах 30 долларов.

В настоящее время для платы портированы загрузчик U-Boot и ядро Linux 2.6.33, разработаны драйвера для всех периферийных устройств, также сейчас завершается процесс портирования драйверов для Linux 3.10. Разработан ряд элементов конвейера gstreamer с поддержкой различных периферийных устройств (в частности, видеодекодера и видеоконтроллера). Для разработки под DSP-процессор существует NeuroMatrix SDK. Исходные коды U-Boot, Linux, а также сборочной системы Buildroot можно получить по запросу у НТЦ «Модуль».

1. Разворачиваем базовую Debian-систему

Для разворачивания корневой файловой системы Debian воспользуемся утилитой debootstrap, которая «признана официальным способом установки базовой системы Debian» (см. инструкцию на debian.org и wiki.debian.org).

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

Будем устанавливать Debian 7.0 Wheezy для архитектуры armel, система будет развернута в директории debrootfs.

Первая стадия debootstrap выполняется командой

sudo debootstrap --verbose --foreign --arch=armel wheezy debrootfs ]]>ftp://ftp.ru.debian.org/debian]]>

Для выполнения второй стадии нам понадобится эмулятор QEMU в режиме syscall, его можно установить командой

sudo apt-get install qemu qemu-user-static

Затем надо скопировать qemu-arm-static с хост-системы на целевую систему:

sudo cp /usr/bin/qemu-arm-static debrootfs/usr/bin

После этого можно выполнить вторую стадию debootstrap:

sudo chroot debrootfs /debootstrap/debootstrap --second-stage

Далее можно удалить директорию debrootfs/debootstrap, которая нам больше не нужна.

2. Настраиваем Debian

Зададим пароль root-a и смонтируем виртуальные файловые систему на целевую систему:

sudo chroot debrootfs /usr/bin/passwd root
sudo mount -t proc none debrootfs/proc
sudo mount -t sysfs none debrootfs/sys
sudo mount -t devpts none debrootfs/dev/pts

Теперь можно chroot-ся в целевую систему:

sudo chroot debrootfs

Необходимо добавить список источников пакетов в etc/apt/sources.list (изначально он пустой):

deb ]]>http://ftp.ru.debian.org/debian/]]> wheezy main contrib non-free
deb ]]>http://http.ru.debian.org/debian]]> wheezy main contrib non-free

И обновить индекс пакетов командой

apt-get update

После этого можно начать устанавливать нужные пакеты, например ssh-сервер и клиент:

apt-get install openssh-server openssh-client

Завершить работу с целевой системой можно командой

exit

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

sudo umount rootfs-dir/proc
sudo umount rootfs-dir/sys
sudo umount rootfs-dir/dev/pts

Также нужно скопировать модули ядра, с которым будет использоваться целевая rootfs, в директорию debrootfs/lib/modules.

Для возможности логинится на COM-порт, раскомментируйте строку в файле debrootfs/etc/inittab:

#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

И установите нужную скорость, например, 38400:

T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100

После этого можно создать, скажем, UBI-образ rootfs и прошить его в NAND-флеш или загрузится по NFS.