为了阅读,我正在一个我们创建一个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/*)并在互联网上搜索所述文件名以找到可能负责任的食谱的线索.但是,这并不总是非常有效.在许多情况下,文件名未在配方中明确说明.此外,在许多情况下,文件名由多个配方提供,这导致额外的工作以找到最终提供它的配方.当然还有很多其他线索可以找到答案.无论如何,当构建系统看起来应该有足够的信息来简单地解决答案时,这种调查通常非常费力.
我想建立一个没有docker iself的Docker镜像.我看过Packer,但它要求在构建器主机上安装Docker.
我查看了Docker Registry API文档,但这些信息似乎并不存在.
我想这个图像只是一个tarball,但我希望看到格式的完整规范,即需要什么样的格式,并且需要任何元数据文件.我可以尝试从注册表中下载图像并查看其中的内容,但是没有关于如何获取图像本身的信息.
我的项目的想法是实现一个脚本,从我编译的atefacts创建一个图像,并将其上传到注册表.我想将OpenEmbedded用于此目的,基本上这将是对Bitbake的扩展.
我想在yocto中写一个配方来构建我的自定义组件.在那我想根据机器启用一些标志.
例如:
如果机器是x86
我的configure命令应该是这样的:
./configure --enable-x86
Run Code Online (Sandbox Code Playgroud)
如果是x64
./configure --enable-x64
Run Code Online (Sandbox Code Playgroud)
我正在使用汽车工具进行建设.请帮我写配方以及"configure.ac"来实现这一目标.
ps:我对yocto很新.
任何人都可以更全面地向我解释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 服务器,到目前为止还没有找到任何好的参考。
我正在考虑开发一个嵌入式Linux项目(工业应用程序)的Yocto项目,对于那些有嵌入式Linux经验的人,我有一些问题--Yocto会获得奖金.只需要了解固件更新中常见的内容.
我有一些要求,即身份验证,安全通信协议,如果更新失败,某种类型的回滚.此外,如果有一种方法可以逐步在整个设备上释放补丁,那么这也很有意思,因为我想避免在现场使用砖块设备.
如何在今天为现场设备部署更新/补丁 - 以及开发它需要多长时间?我还缺少其他考虑因素吗?
我正在尝试编写一个.bbappend文件,该文件将附加到initramfs-live-boot_1.0.bb其中有一个语句,该语句do_install()将init-live.sh管理引导过程的shell脚本的内容写入启动时init运行的初始化脚本.我的.bbappend文件的目的是引用要复制的启动脚本的修改版本来代替原始版本而不更改基础openembedded-core和/或poky环境.因此,该.bbappend文件和我的脚本版本将放在我的项目目录中,并构建其余的自己的食谱.
我initramfs-live-boot_1.0.bbappend看起来像这样:
SUMMARY = "Replacement recipe"
FILESEXTRAPATH_prepend := "${THISDIR}/files:"
SRC_URI += "file://init.sh"
do_install_append() {
install -m 0755 ${WORKDIR}/init.sh ${D}/init
}
Run Code Online (Sandbox Code Playgroud)
我files在与.bbappend包含init.sh应该从中读取的脚本的文件所在的目录中有一个文件夹.
问题是当我尝试构建图像时,它会吐出这个错误:
WARNING: Failed to fetch URL file://init.sh, attempting MIRRORS if available
Run Code Online (Sandbox Code Playgroud)
然后尝试在poky目录中搜索缺少的文件,而不是在我的项目目录中.
我.bbappend写错了文件吗?我如何initramfs使用该.bbappend文件编辑脚本?
yocto ×10
bitbake ×7
openembedded ×4
linux ×3
autotools ×1
device-tree ×1
docker ×1
embedded ×1
init ×1
linux-kernel ×1
packer ×1
patch ×1
recipe ×1