Компоненты и технологии • №3 '2010 компоненты



Скачать 74.34 Kb.
Pdf просмотр
Дата11.02.2017
Размер74.34 Kb.
Просмотров250
Скачиваний0

60
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2010
компоненты
ЦСП
Игорь Гук
gii@scanti.ru
В
OpenEmbedded используется пакет BitBake, который предна- значен для выполнения задач управления процессом создания дистрибутива Linux. BitBake имеет так называемые файлы- рецепты. Они содержат исходный адрес пакета, зависимости, а также опции компиляции и инсталляции. Среда ОE использует инфор- мацию из этих рецептов для отслеживания зависимостей, кросс- компиляции и создания бинарных пакетов. В процессе компиляции создается полный набор образов, включая загрузчик, ядро и корне- вую файловую систему. Для получения более подробной информа- ции читайте руководства по OpenEmbedded [3] и BitBake [4].
Прежде всего, на PC должен быть установлен один из последних дис- трибутивов Linux. Рекомендуется использовать Ubuntu 9.10. Именно для этого дистрибутива будет показан пример построения среды ком- пиляции и создания образа операционной системы Linux. Если вы ис- пользуете операционную систему Windows, тогда можно посоветовать установить Ubuntu в виртуальную машину. Автор использует виртуаль- ную машину VirtualBox [5], где устанавливается операционная система
Ubuntu 9.10, под которую выделяется не менее 15 Гбайт пространства на жестком диске. Если вам необходимо использовать другие дистрибу- тивы, тогда обратитесь к документации по OpenEmbedded [6].
Первое, что необходимо выполнить, — это инсталлирование паке- та GIT. Данный пакет является программным обеспечением с откры- тым исходным кодом и был разработан Линусом Торвальдсом для управления версиями ядра Linux. Теперь GIT — это распределенная бесплатная система управления проектами, которая обеспечивает:
ветвление версий проекта;
• поддержку автономной работы, локальные изменения могут быть
• синхронизированы позже;
распространение фиксации изменений на весь проект;
• хранение полной истории проекта в каждом дереве GIT;
• равноправность всех хранилищ GIT.

Инсталляция GIT выполняется командой apt-get install git-core.
Выполнить эту команду необходимо в консоли от имени супер- пользователя (пользователя root), то есть с опцией sudo. Вначале за- пустите в Ubuntu консоль (терминал), как это показано на рис. 1.
А затем в появившемся окне терминала необходимо набрать коман- ду инсталляции (рис. 2, п. 1) и выполнить ее, нажав клавишу «Ввод».
Если команда с приставкой sudo в терминале вводится первый раз или вводилась уже давно, может потребоваться пароль, который был
В предыдущей статье [1] было рассмотрено, как запустить готовый об-
раз операционной системы Linux на отладочной плате BeagleBoard [2].
Теперь настало время разобраться, как самостоятельно создать такой
образ. В статье будет рассмотрен первый шаг на этом пути — построение
среды компиляции для создания собственного дистрибутива Linux. Одним
из возможных вариантов реализации этого этапа является использование
OpenEmbedded (OE). Пакет ОЕ представляет собой инструмент создания
Linux-дистрибутивов для встраиваемых систем на базе различных архитек-
тур. Использование ОE позволяет построить все с нуля, загрузив исходный
код и необходимые кросс-компиляторы.
Создание дистрибутива Linux
для процессоров OMAP3x
Рис. 1. Запуск консоли в Ubuntu
Рис. 2. Инсталляция системы управления GIT

