Здравствуй, мир! Сборка.
Практически у всех программистов первой программой была Hello, world! Она говорила — Здравствуй, мир! и завершалась. Первый дистрибутив на базе OpenEmbedded будет делать то же самое. Но для этого придется немного попотеть.
Вам потребуется следующее:
- Компьютер с установленным дистрибутивом Linux Ubuntu.
- Желание установить и умение читать.
- Интернет канал, желательно безлимитный.
Если у вас есть все требуемое, запускайте терминал. Для начала запустим установку необходимых программного обеспечения:
sudo apt-get install make gcc g++ ccache sed wget cvs \ subversion git-core git coreutils unzip texi2html texinfo \ libsdl1.2-dev docbook-utils gawk python-pysqlite2 \ diffstat help2man libxml2-utils xmlto \ python-psyco linux-headers-`uname -r` |
В случае если у вас достаточно быстрый интернет, то установка займет где-то полчаса. Если же нет, то это отнимет больше времеи.
Как только все программы установятся, cоздаем каталог для опытов и переходим в нее:
exit mkdir -p ~/stuff/build/conf cd ~/stuff |
Далее установливаем bitbake. Для этого с сайта bitbake скачиваем и распаковываем последний релиз:
wget http://download.berlios.de/bitbake/bitbake-1.8.12.tar.gz tar -xzvf bitbake-1.8.12.tar.gz mv bitbake-1.8.12 bitbake |
Следующим шагом идет получение репозитория OpenEmbedded. Для его получения запускаем:
git clone git://git.openembedded.net/openembedded |
Если вдруг доступен только http (злые админы закрыли интернеты) то пробуем получить его через http:
git clone http://repo.or.cz/r/openembedded.git |
Note:
В дальнейшем для обновления репозитария будет достаточно перейти в каталог stuff/openembedded:
cd ~/stuff/openembedded git pull |
Учтите, репозиторий довольно большой, так что качается довольно долго. Когда он скачается, необходимо создать конфигурационный файл сборки. Воспользуемся примером из репозитория:
cd ~/stuff/ cp openembedded/conf/local.conf.sample build/conf/local.conf |
Далее откройте файл в редакторе и измените значения следующих переменных:
BBFILES = "${HOME}/stuff/openembedded/recipes/*/*.bb" DL_DIR = "${HOME}/stuff/sources" DISTRO = "angstrom-2008.1" MACHINE = "x86" |
А в конце файла удалите строку:
REMOVE_THIS_LINE |
сохраните файл.
Теперь необходимо настроить окружение. Сначала указываем где у нас находится bitbake
export PATH=${PATH}:${HOME}/stuff/bitbake/bin |
затем указываем bitbake где искать репозиторий и файл конфигурации
export BBPATH=${HOME}/stuff/build:${HOME}/stuff/openembedded |
И наконец запускаем сборку hello world:
bitbake helloworld-image |
Если в результате запуска появилось нечто такое:
NOTE: Handling BitBake files: / (6291/6291) [100 %] NOTE: Parsing finished. 6027 cached, 0 parsed, 264 skipped, 0 masked. NOTE: build 200812252310: started OE Build Configuration: BB_VERSION = "1.8.10" METADATA_BRANCH = "org.openembedded.dev" METADATA_REVISION = "5b1ed09b1ab1a60a28a76e4658bc9957cd361b5d" TARGET_ARCH = "i486" TARGET_OS = "linux" MACHINE = "x86" DISTRO = "angstrom" DISTRO_VERSION = "2008.1-test-20081225" TARGET_FPU = "" NOTE: Resolving any missing task queue dependencies NOTE: Preparing runqueue NOTE: Executing runqueue |
то можете себя поздравить, bitbake и openembedded установленны правильно. Вам осталось подождать пока bitbake соберет все что необходимо.
- Стоп! А как это теперь запустить?
А вот об этом в следующий раз :)
Рубрика: Практика | Теги: bitbake, openembedded коментариев: 59 »

