Skip navigation

Утилиты для сборки образа ПО

Для сборки образа ПО необходимо использовать Операторские Утилиты, которые предоставляет производитель:

Operator Utilities

Требования к ОС компьютеров разработчиков

Система *nixi386 (32-разрядная). Рекомендуем использовать Ubuntu дистрибутив ОС Linux .

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

Все примеры, используемые в данном руководстве, приведены для ОС Ubuntu Server 12.04 i386.

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

Для рекомендуемой ОС должны быть установлены следующие пакеты:

Ubuntu Server 12.04 i386:
sudo apt-get install mtd-utils

Ubuntu Server 14.04-16.04 x86_64:
sudo apt-get install mtd-utils && sudo apt-get install lib32z1

Варианты образа ПО

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

  • PublicImage - образ, подписанный стандартным публичным ключом производителя (ID = STB_PUBLIC). PublicImage от производителя (файл imageupdate) выкладывается в корневом каталоге каждого текущего релиза соответствующей модели STB.
    Варианты обновления PublicImage:
    1. Обновляется из меню Bootloader или System Recovery Utility на различные версии PublicImage или на транзитные версии CustomImage (см. описание перехода на CustomImage).
    2. Обновляется из меню портала (методами HTTP / USB) только на заводские версии ПО (Factory image).

  • CustomImage - образ, подписанный кастомным ключом. Ключ создается оператором самостоятельно без обращения к производителю STB. Рекомендуется для операторов, которые хотят реализовать безопасное обновление ПО из портала только на собственные версии ПО (методами HTTP / USB) с возможностью обновления на публичные версии ПО из меню Bootloader или System Recovery Utility.
    Варианты обновления CustomImage:
    1. Обновляется из меню Bootloader или System Recovery Utility только на публичные версии ПО (PublicImage).
    2. Обновляется из меню портала только на версии CustomImage, подписанные тем же ключом.


  • OperatorImage - образ, подписанный ключом оператора. При этом ключ оператора в обязательном порядке предварительно подписывается на заводе изготовителе.
    Варианты обновления OperatorImage: Обновляется только на версии ПО, подписанные тем же ключом оператора.

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

Перед подготовкой образа основного ПО настоятельно рекомендуется ознакомиться со следующей документацией:

Рекомендуется:

  • Выполнять все команды с правами суперпользователя.
  • При работе с архивами использовать консольный архиватор tar.

Внимание! Командная оболочка, указанная в скриптах, может отличатся от системной.

Алгоритм создания образа в общем случае выглядит следующим образом:

1. Подготовка переменных окружения.
2. Подготовка профайла.
3. Копирование исходного файла ядра из релиза STB в рабочую директорию Операторских утилит.
4. Подготовка образов ядра (запуск скрипта подписи ядра).
5. Запуск команды сборки образа.

1. Подготовка переменных окружения

Необходимые значения переменных окружения, которые должны устанавливаться в образе, указываются в файле env.txt. Исходный вариант файла, доступный для редактирования, расположен в подкаталоге images каталога с Операторскими Утилитами. Путь доступа к директории images зависит от модели STB - пример для MAG254: ./images

  Пример файла env.txt
bg_color=0x00006498
fg_color=0x00FFFFFF
portal1=http://10.1.0.1/stalker_portal/c/index.html
language=ru
update_url=http://10.1.0.1/imageupdate
ntpurl=10.1.0.1
timezone_conf=Europe/Kiev

Описание некоторых переменных приведено в разделе Наиболее часто используемые переменные.

По умолчанию, HTTP-обновление из портала (в том числе автообновление) выполняется на заводскую версию ПО (Factory image)

