ЧаВо?!



Микрокомпьютер MB77.07 в вопросах и ответах от представителя НТЦ "Модуль" Андрея Андрианова, известного на ЛОРе под псевдонимом ncrmnt.



Вопрос: Всегда было интересно узнать, по каким «алгоритмам» маркируют микросхемы, вот что, например, означают цифры/буквы в К1879ХБ1Я?
Ответ: ХБ — для радио, телевидения, магнитофонов, дисплеев.



Вопрос: Проведите краткое сравнение мв77.07 и rpi.
Ответ: Одно и тоже ARM1176 ядро, у rPi выше частота/больше кэша, у К1879ХБ1Я есть nmc, больше накристального SRAM'a с однотактовым доступом как со стороны nmc, так и со стороны арма. Есть возможность крутить на nmc жесткий реалтайм.


Вопрос: Там производительности под debian подо что хватает?
Ответ: Если нужен DSP с реалтаймом и Linux в одном флако^W чипе - это один из самых бюджетных вариантов.


Вопрос: Это конечно хорошо, но посравнению с Малинкой (1.8kp) Cubeiboard2 (3.3kp) и Cubeiborad3 (4.4kp) она выглядит мягко говоря не состоятельной!
Ответ: Во-первых там нет DSP, а во вторых все печально в сырцах. На rk3188 вообще содомия в исходниках редкостная.


Вопрос: В общем да, AllWinner и еще какая-то фирма - клепает процессоры на территории Китая. Что-то мне подсказывает, что запрещать экспорт в Россию у них нет даже в отдаленных мыслях...
Ответ: К сожалению, с сырцами у них печально поголовно. Time2market хотят меньше, в итоге костыли и подпорки. Чтобы не быть голословным:
Allwinner А10 второй год сообщество допиливает, а все равно апстрим не юзабелен, половины дров нет. Так и сидеть приходится на 3.4
Exynos от самвсуньга - эпичнейшие костыли в ядре, несовместимая с v4l камера, поломаный /dev/disk/by-uuid (по ууид вообще нельзя смонтировать корень). Но таки 3.8.
Rockchip RK3188/3166 - смотри мою серию постов, там ад лютый. 3.0.3, некоторые модули (привет, rk_nand.ko) идут только блобами, на GPL они клали. В итоге форвардпорт вменяемый практически невозможен. Ну и то, что на моей стоковой прошивке по умолчанию шелл рутовый сразу недвусмысленно намекает, что безопасностью мужики совсем не запаривались.


Вопрос: rk3xxx на них нет!
Ответ: Посмотри выше про то, как дело обстоит с сырцами у рокчипа, я пока с планшетом возился все проклял. Никак руки не дойдут второй раз засесть и докрасноглазить его. Sad but true.


Вопрос: У алвинеа поблем таких небыло!
Ответ: У аллвиннера лучше, но тоже не сахар. cpu governor ondemand например вешает систему если нагрузка меняется определенным образом, их CCM вообще ад. Ну и сносно работает только 3.4. Их Wemac еще имеет обыкновение задалбывать проц прерываниями.
У рокчипа, кстати, еще «охрененный» dwc_otg на борту. Если воткнешь какое-нибудь USB 1.1 устройство и глянешь в /proc/interrupts - офигеешь, USB начинает гадить более чем 1к прерываний в секунду, чем грузит на 100% одно из ядер, не давая делать степпинг по частоте. Причем synopsis не считают это багом в своей IP корке.


Вопрос: Незачем рожать, allwinner для a23 выпустил dmaengine драйвер, кроме того все ихнее драйвера в новом SDK уже используют его вопрос в том что бы привести в порядок драйвер и отправить патч. для a31 работа ведётся!
Ответ: Затем, что качество кода у allwinner местами такое, что комьюнити проще с нуля переписать. Не все, но некоторое. Особливо DMA, CCM и USB.


Вопрос: Ну и почему опять нет SATA?!
Ответ: На 90нм и даже на 65 SATA и USB3.0 не вариант - физика у них очень жручая. Хочется SATA - берите копеешный USB2SATA преобразователь.


