Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений

Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений

Современные эксперименты с сетевым оборудованием часто затрагивают глубокую модификацию встроенного программного обеспечения. В центре внимания оказывается прошивка IPTV приставки MOTOROLA VIP1003 Arris, а также портирование сторонних приложений на редкую аппаратную архитектуру SuperH SH. Устройство питается от источника 12В/1А и оснащено стандартным композитным видеовыходом, хотя на рынке встречаются модификации с разъемом SCART. Просторная внутренняя компоновка платы скрывает главный чип, объединяющий RISC-процессор SuperH SH STx7105 и VLIW-ядро ST231, которое отвечает за аппаратное декодирование видеопотоков в стандарте H.264.

Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений
Общий вид. https://static‑data2.manualslib.com/product‑images/88f/1937905/motorola‑vip-1003.jpg
Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений — изображение 7
Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений — изображение 8
Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений — изображение 9
Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений — изображение 10
Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений — изображение 11

Введение в аппаратную часть и интерфейсы

Для отладки и подключения к аппаратной части на плате предусмотрены обособленные контактные площадки интерфейсов UART и EJTAG. Крайние выводы UART подключены к земле (GND), а средний выдает питание 3 вольта. Вывод ближе к тыльной стороне платы отвечает за передачу данных (TX). Поскольку интерфейс использует TTL-уровни 3В, для работы с ним необходим внешний преобразователь сигналов. Последовательный порт играет ключевую роль, так как именно туда выводятся подробные диагностические сообщения с параметрами передачи 115200 бод 8N1, в то время как видеовыход сообщает лишь о критических сбоях загрузки.

Конфигурация и подготовка программного обеспечения

Внутреннее меню устройства содержит множество параметров. Разделы сетевых настроек IP и расширенных параметров Advanced открываются после ввода на пульте цифровых комбинаций 2357 и 7532 соответственно. В IP-меню задается тип получения адреса (статический или DHCP), параметры шлюза и маски подсети. Дополнительное меню позволяет выбрать протоколы загрузки, включая Multicast, TFTP, HTTP и LS. Стоит учитывать, что изменения параметров не сохраняются автоматически, а стирание старого ПО через системное меню требует предельной осторожности во избежание превращения устройства в нерабочий кирпич.

Реклама
Вид сзади IPTV приставки Motorola VIP1003
Тыльная сторона приставки с интерфейсными разъемами

Перед началом процедуры прошивки необходимо подготовить и верифицировать по контрольным суммам SHA256 набор файлов. В этот список входят загрузочное ядро kreatv-kernel-SMARTLABS.bin, первичная прошивка от Ростелекома (legacy-версия 5.24246.191016), а также специальная сборка PHP-MOTO1003VIP с веб-сервером и поддержкой Telnet. Последняя сборка включает фирменное приложение, подписанный скрипт обновления, образ корневой файловой системы и графическую заставку. Для компиляции собственных программ используется специальный toolchain на базе SDK с поддержкой компиляции кода на языке C в стандарте c99.

Процесс прошивки и первичный запуск

Подготовка сетевого окружения включает настройку DHCP-сервера для раздачи параметров и поднятие TFTP-сервера, в корневой каталог которого помещается загрузочное ядро. Флеш-накопитель форматируется в файловую систему ext3, на него записывается файл первичной прошивки firmware.bin вместе с конфигурационным файлом, разрешающим принудительное обновление. После применения настроек в системном меню приставки и удаления старого программного обеспечения запускается процесс обновления. Терминал через UART отображает стадии загрузки ядра по протоколу TFTP, монтирование внешнего накопителя и последующую распаковку образов в локальную память устройства.

Внутреннее устройство платы Motorola VIP1003
Электронная плата Motorola VIP1003 со снятой верхней крышкой
Прошивка IPTV приставки MOTOROLA VIP1003 и портирование приложений: Вид изнутри. https://forum.cxem.net/uploads/monthly_03_2016/post-199817-0-19591600-1458908238.jpg
Вид изнутри. https://forum.cxem.net/uploads/monthly_03_2016/post-199817-0-19591600-1458908238.jpg

После завершения базовой прошивки на накопитель записывается модифицированный образ с PHP-сервером. Это позволяет управлять плейлистами через веб-интерфейс и получать доступ к устройству по протоколу Telnet. В системных логах отображаются поддерживаемые видеорежимы, включая разрежные варианты вплоть до 1080p, а также доступные аппаратные кодеки, такие как MPEG-2, H.264, VC-1 и другие. Для воспроизведения пользовательского контента достаточно сформировать файл плейлиста в формате m3u8 и разместить его в системном каталоге приставки.

Первая скомпилированная программа для архитектуры SuperH SH

Для создания собственного исполняемого файла под целевую платформу пишется базовый код на языке C, выводящий текстовое сообщение. После настройки переменных окружения SDK и указания путей к кросс-компилятору исходный код преобразуется в бинарный файл. Особенностью данной архитектуры является обязательное использование динамического компоновщика ld-uClibc.so.0, который корректирует ссылки на библиотеки прямо в оперативной памяти устройства на лету. Игнорирование этого компонента приводит к аварийному завершению процессов с ошибкой сегментации памяти (SEGFAULT).

Собранные бинарные файлы вместе с необходимыми библиотечными зависимостями упаковываются в архив tar и размещаются на локальном HTTP-сервере. С помощью утилиты wget, запущенной на самой IPTV-приставке через Telnet-соединение, архив скачивается и распаковывается. Успешный запуск тестовой программы подтверждает работоспособность подхода и открывает возможности для портирования более сложных программных комплексов, включая мультимедийные инструменты.

Меню конфигурации встроенного ПО приставки
Интерфейс настроек встроенного программного обеспечения

Портирование медиакомпонента FFmpeg

Стандартное программное обеспечение приставки не справляется с воспроизведением потоков по протоколу RTSP, требующих базовую авторизацию (Basic authentication). Для решения этой задачи выполняется портирование мультимедийного пакета FFmpeg на целевую архитектуру SuperH SH. Из-за жестких ограничений по свободному объему памяти конфигурационный скрипт сборки настраивается с отключением большинства лишних декодеров, кодеров и сетевых протоколов. Оставляются только необходимые компоненты для работы с демодуляцией RTSP, транспортом UDP и формирования контейнеров MPEG-TS.

В процессе сборки применяются специальные флаги компиляции, ориентированные на стандарт c99 и генерацию кода для процессоров SH4. Из-за особенностей зависимостей финальная линковка бинарных файлов выполняется вручную. После переноса готового FFmpeg на приставку и предварительной настройки сетевых буферов ядра операционной системы устройство успешно справляется с приемом защищенного RTSP-потока, переупаковывает его в транспортный поток MPEG-TS и направляет в локальную петлю без необходимости ресурсоемкого перекодирования.

01.