#linux #kernel #beagleboard #angstrom-linux #openembedded
#linux #ядро #beagleboard #angstrom-linux #openembedded
Вопрос:
Я работал с дистрибутивом Angstrom Linux для BeagleBoard. Может ли кто-нибудь указать мне на учебник или ссылку на то, как на самом деле работают bitbake и OpenEmbedded? Например, когда я вызываю bitbake следующим образом:
bitbake virtual/kernel
что на самом деле происходит? Я скопировал рецепты Angstrom и искал файловую систему Angstrom, но, похоже, я не могу найти ссылки ни на virtual, ни на kernel. Я чувствую себя немного сбитым с толку, работая с этим набором инструментов и создавая исправления ядра, не понимая, как работает bitbake.
Комментарии:
1. Я нашел это время хорошим. Но я мог бы также использовать более подробную и подробную документацию, помимо официальных документов.
Ответ №1:
BitBake — это сложная часть программного обеспечения, которая, к сожалению, не имеет лучшей пользовательской документации. Я считаю, что он (свободно) основан на системе portage в Gentoo, поэтому некоторое знакомство с этой системой может помочь.
Лучший способ, который я нашел, чтобы выяснить, что происходит, когда вы пытаетесь что-то создать, — это передать параметр -g в bitbake, который сгенерирует два файла, depends.dot и task-depends.dot . Первый представляет собой график зависимостей этого пакета, показывающий, какие другие пакеты подключаются при выполнении определенной задачи. Последний показывает более подробно, показывая задачи вместо пакетов. Эти задачи немного более низкого уровня, чем сами пакеты; создание пакета может привести к тому, что система будет извлекать исходные файлы, исправлять исходные файлы, запускать сценарий настройки, выполнять компиляцию, устанавливать двоичные файлы и разбивать результирующие файлы на подпакеты.
Эти файлы могут показать, почему вы используете ненужное программное обеспечение, чтобы вы могли отредактировать пакет-нарушитель, чтобы удалить его зависимость. Созданные здесь графики можно визуализировать с помощью пакета graphviz, но если вы запустите опцию -g для большой задачи, такой как задача с изображением, сгенерированный график будет слишком большим для визуализации. Все еще может быть полезно использовать grep через файлы .dot.
Ответ №2:
Для дальнейшего использования тем, кто задается тем же вопросом. Если в вашей файловой системе вы перейдете в overo/org.openembedded.dev/docs/ usermanual, а затем запустите «make», то для вас будет создано много документации о bitbake и openembedded в виде HTML-файлов. Это многое объясняет из того, что происходит.
Ответ №3:
Руководство пользователя OpenEmbedded, на которое ссылается Энтони, доступно на сайте OE. Глава 7 содержит хорошее введение в OE и то, как он использует BitBake:
http://docs.openembedded.org/usermanual/usermanual.html#chapter_using_bitbake_and_oe
Подразделы «Конфигурация«, «Рабочее пространство» и «Задачи» предоставляют хорошую информацию о том, что происходит за кулисами, если вы перейдете на страницу «Начало работы OE»:
Ответ №4:
Несмотря на то, что в BitBake нет подробного и удобного для пользователя руководства, в проектах OpenEmbedded (более старых) и YOCTO (более новых), использующих BitBake, есть несколько руководств или книг, в которых подробно описаны рецепты BitBake и BitBake. BitBake теперь поддерживается совместно проектами Openembedded и YOCTO, и когда вы используете BitBake в обычном режиме, вы будете использовать эти два проекта, чтобы найти основные компоненты Linux, такие как загрузчик, busybox и т. Д., Подходящие для вашей цели.
Ссылки: http://docs.openembedded.org/usermanual/usermanual.html
http://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#patching-dev-environment (Глава 3 больше связана с BitBake)