четверг, 2 февраля 2017 г.

Установка ELDK 4.0 на Ubuntu 10.04 x86 и сборка Qt 4.6.2 для custom-платы под управлением Digi Connect Core 9M 2443

Мне необходимо собрать проект, написанный под Qt 4.6.2, для выполнения на custom-плате под управлением микроконтроллера Digi Connect Core 9M 2443. Средства разработки и кросскомпиляции будем ставить на ОС Ubuntu 10.04 x86(обязательно, так как в 64-битной ОС ELDK отказывается ставиться), так как стандартная библиотека С++ этой версии совместима с библиотекой, используемой в ELDK. Ubuntu 10.04 - самая старшая версия Ubuntu, официально поддерживаемая ELDK, согласно документации.

Версия Ubuntu 10.04 уже не поддерживается, но старые пакеты можно скачать из резервного репозитория. Меняем в файле /etc/apt/sources.list строчку http://ru.archive.ubuntu.com/ubuntu/   на http://old-releases.ubuntu.com/ubuntu.

Для сборки qt надо установить пакет g++:

sudo apt-get install g++


1. Для сборки используются инструменты ELDK (Embedded Linux Development Kit) http://www.denx.de/wiki/DULG/ELDK. Я устанавливаю старую версию 4.0 (ftp://ftp.denx.de/pub/eldk/4.0/arm-linux-x86/iso/arm-2006-01-16.iso).

Я скачал файл в локальную папку /media/Data2/Downloads/Images/build-iso. Переходим в неё, создаем папку для монтирования (/mnt/iso) и монтируем исошник:

cd /media/Data2/Downloads/Images/build-iso
sudo mkdir /mnt/iso
sudo mount -o loop -o exec ./arm-2006-01-16.iso /mnt/iso

Переходим в директорию и запускаем установку в папку /usr/local/tools/eldk:

cd /mnt/iso

sudo ./install -d /usr/local/tools/eldk

Добавляем путь к бинарникам в общий путь поиска системы. Редактируем файл ~/.bashrc:

sudo nano ~/.bashrc

Добавляем в конец строку:

export PATH=$PATH:/usr/local/tools/eldk/usr/bin

После перезапуска терминала и инициализации его из обновленного скрипта ~/.bashrc вывод команды echo $PATH должен включать /usr/local/tools/eldk/usr/bin.

2. Кросскомпиляция Qt 4.6.2 производится на ОС Ubuntu 10.04 x86. Скачиваем версию qt 4.6.2 отсюда, распаковываем в локальную папку для сборки /media/Data2/Libraries/digi/qt_4.6.2_arm.

В проекте нет стандартных настроек для системы кросскомпиляции ELDK, поэтому надо будет создать файлы настроек. Переходим в папку mkspecs/qws, создаем папку и копируем файлы настроек:

cd /media/Data2/Libraries/digi/qt_4.6.2_arm/mkspecs/qws
mkdir linux-arm-eldk-g++
cp linux-arm-g++/qmake.conf ./linux-arm-eldk-g++
cp linux-arm-g++/qplatformdefs.h ./linux-arm-eldk-g++


Собираем статические либы qt 4.6.2:

cd /media/Data/Libraries/digi/qt_4.6.2_arm
./configure -v -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-arm-eldk-g++ -prefix /usr/local/tools/qt_4.6.2_arm -little-endian -qt-gfx-transformed -static -confirm-license -opensource -no-accessibility -no-largefile -fast -no-phonon -no-phonon-backend -qt-zlib -no-qt3support -no-openssl -no-qdbus -no-webkit -qt-sql-sqlite -nomake demos -nomake examples -nomake docs

make
sudo make install

Устанавливаем QtCreator из репозитария:

sudo apt-get install qt-sdk

Использованный материал:
1) http://help.ubuntu.ru/wiki/old_ubuntu_versions
2) http://help.ubuntu.ru/wiki/%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9