我无法理解bitbake食谱.(我有一些写得不好我需要修改,我通常会阅读并理解整个机制,但遗憾的是我的时间紧迫).能帮我理解RDEPENDS和DEPENDS之间的区别吗?我阅读了参考资料,我知道它们分别代表运行时依赖性和构建依赖性,但是在bitbake配方中对它的影响是什么?据我所知,如果包A依赖于另一个B,则必须构建B并准备好启用A来构建.Bitbake与运行时无关,它只用于构建和部署包.那么区别是什么呢?
为了阅读,我正在一个我们创建一个secimage(linux yocto图像)的项目中工作.
我不熟悉那里使用的所有工具,我也不熟悉使用的技术术语.所以这个问题可能真的很愚蠢,但我无法通过我的生活来解决这个问题.
我们有一个YOCTO ...东西......我们需要在我们(生成的)操作系统上使用所有这些配方(debian包),我们使用(不知道这是否明显)bitbake来构建我们的Image.
我知道我们有一些...目标...用于bitbake命令(例如,用于构建生产图像的目标和用于构建图像以用于开发目的的目标,它们在安装的软件包中显然不同,只是提到一个:gdb-server).
自从我后来进入这个项目以来,我不知道他们如何命名这些目标......所以我只想知道:
我如何获得目标列表?
(我尝试搜索,但由于我甚至不熟悉所有使用的技术术语,因为我不是YOCTO的开发人员,我可能只是没有搜索正确的术语)
我不是要列出的任务,我只想做一个发展的形象,我知道有配置为它的目标,我只是不知道它的名字(和没有我的大学都在这里,他们也将是任何时候很快).
戴维斯的答案似乎是最接近的,但评论中还有其他一些方法;-).THX全部为您提供帮助,谢谢.
因此,每次修改设备树时,我通常会更改自定义配方中的dts并重建图像.重建需要很长时间才能重建整个内核,然后需要构建映像并最终部署到目标设备.
是否有任何我只缺少重建设备树的技巧?
更新:
我已经将g0hl1n的答案标记为正确答案,因为这是我的问题的答案.但是,我发现使用Yocto中的内核非常麻烦:奇怪的,长路径和每次重建时文件被覆盖的风险,tmp/work-shared中内核的源代码,而内核是在tmp/work中构建的.
相反,我已经将内核开发从Yocto中移除了.Yocto有很好的工具来创建SDK(请参阅populate_sdk任务),通过快速重建和手动(或脚本化)部署,可以轻松地为内核开发设置环境.完成工作后,可以使用git diff将更改移动到配方.
以下页面上的说明非常有用:http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html
我在Yocto项目中工作了很多,而且常见的挑战是确定rootf上包含文件的原因(或从哪个配方开始).这可以从构建系统的环境,日志和元数据中获得.理想情况下,一组命令将允许将文件链接回源(即配方).
我通常的策略是对元数据执行搜索(例如grep -R filename ../layers/*)并在互联网上搜索所述文件名以找到可能负责任的食谱的线索.但是,这并不总是非常有效.在许多情况下,文件名未在配方中明确说明.此外,在许多情况下,文件名由多个配方提供,这导致额外的工作以找到最终提供它的配方.当然还有很多其他线索可以找到答案.无论如何,当构建系统看起来应该有足够的信息来简单地解决答案时,这种调查通常非常费力.
我正在一个项目中工作,这个项目有许多bitbake食谱并且需要花费很多时间 - 在某些情况下长达13个小时.我是bitbake的新手,我要求某种方式:
或任何使用任何工具来更好地管理和理解食谱的建议.
或者通常用于加速构建过程的任何方法/方法.
欢迎提出建议和确切技术.
编辑日期07/08/2013:
找到这个用于跟踪依赖关系的有用工具
https://github.com/scottellis/oe-deptools
描述:
./oey.py -h
Usage: ./oey.py [options] [package]
Displays OE build dependencies for a given package or recipe.
Uses the pn-depends.dot file for its raw data.
Generate a pn-depends.dot file by running bitbake -g <recipe>.
Options:
-h Show this help message and exit
-v Show error messages such as recursive dependencies
-r Show reverse dependencies, i.e. packages dependent on package
-f Flat output instead of default tree …Run Code Online (Sandbox Code Playgroud) 我有一个使用bitbake的OpenEmbedded环境来做一些构建.我希望得到一些"交互式"的东西,bitbake会暂停并询问输入然后继续构建,但我发现这是不可能的.
因为我不能这样做,所以我正在寻找一些方法来为构建传递额外的标志.有没有办法将标志传递给bitbake构建类似gcc的-D选项?
即:
bitbake -Dfoo=bar oe-myimage
Run Code Online (Sandbox Code Playgroud)
因此在oe-myimage变量的构建过程foo中将设置为bar.
build compiler-flags command-line-arguments openembedded bitbake
任何人都可以更全面地向我解释sstate缓存如何在yocto中工作?
这种解释还不清楚.
我不明白何时出现这种情况:
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Running setscene task 118 of 155 (virtual:native:/home/lulianhao/poky-build/edwin/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot_setscene)
NOTE: Running setscene task 119 of 155 (/home/lulianhao/poky-build/edwin/poky/meta/recipes-devtools/quilt/quilt-native_0.48.bb:do_populate_sysroot_setscene)
Run Code Online (Sandbox Code Playgroud)
当它找到工件或得到候选人,然后检查签名.我想知道什么时候setcene任务实际运行.
附加问题:当它在本地sstate_cache文件夹中查找并进入镜像时?
我正在尝试查找"bb.utils.contains"的文档.我在pokey/bitbake/lib/utils.py中找到了代码,但该代码记录很少.例如,它采用名为"d"的参数.什么是"d"?你怎么开始使用像这样的简短的非描述性名称?
我已经下载并搜索了所有yocto和poky文档,并进行了大量的网络搜索,但无济于事.
有没有人知道对内置的bitbake python实用程序的一个很好的参考?
我正在尝试通过他们主网站上的视频教程来学习 yocto。我安装了 poky-rocko-18.0.0 并在设置构建环境后尝试使用以下命令构建 linux 映像:
bitbake core-image-minimal
但是,我收到以下错误:

我不确定如何启动 bitbake 服务器,到目前为止还没有找到任何好的参考。
如果我在本地目录中有一个tarball,helloworld.tar.gz,比如/ home/user/tarballs /,如何从该目录中获取bitbake配方?
我的helloworld.bb是
SECTION = "examples"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING; md5=1b1b8016e15e07a2fec59623ebf12345"
SRC_URI = "file://helloworld.tar.gz"
Run Code Online (Sandbox Code Playgroud)
但是当我咬嘴时,我收到以下警告信息:
WARNING: Unable to get checksum for helloworld SRC_URI entry helloworld.tar.gz: file could not be found
Run Code Online (Sandbox Code Playgroud)
我读了一些关于FILES和FILESEXTRAPATHS的内容可以影响下载路径,但不确定在何处/如何设置它们.
我做了一个bitbake -c show FILESEXTRAPATHS但收到错误信息:
ERROR: Nothing PROVIDES 'FILESEXTRAPATHS'
Run Code Online (Sandbox Code Playgroud) bitbake ×10
yocto ×7
openembedded ×4
build ×2
dependencies ×1
device-tree ×1
embedded ×1
linux ×1
linux-kernel ×1
path ×1
python ×1
uri ×1