Как стать автором
Поиск
Написать публикацию
Обновить

Как собрать RidgeRun SDK

Время на прочтение6 мин
Количество просмотров4.4K
image

Само по себе RidgeRun SDK не очень распространенная SDK, однако, если Вам придётся занимать работой с видео для встраиваемых систем, то Вам наверняка будет интересно оценить эту SDK (Официальный сайт RidgeRun SDK).

В моём случае я делал свою сборку, для процессоров DM368, а точнее для платы Leopard Board. И одной из первых же проблем стало то, что документация на wiki, находится далеко не в актуальном состоянии, или не полна.

И так, для начала нам понадобится кросс компилятор CodeSourcery Toolchain, а точнее 2009q1-203, и так же, необходимо установить DVSDK 4 техасских инструментов. На сайте сказано, что DVSDK может работать только с Ubuntu 10.04 LTS 32-bit и никак иначе.

И вот тут же начинаются проблемы, так как большинство репозиториев для 10.04 уже просто не существует. На момент написания статьи последняя версия Ubuntu 16.04 LTS, но её тоже использовать не стоит, в принципе собрать RidgeRun на ней можно, но нельзя будет сделать img файл образа загрузочной SD карточки. Дело в том что в старших версиях Ubuntu, после 14.04 в утилите fdisk, которая входит в пакет build-essential, изменены аргументы командной строки, а некоторые вообще удалены. В дальнейшем при сборке img файла, они понадобятся, так как, немного забегая вперёд, u-boot installer их использует. Можно конечно как workaround попробовать заменить fdisk или весь build-essential (что не очень то и просто), но лично мне показалось лучшим решением один раз и навсегда сделать отдельную виртуальную машину для сборки, на которую поставить всё необходимое, пока ещё «живые» репозитории.

Итак, я буду использовать виртуальную машину Ubuntu 14.04. Поскольку установщики ARM toolchain и DVSDK 4 написаны на Java, придётся её установить:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get clean && sudo apt-get update
sudo apt-get install oracle-java6-installer
apt-get install fakeroot git-core gitk subversion

По установке Java и изменению текущей версии, есть хорошая статья.

CodeSourcery Toolchain


Устанавливаем CodeSourcery Toolchain, для этого нам понадобятся следующие пакеты:

sudo apt-get install libgtk2.0-0:i386 libxtst6:i386 gtk2-engines-murrine:i386 libstdc++6 libxt6:i386
sudo apt-get install libdbus-glib-1-2:i386 libasound2:i386

И сразу сделаем для него директорию /opt/codesourcery

mkdir -p /opt/codesourcery
cd /opt/codesourcery/

Далее скачиваем Toolchain и устанавливаем права на исполнение:

wget http://www.codesourcery.com/sgpp/lite/arm/portal/package4573/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi.bin
chmod ugo+x arm-2009q1-203-arm-none-linux-gnueabi.bin

И запускаем установку:

./arm-2009q1-203-arm-none-linux-gnueabi.bin

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

sudo ln -sf bash /bin/sh

и запустить установку заново. Что бы вернуть «как было», нужно выполнить sudo ln -sf dash /bin/sh
В процессе установки, нужно главное указать путь на /opt/codesourcery/arm-2009q1

image

Так как в дальнейшем сам make будет искать Toolchain именно там.

DVSDK 4


Для установки DVSDK 4, делаем всё тоже, скачиваем, назначаем права, устанавливаем:

wget -c http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/4_02_00_06/exports/dvsdk_dm368-evm_4_02_00_06_setuplinux
sudo chmod a+wrx dvsdk_dm368-evm_4_02_00_06_setuplinux
./dvsdk_dm368-evm_4_02_00_06_setuplinux --forcehost

Только уже нужно указать путь на bin установленного Toolchain: /opt/codesourcery/arm-2009q1/bin

image

И осталось установить стандартный набор утилит, если он ещё не установлен:

sudo apt-get install build-essential checkinstall

RidgeRun SDK


Сборщику RidgeRun ещё необходим Python-2.7.5, но на нашем хосте версия выше, а с другим make в RidgeRun не хочет работать. Придётся собирать его из исподников, но перед этим я рекомендую выполнить максимально все необходимые действия с apt-get, так как после установки Python-2.7.5, ткущая версия apt не будет работать, а будет просить свою версию, проверить текущую версию питона, можно командой python –version или python –V. Поэтому устанавливаем дополнительные пакеты, которые нам могут понадобиться.

sudo apt-get install libdbus-glib-1-dev
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
sudo apt-get install autoconf2.59 libgtk2.0-dev bison flex mono-devel libexpect-perl libusb-dev curl minicom libtool libncurses5-dev
sudo apt-get install texinfo quilt libcrypt-ssleay-perl ccache quilt

