- Wiki МЕНТОР ЭЛЕКТРОНИКС
- Инструменты пользователя
- Инструменты сайта
- Боковая колонна
- Содержание
- Компиляция Angstrom Linux для BlueShark
- Утилиты необходимые для сборки
- Установка необходимых утилит в Debian и Ubuntu
- Angstrom Linux stable
- Ядро 2.6.29 stable
- Создание окружения
- Создание конфигурации
- Компиляция файловой системы
- Результаты компиляции
- Компиляция ядра 2.6.29
- Angstrom Linux unstable
- Создание окружения
- Установка bitbake
- Создание конфигурации
- Установка окружения
- Компиляция файловой системы
- Ядро 2.6.32 unstable
- Компиляция без среды OE
- Компиляция в среде OE
- Установка и сборка образа Angstrom Linux для платы TechNexion Thunder
- Набор разработчика от TechNexion Thunderpack
- Установка Linux 2.6.37
- Сборка образа Angstrom Linux 2.6.37
- Заключение
Wiki МЕНТОР ЭЛЕКТРОНИКС
Инструменты пользователя
Инструменты сайта
Боковая колонна
Содержание
Компиляция Angstrom Linux для BlueShark
Очень полезная документация для тех, кто хочет в совершенстве овладеть приемами работы с OpenEmbedded: http://docs.openembedded.ru/index.html
Процедура сборки Angstrom Linux проверена на машинах:
Для компиляции Angstrom Linux потребуется около 15ГБ свободного места на диске. Время компиляции сильно зависит от:
На одноядерном процессоре время компиляции может занимать сутки.
Утилиты необходимые для сборки
* Python (версии 2.4.0 или более поздней), а также возможно ряд файлов которые иногда включают в пакет с питоном иногда нет, если сборка bitbake не удалась попробуйте поставить пакет python-dev или python-devel, в завимости от дистрибутива название может отличаться
* GNU Patch (версии 2.5.9 или более поздней)
* GNU make (Версии 3.80 или более поздней)
* Psyco JIT компилятор рекомендуется для ускорения сборки
* perl (нужна версия новее 5.0, скорее всего >=5.6.2 подойдет)
* bitbake (bitbake должна быть версии 1.8.6, именно с этой версией тестировалась сборка)
* Docbook DTDs и DSSSL stylesheets
* sgmltools, called «sgmltools-lite» too
* Texinfo версии выше 4.4
Установка необходимых утилит в Debian и Ubuntu
Angstrom Linux stable
Ядро 2.6.29 stable
В настоящее время в стабильной ветке компилируется именно ядро 2.6.29.
Создание окружения
Данные инструкции предполагают компиляцию Angstrom Linux в домашней директории пользователя, поэтому убедитесь, что ней достаточно места (не менее 6-15ГБ).
Войдите в домашнюю директорию пользователя:
Выполните следующие команды, которые скачивают хранилище файлов OpenEmbedded:
Обновите локальную копию хранилища OE:
Создание конфигурации
Сначала необходимо установить переменные окружения, для этого скачайте скрипт в директорию $
Чтобы создать конфигурацию OE именно для Beagleboard (BlueShark) выполните следующие действия:
1) Создайте директорию для файла конфигурации local.conf для платформы
2) Скопируйте пример конфигурации:
3) Добавьте в конец файла строку:
Компиляция файловой системы
Вы можете не тратить несколько часов и взять готовую файловую систему отсюда http://mentorel.com/downloads/blueshark/ и сразу же перейти к компиляции ядра.
Обратите внимание, что файловая система с меткой stable относится к стабильной, т.е. получена по инструкциям, использованным в этом разделе.
Чтобы собрать образ с поддержкой графического интерфейса наберите команду:
Если появилось следующее сообщение об ошибке:
то нужно выполнить следующую команду, выбрав ответ «NO»:
Результаты компиляции
По окончании работы утилиты bitbake вы должны увидеть следующую надпись:
Это означает, что в директории $
Имя | Размер |
---|---|
u-boot.bin | 193k |
uImage-2.6.29-r46-beagleboard.bin | 2.9M |
console-image-beagleboard.tar.bz2 | 9.2M |
x11-image-beagleboard.tar.bz2 | 21.1M |
modules-2.6.29-r46-beagleboard.tgz | 7.1M |
Beagleboard-demo | 131M |
Из этих файлов нам подойдут только файловые системы с консольным интерфейсом (Angstrom-console-image..) и графическим интерфейсом (Angstrom-x11-image..). u-boot, ядро и модули для него нам не подходят, т.к. они обеспечат только функционал Beagleboard, для которого не предусмотрена поддержка сетевого контроллера LAN9221 (однако этот контроллер поддерживается в OpenEmbedded для модуля OVERO).
Далее скомпилируем ядро Linux для BlueShark.
Компиляция ядра 2.6.29
С этим ядром также работает файловая система Beagleboard-demo, где присутствуют Internet браузер и другое интересное ПО.
Поддержка функций на платформе Atoll:
Обратите внимание, что все предыдущие действия приводят к компиляции кросс-компилятора GCC с патчами от OpenEmbedded. Применение именно собранного компилятора гарантирует 100% совместимость с файловой системой от OpenEmbedded и дает возможность использовать файловую систему от Koen или Narcissus.
Откройте файл $OETREE/build/conf/local.conf:
и выключите строку:
Ключ rm_work удаляет все промежуточные файлы при компиляции: исходные тексты, объекты и пр. Нам потребуются исходники ядра плюс весь необходимый набор патчей от OpenEmbedded. Можно, конечно, подготовить всё вручную, но проще и с наименьшими ошибками выполнить так.
Таким образом мы выключили удаление исходников при компиляции. Теперь пересоберем ядро для Beagleboard и, наконец, получим необходимое окружение для дальнейшей работы с ядром:
Теперь в директории «$OETREE/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git» находятся исходные тексты ядра 2.6.29 с уже примененными патчами для Beagleboard.
Добавим к ядру патчи для модуля BlueShark и отладочных плат Atoll. Для этого зайдите в директорию «$OETREE/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git», скачайте набор патчей http://mentorel.com/downloads/blueshark/blueshark-2.6.29.patches.tgz и распакуйте архив прямо в корень исходников ядра:
Теперь можно применить исправления для BlueShark:
Скачаем файл конфигурации ядра:
Чтобы настроить конфигурацию ядра используют команду:
Компиляция ядра (обратите внимание на опцию -j2, в ней вы задаете кол-во ядер процессора на вашем компьютере):
Установите модули в файловую систему на SD-карточке:
В результате получаем бинарник, который необходимо записать на SD-карту (партицию FAT32) и можно загружать платформы, основанные на модуле BlueShark.
Angstrom Linux unstable
Далее описаны действия, верные для всех версий ядра нестабильной ветки:
Создание окружения
Войдите в домашнюю директорию пользователя:
Выполните следующие команды, которые скачивают хранилище файлов OpenEmbedded:
Обновите локальную копию хранилища OE:
Установка bitbake
Лучше использовать локальную версию утилиты bitbake, чем устанавливать её в Linux.
Создание конфигурации
Теперь необходимо исправить файл «build/conf/local.conf», добавив в него следющие строки:
Также, если у вашего ПК многоядерный процессор, то можно ускорить компиляцию, установив следующие параметры:
Описания этих параметров вы найдете в файле «build/conf/local.conf».
Внимание! Чтобы сократить количество расходуемого места на диске добавьте опцию:
Также можете указать, где у вас находится хранилище пакетов или куда именно они будут скачены:
Сохраните файл «build/conf/local.conf».
Установка окружения
Компиляция файловой системы
Вы можете не тратить несколько часов и взять готовую файловую систему отсюда
http://www.angstrom-distribution.org/demo/beagleboard/Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2 или http://mentorel.com/downloads/blueshark/ и сразу же перейти к компиляции ядра. Обратите внимание, что файловую систему Beagleboard-demo собрать самому практически нереально, т.к. требуется разрешить зависимости для очень многих пакетов. При этом используется ПО от Texas Instruments, поставляемое по соглашению. Использовать сборки от Beagleboard-сообщества намного проще и быстрее.
Зайдите в папку build и наберите команды:
Внимание, компиляция обычно занимает несколько часов и не всегда завершается успешно, т.к. это нестабильная ветка.
Ядро 2.6.32 unstable
Компиляция без среды OE
Ядро Linux 2.6.32-r78 можно скомпилировать без громоздкой системы OpenEmbedded. Для этого выполняют следующие шаги:
4) Теперь необходимо распаковать все исходники:
5) Накладываем исправления для BlueShark:
6) Настраиваем конфигурацию ядра:
7) Собственно сама компиляция
8) Модули можно скомпилировать с помощью команды
Либо использовать готовые, т.к. модули одинаковы для всех платформ одной архитектуры:
http://mentorel.com/downloads/blueshark/demo/modules-2.6.32-r78.tgz
Компиляция в среде OE
Поддержка функций на платформе Atoll.
Есть поддержка всех функций, включая:
Откройте файл $OETREE/build/conf/local.conf и выключите строку:
Ключ rm_work удаляет все промежуточные файлы при компиляции: исходные тексты, объекты и пр. Нам потребуются исходники ядра плюс весь необходимый набор патчей от OpenEmbedded. Можно, конечно, подготовить всё вручную, но проще и с наименьшими ошибками выполнить так.
Теперь пересоберем ядро для Beagleboard и, наконец, получим необходимое окружение для дальнейшей работы с ядром:
Теперь в директории «$OETREE/build/tmp/work/beagleboard-angstrom-linux-gnueabi/linux-omap-psp-2.6.32-r78+gitra6bad4464f985fdd3bed72e1b82dcbfc004d7869/git» находятся исходные тексты ядра 2.6.32 с уже примененными патчами для Beagleboard.
Добавим к ядру патчи для модуля BlueShark и отладочных плат Atoll. Для этого зайдите в директорию «$OETREE/build/tmp/work/beagleboard-angstrom-linux-gnueabi/linux-omap-psp-2.6.32-r78+gitra6bad4464f985fdd3bed72e1b82dcbfc004d7869/git», скачайте набор патчей http://mentorel.com/downloads/blueshark/blueshark-2.6.32-r78.patches.tgz и распакуйте архив прямо в корень исходников ядра:
Теперь можно применить исправления для BlueShark:
Скачаем файл конфигурации ядра:
Чтобы настроить конфигурацию ядра используют команду:
Компиляция ядра (обратите внимание на опцию -j2, в ней вы задаете кол-во ядер процессора на вашем компьютере):
Установите модули в файловую систему на SD-карточке:
В результате получаем бинарник, который необходимо записать на SD-карту (партицию FAT32) и можно загружать платформы, основанные на модуле BlueShark.
Источник
Установка и сборка образа Angstrom Linux для платы TechNexion Thunder
Набор разработчика от TechNexion Thunderpack
Установка Linux 2.6.37
После беглого прочтения документации, сборки и включения Thunder я приступил к установке Linux. Скажу сразу, что через предлагаемый по умолчанию способ установки у меня установить не получилось. Происходил постоянный перезапуск процедуры установки. Поэтому я зашел на сайт TechNexion и скачал, любезно подготовленный и выложенный ими, образ содержащий Linux 2.6.37.
По инструкции указанной в документации (раздел 9.4.1 Create the SD-card with the rescue image in a Windows environment) я подготовил SD-карту для установки Linux 2.6.37 и выполнил установку.
После установки система благополучно загрузилась, но меня ожидало разочарование т.к. сеть не заработала. Начал искать информацию по сетевой карте.
В конце документации на плату приведены схемы на Thunder (раздел 16.2 Thunder baseboard schematics) на схеме видно, что сетевой картой является конвертор USB-Ethernet собранный на контроллере SMSC LAN9500-ABZJ фирмы Microchip. Поискав драйвер, в только что установленной системе, я его не обнаружил. Возможно, при сборке его забыли включить.
На сайте TechNexion, помимо готовых образов, выложены исходные коды для сборки образа вручную. Скачав «TAO-3530 Linux 2.6.37 / TI PSP 04.02.00.07 XUKR Source code» оказалось, что драйвер для нужной мне сетевой карты присутствует и включен для сборки. Осталось только пересобрать образ.
Сборка образа Angstrom Linux 2.6.37
Сборку образа я выполнял на Ubuntu 12.04, предварительно установив её на VirtualBox. В документации на Thunder разработчики советуют выполнять сборку, используя Toolchain Code Sourcery G++ 2010.09-50 (gcc 4.5.1). Хочу обратить ВНИМАНИЕ, что для сборки образа Angstrom Linux 2.6.37, предоставляемого разработчиками TechNexion, следует разворачивать именно Code Sourcery G++ 2010.09-50.
Первым делом скачиваем arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 или с сайта Mentor Graphics и распаковываем в папку /opt/codesourcery.
Определяем переменные окружения. Для этого в файл /etc/environment дописываем:
Создаем папку files в корневом каталоге, и копируем в неё исходные коды для создания образа Angstrom Linux 2.6.37.
Теперь необходимо перезагрузить систему для того, чтобы работали, нами установленные, переменные окружения.
Осталось подправить конфигурацию ядра для включения необходимых драйверов. Так как я буду собирать образ для платы Thunder, то путь до нужного мне файла конфигурации следующий:
Файл конфигурации нужно открыть в любом удобном редакторе и включить интересующие опции. Я редактировал стандартным редактором файлового менеджера Midnight Commander.
Первое, что я посмотрел в файле конфигурации – это наличие включенного драйвера сетевой карты SMSC95xx.
Затем я включил компиляцию usb-serial драйверов.
И включил поддержку самых распространенных чипов usb-serial PL2303 и CP210x.
Закрываем редактор, предварительно сохранив изменения в файле. Теперь всё готово для сборки ядра.
Переходим в каталог xukr-20131014-omap3
И запускаем скрипт сборки с указанием названия платформы.
Данный скрипт выполнит построение загрузчика, ядра ОС, копирование всех необходимых файлов в заранее подготовленную файловую структуру и т.п.
Затем очистки исходных кодов от созданных объектных файлов.
И скрипт построения образа с указанием названия платформы.
После успешного завершения можете себя поздравить с созданием образа Angstrom Linux 2.6.37. Сам образ будет находиться в папке
/opt/files/xukr-20131014-omap3/build/thunder.
Осталось подготовить установочный SD-диск и установить. Данные действия описаны выше (см. Установка Linux 2.6.37).
После установки собранной системы у меня появилась сеть и поддержка usb-serial устройств.
Заключение
Разработчики TechNexion сделали очень удобный процесс сборки и создания образа загрузочного SD-диска не требующий глубоких познаний и опыта по сборке ядра Linux. Подготовленные ими скрипты делают всё в автоматическом режиме.
Единственно, как обычно, документация не успевает за разработчиками. Последний, на момент написания статьи, вариант документации (tao-3530-userguide-097.pdf) содержал описание сборки под старые исходники, который немного отличается.
Спасибо за внимание. В следующей статье я напишу про настройку Eclipse CDT для компиляции программ под arm, запуск приложения на Thunder и отладку программы в Eclipse.
Источник