При сборке собственного образа рекомендуется:

  • В переменной update_url указать URL вашего файла обновления imageupdate (по умолчанию, в переменной указан URL производителя).
  • Организовать собственную систему автоматического обновления и использовать необходимые значения переменных autoupdateURL, autoupdate_cond и betaupdate_cond, руководствуясь описанием раздела Модуль автоматического обновления. В противном случае, отключить работу модуля автоматического обновления.
  • С целью повышения безопасности и предотвращения несанкционированного изменения пользователями значений переменных необходимо при загрузке ПО производить проверку критичных переменных (например, таких как: portal1, update_url, autoupdate_cond и т.д.). Описание, как организовать проверку переменных, приведено в разделе Проверка переменных при старте STB.

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

Параметры сборки образа указываются в профайле. Исходные варианты профайлов для различных моделей STB, доступные для редактирования, расположены в корневом каталоге Операторских Утилит:
./img_make.profile.mag<model_number>

Например, для MAG254 - используется профайл: ./img_make.profile.mag254

Ниже приведен пример профайла:

  Пример профайла img_make.profile.mag254
 #    Kernel's file system
export KERNEL_PATH=./uImzlib_mag254.img
#    File name for enviroment variable
export ENV_VARIABLE_PATH=./images/env_mag254.txt
#    Userfs
export USERFS_VERSION=1
export USERFS_PATH=./images/userfs.img
#    File name for SecondBoot
export SECONDBOOT_PATH=./images/SbootIm_mag254
#    File name for Logotype
#export LOGOTYPE_PATH=./images/logo.bmp.gz
export MAG200_OP_KEY=STB_PUBLIC
  Описание переменных профайла
Название Описание
KERNEL_PATH

Расположение образа файловой системы, содержащей ядро. Если переменная не задана, то используется ./uImzlib.img .

ENV_VARIABLE_PATH

Эта переменная должна содержать путь к файлу, в котором содержатся переменные бутлоадера и их значение. Пример, такого файла - env.txt, он показывает каким, образом можно установить переменные бутлоадера, в частности цвета шрифта и фона. Символ $ должен экранироваться.

USERFS_VERSION

Номер версии образа, который должен располагаться в разделе «NAND» с названием «Userfs» . Если номер текущего образа и обновляемого совпадает, то обновление не производится.

USERFS_PATH

Расположение образа файловой системы пользователя (образ который должен быть при обновлении записан в раздел «NAND» с названием «Userfs» ). Образ подготавливается с помощью userfs_img.sh . Предварительно оператор должен поместить необходимые ему файлы в подкаталог с именем /userfs .

SECONDBOOT_PATH Путь ко второму образу бутлоадера (если используется).
LOGOTYPE_PATH Путь к файлу-логотипу, подготовленному оператором.

Для правильной работы Операторских Утилит переменная KERNEL_PATH должна иметь значение: ./uImzlib_mag<model_number>.img Например, для MAG254: ./uImzlib_mag254.img
Строки с переменными ENV_VARIABLE_PATH, USERFS_VERSION, USERFS_PATH, SECONDBOOT_PATH, LOGOTYPE_PATH могут быть закомментированы. В этом случае соответствующей секции не будет в образе.

Для переменной MAG200_OP_KEY должен быть установлен соответствующий идентификатор ключа (ID-key), которым будет подписан образ. ID_key должен иметь следующее значение:

  • STB_PUBLIC - для сборки публичного образа. Публичный ключ входит в состав утилит;

  • ID кастомного ключа - для сборки кастомного образа;

  • ID ключа оператора - для сборки операторского образа.

3. Копирование исходного образа ядра из релиза в каталог с Операторскими Утилитами

Исходный образ ядра размещается в релизе необходимой модели STB:

  • для MAG-250/254/270 - используется файл: vmlinux.bin.mag<model_number>

  • для MAG-256/3xx/4xx - используется файл:

    uImage_mag<model_number>.clean

где <model_number> - номер базовой модели STB. Например: для MAG254 - vmlinux.bin.mag254; для MAG324 - uImage_mag324.clean.

Обратите внимание! Для MAG322 и MAG324 используется один и тот же файл - uImage_mag324.clean

