Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
native_sdk [2015/07/07 16:50] Alexander старая ревизия восстановлена (2015/07/07 16:43) |
native_sdk [2015/07/08 15:28] (текущий) Vladimir Manov private:native_sdk переименовано в native_sdk |
||
---|---|---|---|
Строка 12: | Строка 12: | ||
apt-get install ia32-libs | apt-get install ia32-libs | ||
sudo apt-get install build-essential cmake squashfs-tools cramfsprogs lib32ncurses5 lib32tinfo5 lib32z1 openjdk-7-jre-headless zlibc zlib1g-dev qt5-default | sudo apt-get install build-essential cmake squashfs-tools cramfsprogs lib32ncurses5 lib32tinfo5 lib32z1 openjdk-7-jre-headless zlibc zlib1g-dev qt5-default | ||
- | sudo dpkg-reconfigure dash #отключаем dash | + | sudo dpkg-reconfigure dash #отключаем dash для работы сборочной системы |
</code> | </code> | ||
+ | == Установка SDK на Linux-систему == | ||
<code> | <code> | ||
tar xzf tvip-sdk-multiplatform-XXXXXXXX.tgz | tar xzf tvip-sdk-multiplatform-XXXXXXXX.tgz | ||
cd tvip-sdk-multiplatform-XXXXXXXX/app/ | cd tvip-sdk-multiplatform-XXXXXXXX/app/ | ||
+ | </code> | ||
+ | |||
+ | В каталоге app необходимо разместить CMakeLists.txt для сборки собственного приложения. | ||
+ | Если приложение собирается сторонней сборочной системой, в данный файл необходимо положить команды для установки необходимых файлов в прошивку. В файле CMakeLists.txt, накодящимся в SDK есть примеры различных вариантов сборки и установки приложений. | ||
+ | |||
+ | Для сборки прошивки под конкретную платформу необходимо выполнить следующие команды (применительно для платформы S500v). | ||
+ | <code> | ||
make builddir-s500v | make builddir-s500v | ||
cd build-s500v | cd build-s500v | ||
make platform-newrootfs install platform-firmware-ota | make platform-newrootfs install platform-firmware-ota | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | === Компилятор === | ||
+ | |||
+ | При сборке через систему CMake, входящую в SDK, необходимый компилятор и sysroot всегда доступны автоматически. | ||
+ | |||
+ | Для сборки через стороннюю систему, компилятор будет установлен в каталог ~/.tvip-download/ | ||
+ | |||
+ | Sysroot с большим количеством системных библиотек доступен в каталоге sdk/builddir-s500v/sysroot/. | ||
+ | Include-файлы системной библиотеки libtvip доступны в каталоге tvip-includes. | ||
+ | |||
+ | == Краткое описание наиболее важных заголовочных файлов libtvip == | ||
+ | |||
+ | __STBresourceHolder__ | ||
+ | |||
+ | Через этот класс происходит основная инициализация оборудования и осуществляется доступ к доступным объектам работы с оборудованием (графика, медиа, ввод). | ||
+ | |||
+ | |||
+ | __STBDisplayInterface__ | ||
+ | |||
+ | Работа с дисплеем: инициализация, смена разрешения, управление CEC. | ||
+ | |||
+ | STBHDVideoFormat - управляет разрешением HDMI. | ||
+ | |||
+ | STBSDVideoFormat - управляет разрешением AV. | ||
+ | |||
+ | |||
+ | __STBGraphicsInterface__ | ||
+ | |||
+ | Управляет взаимодействием с 2D графикой. Обратите внимание, что работа с 2D графикой не поддерживается в текущих приставках TVIP. Также этот класс используется для доступа к объекту OpenGLES | ||
+ | |||
+ | |||
+ | __STBGraphicsGlEs20Interface__ | ||
+ | |||
+ | Абстрагирует работу с EGL. Для работы с OpenGLES приложение должно унаследовать дочерний класс FrameRenderer. Этот класс будет получать события инициализации/деинициализации OpenGL, а также событие на отрисовку следующего кадра.\\ | ||
+ | Разрешение фреймбуффера для OpenGL всегда равно разрешения экрана ТВ. Соответственно, при смене разрешения происходит полная переинициализация EGL-контекстов с новыми параметрами. | ||
+ | |||
+ | __STBPlayerInterface__ | ||
+ | |||
+ | Осуществляет всю работу с плеером. Плеер выполняется команды (play, pause, seek) в порядке очереди. Также плеер позволяет подписываться на различные события (начало проигрывания, EOF, стоп, и т.д.). | ||
+ | |||
+ | Пример использования большей части API плеера доступно в примере app/tests/test_play.cpp | ||
+ | |||
+ | |||
+ | __STBCommandsInterface__ | ||
+ | |||
+ | Абстрагирует доступ к кнопочным устройствам ввода, независимо от типа. Поддерживает IR-пульты, USB-клавиатуры и HDMI-CEC. Для работы необходимо непосредственно добавить в класс нужный тип ИК-пульта (обычно - TvipUniversal) и USB клавиатуру (LinuxKeyboard). | ||
+ | |||
+ | Пример использования - app/tests/test_commands.cpp | ||
+ | |||
+ | |||
+ | |||
+ | __STBFirmwareUpdater__ | ||
+ | |||
+ | Работа с прошивками в формате TVIP. В большинстве случаев необходимо создание собственного класса для работы с прошивками. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Система обновлений == | ||
+ | |||
+ | В приставках TVIP независимо от устрановленной ОС, используется система обновлений в формате ОС Android. Для установки обновлений используется ПО Android Recovery, находящееся на отдельном разделе. | ||
+ | |||
+ | Чтобы приставка единократно перезагрузилась в Android Recovery необходимо из Linux-системы выполнить команду reboot_tool recovery. | ||
+ | |||
+ | OTA-обновление для установки, а также команды для Recovery размещаются (в Linux-системе) в каталог /tmp/recovery/recovery | ||
+ | |||
+ | Наиболее простой способ устновки прошивки: использование утилиты updater. | ||
+ | <code> | ||
+ | #updater tvip_firmware.ota.zip | ||
+ | </code> | ||
+ | |||
+ | == Управление сетевыми подключениями == | ||
+ | |||
+ | [[:network_settings]] | ||