Вопрос: Очень жаль, что на таких микрокомпьютерах не делают вообще ни какого вменяемого ВХОДА видео сигнала. Ни FireWire, ни SVideo, ни компонента.
Ответ: Здесь для ввода видео есть параллельный TS на гребенке. А svideo и компонент вообще сто лет как сдохли, если уж очень - надо можно нацепить на USB переходником.


Вопрос: Ну, там ядро 1176, так что производительность и правда оставляет желать лучшего.
Ответ: Это не говорит ничего ровным счетом. Надо смотреть кодовую базу XBMC КАК там сделан рендеринг. Небольшой сабсет OpenGL можно вообще ускорить даже на позорном 2д ускорителе. В рамках этой системы - можно реализовать рендеринг на nmc, если уж не говорить про софтовый фолбэк.


Вопрос: Кстати, по mb77.07 на ютубе одно видео и все. А по rpi полно. Что же вы не снимаете видео то?
Ответ: У нас работы навалом в т.ч. другой, помимо микрокомпьютера, не до видеоканалов на тытрубе.


Вопрос: А сам кристалл у нас «испечён» или китай?
Ответ: Проектировали у нас, пекли на фуджитсу. Зеленоград такого размера SoC'и ниасиливает, увы.


Вопрос: А для каких целей вы делаете эту микроЭВМ?
Ответ: Изначально микросхема была исключительно как декодер DVB-S\DVB-T сигнала. Можете на выставках поглазеть на референс дизайны приставок на нем, в том числе в бамбуковом корпусе. Микрокомпьютер - как альтернативное применение, экспериментальное. Взлетит - будут микрокомпьютеры на следующих чипах. На нем, насколько мне известно, будут как минимум сделаны следующие версии «трафик монитора». Собственно, на таких частотах DSP единственное что делает возможность использовать его в серьезных задачах распознавания изображений. А уж на что его придумают пустить те, кто купят... Тут мы все запасаемся попкорном.


Вопрос: Оно сумеет читать с NFS-шары видеопоток H.264 720p (плюс какой-нибудь AAC аудио) и показывать его? С существующим на данный момент софтом.
Ответ: Вполне, даже 1080p. Аудио mp3 без проблем.


Вопрос: Насколько возможно использовать мв77.07 в качестве домашнего медиапроигрываетля?
Ответ: Требует допила. h264/mpeg2/vc-1 аппаратный декодер есть, но гуи типа xbmc сильно хотят 3д и достаточно быстрого. А из консоли показать жирнокролика в HD проблем нет.


Вопрос: Лицензия-то какая на исходные коды системного ПО для микрокомпьютера МВ77.07?
Ответ: Все GPLv2, кроме тулчейна для DSP, он в бинарном виде и со своей лицензией идет.


Вопрос: Я не понял, а как заказать-то?
Ответ: Отправить письмо на rusales@, они пришлют счет и расскажут что как.


Вопрос: Появился одноплатник от модуля MB106.02 Чисто на вид, кроме цвета текстолита ничего и не изменилось. Может удешевленный вариант просто?
Ответ: Это аналогично полностью МВ77.07, с точностью до распиновки разъема расширения, но для людей у которых -40, вибрации, плесневые грибы и прочие радости - норма жизни, и которым нужна повышенная надежность.


Вопрос: А следующая версия ещё не скоро?
Ответ: Ничего прогнозировать не могу. Когда-нибудь да будет.


Вопрос: Когда прошивается MB 77.07 плохих блоков много (ну т.е. может 10 - 20) - это вообще нормально?
Ответ: Абсолютно. Весь нанд который есть на рынке идет уже с завода с бэд блоками. По даташиту на NAND - допустимым считается до 160 «плохих» блоков.


Вопрос: На оф сайте выложены адаптированные для этого устройства прошивки базовой Raspbian. Чем отличаются эти адаптивные прошивки от оригинала?
Ответ: Прошивки - это минимальные образы raspbian и debian armel соответственно. С тх же репозиториями. Можно deboostrap'нуть их и самостоятельно. Вся адаптация заключается в том, что из коробки есть nmc-utils (для работы с нейроматриксом) и прописан адрес репозитория где nmc-utils и прочее опакечивается и обновляется.