61
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2010
www.kite.ru
компоненты
ЦСП
определен при инсталляции системы Ubuntu (пример такого запроса можно видеть на рис. 3, п. 2). При введении пароля необходимо быть очень внимательным, так как он не отображается, даже звездочками.
После его набора нажмите «Ввод».
Вначале система будет проверена на наличие необходимых ком- понентов. Появится сообщение с результатом сканирования и пред- ложением продолжить установку (рис. 2, п. 2). Необходимо ответить положительно: ввести латинскую букву «y» (Yes) и нажать «Ввод».
Процесс установки проходит достаточно быстро. По завершению процесса появится консольное приглашение для введения новой ко- манды (последняя строка на рис. 2).
Обратите внимание, что при инсталляции этого и всех последую- щих дополнительных пакетов необходимо подключение к Интернету.
При использовании виртуальной машины подключение к Интернету должно быть у базовой (host) машины. Подключение к Интернету гостевых виртуальных машин, созданных в VirtualBox, происходит автоматически, при помощи механизма NAT (эта настройка для сети стоит в VirtualBox по умолчанию).
Следующий шаг — инсталлирование ряда так называемых дополне- ний, зависимостей и «заплаток». Этот шаг характерен для операционных систем на базе Linux, где при установке одной программы приходится устанавливать целый ряд дополнительных, возможности которых уста- навливаемая программа использует. В данном случае дополнительные компоненты необходимы для корректной работы кросс-компилятора, позволяющего создавать программный код для архитектуры ARM.
Первое, что необходимо установить, — это build-essential. Это до- полнение содержит информацию о том, какие пакеты необходимы при создании собственного дистрибутива Linux для встраиваемых систем.
Установка выполняется командой apt-get install build-essential, запу- скаемой от имени суперпользователя так, как это показано на рис. 3.
Инсталляция проходит по уже знакомому сценарию: запуск команды
(рис. 3, п. 1), при необходимости ввод пароля (рис. 3, п. 2), сканирование системы и подтверждение дальнейшей установки (рис. 3, п. 3). Процесс завершается появлением консольного приглашение для введения новой команды (на рис. 3 окончание процесса инсталляции не показано).
Затем устанавливаются следующие пакеты:
help2man — автоматический генератор простых страниц руко-
• водств.
diffstat — программа-фильтр, позволяющая оценить различия,
• которые происходят, например, при наложении так называемых
«патчей» («заплаток»).
texi2html — Perl-скрипт, который преобразует texinfo-файлы
• в HTML-файлы.
cvs — система управления версиями, позволяющая хранить старые
• копии файлов, например, исходные тексты программ, регистрировать изменения этих файлов, а также кто, когда и почему их выполнил.
gawk — GNU-реализация языка программирования AWK.
• texinfo — система документирования, использующая единый ис-
• ходный файл для создания встроенной программной справки, а также подготовки документации для печати.
subversion — еще одна система управления версиями, иногда назы-
• вается “svn”, она позволяет множеству разработчиков (даже распре- деленных географически) совместно работать над одним проектом
(чаще всего это файлы с исходными текстами программ).
Более подробную информацию об устанавливаемых дополне- ниях можно получить в [7]. Этот сайт содержит достаточно пол- ную информацию о пакетах Debian, на которых базируется система
Ubuntu.
Все перечисленные выше пакеты также устанавливаются от имени суперпользователя. Для этого необходимо выполнить сле- дующую команду: apt-get install help2man diffstat texi2html cvs gawk
texinfo subversion.
Процесс инсталляции показан на рис. 4. Он стандартен: запуск ко- манды (рис. 4, п. 1), ввод пароля (рис. 4, п. 2), сканирование системы, подтверждение установки (рис. 4, п. 3) и, наконец, установка, завер- шающаяся приглашением ввести новую команду (рис. 4, п. 4).
Можно, но необязательно, инсталлировать пакет Psyco — компи- лятор, для повышения скорости работы BitBake. Для его установки запустите от имени суперпользователя, как это показано на рис. 5, команду apt-get install python-psyco.
При использовании дистрибутива Ubuntu вероятнее всего, что ссылка “/bin/sh” связана с “/bin/dash”. Необходимо связать ссылку
“/bin/sh” с “/bin/bash”. Игнорирование этого приводит к искажению файла инициализации создаваемой системы, и полученный в ре- зультате компилирования образ не будет загружаться! Выполните от имени суперпользователя команду dpkg-reconfigure dash (рис. 6).
Рис. 3. Установка пакета build-essential
Рис. 4. Установка дополнительных пакетов
Рис. 5. Установка компилятора Psyco

