24 ноября | 2024г. | 16:19:26


АвторТема: Разработка плагинов на Fortis API  (Прочитано 17351 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1176
  • Уважение: -2

Небольшая тема для тех, кто хочет начать разрабатывать для спутниковых ресиверов Openbox различные программы, будь то плагины или те же эмуляторы, но не знает, с чего начать.  :)

А начать необходимо с понимания, что в ресиверах Openbox SX-серии используются непривычные для обычных пользователей процессоры. Большинство пользователей домашних компьютеров знакомы только с архитектурами x86 и x86_64, представленные чаще фирмами Intel и AMD. Процессоры же ресиверов производятся фирмой STMicroelectronics и имеют архитектуру sh4, более подробно о которой можно прочитать на википедии, так что повторяться не буду.

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

Что же нужно для кросскомпиляции для Openbox SX? Всего несколько вещей:

  • Обычный персональный компьютер с любой установленной операционной системой Linux (Ubuntu, openSUSE и пр.)
  • Набор компиляторов C (gcc) и C++ (g++) со стандартными библиотеками

Последний пункт и представляет из себя тулчейн. То есть это набор исходных кодов, библиотек и компиляторов, позволяющих создавать программы для определённых архитектур.

Обычно наибольшую сложность для новичков представляет процесс сборки тулчейнов.

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

Что же он из себя представляет? Данный тулчейн позволяет компилировать программы для SH4-архитектур и включает в себя компиляторы gcc 4.9.2, библиотеку glibc 2.19.

Данный набор позволит вам без труда собирать свои собственные плагины, используя Fortis API, а так же помогать компилировать уже существующие программы.

Для более удобного вызова компиляторов без прописывания полного пути к ним, после распаковки тулчейнов, например, по пути /opt/sh4-unknown-linux-gnu, в домашнем каталоге пользователя находим скрытый файл .bashrc и прописываем в нём путь к тулчейну:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Для успешного написания плагинов желательно знать как можно больше об операционной системе Linux, непосредственно разбираться в языках C/C++ и хотя бы немного быть знакомым с кросскомпиляцией (в том числе написанием Makefile).

Собственно и всё. Будут вопросы, особенно по разработке плагинов, - пишите. Постараюсь помочь.  ;)
Vitaliy69

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1176
  • Уважение: -2
0
Пример исходного кода плагина, который при нажатии на красную кнопку пульта выводит надпись на экран, при повторном - стирает её.

Порядок компиляции следующий.

Качаем тулчейн и распаковываем, например, по пути /opt/sh4-unknown-linux-gnu, в домашнем каталоге пользователя прописываем в файле .bashrc путь к bin тулчейна, например:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Качаем Fortis API последней версии (для SX-серии подходит версия 1.20 и выше), распаковываем, в каталог ~/src/fortis копируем папки include и lib. Другие файлы из архива Fortis API для сборки нам не нужны - они представляют из себя документацию. В эту же папку ~/src/fortis распаковываем из вложенного в сообщение архива папку plugin.

То есть конечная структура папок должна быть примерно такой:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
После переходим в каталог plugin командой cd ~/src/fortis/plugin. Тильда обозначает домашний каталог текущего пользователя, например, /home/user, как в примере выше.

Затем вводим make - плагин собран. Команда make clean позволяет удалить весь "мусор" от сборки и конечный бинарный файл для последующий чистой сборки.

В примере фактически можно найти пример работы с Fortis API, а так же каким образом пишутся Makefile.
Vitaliy69

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1176
  • Уважение: -2
0
Обновлённые тулчейны.