Вопрос: Можно код загрузчика самостоятельно менять или это нужно обсуждать с «Модулем»?
Ответ: Меняйте на здоровье и шлите мерж реквесты. И угробить его не страшно - по edcl оно раскирпичивается из любого состояния.


Вопрос: И еще вопрос, в комплекте странный кабель USB-4pin. Какая там распиновка?
Ответ: У тех, которые я помню - зеленый и белый - RX/TX, черный земля, красный - +5в


Вопрос: Подскажите, пожалуйста, какая скорость на boot-консоле должна быть.
Ответ: 38400 8n1


Вопрос: А какой пароль рута?!
Ответ: Есть в README, 8я степень защиты: 12345678.


Вопрос: Есть ли возможность запустить икс сервер на этом устройстве?
Ответ: Да, apt-get install xserver-xorg и все. Но ускорения отрисовки в иксах нет сейчас. Отсюда есть одно но. Иксовый fb рендерер артифачит если фреймбуфер 565.


Вопрос: Нужен WEB-сервер для дистанционного управления платой. Что можете посоветовать из опыта работы?
Ответ: Да хоть apache! Их там выше крыше в репозиториях дебиана.


Вопрос: Подскажите где найти файл sudoers и как добавить пользователя сервера Apache в список sudoers?
Ответ: Там же где и обычно. Установить sudo, и в /etc/sudoers. Но давать apache2 права sudo это крайне сомнительное решение с точки зрения безопасности.


Вопрос: Как отключить EDCL в «продакшене»? Нельзя ли поподробнее прояснить всё это. Как включить, как отключить?
Ответ: Переменная окружения lockedcl в загрузчике. Когда в 1 - edcl отключается загрузчиком еще до того, как оживет phy.


Вопрос: Туда можно водрузить андроид?
Ответ: Android есть 2.х ветка старая, но зрелище даже на 2.х печальное. Официально идет buildroot и debian/raspbian.


Вопрос: А вот для работы с имеющимися немногочисленными GPIO наверно подойдёт библиотека Wiring Pi от Raspberry Pi?
Ответ: Если оно использует стандартный sysfs интерфейс к gpio (а быстро грепнув сорцы, по ходу оно так и делает), то должно заработать вообще без проблем. Однако учтите, sysfs интерфейс до gpio медленный и лучше не полагаться на что-то, что требует точного тайминга (т.е. шаговые двигатели, лазер и т.п.).


Вопрос: Тот gpio, который выведен на X9, это /sys/class/gpio/gpiochip24. Кроме него есть еще gpiochip0, gpiochip8, gpiochip16, gpiochip32. Они к чему относятся?
Ответ: Там несколько блоков GPIO, на гребенку выведены не все. Некоторые относятся просто к нераспаянным шарам, некоторые смультиплексированы с ножками нанда и экспортнуть их не даст ядро.


Вопрос: Как с возможностью программного шим через gpio?
Ответ: Сделать-то можно nmcшкой, вот только удасться ли обеспечить достаточную точность такого шима, параллельно гоняя математику - это вопрос. Хотя, скорее всего получится, но код будет выглядеть странно.


Вопрос: Это устройство может загрузиться с USB флешки?
Ответ: Вполне. Самый простой вариант - ядро и dtb в NAND, корневая FS на усб флешке. Достаточно только вместо root=ubi... в bootargs выставить root=/dev/sda1. Хотя для разработке удобнее всего монтировать корень по NFS.
Если хотим ядро и dtb на флешке держать, то будет немного сложнее. Надо раздел на флешке создать с офсетом в ~10 мегабайт. Закинуть через dd на флешку ядро и dtb, запомнить офсеты, и грузиться с них.


Вопрос: Сделали бы отдельный раздел на официальном сайте, типа проекты пользователей на Module MB 77.07?
Ответ: Будут проекты - будет и раздел. Присылайте свое, не стесняйтесь.


Вопрос: Где обещанные DDR2-667, 128 МБайт, 2 шт. = 256 МБайт?
Ответ: Там две независимых банки памяти по 128MiB, на разных DDR контроллерах. Вторая банка используется DSP/h264 декодером. ARM не может оттуда исполнять код, хотя может писать/читать.


