...

пятница, 11 апреля 2014 г.

[Из песочницы] Установка и сборка образа Angstrom Linux для платы TechNexion Thunder

Набор разработчика от TechNexion Thunderpack




Thunder

Здравствуй уважаемый читатель. Недавно мне довелось поработать с набором для разработчика, тайваньской компании «TechNexion Ltd», под названием Thunderpack включающем в себя процессорный модуль TAO-3530 и плату Thunder.

Процессорный модуль основан на SoC (System-on-a-Chip) TI OMAP3530 фирмы Texas Instruments и содержит 256 Мб DDR RAM, 512 Мб NAND Flash, DSP ядро TMS320C64+, а так же может содержать модуль Wireless LAN для поддержки WiFi.

В данном посте я хочу рассказать, про свой опыт работы с данной платой.

И так, начнём.

TAO-3530



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

image

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

$cd /opt
$sudo mkdir codesourcery
$cd codesourcery
$sudo wget http://ift.tt/1sLeqlV
$sudo tar xvf arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2




image

Определяем переменные окружения. Для этого в файл /etc/environment дописываем:



export ARCH=arm
export CROSS_COMPILE=/opt/codesourcery/arm-2010.09/bin/arm-none-linux-gnueabi-


Создаем папку files в корневом каталоге, и копируем в неё исходные коды для создания образа Angstrom Linux 2.6.37.



$cd /
$sudo mkdir files
$cd files
$sudo wget http://ift.tt/1sLeqm1
$sudo tar xvf xukr-20131014-omap3.tar.xz




image

Устанавливаем uboot-mkimage.



$sudo apt-get install uboot-mkimage


Теперь необходимо перезагрузить систему для того, чтобы работали, нами установленные, переменные окружения.


Осталось подправить конфигурацию ядра для включения необходимых драйверов. Так как я буду собирать образ для платы Thunder, то путь до нужного мне файла конфигурации следующий:



/opt/files/xukr-20131014-omap3/kernel/linux-2.6.37-tn/arch/arm/configs/taotdm_defconfig


Файл конфигурации нужно открыть в любом удобном редакторе и включить интересующие опции. Я редактировал стандартным редактором файлового менеджера Midnight Commander.

Первое, что я посмотрел в файле конфигурации – это наличие включенного драйвера сетевой карты SMSC95xx.



CONFIG_USB_NET_SMSC95XX=y




Затем я включил компиляцию usb-serial драйверов.

CONFIG_USB_SERIAL=y




И включил поддержку самых распространенных чипов usb-serial PL2303 и CP210x.

CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_SERIAL_CP210X=y




Закрываем редактор, предварительно сохранив изменения в файле. Теперь всё готово для сборки ядра.

Переходим в каталог xukr-20131014-omap3

$cd /opt/files/xukr-20131014-omap3


И запускаем скрипт сборки с указанием названия платформы.



$sudo ./Build.sh thunder





Данный скрипт выполнит построение загрузчика, ядра ОС, копирование всех необходимых файлов в заранее подготовленную файловую структуру и т.п.


Затем очистки исходных кодов от созданных объектных файлов.



$sudo ./Clean.sh




И скрипт построения образа с указанием названия платформы.

$sudo ./mk_nandimg.sh thunder




После успешного завершения можете себя поздравить с созданием образа Angstrom Linux 2.6.37. Сам образ будет находиться в папке

/opt/files/xukr-20131014-omap3/build/thunder.

Осталось подготовить установочный SD-диск и установить. Данные действия описаны выше (см. Установка Linux 2.6.37).

После установки собранной системы у меня появилась сеть и поддержка usb-serial устройств.

image

Заключение




Разработчики TechNexion сделали очень удобный процесс сборки и создания образа загрузочного SD-диска не требующий глубоких познаний и опыта по сборке ядра Linux. Подготовленные ими скрипты делают всё в автоматическом режиме.

Единственно, как обычно, документация не успевает за разработчиками. Последний, на момент написания статьи, вариант документации (tao-3530-userguide-097.pdf) содержал описание сборки под старые исходники, который немного отличается.

Спасибо за внимание. В следующей статье я напишу про настройку Eclipse CDT для компиляции программ под arm, запуск приложения на Thunder и отладку программы в Eclipse.


До встречи.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий