Содержание

Утилиты и инструкции для сборки образа ПО MAG3xx/4xx/5xx и выше

Требования к ОС

Все примеры используемые в данном руководстве приведены для Ubuntu Server 16.04.

Для 64-разрядной системы, необходимо дополнительно установить поддержку 32-разрядных библиотек. Например, для Ubuntu 14.04 - 16.04 необходимо установить пакет lib32z1 (32-bit shared libraries for AMD64).

Необходимые пакеты

mtd-utils Утилиты для управления устройствами с технологией памяти, такими как флэш-память, Disk-On-Chip или ROM
lib32z1 Поддержка 32-разрядных библиотек для x64 систем
gnupg1 Внимание! GPG2(gnupg2) - не поддерживатеся!
STB SDK https://soft.infomir.com/stbsdk/ - Утилиты для сборки ПО MAG

Утилиты

Утилиты оператора позволяют собирать образ ПО в трех вариантах:

Перед подготовкой образа основного ПО настоятельно рекомендуем ознакомится со следующей документацией:STB API, Operator guide
Рекомендуется: Выполнять все команды с правами «суперпользователя». При работе с архивами использовать консольный архиватор tar.
Внимание!Командная оболочка указанная в скриптах может отличатся от системной!

Рекомендации

  • Обновление ПО из меню «Системные настройки» - переменная update_url. По умолчанию, обновление происходит по URL производителя на образ ПО подготовленный производителем. При сборке собственного образа рекомендуется изменить переменную на URL вашего образа.
  • "Mодуль автоматического обновления" из пункта «Настройки» основного меню. Переменные: autoupdate_cond, betaupdate_cond. По умолчанию, автоматическое обновление включено и инициирует обновление на версии ПО производителя. Обновление возможно так же и в ручном режиме. При сборке собственного образа рекомендуется отключить работу модуля автоматического обновления либо организовать собственную систему обновления, руководствуясь описанием и инструкциями.
  • Проверка переменных окружения при старте. С целью повышения безопасности и контроля несанкционированного изменения переменных, рекомендуется производить проверку необходимых/критичных переменных при загрузке ПО (например, таких как: portal1, portal2, update_url, autoupdate_cond и т.д.)

Подготовка образов. Общие полoжения

1. Подготовка профайла

Параметры сборки образа указываются в профайле img_make.profile.mag<model_number>

Пример профайла img_make.profile.mag520

Описание переменных профайла

Переменная Описание
MODELМодели STB. Внимание! Регистр написания наименования модели должен полностью совпадать с наменованием модели из System Recovery Utility > Device Information > Model или System Settings > Device Info > Model.
KERNEL_PATHРасположение итоговго образа файловой системы, содержащей ядро. По этому пути будт раположен итоговый образ ядра после сборки и подписи
ENV_VARIABLE_PATHПуть к файлу, в котором содержатся переменные бутлоадера и их значение. Пример, такого файла смотрите Пример файла env.txt, он показывает каким, образом можно установить переменные бутлоадера, в частности цвета шрифта и фона. Символ $ должен экранироваться.
USERFS_VERSIONНомер версии образа файловой системы «Userfs». Если номер текущего образа и обновляемого совпадает, то обновление не производиться.
USERFS_PATHРасположение образа файловой системы «Userfs». Образ подготавливается с помощью userfs_img_<type_model>.sh. Необходимые файлы должны находится в подкаталоге /userfs.
SECONDBOOT_PATHПуть ко второму образу загрузчика при необходимости его обновления
LOGOTYPE_PATHПуть к файлу логотипа загрузчика.
MAG200_OP_KEYID ключа для подписи ПО. По умолчанию STB_PUBLIC
KERNEL_FS_*Тип и разметка файловой системы ядра. Внимание! Не рекомендуется изменять значения установленные в профайле!
ROOTFS_FS_*Тип и разметка корневой файловой системы. Внимание! Не рекомендуется изменять значения установленные в профайле!
EXT4_ZIPУровень сжатия для образа EXT4
HASH_TYPEАлгоритм шифрования