Вопрос: А еще мне непонятно - вроде как зявлялось 256? Да и микрухи памяти 2 по 128 МБ стоят.
Ответ: С памятью все устроено так. Там 4 внутренние банки по 256К (SRAM). IM0, IM1, IM2, IM3.
IM0 - оттуда работает mboot.
IM1+IM3 - собственная память NMC (у nmc приоритет при обращении туда)
IM2 - внутренние нужды декодера.
Внешние банки - EM0 и EM1, на них по 128Mb. В EM0 живет linux, от нее немного откусывает для фреймбуфера.
EM1 - юзает декодер h264 и видеоконтроллер для видеослоя. При использовании декодера от нее остаются считанные мегабайты. Если h264 не нужен, можно использовать EM1 как быстрый swap (ARM не может исполнять из EM1 код).


Вопрос: NANDа там как-то мало для полноценной универсальной прошивки?
Ответ: Там 1GB NAND'а для headless системы этого более чем хватает.


Вопрос: А флешки к нему только через USB подключить можно?
Ответ: На борту есть нанд, при желании можно на spi или i2c поставить флешину. На spi можно СД карту посадить, но по скорости будет очень печально.


Вопрос: Во время работы с камерами, не срабатывает вызов ioctl(fd, VIDIOC_DQBUF, &buf), пробывал
rmmod uvcvideo;
modprobe uvcvideo nodrop=1;
echo "options uvcvideo nodrop=1" > /etc/modprobe.d/uvcvideo.
не проходит первая строка «rmmod uvcvideo», говорит что модуль в использовании.
Ответ: Если модуль вкомпилен в ядро, то передергивать его бесполезно. либо:
cd /sys/module/uvcvideo/parameters && echo 1 > nodrop
Либо, если не разрешит поменять в рантайме, добавить в bootargs uvcvideo.nodrop=1
К тому же, на МВ77.07 есть всегда одно устройство /dev/videoХ, это VDU, для вывода картинки на видеослой. Соответственно, пытаться захватить картинку с него закончится вполне ожидаемым фейлом. Обычно VDU - это /dev/video0, соответственно камера будет /dev/video1. НО, в силу того, как линукс энумерейтит устройства вывода видео - если камеру воткнуть ДО загрузки ядра, то /dev/video0 будет камерой, а /dev/video1 - VDU.


Вопрос: А может ли проблемы с камерами быть из-за недостаточной пропускной способности USB шины?
Ответ: Там честный EHCI, дающий на USB hdd сырую пропускную около 20 мегабайт/с.


Вопрос: Может ли MB77.07 кодировать сигнал с USB web-камеры в H.264?
Ответ: Нет, H264 там только декодер.


Вопрос: А другие варианты кодирования видео - они возможны?
Ответ: Только вариант с libjpeg-turbo для nmc. Поддержка будет автоматом во всех приложениях, что его используют.


Вопрос: Neuromatrix - похоже на видеокарту? opencl тогда можно сделать?
Ответ: Не думаю. Это весьма специфический DSPшник, и он один в этом чипе. При желании, конечно OpenCL можно заставить работать на чем угодно, но не думаю, что тут с него будут профиты.


Вопрос: Насколько затратен доступ к DSP и реально ли запилить libm с их использованием?
Ответ: Сравнительно затратен. Для 2-3 байт это делать не выгодно, накладные расходы будут больше профита. Выгодно сразу скармливать на обработку жирные буфера и забирать результат. Ну и учти, что в большинстве случаев (например, на МВ77.07) DSP не умеет ходить по виртуальным адресам и скормить указатель ему не выйдет. Нужно залочить страницы в памяти, пройтись по ним циклом и передать отдельно каждую страничку. Плюс накладные расходы при общении с DDR, что тоже достаточно критично на некоторых архитектурах. У нас многое можно быстро сделать только потому, что в самом кристалле есть аж 4 банки SRAM по 256Кб, откуда как для ARM, так для NMC доступ _очень_ быстрый, фактически один такт. DSP код обычно вообще из SRAM пускается, соответственно если в SRAM еще и умещать данные, то получается совсем быстро.