Установка питона тоже достаточно простая, всего в несколько команд, единственное что я это всё делал под sudo:

wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz
tar -xvf Python-2.7.5.tgz
cd Python-2.7.5
./configure
make
sudo checkinstall
dpkg -r python

Сильно ничем не отличается от, описанной в этой статье, за исключением версии.

Теперь всё готово к началу сборки самого RidgeRun, для этого нужно отправить запрос на странице http://www.ridgerun.com/downloads самого SDK, и на почту придёт ссылка для скачивания, главное из списка нужно выбрать нужную сборку в поле Evaluation SDK Request, в моём случае это DM368 DM365 (for Leopardboard).

После скачивания, так же нужно указать права на файл и выполнить:

sudo chmod a+x RidgeRun-SDK-DM36x-Turrialba-Eval-Linux-x86-Install.bin
./RidgeRun-SDK-DM36x-Turrialba-Eval-Linux-x86-Install.bin

Устанавливать можно много раз, в разные папки, фактически установщик просто распаковывает файлы, так что, например /home/demo/devdir отлично подойдёт. После установки надо зайти в директорию установки и сконфигурировать SDK:

cd /home/demo/devdir
make config

Сначала make загрузит необходимые пакеты для RidgeRun в папку downloads, и откроется сам конфигуратор, в настройках Installer Configuration, в меню Firmware deployment mode, в качестве метода установки для начала, лучше конечно выбрать SD card.

image

После выхода из конфигуратора, будет создан файл, bspconfig в папке images, собственно и есть конфигурация BSP. Перед сборкой можно дополнительно проверить пути:

cd /home/demo/devdir 
make env

И попробовать собрать SDK:

make

Если же получаем ошибку сборки if (!defined(@val)) { то придётся в ручную удалить defined что бы получилось просто if (!@val) {, и перезапустить процесс сборки. Вообще нужно быть готовым к любым неожиданностям, например, так как в конфигураторе если выбрать что- то другое кроме Hello Word example, например QT Hello World application, то сборка уже не пройдёт. Не пройдёт из-за того что make ищет пакет QT, которого по этому адресу уже нет. По этому, лучше всего сначала просто попробовать собрать SDK.

Результаты сборки, все в каталоге /home/demo/devdir/images, но там нет необходимого нам img файла, что бы его создать нужно, выполнить:

make install

После чего, в папке images будет создан образ SD карточки, sdcard.img, который нужно осталось записать. У меня так и не получилось подружить VirtualBox с card reader, поэтому я использую Win32 Disk Imager.

Если всё хорошо собралось, можно попробовать собрать пример Qt, для этого нужно скачать файл http://pkgs.fedoraproject.org/repo/pkgs/qt/qt-everywhere-opensource-src-4.8.4.tar.gz (пока что он находится тут, может его опять переместят, и его можно будет найти по имени файла) в папку downloads самого SDK. Так же создать одноимённый файл с приставкой sha1, по образу и подобию остальных, qt-everywhere-opensource-src-4.8.4.tar.gz.sha1, а сам sha1 можно взять со страницы файла, т.е. 89c5ecba180cae74c66260ac732dc5cb, и пустой файл qt-everywhere-opensource-src-4.8.4.tar.gz.verified, что бы «обмануть» make, как будто он сам его уже скачал и проверил.

Для примера с GStream, нужно его собрать и поставить, уже должны быть установленные библиотеки autoconf automake autopoint libtool (см. выше), и нужно скачать сам GStream:

wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.2.3.tar.xz

Распаковываем, конфигурируем, собираем, устанавливаем:

./autogen.sh --noconfigure && GST_PLUGINS_GOOD_DIR=$(pkg-config --variable=pluginsdir gstreamer-plugins-bad-1.0) ./configure
make
make install

так же лучше добавить плагинов:

wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.2.3.tar.xz

./configure --prefix=/usr \
            --with-package-name="GStreamer Base Plugins 1.2.3 BLFS" \
            --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" &&
make
make install

Осталось, заново запустить сборку sdk, я предпочитаю перед сборкой делать make cleanчто бы получить «чистый» образ.

В завершении, хочу заметить, что ваши приложения, можно положить в папку myapps, самого sdk, только прописать их в конфигах по образу и подобию примеров, что бы с ними можно было работать из меню. И при конфигурировании, не забыть указать настройки сети в меню Generic SDK configuration, (IPv6 не работает вообще, может быть потому, что это eval версия, а может никогда и не работало).

Полезные ссылки:


» Официальный сайт RidgeRun SDK
» RidgeRun SDK Wiki
» Распостранённые ошибки RidgeRun SDK
» Начало работы с платой Leopard Board DM365
» Code Sourcery ARM toolchain 2009q1-203
» DVSDK 4 DM365
Теги:
Хабы:
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Публикации

Ближайшие события