sh4 - gcc 4.9.3, glibc 2.21, binutils 2.25, zlib-1.2.8, jpeg-9a, libpng-1.6.17, freetype-2.3.12, libevent-2.0.22, openssl-1.0.2c
sh4-old - gcc 4.8.5, glibc 2.10.1, binutils 2.25, zlib-1.2.8, jpeg-9a, libpng-1.6.17, freetype-2.3.12, libevent-2.0.22, openssl-1.0.2c
arm - gcc 4.9.3, glibc 2.19, binutils 2.25, zlib-1.2.8, jpeg-9a, libpng-1.6.17, freetype-2.6, libevent-2.0.22, openssl-1.0.2c
mipsel - gcc 5.1.0, glibc 2.21, binutils 2.25, zlib-1.2.8, jpeg-9a, libpng-1.6.17, freetype-2.6, libevent-2.0.22, openssl-0.9.8zg

В sh4-old используется старая glibc в случае возникновения проблем запуска на Openbox SX, arm заточил под конфигурацию Debian 8, в mipsel умышленно поставил более старую openssl, которая используется в большинстве имиджей Enigma2.

Скачать (244,8 МБ)

Собрано в crosstoll-ng 1.21.0. В каждой сборке - конфиг.
Vitaliy69

Оффлайн Saskereliz

  • Падаван
  • *
  • Сообщений: 16
  • Поблагодарили: 22
  • Уважение: 0
Разработка плагинов на Fortis API
« Ответ #3: 14 октября | 2015г. | 23:25:32 »
0
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Работаю от рута.
Использую тучейны в первом сообщении.
.bashrc:
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
в /opt/  всё присутствует
иерархия папок проекта как нужно

gcc и g++ установлены
apt-get update сделан

ubuntu 14.04 32-bit

что еще можно сделать???
спасибо

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1176
  • Уважение: -2
Разработка плагинов на Fortis API
« Ответ #4: 14 октября | 2015г. | 23:32:16 »
0
Системные gcc и g++ в системе не обязательны, так как используются именно компиляторы тулчейна.

Судя по вашей ошибке, система не знает, куда вы их положили. Настоятельно рекомендую собирать от простого пользователя (к тому же пути к бинарникам тулчейна вы же приписали у него). И всё заработает.

Или пропишите путь в /root/.bashrc, если по каким-то причинам вам нужно собирать именно под super user'ом.

Ах, да! Тулчейны требуют x86-64! На x32 не заработают - не думал, что ещё кто-то использует эту архитектуру...
Vitaliy69

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1176
  • Уважение: -2
Разработка плагинов на Fortis API
« Ответ #5: 15 октября | 2016г. | 17:54:14 »
0
 Обновлённый тулчейн со свежими версиями библиотек.
Vitaliy69

Оффлайн Vyacheslav_2

  • Подающий Надежды
  • *
  • Сообщений: 1
  • Поблагодарили: 0
  • Уважение: 0
Разработка плагинов на Fortis API
« Ответ #6: 14 октября | 2019г. | 22:00:47 »
0
Добрый день Всем мимо проходящим, решил я попробовать что такое sti7111, скачал и установил  тулчейн из данного поста на ubuntu 16.04, сделал попытку собрать getstream для gi 8120 spark, все бы ничего, но вылезли ошибки, которые привели к необходимости собрать libglib2.0 для sh4-unknown-linux-gnu, собрал libglib2.0, но при попытке собрать getstream получил странную ошибку   libglib2.0.so File format not recognized, так и не смог понять почему не может распознать формат файла, может кто подскажет.

Теги:
 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
5554 Просмотров
Последний ответ 04 августа | 2014г. | 10:04:25
от kuttel
28 Ответов
45858 Просмотров
Последний ответ 14 февраля | 2017г. | 10:44:18
от munche
13 Ответов
33917 Просмотров
Последний ответ 14 января | 2020г. | 20:25:20
от vip1131
0 Ответов
3 Просмотров
Последний ответ 17 марта | 2014г. | 22:00:30
от 2boom
0 Ответов
2939 Просмотров
Последний ответ 27 июня | 2015г. | 22:26:43
от Stuart



X

Добро пожаловать!

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