62
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2010
компоненты
ЦСП
В процессе выполнения команды появится окно, вид которого при- веден на рис. 7, где необходимо выбрать «Нет» при ответе на вопрос, не хотите ли вы установить dash как “/bin/sh”.
Следующий шаг — создание в домашней директории папки, где будут размещаться все данные, необходимые для создания дистрибу- тива, а также сам результат работы: образы ядра, загрузчика и файло- вой системы.
В рассматриваемом примере создание дистрибутива проходит в домашней директории пользователя с именем “ubuntu”. Папка, где будут располагаться все рабочие материалы, называется “oe”. Для ее создания необходимо запустить команду mkdir -p oe.
Теперь необходимо перейти в созданную папку. Это выполняется командой cd oe. На рис. 8 показано, как это сделать.
Следующее, что требуется, — получить исходные файлы для сборки собственной системы Linux (около 250 Мбайт). Если сервер не очень загружен и есть широкополосный доступ в сеть, этот шаг может занять не менее 15 минут. Необходимо как минимум 10 Гбайт свободного пространства на жестком диске для того, чтобы сделать полную сборку ядра и образа корневой файловой системы (именно по этой причине необходимо было выделить не менее 15 Гбайт под виртуальную машину).
В рамках пакета OE существует несколько проектов создания дис- трибутивов для встроенных систем. В статье рассматривается по- строение системы Arago [8]. Получить специфические файлы си- стемы Arago можно запустив команду git clone http://arago-project.
org/git/arago.git (рис. 9).
Процесс занимает 5–10 мин и заканчивается приглашением ввести новую команду.
Теперь необходимо получить файлы OE для Arago (рис. 10): git
clone http://arago-project.org/git/arago-oe-dev.git.
После загрузки всех компонентов (а это займет более 10 мин) вновь появится приглашение ввести новую команду.
И, наконец, необходимо получить файлы BitBake для Arago.
Процесс протекает достаточно быстро — 2–3 мин. Для его запуска нужно выполнить следующую команду (рис. 11): git clone http://arago-
project.org/git/arago-bitbake.git.
На этом процесс получения необходимых исходных файлов за- кончен. В результате в директории “oe” должна быть сформирована структура папок, показанная на рис. 12.
Следующий шаг — получение и установка кросс-компилятора для непосредственного преобразования исходных файлов в требуе- мые образы ядра, файловой системы и загрузчика формируемого дистрибутива Linux.
Вначале создадим директорию, где будет располагаться кросс- компилятор. Процедура такая же, как и при создании директории “oe”.
Необходимо выполнить следующую команду от имени суперпользо- вателя (рис. 13): mkdir /opt.
Рис. 6. Реконфигурация символьных ссылок
Рис. 7. Настройка пакета dash
Рис. 8. Создание рабочей директории и переход в нее
Рис. 11. Получение файлов BitBake для Arago
Рис. 10. Получение файлов OE для Arago
Рис. 9. Получение специфических файлов системы Arago
Рис. 12. Структура папок с исходными файлами системы Arago
Рис. 13. Создание директории для установки кросс-компилятора

63
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2010
www.kite.ru
компоненты
ЦСП
Обратите внимание, что директория “opt” может существовать, так как является доста- точно типичной для различных дистрибути- вов Linux и автоматически создается при их инсталляции. В этом случае повторно созда- вать ее не надо.
Теперь нужно получить инсталляцион- ный бинарный файл кросс-компилятора для процессоров на базе архитектуры ARM. Это можно сделать командой (рис. 14): wget http://
www.codesourcery.com/sgpp/lite/arm/portal/
package4573/public/arm-none-linux-gnueabi/
arm-2009q1-203-arm-none-linux-gnueabi.bin.
Объем файла большой, поэтому его загрузка может занять более получаса. После получения нужно установить кросс-компилятор в дирек- торию “opt”. Но вначале требуется сделать за- груженный файл исполняемым. Эта процедура выполняется командой (рис. 15, п. 1): chmod +x
arm-2009q1–203-arm-none-linux-gnueabi.bin.
Теперь нужно запустить инсталляцию кросс-компилятора командой (рис. 15, п. 2):
./chmod +x arm-2009q1–203-arm-none-linux-
gnueabi.bin.
Обратите внимание, что команды выпол- няются от имени суперпользователя.
Последняя команда запустит инсталлятор кросс-компилятора с графическим интер- фейсом (рис. 16).
Мастер установки прост и понятен, необ- ходимо только внимательно читать сопро- вождающие процесс установки инструкции.
Вначале подтвердите свое согласие с лицен- зионным соглашением, установив галочку в соответствующем пункте и нажав кнопку
Next (рис. 17).
Затем выберите тип инсталляции Custom и снова нажмите кнопку Next (рис. 18).
Выбрать указанный тип установки необ- ходимо для того, чтобы иметь возможность определить, где будет инсталлирован кросс- компилятор. В тот момент, когда процесс дойдет до выбора директории установки компилятора (рис. 19, п. 1), необходимо на- жать кнопку “Choose…” (рис. 19, п. 2).
В появившемся окне нужно выбрать ди- ректорию, где должна размещаться папка с компилятором (рис. 20, п. 1), затем нажать кнопку с изображением домика (рис. 20, п. 2) для создания папки и в появившемся пустом прямоугольнике набрать требуемое имя (рис. 20, п. 3). В рассматриваемом при- мере необходимо набрать имя “arm-2009q1” и нажать «Ввод». Окончательно подтвердить выбор папки нужно нажатием клавиши Select
(рис. 20, п. 4).
Рис. 14. Получение установочного файла кросс-компилятора
Рис. 15. Установка кросс-компилятора
Рис. 16. Запуск графической оболочки инсталлятора кросс-компилятора
Рис. 17. Подтверждение лицензионного соглашения
Рис. 18. Выбор типа инсталляции
Рис. 19. Выбор произвольной директории установки
Рис. 20. Создание директории установки

