Сборщик целевых образов Линукс — LTIB (Linux Target Image Builder) набор утилит использующийся для разработки и сборки BSPs (Board Support Packages) или по русский пакетов поддержки модулей для различных целевых платформ. Другими словами это набор программ и библиотек которые позволяют собрать как образ ОС Linux для выбранной вами платформы, так и в будущем собирать прикладные приложения и библиотеки на эту платформу.
Данная инструкция поможет собрать и установить LTIB для платы conga-QMX6 (на базе процессора Freescale ® i.MX6 ARM ® Cortex A9) на Ubuntu 14.04.
1) Скачать LTIB Linux BSP с сайта Freescale по ссылке: https://www.freescale.com/webapp/Download?colCode=L3.0.35_4.1.0_ER_SOURCE_BSP&appType=license&location=null
Для скачивания необходима регистрация на сайте.
2) Распаковать полученный архив в любое место и выполнить в нем ./install
3) Для установки выбрать любую директорию.
4) Установить следующие дополнительные пакеты необходимые для LTIB:
1 2 |
$ sudo apt-get install rpm bison m4 zlibc zlib1g zlib1g-dev libncurses5-dev zlib-bin liblzo2-dev uuid uuid-dev libglib2.0-dev libx11-dev libdbus-glib-1-dev liborbit2-dev intltool libgtk2.0-dev texlive texinfo |
5) Для 64-х битной Ubuntu дополнительно поставить пакет lib32z-dev :
1 |
$ sudo apt-get install lib32z-dev |
6) Создать или изменить правила в Fuse
1 |
$ sudo bash -c 'echo "KERNEL==fuse, NAME=%k, MODE=0755, OWNER=root, GROUP=fuse" > /etc/udev/rules.d/99-fuse.rules' |
7) Отредактируйте файл Sudoers
• Запустить ‘sudo visudo’ для изменения файла sudoers.tmp .
1 |
$ sudo /usr/sbin/visudo |
• добавить эту строку в конец файла (не забудьте указать логин текущего пользователя под которым будет делаться сборка):
1 |
[YOUR USERNAME] ALL = NOPASSWD: /usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm |
• Сохранить файл: ctrl + O и Enter
• Выйти ctrl + X .
8) Далее применить патч от Ubuntu 12.04. Загружать и выполнять необходимо из директории ltib (которую вы выбрали на шаге 3).
1 2 3 |
wget https://community.freescale.com/servlet/JiveServlet/downloadBody/93455-102-2-2825/patch-ltib-ubuntu12.04.sh ./patch-ltib-ubuntu12.04.sh |
Скрипт скачает файл ubuntu-ltib-patch.tgz, распакуйте его и запустите скрипт-патч
1 2 3 |
tar -xzvf ubuntu-ltib-patch.tgz ./install-patches.sh |
9) Теперь необходимо сделать изменение в пакете m4. Найдите и распакуйте m4-1.4.16.tar.gz в поддиректории pkgs (или в /opt/freescale/pkgs/ ) куда угодно. В файле /lib/stdio.in.h найдите следующие строки:
1 |
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); |
и замените их на:
1 2 3 |
#if HAVE_RAW_DECL_GETS _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif |
Сохраните и снова сожмите распакованную директорию в m4-1.4.16.tar.gz. Скопируйте обратно в pkgs. Получите контрольную сумму md5sum нового архива и исправьте ее в файле m4-1.4.16.tar.gz.md5
10) Пришло время запустить ./ltib
Это займет ОЧЕНЬ длительное время (по умолчанию все сообщения будут выводится в log файл а не в консоль)!
11) Если в процессе случится ошибка при сборке ‘busybox’.
Для исправления в файле ltib/dist/lfs/base_libs/base_libs.spec найдите строки:
1 2 3 4 |
# remove absolute paths from text search files (if they exist) perl -w -e ' @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV; exit(0) unless @ARGV; |
И удалите две последние строки (начинающиеся с «@ARGV» и «exit(0)» соответственно).
Сохраните и запустите ./ltib снова.
12) При успешной сборке должны появиться окно конфигурации:
В «platform choice» выберите [Freescale iMX reference boards]. Далее стрелками выберите Выход (‘Exit’) и нажмите Enter.
Выберите Да и сохраните конфигурацию в файл
Под “Choose the platform type”, откройте пункт выбора нажатием Enter.
Из списка выберите [imx6q] и нажмите Enter для возврата.
Выберите профайл пакетов «packages profile». Из списка выберите «minimum profile» (выбран по умолчанию). Этот профайл установить только пакеты ядра и не будет иметь поддержки графического интерфейса. Если потребуется в будущем изменить профайл, это можно будет сделать через команду ./ltib -m
Выберите Exit и сохраните конфигурацию. Далее вы попадете на главный конфигурационный экран LTIB.
Пролистайте вниз до выбора платы для u-boot. Войдите в подменю для выбора u-boot
Выберите [mx6q_sabresd] и нажмите Enter.
Выберите ‘Exit’ и сохраните конфигурацию.
Далее продолжится процесс сборки, который займет еще более долгое время чем все предыдущие шаги. В результате у вас будет директория с утилитами и linaro ARM компилятором в /opt/freescale, а так же образ ОС под conga-QMX6 в подкаталоге rootfs каталога с которого вы выполняли установку.