标签: bitbake

BitBake默认任务

我最近一直在尝试BitBake,我很想知道它是如何工作的.

我可以编译我的组件如下:

bitbake component
Run Code Online (Sandbox Code Playgroud)

但我发现以下行做了同样的事情(我指定BitBake应该运行do_build任务):

bitbake component -c build
Run Code Online (Sandbox Code Playgroud)

即组件编译,工作,两者生成相同的日志文件.当我没有指定任务时,任务do_build是某种默认值吗?我只用这个组件尝试了这个,所以我很好奇它是否是通用的?

bitbake

0
推荐指数
1
解决办法
794
查看次数

BitBake包装奇特

我有一个BitBake recipe(example_0.1.bb),do_install其中包含一个尝试安装.so文件的任务:

do_install() {
    install -d ${D}${libdir}
    install -m 0644 ${S}/example.so ${D}${libdir} 
}
FILES_${PN} += "${libdir}/example.so"
Run Code Online (Sandbox Code Playgroud)

这在构建过程中失败并返回:

ERROR: example not found in the base feeds   
Run Code Online (Sandbox Code Playgroud)

但是,如果我将测试文件添加到包中,则.so文件和测试文件都会添加到rootfs中.

do_install() {
    install -d ${D}${libdir}
    install -m 0644 ${S}/example.so ${D}${libdir} 
    echo "bar" >> ${TOPDIR}/foo
    install -m 0644 ${TOPDIR}/foo ${D}${libdir} 
}
FILES_${PN} += "${libdir}/libceill.so"
FILES_${PN} += "${libdir}/foo"
Run Code Online (Sandbox Code Playgroud)

如何只添加.so没有垃圾测试文件的文件?

package dynamic-library openembedded bitbake yocto

0
推荐指数
1
解决办法
1525
查看次数

Apache2在Yocto中支持PHP

我正在使用Yocto来创建包含apache2的构建,但我很难添加php支持.我以前运行它(读取:去年),但从那时起,meta-openembedded中的元网络服务器层发生了变化.从meta-webserver中的README文件:

"这一层用于提供内置mod_php的一个modphp配方,但这种情况正在建于元OE的PHP食谱的一部分.然而,由于Apache2的是需要建立mod_php,并且和Apache2的食谱是在这一层,食谱元-oe不能依赖它,mod_php,并且默认情况下不建.如果你希望使用mod_php的,你需要"的Apache2",以使将其添加到PACKAGECONFIG价值,为PHP的配方."

我在我自己的图层中添加了以下行到php:

PACKAGECONFIG_append ="apache2"

但是当编译mod_php时无法找到似乎是apache包含文件的内容时我得到编译错误(我在下面只包含一个错误,我也得到类似的ap_config.h错误):

在文件从/home/martin/Yocto/poky/rpi/tmp/work/x86_64-linux/php-native/5.6.12-r0/php-5.6.12/sapi/apache2handler/mod_php5.c:26:0包括:| /home/martin/Yocto/poky/rpi/tmp/work/x86_64-linux/php-native/5.6.12-r0/php-5.6.12/sapi/apache2handler/php_apache.h:24:19:致命错误: httpd.h:没有这样的文件或目录| 编译终止.

有没有人设法最近用php支持编译apache2,并且可以提供一些帮助,如何做到这一点?谢谢!

php apache2 openembedded bitbake yocto

0
推荐指数
1
解决办法
3731
查看次数

在yocto中编译c ++程序

我已经按照教程在我的yocto图像中包含了一个C程序.它就像一个魅力,现在我在我的机器上运行helloworld脚本.

我想用c ++做同样的事情,因为我需要加载一个使用opencv的程序.

我尝试用cpp改变c,但尽管如此,它失败了.还有什么需要改变以使其工作?你能指点我那里的任何教程或例子吗?我用一个简单的例子找不到合适的.

c++ bitbake yocto

0
推荐指数
1
解决办法
6197
查看次数

Yocto 系统配置

我正在尝试在启动时启动服务,但是我在构建时遇到问题。\n这是我的自定义层中的树结构

\n
michael@michael-VirtualBox:~/Documents/simple_daemon/sources/meta-simpledaemon$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 layer.conf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 COPYING.MIT\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 recipes-example\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 example\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example_0.1.bb\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 simpledaemon\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 files\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 simpledaemon.service\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 simpledaemon_git.bb\n
Run Code Online (Sandbox Code Playgroud)\n

在我的 local.conf 中,我在末尾添加了以下内容:

\n
IMAGE_INSTALL_append = " bbexample "\nIMAGE_INSTALL_append = " simpledaemon "\nIMAGE_INSTALL_append = " packagegroup-core-ssh-openssh "\nIMAGE_INSTALL_append = " openssh-sftp-server "\n\n\nDISTRO_FEATURES_append = " systemd"\nVIRTUAL-RUNTIME_init_manager = " systemd"\nDISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"\nVIRTUAL-RUNTIME_initscripts = ""\n
Run Code Online (Sandbox Code Playgroud)\n

我的.bb文件如下:

\n
# Recipe created by recipetool\n# This is the basis of a recipe and may need further editing in order …
Run Code Online (Sandbox Code Playgroud)

systemd bitbake yocto nxp-microcontroller

0
推荐指数
1
解决办法
3272
查看次数

Bitbake 将空文件夹添加到根目录

我想在/home/root我的 bitbake 构建过程中创建一个文件夹。我尝试了两种不同的方法,但都失败了。

第一个给出了一个巨大的错误,我无法滚动到顶部

do_install_append () {
   install -d ${D}/root/smg_logs
}
Run Code Online (Sandbox Code Playgroud)

第二个将构建并运行,但我没有看到创建的文件夹。

create_dirs() {
    mkdir -p root/smg_logs
}

ROOTFS_POSTPROCESS_COMMAND += "create_dirs ; "
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用前一个和以下

create_dirs() {
    install -d ${D}/home/root/smg_logs
    mkdir -p /home/root/smg_logs
}

ROOTFS_POSTPROCESS_COMMAND += "create_dirs ; "
Run Code Online (Sandbox Code Playgroud)

这允许我的设备启动,但它似乎覆盖了一些重要的代码。

编辑:与下面答案中的链接类似,我尝试了以下操作。

do_install_append () {
   install -d ${D}/root/smg_logs
}
FILES_${PN} += "/root/smg_logs"
Run Code Online (Sandbox Code Playgroud)

embedded-linux bitbake yocto

0
推荐指数
1
解决办法
364
查看次数

开发包未包含在 Yocto SDK 中

我们使用以下命令生成 Yocto SDK:bitbake -c populate_sdk <image-name>

约克托分行:邓菲尔

我们没有看到 SDK 中包含头文件,例如,我们有 libmodbus 的一部分IMAGE_INSTALL,但我们在 SDK 中没有看到该modbus.h文件(存在于 libmodbus-dev 包中)。

sdk package bitbake yocto

0
推荐指数
1
解决办法
1083
查看次数