Файл vmlinux.bin.mag<model_number> или uImage_mag<model_number>.clean должен быть скопировать из релиза необходимой модели STB, на базе которого собирается образ, и помещен в каталог с Операторскими Утилитами, в подкаталог images

4. Подпись ядра, получение файлов uImage / Bootstrap, uImzlib_null.img, uImzlib.img

Пример запуска скрипта для MAG254:

./kernel_sign_254.sh

Для MAG322 и MAG324 используется один и тот же файл: ./kernel_sign_324.sh

  • для MAG4xx используется скрипт подписи ядра: kernel_sign.sh

Команда запуска скрипта:

./kernel_sign.sh <STB model> <path to kernel> <profile>
Пример для MAG420:
./kernel_sign.sh mag420 ./mag420/images/uImage_mag420.clean img_make.profile.mag420

В результате работы скрипта будут созданы следующие файлы: uImage_mag<model_number> или Bootstrap (создаваемый файл зависит от модели STB), uImzlib_null_mag<model_number>.img, uImzlib_mag<model_number>.img, которые записываются в директорию с Операторскими Утилитами.

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

Синтаксис:

./img_make.sh <version_number> "<description>" <path_to_rootfs> <modelname> <path_to_profile>
  Описание переменных команды запуска сборки образа ПО

<version_number>

Номер версии образа, должно быть трехзначным числом. После успешного обновления на создаваемый образ ПО STB переменная окружения Image_Version принимает это значение.

<description>

Краткое описание версии образа. Внимание! Пробелы не допускаются! После успешного обновления на создаваемый образ, переменная окружения Image_Desc примет это значение.

<path_to_rootfs>

Месторасположение/путь к каталогу с корневой файловой системой (Root File System) приставки, который должен быть включен в создаваемый образ. Архив, содержащий корневую файловую систему rootfs-….tar.gz можно взять из релиза http://soft.infomir.com. Путь указывается к предварительно разархивированной директории.

<modelname>

Наименование базовой модели STB, для которой собирается версия. Например, MAG254, MAG256, MAG322, MAG324,MAG420 и т.д.

<path_to_profile>

Путь к профайлу, в котором можно настроить подключение и отключение дополнительных секций. Синтаксис: img_make.profile.mag<model_number>



Пример для MAG254:

./img_make.sh 218 "Test_my_version" ../../254/rootfs-0.2.18r14 MAG254 ./img_make.profile.mag254

Пример для MAG256:

 ./img_make.sh 220 "Test_my_version" ../../256/i256-splash-7.7 MAG256 ./img_make.profile.mag256

Пример для MAG420:

 ./img_make.sh 220 "Test_my_version" ../../420/rootfs-2.20.02-r5 MAG420 ./img_make.profile.mag420

В результате успешной сборки образа ПО файл imageupdate будет создан в директории с Операторскими Утилитами.

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

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

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

  • для сохранения информации о ключе в файле:
gpg -o opsecbin.KEY --export-secret-keys ID-ключа
  • для добавления этого ключа в gpg:
 gpg --import opsecbin.KEY
  • для просмотра текущих доступных ключей:
 gpg --list-keys

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

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

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

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

OperatorImage

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





 

Need Help

Дима – эксперт по работе с приставками серии MAG и автор этой статьи.

Была ли полезна эта статья?

Да Нет

Сожалеем.
Как можно улучшить эту статью?

Мы используем cookie-файлы, чтобы оптимизировать работу сайта и предоставить вам лучший интерфейс; а также для продвижения нашей продукции. Ознакомьтесь с нашей политикой Cookie, чтобы узнать, как именно мы используем cookie-файлы, и как вы можете это контролировать.
Если вы продолжите пользоваться сайтом или закроете это сообщение — это значит, что вы согласны с нашей Политикой конфиденциальности и разрешаете использование cookie-файлов, как описано в политике Cookie.