64
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2010
компоненты
ЦСП
Дальнейшая инсталляция не должна вызвать затруднений, так как можно согласиться с предложенными по умолчанию настройками.
Завершается процесс установки кросс-компилятора подключением к Интернету и загрузкой «Руководства пользователя» (рис. 21).
Следующий шаг — получение дополнительного инструментария для создания дистрибутива Arago, что выполняется командой (рис. 22)
wget http://arago-project.org/files/short-term/extras/arago-csl-sdk.tar.bz2.
После закачки архива его необходимо распаковать в директорию установки кросс-компилятора следующей командой с правами супер- пользователя (рис. 23): tar xjf arago-csl-sdk.tar.bz2 –C/opt/arm-2009q1/.
Для удобства дальнейшей работы рекомендуется установить фай- ловый менеджер «mc». Он устанавливается от имени суперпользова- теля следующей командой (рис. 24): apt-get install mc.
Теперь запустите его командой “mc”, зайдите вначале в папку
“/home/ubuntu/oe/arago” и сделайте в этой же папке копию файла
“setenv.sample” с новым именем “setenv” (рис. 25), для чего выдели- те его и нажмите мышкой кнопку «5» внизу файлового менеджера.
Появится окно копирования файлов, где указывается, куда и с каким именем необходимо поместить файл. Укажите требуемое имя и на- жмите кнопку «Дальше» (рис. 25).
Точно такую же операцию проделайте для файла “local.conf.
sampele”, расположенного в папке “/home/ubuntu/oe/arago”, сделав копию с именем “local.conf”.
Как нетрудно догадаться, эти файлы являются примерами конфигу- рационных файлов для процесса создания собственного дистрибутива
Linux для встраиваемых систем. После выполнения операций копиро- вания закройте файловый менеджер, нажав кнопку «10» внизу.
А теперь настроим переменные окружения. Первое, что необходи- мо сделать, — это отредактировать файл “/etc/sysctl.conf”, установив значение “vm.mmap_min_addr = 0”. Это удобно выполнить в тексто- вом редакторе файлового менеджера, поэтому запустите его с права- ми суперпользователя, как это показано на рис. 26.
Затем перейдите в папку “/etc/”, выделите файл “sysctl.conf” и от- кройте его в текстовом редакторе, нажав мышкой кнопку «4». В конце файла допишите строку “vm.mmap_min_addr = 0” (рис. 27), сохрани- те изменения, нажав сочетание клавиш “Ctrl+O”, и подтвердите из- менение файла, нажав клавишу «Ввод». Затем выйдите из текстового редактора, нажав одновременно “Ctrl+X”.
Теперь закройте файловый менеджер, терминал и перезагрузите систему, чтобы изменения вступили в силу.
После перегрузки необходимо снова запустить файловый менед- жер, перейти в папку “/home/ubuntu/oe” и выполнить следующие команды настройки оставшихся переменных окружения: export
OEBASE=/home/ubuntu/oe; export PATH=/opt/arm-2009q1/bin:$PATH;
source arago/setenv.
Рис. 21. Загрузка «Руководства пользователя»
Рис. 22. Загрузка дополнительного инструментария для Arago
Рис. 23. Распаковка дополнительного инструментария
Рис. 24. Инсталлирование файлового менеджера
Рис. 25. Инсталлирование файлового менеджера
Рис. 26. Запуск файлового менеджера с правами суперпользователя

65
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2010
www.kite.ru
компоненты
ЦСП
Обратите внимание, что три последние команды необходимо вво- дить каждый раз, после перегрузки системы.
После этого введите и запустите команду тестирования bitbake.
Все эти команды приведены на рис. 28.
Если процесс установки был выполнен корректно, тогда, спу- стя некоторое время, должна появиться информация, показанная на рис. 29.
На этом процесс формирования среды компиляции дистрибутива
Linux для встраиваемых систем завершен. Планируется в следующих статьях данного цикла рассмотреть, как изменить и настроить файлы конфигурации для получения дистрибутива под конкретную платфор- му с требуемыми свойствами.
В заключение хотелось бы выразить огромную благодарность Илье
Чепурину, инженеру технической поддержки московского предста- вительства компании Texas Instruments, который консультировал автора при написании данного материала. n
Литература
1. Операционная система Linux на отладочной плате BeagleBoard // Компоненты и технологии. 2010. № 1.
2.
www.beagleboard.org
3.
http://docs.openembedded.org/usermanual/usermanual.html
4.
http://bitbake.berlios.de/manual/
5.
http://www.virtualbox.org/
6.
http://wiki.openembedded.net/index.php/OEandYourDistro
7.
http://packages.debian.org/ru/
8.
http://arago-project.org/git/people/vaibhav/ti-psp-omap-video.git? p=people/
vaibhav/ti-psp-omap-video.git; a=summary
Рис. 27. Редактирование файла “sysctl.conf”
Рис. 28. Настройка переменных окружения и запуск теста
Рис. 29. Успешное прохождение теста



Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал