Здравствуй, мир! Сборка.

Практически у всех программистов первой программой была 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 соберет все что необходимо.

- Стоп! А как это теперь запустить?
А вот об этом в следующий раз :)

Рубрика: Практика | Теги: , коментариев: 59 »

Коментариев: 59 к “Здравствуй, мир! Сборка.”

  1. T-Rex

    Было бы очень интересно почитать про сборку этого добра под ARM и заливку на устройство. На живых примерах куда более интересно учиться :)

  2. norguhtar

    Сборка под ARM производится точно так же. Единственное что меняется это указание платформы. Заливка же специфична для каждой конкретной платформы. Именно по этому в качестве платформы выбрана доступная для всех платформа x86.

  3. ig_z

    Подскажите, чайницкий вопрос. Команда
    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

    Что это значит и что делать? Спасибо.

  4. norguhtar

    Это значит вы неверно выставили BBPATH или неправильно его выставили. Попробуйте запусить bitbake -DD helloworld-image. В этом случае станет видно чего нехватает.

  5. ig_z

    Спасибо за овет. Мой 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

  6. norguhtar

    Сделайте ls -l /bin/sh и посмотрите куда он указывает. Если это не bash то исправьте. Судя по всему в этом дело.

  7. ig_z

    Спасибо, все дело было именно в этом.
    И еще один момент. На тестовой машине размер домашнего каталога равен 4.5 гиг. И этого размера не хватило для успешной сборки. Это нормально? И какой размер раздела был бы достаточен?

  8. norguhtar

    Рекомендованный размер 10 гигабайт

  9. avp

    интересная статья, но :(
    у меня не получилась
    на сборке glibc возникает ошибка (undefined reference __i686.get_pc_thunk_bx)

    при повторной сборке (на чисто) — результат тот же.

    OpenSuse 11.1 (под VMware)
    PS
    У меня были перед этим две проблемы с закачкой пакетов:
    mpfr 2.3.1 — сайт в дауне (нашел через google)
    fakeroot_1.12.1 — в репе debian нет такой версии (тот же способ)

  10. m039

    До ужаса рад, что есть что-то подобное на русском. Спасибище. :)

  11. norguhtar

    Не за что. Вот это еще посмотрите http://docs.openembedded.ru/

  12. m039

    Во, спасибо, неплохое чтиво. Буду постепенно читать. А пока попробую приветобраз запустить на qemu, оно вроде больше платформ поддерживает. :)

  13. Евгений Т

    Здравствуйте.
    Не подскажете как быть, если по ходу сборки 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

  14. norguhtar

    Конечно можно. Качает он ровно один раз если в каталоге уже есть необходимые исходники он берет их оттуда. Дополнительно стоит попробовать запустить bitbake с флагом -n

  15. Евгений Т

    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 нельзя — администратор домена пока запретил)

  16. norguhtar

    Все лежит в sources. Единственное но там дополнительно должен быть файл с суммой md5. К примеру для coreutls-7.2:

    coreutils-7.2.tar.gz
    coreutils-7.2.tar.gz.md5

  17. Евгений Т

    Респект! Все заработало.
    Только я делаю md5 сам : md5sum -b ./coreutils-7.2.tar.bz2 > coreutils-7.2.tar.bz2.md5

    Интересно, а в документации по ОЕ или bitbake отражены все эти моменты ?

  18. norguhtar

    Да.
    http://docs.openembedded.ru/metadata_writing_data.html

  19. Дмитрий

    Как это исправить?

    ~/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

  20. norguhtar

    Поставить python :) os это стандартная библиотека питона, если его не находит, то он у вас или некорреткно поставлен или поврежден.

  21. Дмитрий

    Осилил таки :-) У меня Debian ближе всего я к Sid (но не чистый Sid). Решение в следующем:
    -берем bitbake-1.8.18
    -изменяем ссылку /bin/sh у меня было dash, делам bash

  22. Cthutq

    Выдает такое (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

  23. norguhtar

    Проверьте куда указывает /bin/sh. Такая ошибка возникает если у вас не выставлен PYTHON_PATH указывающий где лежат модули.

  24. Cthutq

    Сделал все с нуля, внимательно — пошел процесс.

  25. fonin

    Здравствуйте!

    Большое спасибо за серию статей. 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

  26. Be4ep

    сосбтвенно:
    ERROR: IO Error: file ‘conf/bitbake.conf’ not found

    делаю все как написано на чистой системе

  27. norguhtar

    А собственно у вас в текущем каталоге где вы запускаете bitbake conf каталог есть?

  28. Be4ep

    конечно.

  29. norguhtar

    Проверьте настройки еще раз. Все работало.

  30. Be4ep

    поставил чистую систему
    получилось вот что (bitbake -DDD helloworld-image):
    http://pastebin.com/m43eefdb6

  31. norguhtar

    У вас явно убунту. Поставьте bash и сделайте так чтобы /bin/sh указывал на него.

  32. Be4ep

    ну как бы все это дело по умолчанию есть
    может какх библитек питоновских не хватает?

  33. Be4ep

    поставил bitbake-1.8.18все заработало

  34. ficher

    Здравствуйте .
    Подскажите пожалуйста — в чём причина.
    После запуска на сборку примера из этой темы выскакивает ошибка: NameError: global name ‘os’ is not defined.
    В питоне модуль os доступен(из питоновского шела инструкция import os работает). Сборку проводил на Debian.
    Bitbake брал полседний из репозитария и указанный в теме.

  35. ficher

    Поставил систему заново, Bitbake взял в deb-пакете. Началась сборка примера из темы.

  36. Владимир

    Здраствуйте, не подскажете в чем дело при сборке выдаёт.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.

  37. Владимир

    Вообщем теперь почти получилось но увы:(. Выводит:
    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.

  38. norguhtar

    Собственно все завершилось удачно. О чем и написано. Что-то должно быть по другому?

  39. vvs

    Беру свои слова назад. Смутил формат вывода не было сообщения о начале сборки и конфигурации как в примере.

  40. Yellow

    Может кто сталкивался с такой ошибкой
    ERROR: Unable to parse conf/bitbake.conf (Could not include required file conf/distro/include/glibc-${TOOLCHAIN_TYPE}.inc)

  41. petrovs

    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? как ее побороть?

  42. norguhtar

    проверьте что у вас за /bin/sh в ubuntu он обычно является ссылкой на dash shell, а нужно чтобы он был ссылкой на bash shell

  43. petrovs

    ссылка была действительно на dash, поправил на bash, но не заработала. заработало только после установки ditbake 1.8.18.

  44. Andrii

    Здравствуйте.

    Попробовал сделать пвый шаг — и сразу получил следующее:

    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

    Что делать?

  45. norguhtar

    Это говорит нам о том что у вас не обновлены репозитарии или не подключены нужные репозитарии. Это пожалуй не тут надо спрашивать а на форуме поддержки дистрибутива.

  46. Andrii

    Здравствуйте.

    На последней стадии затык.
    Ссылку с 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’)}

    что не так я сделал?

  47. Andrii

    Сорри
    отзываю последний комментарий — просьба по возможности удалить :)

  48. Andrii

    Установил последнюю версию 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)

  49. norguhtar

    Запустите с -DDD и почитайте вывод. Там довольно подробно пишется что и как происходит.

  50. Systerr

    Проблема, описанная в комментарии 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

    Спасибо за статью.

  51. Андрей

    Доброго всем дня!

    …..
    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

    такая вышла ошибка. может кто знает в чем дело.

  52. Андрей

    отбой
    переключился на стабильную версию и все заработало
    git checkout -b stable/2009 origin/stable/2009

  53. Андрей

    эта версия тоже до конца не дошла. перешел на тест2011.03 эта дошла до конца. но теперь убунта говорит что виртуального бокса нету. приходится извращаться. читаю про поки
    http://www.pokylinux.org/releases/pinky-3.1/doc/poky-handbook.html#usingpoky-extend-customimage
    что бы запустить свое хеллоу.

    интересно чем народ сегодня в этом плане увлекается, что то тихо тут стало?

  54. DMF

    Приветствую.
    У меняя такой вопрос: А что делать тем. у кого нет машины 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… (((

  55. norguhtar

    Для начала указать какой у вас дистрибутив.

  56. DMF

    Ubuntu 11.04 (natty) amd64
    python-psyco только i386 нашёл — естественно, он не установился.

  57. Александр

    Только начал разбираться с Lunux и его всроенными вариантами, поэтому вопрос может быть детский.
    При попытке запустить bitbake helloworld-image постоянно вываливается ошибка
    ERROR: global name ‘bb’ is not defined while parsing

    Подскажите, что нужно докрутить.
    Работаю под Kubuntu 10.04

  58. norguhtar

    Смените ссылку /bin/sh с dash на bash и все заработает.

  59. alenyashka

    Здравствуйте,

    пытаюсь собрать все как написано. При сборке sqlite3 получаю ошибки вида «sqlite3.c:914:1: error: unknown type name ‘sqlite_int64′».
    Полный лог сборки тут http://alexanis.dyndns.org/files/log.do_compile.3892

    Подскажите, пожалуйста, в чем проблема?


Прокоментировать



 

Наверх