我正在使用OpenEmbedded用户手册中的“ Hello World”示例以及Yocto Project工具的Dora版本。bitbake构建工作正常,但是未在映像中安装可执行文件。基本上,我用两个配方创建了自己的meta层。一种是Autotools版本的“ Hello World”,它将自身构建并安装到映像中。第二个是“ Hello World”的Makefile版本。这就是我遇到的麻烦。
来源是您所期望的:
#include <stdio.h>
int main(int argc, char** argv)
{
printf("Hello world 2!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
还有一个README.txt文件:
Readme file for Hello World 2.
Run Code Online (Sandbox Code Playgroud)
配方如下:
DESCRIPTION = "Hello World 2 Program"
PR = "r0"
LICENSE = "CLOSED"
RM_WORK_EXCLUDE += "hello2"
SRC_URI = "file://hello2.c \
file://README.txt"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/hello2.c -o hello2
}
do_install() {
install -m 0755 -d ${D}${bindir} ${D}${docdir}/hello2
install -m 0644 ${S}/hello2 ${D}${bindir}
install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/hello2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个简单的bitbake配方,它将一些脚本安装到目标根文件系统中.我必须遗漏一些东西,因为我觉得我设置正确,但我不断收到错误消息:
ERROR: Function failed: do_install (see /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493 for further information)
ERROR: Logfile of failure stored in: /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493
Log data follows:
| DEBUG: Executing shell function do_install
| install: cannot stat `uim2svc.sh': No such file or directory
| ERROR: Function failed: do_install (see /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493 for further information)
ERROR: Task 2 (/home/mike/ULF/ulf/oe-ghmi/recipes/images/ttt.bb, do_install) failed with exit code '1'
Run Code Online (Sandbox Code Playgroud)
现在我已经阅读了local-file-fetcher上的bitbake文档,它说:
此子模块处理以file://开头的URL.您在URL中指定的文件名可以是文件的绝对路径或相对路径.如果文件名是相对的,则使用PATESPATH变量的内容的方式与使用PATH查找可执行文件的方式相同.
所以我在我的文件名,SRC_URI本地files目录中的脚本,我已经检查了构建的输出和路径指向我的脚本目录... 所以为什么我仍然得到这个错误?任何人都有关于我可能做错的想法?
这是我的完整bitbake食谱(ttt.bb):
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
SRC_URI = "file://uim2svc.sh"
do_install() …Run Code Online (Sandbox Code Playgroud) 我对克隆私有git仓库的内容感兴趣,因此可以通过自定义BitBake配方使用它们.我尝试从Yocto Project邮件列表中调整这种技术,并产生以下内容:
SRC_URI = "git://www.example.com/path/to/repo;protocol=https;branch=master;name=commit;user=<username>:<password>
SRCREV_commit = "9f8309bbdf0632191bec21fada2cb61a30bcf53e"
Run Code Online (Sandbox Code Playgroud)
我正在使用的密码包含左括号.我收到此错误:
/bin/sh: -c: line 0: syntax error near unexpected token `)'
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式逃避这个特殊角色,或者使用其他方式克隆回购?
出于版本识别的目的,我希望能够检索指示根文件系统映像何时构建的时间戳。它需要在运行时在电路板本身上可检索。
我正在使用 The Ångström Distribution,分支 angstrom-v2013.12-yocto1.5,它使用 OpenEmbedded 来构建 rootfs(根文件系统)。
内核是为此板单独构建的,所以我不能uname -v用于这个目的,因为它只是读出内核构建时间戳,而不是 rootfs 构建时间戳。
是否将 rootfs 构建时间戳添加到 rootfs 映像中可以在运行时检索的某个位置?
我正在使用yocto。它不支持基于ft5x06s的触摸屏,因此我决定添加一个补丁。但是,当我添加补丁文件时,出现以下错误:
ERROR: Command Error: exit status: 1 Output:
Applying patch 0026-imx6q-smx6-edt-ft5x06.patch
patching file Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
patching file drivers/input/touchscreen/edt-ft5x06.c
Hunk #22 FAILED at 751.
Hunk #23 succeeded at 811 (offset -1 lines).
Hunk #24 FAILED at 922.
Hunk #25 FAILED at 959.
Hunk #26 FAILED at 995.
Hunk #27 FAILED at 1009.
Hunk #28 succeeded at 1077 (offset 17 lines).
5 out of 28 hunks FAILED -- rejects in file drivers/input/touchscreen/edt-ft5x06.c
Patch 0026-imx6q-smx6-edt-ft5x06.patch does not apply (enforce with -f)
ERROR: Function failed: …Run Code Online (Sandbox Code Playgroud) 我想知道bitbake -g是如何实现的。可能它会在所有食谱中搜索DEPENDS=...出现,也许更多。然而,如何获得依赖关系图反映RDEPENDS=...关系?
我有一个文件夹,其中有太多的c文件(约200 c文件)
现在在该文件夹的bitbake文件中,我在SRC_URI变量中添加文件,如下所示:
SRC_URI = "file://filename_1.c \
file://filename_2.c \
.
.
.
file://filename_n.c \
Run Code Online (Sandbox Code Playgroud)
因为我有太多的c文件,所以很难在bitbake的SRC_URI变量中添加这样的文件.什么是将所有c文件包含在bitabake文件中的最短方法.或者有没有办法添加c文件的目录,它将包括该目录中存在的所有c文件.
请帮忙
最近,我尝试通过Yocto构建将开源软件包(iperf3)包含在目标图像中.(更新local.conf for IMAGE_INSTALL + ="iperf3",因为项目已经对应配方).但最终图像不包含在根文件系统中.我通过在/ recipe-core/packagegroups/RDEPENDS_packagegroup*中添加包组配方尝试了相同的操作,并且能够成功地包含它.
有人能为我提供行为解释.
我是 Yocto 的新手,我想在 /etc 中创建一个目录并将我的服务器证书复制到该目录中。我尝试在下面做,但它没有在 /etc 中创建任何目录,但是我没有收到任何编译错误:
DESCRIPTION = "OC sample service"
SUMMARY = "Install and start a systemd service and copy server certificates"
LICENSE = "MIT"
SRC_URI = "file://service.tar.gz"
inherit systemd
S = "${WORKDIR}/service"
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} = "sample.service"
SYSTEMD_AUTO_ENABLE = "enable"
INSANE_SKIP_${PN} += "installed-vs-shipped"
do_configure() {
:
}
do_compile() {
:
}
do_install() {
install -d ${D}${systemd_unitdir}/system
install -m 0755 ${S}/sample.service ${D}${systemd_unitdir}/system
mkdir -p ${D}${etcdir}/oc_certs
install -m 0755 ${S}/certs/* ${D}${etcdir}/oc_certs
}
FILES_${PN} = "${systemd_unitdir}/system
Run Code Online (Sandbox Code Playgroud)
”
现在的问题是,sample.service 已成功放置到该位置,但未创建 …
我在 openembedded 构建目录
92G tmp
21G tmp-glibc
Run Code Online (Sandbox Code Playgroud)
如何清理不需要的文件?旧版本、废弃目标、缓存……
是否有任何选项可以让 bitbake 不复制每个食谱的依赖项?
我想删除一项选定任务不需要的所有内容