Як зібрати RidgeRun SDK

image
Саме по собі RidgeRun SDK не дуже поширена SKD, однак, якщо Вам доведеться займати роботою з відео для вбудованих систем, то Вам напевно буде цікаво оцінити цю 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
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.