What is angstrom linux

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 вы должны увидеть следующую надпись:

Читайте также:  Перенаправление отключить принтер windows

Это означает, что в директории $/angstrom-dev/deploy/glibc/images/beagleboard находятся:

Имя Размер
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-сообщества намного проще и быстрее.

Читайте также:  Раздел recovery как восстановить windows

Зайдите в папку 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. Поискав драйвер, в только что установленной системе, я его не обнаружил. Возможно, при сборке его забыли включить.

Читайте также:  What is windows aero snap

На сайте 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.

Источник

Оцените статью