Для правильной работы утилит оператора, переменная KERNEL_PATH в профайлах, должна иметь значение <path>/uImzlib_mag<model>.img. Переменные ENV_VARIABLE_PATH, USERFS_VERSION, USERFS_PATH, SECONDBOOT_PATH, LOGOTYPE_PATH могут быть закоментированы, в этом случае соответствующей секции не будет в образе. В переменной MAG200_OP_KEY должен быть установлен соответствующий идентификатор - (ID) ключа, которым будет подписан образ.

Например: export MAG200_OP_KEY=ID_key, где ID_KEY должен быть:

2. Подготовка переменных Bootloader-a (Загрузчика)

Необходимые переменные Bootloader-a указываются в файле ./images/env.txt

Наиболее часто используемые переменные

Пример файла env.txt

3. Подготовка uImage, uImzlib_null.img, uImzlib.img. Подпись ядра

Используются файлы:

где <model_number> - номер модели STB для которой собирается образ ПО.

uImage_mag<model_number>.clean необходимо взять из релиза ПО в соответствии с моделью STB для которой собирается образ.

Файлы:

- будут созданы в каталоге с утилитами после окончания работы скриптов.

3.1 Подпись ядра

Используется скрипт ./kernel_sign.sh. Скрипт интерактивный, при запуске без параметров выводится подсказка.

Пример:

# ./kernel_sign.sh
Usage:
    ./kernel_sign.sh <model_name> <path_to_kernel> <profile>
 
    The <model_name> should be the same as the Model Name of STB
    The Model Name can be viewed in System Recovery Utility > Device Information > Model
    or in System Settings > Device Info > Model
 
For example:
    ./kernel_sign.sh MAG520 ./mag520/images/uImage_mag450.clean img_make.profile.mag520
#

4. Сборка образа ПО (сборка imageupdate)

Используется скипт - img_make.sh. Скрипт интерактивный. При запуске без параметров выводится подсказка.

Пример:

root@test-srv:~/stb_fw/Operator_utilities_Broadcom_Hisilicon_Amlogic# ./img_make.sh
 
Usage:
    ./img_make.sh <version_number> "<description>" <path_to_rootfs> <model_name> <profile>
 
    The <version_number> must be a number (3 digits)
    The <description> should be escaped, Spaces are not allowed!
    The <model_name> should be the same as the Model Name of STB
    The Model Name can be viewed in System Recovery Utility > Device Information > Model
    or in System Settings > Device Info > Model
 
For example:
    ./img_make.sh 220 "Test_image" ../../520/rootfs-2.20.01/ MAG520 ./img_make.profile.mag520
 
root@test-srv:~/stb_fw/Operator_utilities_Broadcom_Hisilicon_Amlogic#

где:

version_number Номер версии образа, должно быть трехзначным числом. После успешного обновления переменная начального загрузчика Image_Version принимает это значение.
description Краткое описание !Внимание! «Пробелы» в описании не допускаются. Описание необходимо экранировать! После успешного обновления переменная начального загрузчика Image_Desc принимает это значение
path_to_rootfs путь к каталогу с корневой файловой системой. Корневую файловую систему rootfs-….tar.gz можно взять из релиза http://soft.infomir.com.ua в соответствии с моделью STB
model_name Модели STB. Внимание! Регистр написания наименования модели должен полностью совпадать с наменованием модели из System Recovery Utility > Device Information > Model или System Settings > Device Info > Model.
path_to_profile Путь к профайлу - ./img_make.profile.mag<model>

Замечания по работе с программой gpg

Для работы с ключами и создания цифровой подписи образов используется программа gpg - GnuPG.org GnuPG Wikipedia

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

gpg -o opsecbin.KEY --export-secret-keys ID-ключа
gpg --import opsecbin.KEY
gpg --list-keys

PublicImage - подготовка, сборка

PublicImage - подготовка, сборка - пример для MAG-520

CustomImage - подготовка, сборка

CustomImage - подготовка, сборка - пример для MAG-520

OperatorImage

Инструкция по сборке и установке образа «OperatorImage» предоставляется после согласования процедуры подписи ключа оператора с коммерческим отделом