Pull to refresh

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

Reading time 6 min
Views 4.3K
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
Tags:
Hubs:
+6
Comments 0
Comments Leave a comment

Articles