Вопрос: Как NMC взаимодействует с Linux?
Ответ: К NMC от ARM идет три прерывания. Немаскируемое NMI, HP (High Priority) и LP (Low Priority). В обратную сторону так же HP и LP. Для запуска DSP ядра необходимо подать начальный сброс и дернуть NMI. Так запускается IPL код NeuroMatrix. После первого запуска, NMC крутится в этом начальном коде, который обрабатывает NMI прерывание. Через этот начальный код организуется перезапуск приложения.


Вопрос: Native resolution: 1366x768 pixels
Ответ: Могут быть проблемы с нетелевизионной разверткой. Там VDU заточен изначально исключительно на телевизионные развертки, 1080p, 720p, 576i и так далее.


Вопрос: Выполняю из под рута fbset «800x600x60», ответ таков /etc/fb.modes:87: syntax error. Как изменять настройки hdmi формата?
Ответ: PC-шные развертки оно не умеет, там генератор тактовый запаян такой, что имеющимися делителями можно только телевизионые получить.


Вопрос: Как использовать аппаратное декодирование в MB77.07 (например при выводе H.264 видео на экран)?
Ответ: Лучше использовать media.hpp, т.к. поддержки gstreamer уже нет.


Вопрос: Я взял пример проигрывателя, но никак не могу добиться нормального отображения видео - только мусор.
Ответ: Чтобы увидеть видеослой надо отключить видимость фреймбуфера.


Вопрос: Можно еще такой вопрос, мне нужно audio микрофон и линейный аналоговый выход. Как это можно сделать?
Ответ: SPDIF и I2S у нам в чипе только выход, соответственно на вход лучше любую USB audio карточку.


Вопрос: Интересует использование периферии через I2C и SPI
Ответ: Реалтайм жесткий - либо с rt-linux патчсетом, либо выкидывать на DSP. Второе будет проще, так как путь с rt-linux мы сами не проделывали.


Вопрос: Требуется подключить простенькие 16-битные микросхемы АЦП, если не хочется «отвлекать» DSP.
Ответ: SPI там ARM SSP, дока по регистрам есть на arm.com. Перед тем, как в SSP лезть со стороны DSP - выключить драйвер SPI в линуксовом ядре


Вопрос: Подскажите, пожалуста, как правильно осуществить работу watchdog на данном устройстве.
Ответ: 1. Есть ресет из чипа, можно дергать кнопочкой, можно пином на Х9. (3.3 вольта логика!)
2. Есть вочдог, sp805 wdt. Драйвер стандартный в ядре - только поставь юзерспейсный пакет или пиши в /dev/watchdog из своей апликухи. Все.


Вопрос: modprobe fuse нецензурно ругается на отсутствие файлов.
Ответ: Ядро собрано там без модулей, необходимый минимум вкомпилен.


Вопрос: И что поддержка модулей отключена совсем? Модуль дособрать нельзя?
Ответ: Очень мало ресурсов на конкретно этой плате. Если собирать все молули, то не всем будет хватать NAND'а и оперативы будет кушать больше. Потому в бинарном виде только минимальная сборка.


Вопрос: В мануале на модуль в характеристиках указаны функции защиты информации: - однократно программируемая память OTP для хранения уникального ID микросхемы и ключевой информации.
Ответ: Уникальный ID, если он нужен - должен прошиваться в OTP. На МВ77.07 он не зашивался, и должен зашиваться ДО запайки на плату (требуется спец. обвязка). Через JTAG этого сделать нельзя.


Вопрос: Подскажите где и как можно получить электрическую принципиальную схему на плату MB 77.07, а также даташит на процессор К1879ХБ1Я, распиновку ног процессора?
Ответ: Полный даташит пока под NDA, из-за особенностей лицензирования отдельных блоков. Схема - запросите в sales@.


Вопрос: Будет ли полная документация на микрокомпьютер?
Ответ: Не будет доков на некоторые блоки, типа HDMI и декодера h264, которые идут под весьма и весьма огороженными лицензиями. Особенно HDMI.
На некоторые другие блоки тоже весьма странные ограничения, которые вызывают по меньшей мере удивление «а чего там секретного-то было?». Соответственно их в опенсурс варианте документации не будет/будет урезана.



Сайт работает на микрокомпьютере