我需要设置一个特定的标头来使用获取器从资源中获取存档wget,类似于:
wget --header "PRIVATE-ACCESS-TOKEN:blablablablabla https://some-resource...."
Run Code Online (Sandbox Code Playgroud)
如何使用该获取器设置特定标头?
提前致谢!
如何在arago项目构建中编写自己的配方包?我知道它可以是bitbake文件.但我怎么写,不知道.我在互联网上搜索,但没有找到任何好的来源开始.有人可以提供链接或示例开始吗?
关心
Linux学习者.
我正在为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)
但仍然没有运气.
我正在尝试删除一些附加了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.如果是这样,需要设置哪些变量来覆盖最终清单.
我正在尝试编写一个配方,可以在构建整个映像时将两个文件(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)
在这方面的任何帮助将不胜感激.
要创建一个HelloWorld .ipk程序包,所描述的在这里,我克隆bitbake和OpenEmbedded作为
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.conf在myhelloworlddir中修改并创建dir openembedded-core/build/然后执行 …
默认情况下,所有Yocto项目都带有-O2优化级别
如何使用-O0覆盖单个包?
我写了一个食谱,希望在之后执行任务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不允许我在其后添加任务吗?
我创建了一个用于安装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图像所需的所有文件的SRC_URI bitbake core-image-minimal -c fetchall然后解析日志文件。
是否有一种更简单的方法无需下载文件即可获得相同的结果?
我不确定bitbake是否支持这种功能。理想情况下,我正在寻找一个命令,该命令可以打印出程序包名称并列出具有相应URL的所有文件
> bitbake core-image-minimal -c fetchall --print-only
Run Code Online (Sandbox Code Playgroud)