OpenEmbedded/Установка

Материал из b4wiki

Перейти к: навигация, поиск

Установка OpenEmbedded

Для начала надо проверить, установлено ли в системе все необходимое. Для этого идем сюда: http://wiki.openembedded.net/index.php/OEandYourDistro и устанавливаем все необходимое из списка в соответствии с дистрибутивом. Кроме BitBake.

Немного о пути к файлам. Допустим что у нас OpenEmbedded будет жить в домашнем каталоге. Соответственно все приведенные ниже пути будут начинаться с /home/user, где user - имя вашей домашней директории. Сам OpenEmbedded будет жить в папке oe. T.е. полный путь будет

 /home/user/oe

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

BitBake:

 svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ bitbake

Когда subversion закончит - у нас будет BitBake, готовый собирать изо всех сил. Соответственно полный путь к нему будет

 /home/user/oe/bitbake.

OpenEmbedded:

 git clone git://git.openembedded.net/openembedded

После того как git закончит - у нас будет полный набор софта для работы с OpenEmbedded:


 /home/user/oe
             |-- bitbake
             |   `-- ......
             `-- openembedded
                 |-- COPYING.MIT
                 |-- MAINTAINERS
                 |-- README
                 |-- classes
                 |-- conf
                 |-- contrib
                 |-- files
                 |-- packages
                 |-- removal.txt
                 `-- site


Настройка

Все необходимое у нас есть, надо это все настроить. Это не так сложно. Настраивать будем для hp hx4700 и в качестве дистрибутива выберем Аngstrom.

Никуда не уходим из директории oe - все дальнейшие команды выполняются прямо из нее.

Создадим в директории oe директорию build, а в ней conf:

 mkdir -p build/conf

Теперь нам надо создать место для исходников:

 mkdir sources

Если настраиваем под b4 - нам сюда

За основу главного конфига возьмем файл openembedded/conf/local.conf.sample:

 cp  openembedded/conf/local.conf.sample build/conf

Заточим этот конфиг под наши нужды:

DL_DIR - он указывает на директорию, в которую будут скачиваться исходники.

 DL_DIR = "${HOME}/oe/sources"

BBFILES - путь к коллекции *.bb файлов. В нашем случае:

 BBFILES = "${HOME}/oe/openembedded/packages/*/*.bb"

BBMASK - маска для исключения из обработки некоторых *.bb файлов. В нашем случае оставляем как есть - пустую.

 BBMASK = ""

Пропускаем все до параметра MACHINE - выбираем платформу, под которую собирать. В нашем случае - hx4700

 MACHINE = "hx4700"

А вот и настала очередь выбора дистрибутива - за него отвечает параметр DISTRO:

 DISTRO = "angstrom-2008.1"

Если нам повезло, и у нас многопроцессорная система - имеет смысл воспользоваться этим и собирать в несколько параллельных потоков:

 PARALLEL_MAKE = " -j 4"

ACHTUNG: если при сборке возникают какие-то ошибки - всему виной может стать именно этот параметр. Так что в случае возникновения проблемм - надо попробовать его закомментировать.

Теперь смело идем в конец файла и комментируем там строчку: REMOVE_THIS_LINE:="${@bb.fatal('Read the comments in your conf/local.conf')}"

С конфигом покончено. Установим переменные окружения в шелле. Я использую для этого source-файл:

source-me.tcsh:

 setenv PATH "/home/yl/oe/bitbake/bin:"$PATH
 setenv BBPATH "/home/yl/oe/openembedded:/home/yl/oe/build:"

Это работает в tcsh, если у вас bash или что-то еще - надо будет немного подправить.

Устанавливаем окружение при помощи нашего source-файла, переходим в директорию build и проверяем работоспособность:

 cd build
 bitbake helloworld

Появится что-то вроде:

 NOTE: Handling BitBake files: | (0101/6400) [ 1 %]

Это значит, что конфиг мы настроили правильно, и BitBake уже парсит коллекцию *.bb файлов.

Если дальше понеслись страшные строки, вида:

 NOTE: Running task 23 of 448 (ID: 47,
     /home/urx/oe/openembedded/packages/quilt/quilt-native_0.46.bb,
     do_configure)
 NOTE: package quilt-native-0.46: started
 NOTE: package quilt-native-0.46-r2: task do_configure: started
 NOTE: package quilt-native-0.46-r2: task do_configure: completed
 NOTE: package quilt-native-0.46: completed
 NOTE: Running task 24 of 448 (ID: 200,
     /home/urx/oe/openembedded/packages/gnu-config/gnu-config-native_20050701.bb,
     do_setscene)

значит все хорошо - парсинг прошел успешно и началась сборка. Теперь BitBake соберет все необходимые программы для cross-компиляции и ими соберет пакет helloworld.

пример настройки для проекта b4...
разное