我想了解如何编译将在我的beagle板上运行的程序.我需要编译一些我目前在fedora中运行的复杂程序,但是理解如何使用Open Embedded和BitBake已经证明很麻烦.我认为最近对openembedded进行了一些重大更改,我的OE安装的目录结构甚至与我在网上其他地方找到的教程和操作方法都不一致.
我按照这里的指示设置了OE-Core,它给了我以下目录结构:
[user@localhost ~]$ ls oe-core -al
total 52
drwxr-xr-x 9 user user 4096 May 13 13:31 .
drwx------. 31 user user 4096 May 13 12:56 ..
drwxr-xr-x 9 user user 4096 May 10 11:52 bitbake
drwxrwxr-x 8 user user 4096 May 13 13:36 build
drwxr-xr-x 8 user user 4096 May 13 13:33 .git
-rw-r--r-- 1 user user 165 May 10 11:51 .gitignore
-rw-r--r-- 1 user user 545 May 10 11:51 LICENSE
drwxr-xr-x 21 user user 4096 …Run Code Online (Sandbox Code Playgroud) 我正在使用最新的poky-am335x来构建简单的helloworld应用程序.通过一些解决方法,我可以编译应用程序.我正在做很多安装二进制文件的路径但是构建错误.
错误日志:
DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
DEBUG: Executing shell function do_install
NOTE: make -j 4 DESTDIR=/home/pis1kor/workspace/poky-am335x/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/helloworld-1.0-r0/image install
make: *** No rule to make target `install'. Stop.
ERROR: oe_runmake failed
ERROR: Function failed: do_install (see /home/pis1kor/workspace/poky-am335x/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/helloworld-1.0-r0/temp/log.do_install.29583 for further information)
Run Code Online (Sandbox Code Playgroud)
Bitbake文件:
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.tar"
do_compile () {
make -C ${WORKDIR}/helloworld all
}
do_install() {
oe_runmake install DESTDIR=${D}
} …Run Code Online (Sandbox Code Playgroud) 是否可以在配方中运行命令,就像它在实时系统上运行一样?如果是这样,怎么样?我想在创建图像之前将我的密钥导入gpg,因此在格式化SD卡后我不必登录系统.
我正在使用OpenEmbedded-Core并创建了一个优先级为6的自定义层.几个月的开发已经过去了,现在我想将我们图层的优先级提高到8,因为来自另一个优先级为7的图层的追加文件正在干扰追加我在我的图层中添加了文件.
我的问题是,如何生成图像中使用的配方和.bbappend文件列表?
我想在进行优先级更改之前和之后生成列表,以便我可以比较它们(希望有一个difftool)来查看是否发生了任何意外的副作用,例如来自其他层的重要附加文件可能会被忽略.
我正在使用Angstrom发行版的angstrom-v2014.12-yocto1.7分支.
[编辑]
我现在主要只是想确定如何列出我的图像实际使用的.bbappend文件.
可以使用@pnxs建议的"bitbake -g your-image-name"或者.manifest文件(我喜欢使用的)来查看软件包列表,在我的情况下,它位于deploy/glibc /下图像/ imagename /.我最初询问如何生成"配方文件"列表,但我认为包列表就足够了.
关于.bbappends,我有一个案例,由于图层优先级,我自己的.bbappend被忽略了.我对我的图层优先级进行了更改,现在想看看是否会导致我的图像中任何其他位置的.bbappend文件被忽略.根据我的理解,使用"bitbake-layers show- appends "作为建议列出所有 .bbappends而不仅仅是那些实际用于创建图像的内容,因此这不符合我的要求.
我正在尝试为嵌入式系统配置自定义Yocto构建.
我需要向目标fs和工具链添加包.
目前我只是想添加已有配方的包.
例如,通过添加IMAGE_INSTALL += " boost-dev",TOOLCHAIN_TARGET_TASK += "boost-dev"我可以为targetfs和工具链添加提升.
我想做的事
Yocto构建的rootfs非常完整,并且有很多库,但工具链只有最基本的库.
我想将缺少的库添加到工具链中.
题:
如何找到可用库的名称?
就像boost-dev,我做了很多谷歌搜索通过添加名称boost-dev找到TOOLCHAIN_TARGET_TASK我可以得到我想要的.
但是像OpenGL和OpenCL这样的东西,即使我知道它们是/meta-fsl-arm/recipes-graphics/imx-gpu-viv在我的情况下提供的,我该如何找出我要添加的包名TOOLCHAIN_TARGET_TASK?
我发现以下内容:
它说:使用"expand = True"扩展价值."扩展"是什么意思?
元图层提供配方:
meta/recipes-graphics/x11-common/xserver-nodm-init.bb
Run Code Online (Sandbox Code Playgroud)
meta-oe层提供配方:
meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb
Run Code Online (Sandbox Code Playgroud)
我的问题是:
构建系统如何从多层中选择xserver-nodm-init?
它是否根据conf/bblayers中的图层顺序选择xserver-nodm-init配方?
我目前正在使用 Yocto 安装 dnsmasq,但我想删除自动启动。
所以我创建了一个 .bbappend 文件,我尝试了类似的东西:
pkg_postinst_${PN} () {
update-rc.d dnsmasq -f remove
}
Run Code Online (Sandbox Code Playgroud)
但它没有用,我不知道如何使用 bbappend 文件删除这个 init 脚本。
谢谢,皮埃尔-奥利维尔
我有一个带有多个配方的bitbake构建环境,这些配方在链中是依赖的。
目前,我必须执行以下操作: bitbake recipe1 && bitbake recipe2
我已经添加:DEPENDS = "recipe1"到meta-recipe2 / recipe2.bb
bitbake-layers show-cross-depends 显示了这种依赖性。
我bitbake recipe2最先想到的是要先运行build1,但是事实并非如此。
我需要做什么来构建DEPENDS变量中侦听的依赖关系?
我有一个基于rocko分支的Yocto构建系统,该系统为基于ARM的目标板生成图像.该主板上的一个芯片是一个基于ARM的小型微控制器,它与主CPU分开.它需要加载我必须构建的固件映像.
制作这种微控制器固件的配方很容易.它需要ARM交叉编译器,然后需要一些特殊的编译器选项来控制代码生成(对于cortex-m4 + thumb等).问题是,如果我设置一个正常的配方,它将假设我正在为目标ARM体系结构构建一些东西,这是一种需要不同代码生成选项的不同类型的ARM.我当然可以让固件Makefile覆盖为目标系统提供的交叉编译环境,并让Makefile只生成二进制固件映像.
但这将导致一个名义上用于目标ARM架构的封装,但其中包含一个二进制blob,用于闪存到目标板上的芯片上.
所以我的问题是,我应该如何制作一个固件的配方,该固件将在完全不同的架构上执行,而机器是yocto最终构建的?
看起来我需要创建专门为微控制器构建的配方,因此在某种程度上与正常的目标配方不同.
bitbake ×10
yocto ×6
openembedded ×3
linux ×2
recipe ×2
beagleboard ×1
build ×1
datastore ×1
dependencies ×1
init ×1
makefile ×1