09/01/2009 01:22
Было бы очень интересно почитать про сборку этого добра под ARM и заливку на устройство. На живых примерах куда более интересно учиться :)
09/01/2009 01:26
Сборка под ARM производится точно так же. Единственное что меняется это указание платформы. Заливка же специфична для каждой конкретной платформы. Именно по этому в качестве платформы выбрана доступная для всех платформа x86.
29/03/2009 16:55
Подскажите, чайницкий вопрос. Команда
bitbake helloworld-image
возвращает
ERROR: Openembedded’s config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Using dash as /bin/sh causes various subtle build problems, please use bash instead.
Хотя
echo $SHELL
говорит, что используется
/bin/bash
Что это значит и что делать? Спасибо.
29/03/2009 16:58
Это значит вы неверно выставили BBPATH или неправильно его выставили. Попробуйте запусить bitbake -DD helloworld-image. В этом случае станет видно чего нехватает.
29/03/2009 23:46
Спасибо за овет. Мой BBPATH
iz@izlap:~$ echo $BBPATH
/home/iz/stuff/build:/home/iz/stuff/openembedded
А вот, что вывел bitbake -DD helloworld-image
iz@izlap:~$ bitbake -DD helloworld-image
DEBUG: Removed the following variables from the environment:GNOME_DESKTOP_SESSION_ID,LESSOPEN,LIBGL_DRIVERS_PATH,WINDOWPATH,SHLVL,WINDOWID,GDM_XSERVER_LOCATION,GDMSESSION,ORBIT_SOCKETDIR,LESSCLOSE,GDM_LANG,HISTCONTROL,LS_COLORS
DEBUG: CONF reading /home/iz/stuff/openembedded/conf/bitbake.conf
DEBUG: update_data()
DEBUG: update_data()
DEBUG: CONF file ‘conf/site.conf’ not found
DEBUG: CONF file ‘conf/auto.conf’ not found
DEBUG: CONF including /home/iz/stuff/build/conf/local.conf
DEBUG: CONF file ‘conf/build/i686-linux.conf’ not found
DEBUG: CONF file ‘conf/target/INVALID-INVALID.conf’ not found
DEBUG: CONF including /home/iz/stuff/openembedded/conf/machine/x86.conf
DEBUG: BB conf/machine/include/tune-x86.inc: handle(data, include)
DEBUG: CONF including /home/iz/stuff/openembedded/conf/distro/angstrom-2008.1.conf
DEBUG: BB conf/distro/include/sane-srcdates.inc: handle(data, include)
DEBUG: BB conf/distro/include/sane-srcrevs.inc: handle(data, include)
DEBUG: BB conf/distro/include/angstrom-2008-preferred-versions.inc: handle(data, include)
DEBUG: BB conf/distro/include/preferred-opie-versions-1.2.4.inc: handle(data, include)
DEBUG: BB conf/distro/include/preferred-e-versions.inc: handle(data, include)
DEBUG: BB conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc: handle(data, include)
DEBUG: BB conf/distro/include/preferred-xorg-versions-X11R7.4.inc: handle(data, include)
DEBUG: BB conf/distro/include/angstrom.inc: handle(data, include)
DEBUG: update_data()
DEBUG: BB conf/distro/include/angstrom-glibc.inc: handle(data, include)
DEBUG: BB conf/distro/include/angstrom-package-ipk.inc: handle(data, include)
DEBUG: update_data()
DEBUG: CONF including /home/iz/stuff/openembedded/conf/documentation.conf
DEBUG: CONF including /home/iz/stuff/openembedded/conf/sanity.conf
DEBUG: CONF including /home/iz/stuff/openembedded/conf/abi_version.conf
DEBUG: CONF including /home/iz/stuff/openembedded/conf/enterprise.conf
DEBUG: update_data()
DEBUG: update_data()
DEBUG: BB classes/base.bbclass: handle(data, include)
DEBUG: BB :0: inheriting classes/patch.bbclass
DEBUG: BB classes/patch.bbclass: handle(data, include)
DEBUG: BB :0: inheriting classes/siteinfo.bbclass
DEBUG: BB classes/siteinfo.bbclass: handle(data, include)
DEBUG: BB classes/packaged-staging.bbclass: handle(data, include)
DEBUG: BB classes/src_distribute_local.bbclass: handle(data, include)
DEBUG: BB :0: inheriting classes/src_distribute.bbclass
DEBUG: BB classes/src_distribute.bbclass: handle(data, include)
DEBUG: BB classes/debian.bbclass: handle(data, include)
DEBUG: BB classes/sanity.bbclass: handle(data, include)
DEBUG: BB classes/devshell.bbclass: handle(data, include)
DEBUG: BB classes/angstrom-mirrors.bbclass: handle(data, include)
DEBUG: BB classes/insane.bbclass: handle(data, include)
DEBUG: BB :0: inheriting classes/package.bbclass
DEBUG: BB classes/package.bbclass: handle(data, include)
DEBUG: BB classes/testlab.bbclass: handle(data, include)
DEBUG: BB classes/package_ipk.bbclass: handle(data, include)
DEBUG: BB classes/sanity.bbclass: handle(data, include)
DEBUG: Using ‘/home/iz/tmp/cache/glibc/x86/bb_persist_data.sqlite3′ as the persistent data cache
DEBUG: Clearing SRCREV cache due to cache policy of: clear
ERROR: Openembedded’s config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Using dash as /bin/sh causes various subtle build problems, please use bash instead.
Забыл указать, что у меня ubuntu 8.10
30/03/2009 08:34
Сделайте ls -l /bin/sh и посмотрите куда он указывает. Если это не bash то исправьте. Судя по всему в этом дело.
31/03/2009 16:33
Спасибо, все дело было именно в этом.
И еще один момент. На тестовой машине размер домашнего каталога равен 4.5 гиг. И этого размера не хватило для успешной сборки. Это нормально? И какой размер раздела был бы достаточен?
31/03/2009 22:11
Рекомендованный размер 10 гигабайт
09/07/2009 23:10
интересная статья, но :(
у меня не получилась
на сборке glibc возникает ошибка (undefined reference __i686.get_pc_thunk_bx)
при повторной сборке (на чисто) — результат тот же.
OpenSuse 11.1 (под VMware)
PS
У меня были перед этим две проблемы с закачкой пакетов:
mpfr 2.3.1 — сайт в дауне (нашел через google)
fakeroot_1.12.1 — в репе debian нет такой версии (тот же способ)
28/09/2009 22:02
До ужаса рад, что есть что-то подобное на русском. Спасибище. :)
28/09/2009 22:19
Не за что. Вот это еще посмотрите http://docs.openembedded.ru/
30/09/2009 23:17
Во, спасибо, неплохое чтиво. Буду постепенно читать. А пока попробую приветобраз запустить на qemu, оно вроде больше платформ поддерживает. :)
04/11/2009 17:06
Здравствуйте.
Не подскажете как быть, если по ходу сборки bitbake все равно лезет в сеть. Среди рецептов в coreutils есть и 6.0 и 7.1 и 7.2. Не могу строить ни малейших предположений, но так или иначе сборке нужно стянуть с инета еще много чего. Есть ли возможность на каждом шаге остановки сборки по причине вышеназванной скачать вручную все исходники (каждый следующий) и положить в stuff/sources (куда как видно она кладет полученные (fetch) сырцы)?
Parsing .bb files, please wait…done.
NOTE: Parsing finished. 7050 cached, 0 parsed, 268 skipped, 0 masked.
NOTE: Cache is clean, not saving.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing runqueue
NOTE: Running task 20 of 814 (ID: 111, /home/eugene/stuff/openembedded/recipes/coreutils/coreutils-native_7.2.bb, do_fetch)
NOTE: fetch ftp://ftp.gnu.org/gnu/coreutils/coreutils-7.2.tar.gz
NOTE: fetch ftp://mirrors.kernel.org/gnu/coreutils/coreutils-7.2.tar.gz
NOTE: fetch ftp://ftp.cs.ubc.ca/mirror2/gnu/coreutils/coreutils-7.2.tar.gz
NOTE: fetch ftp://sunsite.ust.hk/pub/gnu/coreutils/coreutils-7.2.tar.gz
NOTE: fetch ftp://ftp.ayamura.org/pub/gnu/coreutils/coreutils-7.2.tar.gz
NOTE: fetch http://mirrors.openembedded.org//coreutils-7.2.tar.gz
NOTE: fetch http://sources.openembedded.org//coreutils-7.2.tar.gz
NOTE: fetch http://www.angstrom-distribution.org/unstable/sources/coreutils-7.2.tar.gz
NOTE: Task failed: Fetch failed: ftp://ftp.gnu.org/gnu/coreutils/coreutils-7.2.tar.gz
ERROR: TaskFailed event exception, aborting
ERROR: Build of /home/eugene/stuff/openembedded/recipes/coreutils/coreutils-native_7.2.bb do_fetch failed
ERROR: Task 111 (/home/eugene/stuff/openembedded/recipes/coreutils/coreutils-native_7.2.bb, do_fetch) failed
NOTE: Tasks Summary: Attempted 19 tasks of which 19 didn’t need to be rerun and 1 failed.
ERROR: ‘/home/eugene/stuff/openembedded/recipes/coreutils/coreutils-native_7.2.bb’ failed
04/11/2009 17:23
Конечно можно. Качает он ровно один раз если в каталоге уже есть необходимые исходники он берет их оттуда. Дополнительно стоит попробовать запустить bitbake с флагом -n
04/11/2009 18:33
norguhtar, спасибо за ответ.
Однако все же не понятен принцип. — может поясните еще немного ?
Были мелкие проблемы с подготовкой, пакетами, (т.ч. будущими шагами по работе с virtualbox), но все они решены, включая несколько патчей против python warnings. Использую лучшие по слухам для сборки через ОЕ, но совсем незнакомые мне гранаты системы KUbuntu — 9.04.
Настал черед bitbake helloworld-image…
19 шагов выполнено успешно. Далее система хочет собирать coreutils.
Смотрю (например) coreutils_7.2.bb.
Понятно что согласно SRC_URI со строчки 3 система сборки будет налагать различные патчи на исходники, полученные определенным путем (строчка 1 ftp://alpha.gnu...). Понятно что патчи находятся в поддиректории имя которой задается в соседнем файле для 7.2. Однако непонятно, куда мне положить coreutils-7.2.tar.bz2 потому что система сборки заводит директорию sources и там лочит файл с именем текущего скачиваемого пакета. Кладу в sources — все равно стучится в сеть. Может положить тогда в подкаталог с патчами ? (но я что-то боюсь вдруг не получится, а руками я уже устал работать). В общем непонятен принцип….
Заранее благодарю за hints.
p.s.
(Выйти в инет из kubuntu пока не могу он у меня как guest OS, а отключить сетку на host OS нельзя — администратор домена пока запретил)
04/11/2009 23:14
Все лежит в sources. Единственное но там дополнительно должен быть файл с суммой md5. К примеру для coreutls-7.2:
coreutils-7.2.tar.gz
coreutils-7.2.tar.gz.md5
05/11/2009 11:39
Респект! Все заработало.
Только я делаю md5 сам : md5sum -b ./coreutils-7.2.tar.bz2 > coreutils-7.2.tar.bz2.md5
Интересно, а в документации по ОЕ или bitbake отражены все эти моменты ?
05/11/2009 11:47
Да.
http://docs.openembedded.ru/metadata_writing_data.html
22/11/2009 00:45
Как это исправить?
~/stuff$ bitbake helloworld-image
Traceback (most recent call last):
File «/home/dmitriy/stuff/bitbake/bin/bitbake», line 143, in
main()
File «/home/dmitriy/stuff/bitbake/bin/bitbake», line 123, in main
cooker.parseConfiguration()
File «/home/dmitriy/stuff/bitbake/lib/bb/cooker.py», line 69, in parseConfiguration
self.parseConfigurationFile( os.path.join( «conf», «bitbake.conf» ) )
File «/home/dmitriy/stuff/bitbake/lib/bb/cooker.py», line 405, in parseConfigurationFile
bb.event.fire(bb.event.ConfigParsed(self.configuration.data))
File «/home/dmitriy/stuff/bitbake/lib/bb/event.py», line 67, in fire
if tmpHandler(event) == Handled:
File «tmpHandler(e)», line 4, in tmpHandler
File «», line 18, in check_sanity
NameError: global name ‘os’ is not defined
22/11/2009 01:16
Поставить python :) os это стандартная библиотека питона, если его не находит, то он у вас или некорреткно поставлен или поврежден.
22/11/2009 23:54
Осилил таки :-) У меня Debian ближе всего я к Sid (но не чистый Sid). Решение в следующем:
-берем bitbake-1.8.18
-изменяем ссылку /bin/sh у меня было dash, делам bash
08/12/2009 23:03
Выдает такое (python установлен, openSUSE 11.2):
Traceback (most recent call last):
File «/home/sergey/QtProject/OpenEmb/bitbake/bin/bitbake», line 143, in
main()
File «/home/sergey/QtProject/OpenEmb/bitbake/bin/bitbake», line 123, in main
cooker.parseConfiguration()
File «/home/sergey/QtProject/OpenEmb/bitbake/lib/bb/cooker.py», line 68, in parseConfiguration
self.parseConfigurationFile( os.path.join( «conf», «bitbake.conf» ) )
File «/home/sergey/QtProject/OpenEmb/bitbake/lib/bb/cooker.py», line 404, in parseConfigurationFile
bb.event.fire(bb.event.ConfigParsed(self.configuration.data))
File «/home/sergey/QtProject/OpenEmb/bitbake/lib/bb/event.py», line 67, in fire
if tmpHandler(event) == Handled:
File «tmpHandler(e)», line 4, in tmpHandler
File «», line 18, in check_sanity
NameError: global name ‘os’ is not defined
10/12/2009 10:46
Проверьте куда указывает /bin/sh. Такая ошибка возникает если у вас не выставлен PYTHON_PATH указывающий где лежат модули.
10/12/2009 22:44
Сделал все с нуля, внимательно — пошел процесс.
02/02/2010 20:10
Здравствуйте!
Большое спасибо за серию статей. OpenEmbedded выглядит крутой штукой, но я ещё пока в стадии детских болезней )
Не подскажете, с чем может быть связана вот такая ошибка при bitbake x11-image:
ISM-UKRAINE\m.rudensky@ws70-lnx:~/stuff/build$ bitbake x11-image
NOTE: Handling BitBake files: — (6701/6701) [100 %]
NOTE: Parsing finished. 6423 cached, 0 parsed, 278 skipped, 0 masked.
NOTE: Cache is clean, not saving.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing runqueue
NOTE: Running task 4001 of 4002 (ID: 10, /home/ISM-UKRAINE/m.rudensky/stuff/openembedded/recipes/images/x11-image.bb, do_rootfs)
ERROR: function do_rootfs failed
ERROR: log data follows (/home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/work/x86-angstrom-linux/x11-image-1.0-r0/temp/log.do_rootfs.10911)
| + rm -rf /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/rootfs
| + mkdir -p /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/rootfs
| + mkdir -p /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/images/x86
| + ‘[' 0 '!=' 1 ']‘
| + for devtable in /home/ISM-UKRAINE/m.rudensky/stuff/openembedded/files/device_table-minimal.txt
| + makedevs -r /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/rootfs -D /home/ISM-UKRAINE/m.rudensky/stuff/openembedded/files/device_table-minimal.txt
| + rootfs_ipk_do_rootfs
| + set -x
| + package_update_index_ipk
| + set -x
| + ipkgarchs=’all any noarch i486 x86′
| + ‘[' '!' -z '' ']‘
| + touch /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/Packages
| + ipkg-make-index -r /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/Packages -p /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/Packages -l /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/Packages.filelist -m /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk
| /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/staging/i686-linux/usr/bin/ipkg.py:39: DeprecationWarning: the md5 module is deprecated; use hashlib instead
| import md5
|
| + for arch in ‘$ipkgarchs’
| + ‘[' -e /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/all/ ']‘
| + touch /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/all/Packages
| + ipkg-make-index -r /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/all/Packages -p /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/all/Packages -l /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/all/Packages.filelist -m /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/deploy/glibc/ipk/all/
| /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/staging/i686-linux/usr/bin/ipkg.py:39: DeprecationWarning: the md5 module is deprecated; use hashlib instead
| import md5
| Traceback (most recent call last):
| File «/home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/staging/i686-linux/usr/bin/ipkg-make-index», line 114, in
| pkg = ipkg.Package(filename)
| File «/home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/staging/i686-linux/usr/bin/ipkg.py», line 161, in __init__
| tarStream = ar.open(«control.tar.gz»)
| File «/home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/staging/i686-linux/usr/bin/arfile.py», line 59, in open
| f = self._scan(fname)
| File «/home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/staging/i686-linux/usr/bin/arfile.py», line 79, in _scan
| size = int(descriptor[5])
| IndexError: list index out of range
NOTE: Task failed: /home/ISM-UKRAINE/m.rudensky/stuff/build/tmp/work/x86-angstrom-linux/x11-image-1.0-r0/temp/log.do_rootfs.10911
ERROR: TaskFailed event exception, aborting
ERROR: Build of /home/ISM-UKRAINE/m.rudensky/stuff/openembedded/recipes/images/x11-image.bb do_rootfs failed
ERROR: Task 10 (/home/ISM-UKRAINE/m.rudensky/stuff/openembedded/recipes/images/x11-image.bb, do_rootfs) failed
NOTE: Tasks Summary: Attempted 4000 tasks of which 4000 didn’t need to be rerun and 1 failed.
ERROR: ‘/home/ISM-UKRAINE/m.rudensky/stuff/openembedded/recipes/images/x11-image.bb’ failed
10/02/2010 00:46
сосбтвенно:
ERROR: IO Error: file ‘conf/bitbake.conf’ not found
делаю все как написано на чистой системе
10/02/2010 09:13
А собственно у вас в текущем каталоге где вы запускаете bitbake conf каталог есть?
10/02/2010 16:09
конечно.
10/02/2010 16:21
Проверьте настройки еще раз. Все работало.
10/02/2010 17:51
поставил чистую систему
получилось вот что (bitbake -DDD helloworld-image):
http://pastebin.com/m43eefdb6
10/02/2010 20:06
У вас явно убунту. Поставьте bash и сделайте так чтобы /bin/sh указывал на него.
10/02/2010 20:11
ну как бы все это дело по умолчанию есть
может какх библитек питоновских не хватает?
11/02/2010 22:30
поставил bitbake-1.8.18все заработало
12/02/2010 21:05
Здравствуйте .
Подскажите пожалуйста — в чём причина.
После запуска на сборку примера из этой темы выскакивает ошибка: NameError: global name ‘os’ is not defined.
В питоне модуль os доступен(из питоновского шела инструкция import os работает). Сборку проводил на Debian.
Bitbake брал полседний из репозитария и указанный в теме.
15/02/2010 20:55
Поставил систему заново, Bitbake взял в deb-пакете. Началась сборка примера из темы.
16/05/2010 00:12
Здраствуйте, не подскажете в чем дело при сборке выдаёт.vvs@vvs-desktop:~/stuff$ bitbake helloworld-image
ERROR: Openembedded’s config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Error, DISTRO_PR has changed ( to .5) which means all packages need to rebuild. Please remove your TMPDIR so this can happen. For autobuilder setups you can avoid this by using a TMPDIR that include DISTRO_PR in the path.
16/05/2010 18:36
Вообщем теперь почти получилось но увы:(. Выводит:
NOTE: Handling BitBake files: / (8357/8357) [100 %]
NOTE: Parsing finished. 7607 cached, 450 parsed, 300 skipped, 0 masked.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing runqueue
NOTE: Running task 705 of 710 (ID: 18, /home/vvs/stuff/openembedded/recipes/images/helloworld-image.bb, do_package_update_index_ipk)
NOTE: Running task 709 of 710 (ID: 10, /home/vvs/stuff/openembedded/recipes/images/helloworld-image.bb, do_rootfs)
NOTE: Running task 710 of 710 (ID: 4, /home/vvs/stuff/openembedded/recipes/images/helloworld-image.bb, do_build)
NOTE: Tasks Summary: Attempted 710 tasks of which 707 didn’t need to be rerun and 0 failed.
16/05/2010 18:58
Собственно все завершилось удачно. О чем и написано. Что-то должно быть по другому?
16/05/2010 19:19
Беру свои слова назад. Смутил формат вывода не было сообщения о начале сборки и конфигурации как в примере.
28/07/2010 12:41
Может кто сталкивался с такой ошибкой
ERROR: Unable to parse conf/bitbake.conf (Could not include required file conf/distro/include/glibc-${TOOLCHAIN_TYPE}.inc)
11/11/2010 20:22
petrovs@petrovs:~/stuff$ bitbake helloworld-image
/home/petrovs/stuff/bitbake/lib/bb/COW.py:29: DeprecationWarning: the sets module is deprecated
import types, sets
NOTE: :global name ‘bb’ is not defined while evaluating:
${@base_conditional(‘ENTERPRISE_DISTRO’, ’1′, base_conditional(‘OLDBBMASK’, », », ‘()|’, d) + ‘(mp3blaster|mpg123|mpg321|smpeg|liba52|lame|libmad|mpeg2dec|xmms-mad|madplay|python-mad|opie-mediaplayer1-libmadplugin|ffmpeg|mplayer)’, », d)}
Traceback (most recent call last):
File «/home/petrovs/stuff/bitbake/bin/bitbake», line 143, in
main()
File «/home/petrovs/stuff/bitbake/bin/bitbake», line 140, in main
cooker.cook()
File «/home/petrovs/stuff/bitbake/lib/bb/cooker.py», line 617, in cook
self.updateCache()
File «/home/petrovs/stuff/bitbake/lib/bb/cooker.py», line 585, in updateCache
(filelist, masked) = self.collect_bbfiles()
File «/home/petrovs/stuff/bitbake/lib/bb/cooker.py», line 696, in collect_bbfiles
bbmask = bb.data.getVar(‘BBMASK’, self.configuration.data, 1)
File «/home/petrovs/stuff/bitbake/lib/bb/data.py», line 97, in getVar
return d.getVar(var,exp)
File «/home/petrovs/stuff/bitbake/lib/bb/data_smart.py», line 167, in getVar
return self.expand(value,var)
File «/home/petrovs/stuff/bitbake/lib/bb/data_smart.py», line 85, in expand
s = __expand_python_regexp__.sub(python_sub, s)
File «/home/petrovs/stuff/bitbake/lib/bb/data_smart.py», line 71, in python_sub
s = eval(code)
File «», line 1, in
File «», line 2, in base_conditional
File «/home/petrovs/stuff/openembedded/lib/oe/utils.py», line 24, in conditional
if bb.data.getVar(variable,d,1) == checkvalue:
NameError: global name ‘bb’ is not defined
выводит это сообщение, в чем дело? что за global name bb? как ее побороть?
11/11/2010 21:09
проверьте что у вас за /bin/sh в ubuntu он обычно является ссылкой на dash shell, а нужно чтобы он был ссылкой на bash shell
12/11/2010 14:02
ссылка была действительно на dash, поправил на bash, но не заработала. заработало только после установки ditbake 1.8.18.
15/12/2010 22:30
Здравствуйте.
Попробовал сделать пвый шаг — и сразу получил следующее:
sudo apt-get install make gcc g++ ccache sed wget cvs \ subversion git-core git coreutils unzip texi2html texinfo \ libsdl1.2-dev docbook-utils gawk python-pysqlite2 \ diffstat help2man libxml2-utils xmlto \ python-psyco linux-headers-`uname -r`
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет subversion
E: Не удалось найти пакет libsdl1.2-dev
E: Не удалось найти пакет по регулярному выражению libsdl1.2-dev
E: Не удалось найти пакет diffstat
E: Не удалось найти пакет python-psyco
Что делать?
16/12/2010 14:05
Это говорит нам о том что у вас не обновлены репозитарии или не подключены нужные репозитарии. Это пожалуй не тут надо спрашивать а на форуме поддержки дистрибутива.
18/12/2010 13:25
Здравствуйте.
На последней стадии затык.
Ссылку с dash на bash поменял.
Все равно выдает ошибки:
DEBUG: Removed the following variables from the environment:LESSOPEN,DM_CONTROL,KDE_SESSION_VERSION,KDE_FULL_SESSION,PROFILEHOME,COLORFGBG,LANGUAGE,SHLVL,XCURSOR_THEME,WINDOWID,SSH_AGENT_PID,KONSOLE_DBUS_SESSION,KDE_SESSION_UID,QT_PLUGIN_PATH,XDM_MANAGED,KONSOLE_DBUS_SERVICE,GTK2_RC_FILES,LESSCLOSE,GS_LIB,SHELL_SESSION_ID,WINDOWPATH,OLDPWD,LS_COLORS,KDE_MULTIHEAD
DEBUG: CONF reading /home/andrii/stuff/openembedded/conf/bitbake.conf
DEBUG: update_data()
DEBUG: update_data()
DEBUG: update_data()
DEBUG: update_data()
DEBUG: update_data()
DEBUG: update_data()
DEBUG: CONF file ‘conf/site.conf’ not found
DEBUG: CONF file ‘conf/auto.conf’ not found
DEBUG: CONF including /home/andrii/stuff/build/conf/local.conf
DEBUG: update_data()
ERROR: Edit your conf/local.conf: BBFILES
NOTE: :1 while evaluating:
${@bb.fatal(‘Edit your conf/local.conf: BBFILES’)}
что не так я сделал?
18/12/2010 13:43
Сорри
отзываю последний комментарий — просьба по возможности удалить :)
18/12/2010 14:28
Установил последнюю версию bitbake 1.10.1
все комментарии вычитал, но результат не успешный
подскажите в чем проблема?
NOTE: Handling BitBake files: \ (7251/7251) [100 %]
NOTE: Parsing finished. 6509 cached, 421 parsed, 321 skipped, 0 masked.
NOTE: build Angstrom ${DISTRO_VERSION}: started
Traceback (most recent call last):
File «/usr/bin/bitbake», line 143, in
main()
File «/usr/bin/bitbake», line 140, in main
cooker.cook()
File «/usr/lib/pymodules/python2.6/bb/cooker.py», line 639, in cook
return self.buildTargets(pkgs_to_build)
File «/usr/lib/pymodules/python2.6/bb/cooker.py», line 526, in buildTargets
bb.event.fire(bb.event.BuildStarted(buildname, targets, self.configuration.event_data))
File «/usr/lib/pymodules/python2.6/bb/event.py», line 67, in fire
if tmpHandler(event) == Handled:
File «tmpHandler(e)», line 10, in tmpHandler
File «/usr/lib/pymodules/python2.6/bb/__init__.py», line 100, in plain
bb.msg.warn(».join(args))
TypeError: warn() takes at least 2 arguments (1 given)
20/12/2010 16:58
Запустите с -DDD и почитайте вывод. Там довольно подробно пишется что и как происходит.
13/01/2011 10:49
Проблема, описанная в комментарии 48 (TypeError: warn() takes at least 2 arguments (1 given) ) решается установкой еще более новой версии. На данный момент bitbake 1.10.2
wget http://download.berlios.de/bitbake/bitbake-1.10.2.tar.gz
Так же в Убунте надо dash сменить на bash следующем командой:
sudo dpkg-reconfigure dash
Так собралось. У меня Ubuntu 10.04
Спасибо за статью.
12/08/2011 16:41
Доброго всем дня!
…..
DEBUG: Not caching /home/cooper/stuff/openembedded/recipes/shr/elementary-theme-sixteen_git.bb, marked as not cacheable
DEBUG: Not caching /home/cooper/stuff/openembedded/recipes/dzen2/dzen2_svn.bb, marked as not cacheable
DEBUG: Not caching /home/cooper/stuff/openembedded/recipes/linux/linux_git.bb, marked as not cacheable
Command execution failed: Traceback (most recent call last):
File «/home/cooper/stuff/bitbake/lib/bb/command.py», line 85, in runAsyncCommand
self.cooker.updateCache()
File «/home/cooper/stuff/bitbake/lib/bb/cooker.py», line 829, in updateCache
if not self.parser.parse_next():
File «/home/cooper/stuff/bitbake/lib/bb/cooker.py», line 1022, in parse_next
raise ParsingErrorsFound
ParsingErrorsFound
такая вышла ошибка. может кто знает в чем дело.
12/08/2011 18:16
отбой
переключился на стабильную версию и все заработало
git checkout -b stable/2009 origin/stable/2009
15/08/2011 15:22
эта версия тоже до конца не дошла. перешел на тест2011.03 эта дошла до конца. но теперь убунта говорит что виртуального бокса нету. приходится извращаться. читаю про поки
http://www.pokylinux.org/releases/pinky-3.1/doc/poky-handbook.html#usingpoky-extend-customimage
что бы запустить свое хеллоу.
интересно чем народ сегодня в этом плане увлекается, что то тихо тут стало?
23/08/2011 00:25
Приветствую.
У меняя такой вопрос: А что делать тем. у кого нет машины i386?
Вот что мне выдал терминал:
sudo apt-get install make gcc g++ ccache sed wget cvs \
> subversion git-core git coreutils unzip texi2html texinfo \
> libsdl1.2-dev docbook-utils gawk python-pysqlite2 \
> diffstat help2man libxml2-utils xmlto \
> python-psyco linux-headers-`uname -r`
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакет python-psyco недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
E: Для пакета python-psyco не найден кандидат на установку
Обе машины у меня х64… (((
23/08/2011 07:29
Для начала указать какой у вас дистрибутив.
23/08/2011 11:29
Ubuntu 11.04 (natty) amd64
python-psyco только i386 нашёл — естественно, он не установился.
28/09/2011 18:13
Только начал разбираться с Lunux и его всроенными вариантами, поэтому вопрос может быть детский.
При попытке запустить bitbake helloworld-image постоянно вываливается ошибка
ERROR: global name ‘bb’ is not defined while parsing
Подскажите, что нужно докрутить.
Работаю под Kubuntu 10.04
29/09/2011 23:32
Смените ссылку /bin/sh с dash на bash и все заработает.
05/11/2011 00:06
Здравствуйте,
пытаюсь собрать все как написано. При сборке sqlite3 получаю ошибки вида «sqlite3.c:914:1: error: unknown type name ‘sqlite_int64′».
Полный лог сборки тут http://alexanis.dyndns.org/files/log.do_compile.3892
Подскажите, пожалуйста, в чем проблема?