Отладочная плата HawkBoard на базе процессора OMAP-L138. Часть 3
Напомним, что все действия будут проводиться в ОС Ubuntu 10.04, которая установлена как гостевая операционная система. В качестве базовой ОС используется Windows XP, а виртуализация осуществляется программой VirtualBox.
Для того чтобы пересобрать ядро Linux для отладочных плат на базе процессора OMAP-L138, необходимо выполнить следующие шаги:
- Установить комплект ПО для процессоров OMAP-L138 (так называемый SDK) компании Texas Instruments (TI), а также инструменты кросс-компиляции CodeSourcery. Эти вопросы были рассмотрены в предыдущей части статьи [2].
- Создать загрузчик U-Boot. Это необходимо сделать в первую очередь, так как создание ядра Linux требует наличие утилиты mkimage, которая получается вместе с созданием U-Boot.
- Создать образ ядра и файловой системы uImage. Как только образ будет создан, можно скопировать его в отладочную плату по TFTP-протоколу. Как это сделать, описано в первой части статьи [1].
Рассмотрим второй и третий шаги более подробно и вначале создадим загрузчик U-Boot. Предполагается, что в гостевой ОС Linux установлены SDK и кросс-компилятор CodeSourcery, кроме того, в переменной окружения $PATH присутствуют все необходимые пути. Если были выполнены рекомендации предыдущей статьи, эти условия выполнены. Убедиться в наличии требуемых значений переменной $PATH (рис. 1, сноска 2) можно выполнив команду echo $PATH (рис. 1, сноска 1) в терминальной программе (консоли) гостевой ОС.
Исходные файлы для создания U-Boot должны находиться в одной из папок каталога, куда был установлен пакет SDK. В рассматриваемом примере это папка OMAP-L138_arm_1_00_00_11/ DaVinci-PSP-SDK-03.20.00.11/src/u-boot/ в директории пользователя ubuntu. Необходимо запустить консоль и перейти в эту папку. Как это сделать, показано на рис. 2.
Выполнив команду ls -l (рис. 3, сноска 1), можно просмотреть содержимое каталога u-boot (рис. 3, сноска 2).
Необходимо распаковать архив u-boot-03.20.00.11.tar.gz. Данная операция может быть выполнена командой tar, как это показано на рис. 4.
После запуска команды tar в терминале будет отображаться процесс распаковки архива (рис. 5, сноска 1). Когда процесс завершится, можно ввести команду ls -l (рис. 5, сноска 2) и убедиться, что появился новый каталог uboot-03.20.00.11 (рис. 5, сноска 3), где и расположены исходные файлы для создания U-Boot. Теперь требуется перейти в созданный каталог, используя команду cd (рис. 5, сноска 4). Его содержание также можно просмотреть командой ls -l (рис. 5, сноска 5).
Для создания загрузчика U-Boot выполняются следующие команды:
make distclean CROSS_COMPILE=arm-none-linux-gnueabi- make da850_omapl138_evm_config CROSS_COMPILE=arm-none-linux-gnueabi- make all CROSS_COMPILE=arm-none-linux-gnueabi- |
Первая команда очищает результаты предыдущих компиляций U-Boot (рис. 6, сноска 1), вторая — конфигурирует новый процесс создания U-Boot (рис. 6, сноска 2) и, наконец, третья — запускает процесс создания U-Boot (рис. 6, сноска 3).
Результатом является создание файла u-boot.bin, который будет размещен в каталоге uboot-03.20.00.11, то есть в том же каталоге, куда были распакованы исходные файлы для создания U-Boot. Убедиться в том, что файл загрузчика создан, можно выполнив команду ls -l. Результат ее работы показан на рис. 7.
Выше был описан процесс создания загрузчика U-Boot с настройками по умолчанию. Можно изменить настройки в зависимости от конфигурации отладочной платы и требований ПО. Для этого необходимо скорректировать файл da850_evm.h, который расположен в папке include/configs/ директории uboot-03.20.00.11.
После компиляции утилита mkimage будет присутствовать в папке исходных файлов U-Boot. В рассматриваемом примере это папка /home/ubuntu/OMAP_L138_arm_1_00_00_11/DaVinci-PSP-SDK-03.20.00.11/src/u-boot/uboot-03.20.00.11/tools. Необходимо добавить путь к указанной папке в переменную $PATH, выполнив следующую команду:
export PATH=home/ubuntu/OMAP_L138_arm_1_00_00_11/DaVinci-PSP-SDK-03.20.00.11/src/u-boot/uboot-03.20.00.11/tools:$PATH |
Лучше всего добавить эту строчку в файл ~/.bashrc (рис. 8, сноска 1) и сохранить его (рис. 8, сноска 2). Как это сделать, подробно рассказано в предыдущей части статьи [2].
После этого можно задать настройки с помощью команды source ~/.bashrc (рис. 9, сноска 1) и убедиться в том, что путь в переменную $PATH добавлен, с помощью команды echo $PATH (рис. 9, сноска 2).
Архив с исходными файлами для создания образа ядра и файловой системы uImage (в рассматриваемом примере это linux-03.20.00.11.tar.gz) располагаются в папке kernel каталога OMAP-L138_arm_1_00_00_11/DaVinci-PSP-SDK-03.20.00.11/src/ домашней директории пользователя ubuntu. Поэтому переходим в папку kernel, используя команду cd (рис. 10, сноска 1), затем убеждаемся в наличии требуемого архива командой ls -l (рис. 10, сноски 2, 3) и распаковываем его командой tar (рис. 10, сноска 4).
После распаковки архива появится новая папка linux-03.20.00.11, где и располагаются исходные файлы. Необходимо перейти в эту папку, используя команду cd (рис. 10, сноска 5), и просмотреть ее содержание командой ls -l (рис. 10, сноски 6, 7).
В зависимости от чипа и используемой отладочной платы возможно изменение конфигурационных установок ядра и файловой системы. Большинство из этих установок включены в файл make, предоставляемый компанией TI, который может служить базовым для создания конфигураций образа uImage. Для начала можно использовать все настройки без изменений.
Дальнейшие команды создания образа uImage аналогичны командам, используемым при создании загрузчика U-Boot. Вначале необходимо удалить результаты предыдущих компиляций (рис. 11, сноска 1):
make distclean ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- |
Затем производится конфигурация нового процесса создания образа (рис. 11, сноска 2) в зависимости от выбранного типа процессора (в рассматриваемом примере это OMAP-L138):
make da850_omapl138_defconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- |
Следующий шаг — запуск утилиты конфигурации ядра и файловой системы:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig |
или
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- xconfig |
При первоначальном знакомстве с процессом компиляции нового образа ядра и файловой системы можно все настройки оставить без изменения. Этим настройкам планируется посвятить отдельную статью, так как этот процесс предполагает установку достаточно большого количества различных опций. И потому сейчас этот шаг пропускается.
И последнее: запускается процесс создания образа ядра и файловой системы (рис. 12, сноска 1):
make uImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- |
Созданный образ uImage размещается в папке arch/arm/boot (рис. 12, сноска 2). Теперь необходимо скопировать образ в место, где его можно использовать для загрузки в отладочную плату по протоколу TFTP. Эти процедуры были описаны в первой части статьи [1].
На этом краткий обзор процесса создания загрузчика, образа ядра и файловой системы закончен. Получить более подробную информацию можно здесь [3].
- Гук И. Отладочная плата HawkBoard на базе процессора OMAP-L138. Часть1 // Компоненты и технологии. 2010. № 7.
- Гук И. Отладочная плата HawkBoard на базе процессора OMAP-L138. Часть 2 // Компоненты и технологии. 2010. № 10.
- http://processors.wiki.ti.com/index.php/GSG:_Building_Software_Components_for_OMAP-L1/AM1x