标签: bitbake

将特定标头添加到 bitbake wget fetcher

我需要设置一个特定的标头来使用获取器从资源中获取存档wget,类似于:

wget --header "PRIVATE-ACCESS-TOKEN:blablablablabla https://some-resource...." 
Run Code Online (Sandbox Code Playgroud)

如何使用该获取器设置特定标头?

提前致谢!

embedded-linux bitbake yocto

3
推荐指数
1
解决办法
929
查看次数

如何在arago项目构建中为配方编写自己的包

如何在arago项目构建中编写自己的配方包?我知道它可以是bitbake文件.但我怎么写,不知道.我在互联网上搜索,但没有找到任何好的来源开始.有人可以提供链接或示例开始吗?

关心
Linux学习者.

linux cross-compiling embedded-linux openembedded bitbake

2
推荐指数
1
解决办法
5308
查看次数

调试bitbake pkg_postinst _ $ {PN}:附加到其他配方安装的配置文件

我正在为openembedded-classic编写openembedded/bitbake配方.关于keyutils的我的食谱RDEPENDS,一切似乎都有效,除了一件事:我想在keyutils包安装的/etc/request-key.conf文件中附加一行.所以我在配方中添加了以下内容:

pkg_postinst_${PN} () {
  echo 'create ... more stuff ..' >> ${sysconfdir}/request-key.conf
}
Run Code Online (Sandbox Code Playgroud)

但是,我生成的图像中缺少预期添加的行.update-rc.d如果这有任何区别,我的食谱会继承.

我的主要问题是:我如何调试这个?目前我正构建一个完整的rootfs图像,然后在其中进行搜索,看看是否显示更改.当然有更好的方法吗?

更新: 将食谱更改为:

pkg_postinst_${PN} () {
  echo 'create ... more stuff ...' >> ${D}${sysconfdir}/request-key.conf
}
Run Code Online (Sandbox Code Playgroud)

但仍然没有运气.

openembedded bitbake

2
推荐指数
2
解决办法
2845
查看次数

如何从bitbake构建的最终rootfs映像中删除特定的包

我正在尝试删除一些附加了GPLv3许可的开源软件包,我们无法将其作为最终生产映像的一部分进行分发.虽然可以使用local.conf中的"INCOMPATIBLE_LICENSE = GPLv3"删除这些包,但它会删除标记为GPLv3的每个包.我使用了PREFERRED_VERSION_recipename =(GPLv2 recipe_version)并将所有GPLv3包降级为我们想要推送到最终图像的GPLv2.但是我们希望将几个GPLv3包保留为调试映像的一部分,例如M4,make,gdb,bison.这些软件包不需要在最终的生产映像中,但是这些软件包无法在构建/调试期间完全从构建中删除.

那么,我如何从最终的rootfs图像中删除这些包/配方,同时让它们作为构建过程的一部分并让它们构建.换句话说,我想让bitbake从GPLv3源构建它们,但是让它们远离最终的rootfs图像.

我确实查看了poky/lib/oe/manifest.py和rootfs.py创建函数==>,其中正在创建最终的rootfs清单,但无法确定从bitbake中确切需要设置的内容.是否需要覆盖do_rootfs.如果是这样,需要设置哪些变量来覆盖最终清单.

bitbake yocto

2
推荐指数
1
解决办法
3313
查看次数

bitbake配方 - 做一个简单的图像副本

我正在尝试编写一个配方,可以在构建整个映像时将两个文件(MyfileA,MyfileB)简单地复制到特定目录.这就是我的目录结构:

MyDir/MyRecipe.bb
MyDir/files/MyfileA
MyDir/files/MyfileB
Run Code Online (Sandbox Code Playgroud)

我想将这两个文件复制到家中的文件夹(最初不存在,因此应该创建目录)文件夹让我们称之为"Testfolder"这就是我的bitbake文件看起来像

DESCRIPTION = "Testing Bitbake file"
PR = "r0"

SRC_URI = "file://MyfileA \
           file://MyfileB "

do_install() {
        install -d  MyfileA ~/TestFolder/
}
Run Code Online (Sandbox Code Playgroud)

如果我在这里做错了,请告诉我?当我对此运行bitbake时,我得到以下内容

The BBPATH variable is not set and bitbake did not find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment: LANG, LS_COLORS, LESSCLOSE, XDG_RUNTIME_DIR, SHLVL, SSH_TTY, OLDPWD, LESSOPEN, SSH_CLIENT, MAIL, SSH_CONNECTION, XDG_SESSION_ID, _, BUILDDIR
Run Code Online (Sandbox Code Playgroud)

在这方面的任何帮助将不胜感激.

recipe bitbake yocto

2
推荐指数
1
解决办法
4291
查看次数

ImportError:没有名为bb的模块

要创建一个HelloWorld .ipk程序包,所描述的在这里,我克隆bitbakeOpenEmbedded作为

git clone git://git.openembedded.org/bitbake
git clone git://git.openembedded.org/openembedded
Run Code Online (Sandbox Code Playgroud)

然后导出以下varibales

export OEBASE=/media/sda3/open_env/
export PATH=$OEBASE/bitbak/ebin:$PATH
export BBPATH=$OEBASE/build:$OEBASE/openembedded
export BB_ENV_EXTRAWHITE="OEBASE"
Run Code Online (Sandbox Code Playgroud)

当我运行以下命令时,我得到以下错误:

bitbake -b packages/myhelloworld/myhelloworld_0.1.bb

Traceback (most recent call last):
  File "/usr/bin/bitbake", line 35, in <module>
    import bb
ImportError: No module named bb
Run Code Online (Sandbox Code Playgroud)

我这样做ubuntu 10.04.我在这里缺少什么?

编辑:

如回答所示,我执行了以下命令并获得如下错误:

git clone git://git.openembedded.org/openembedded-core
cd openembedded-core
git clone git://git.openembedded.org/bitbake

cd ..
git checkout dylan
cd bitbake
git checkout 1.18
cd ..

. oe-init-build-env
Run Code Online (Sandbox Code Playgroud)

build/conf/local.confmyhelloworlddir中修改并创建dir openembedded-core/build/然后执行 …

python packages package openembedded bitbake

2
推荐指数
1
解决办法
4448
查看次数

如何在位烘焙配方中覆盖单个包装的优化级别?

默认情况下,所有Yocto项目都带有-O2优化级别

如何使用-O0覆盖单个包?

openembedded bitbake yocto

2
推荐指数
1
解决办法
1460
查看次数

如何在do_deploy()之后添加任务?

我写了一个食谱,希望在之后执行任务do_deploy()

[...]

inherit deploy

[...]

do_deploy () {
    echo "do_deploy() has been called."
}
addtask deploy after do_compile

do_after_deploy () {
    echo "do_after_deploy() has been called."
}
addtask after_deploy after do_deploy
Run Code Online (Sandbox Code Playgroud)

当我创建配方时,do_deploy()将执行任务。然而after_deploy()任务不是。

当我手动执行任务并执行任务中bitbake my_recipe -c after_deploy的指令时。

这是什么原因呢?是do_deploy()最后一个任务,BitBake不允许我在其后添加任务吗?

bitbake yocto

2
推荐指数
1
解决办法
4989
查看次数

SRC_URI不适用于bitabake配方

我创建了一个用于安装https://pypi.python.org/pypi/Adafruit-GPIO/1.0.3 python包的bitbake配方.以下是我的食谱

DESCRIPTION = "Library to provide a cross-platform GPIO interface on the Raspberry Pi and Beaglebone Black using the RPi.GPIO and Adafruit_BBIO libraries"
SECTION = "devel/python"
LICENSE = "CLOSED"

PR = "r1"

SRC_URI = "https://pypi.python.org/packages/db/1c/2dc8a674514219f287fa344e44cadfd77b3e2878d6ff602a8c2149b50dd8/Adafruit_GPIO-1.0.3.tar.gz"

inherit pypi setuptools

do_install_append() {
  rm -f ${D}${libdir}/python*/site-packages/site.py*
}

do_compile_prepend() {
    ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_BUILD_ARGS} || \
    true
}
SRC_URI[md5sum] = "dfcdb1ba90188d18ba80b6d2958c8c33"
Run Code Online (Sandbox Code Playgroud)

但每当我尝试咬食谱时,我总会收到以下错误

ERROR: Function failed: Fetcher failure for URL: 'https://pypi.python.org/packages/source/A/Adafruit-GPIO/Adafruit-GPIO-1.0.3.tar.gz'. Unable to fetch URL from any source
Run Code Online (Sandbox Code Playgroud)

我的问题为什么当我在SRC_URI中有其他链接时,bitbake会尝试从其他链接下载?我怎样才能纠正我的食谱>

bitbake yocto

2
推荐指数
1
解决办法
746
查看次数

列出构建Yocto映像所需的所有软件包/文件的SRC_URI

我想列出在烘烤图像时bitbake将获取的所有文件。

目前,我可以通过执行以下操作来获取烘焙Yocto图像所需的所有文件的SRC_URI bitbake core-image-minimal -c fetchall然后解析日志文件。

是否有一种更简单的方法无需下载文件即可获得相同的结果?

我不确定bitbake是否支持这种功能。理想情况下,我正在寻找一个命令,该命令可以打印出程序包名称并列出具有相应URL的所有文件

> bitbake core-image-minimal -c fetchall --print-only
Run Code Online (Sandbox Code Playgroud)

bitbake yocto

2
推荐指数
1
解决办法
1407
查看次数