标签: openembedded

Cmake与bitbake配方

我正在尝试用自己的包构建一个yocto图像.我在github上使用cmake的OpenCV代码.

我试着为它写一个食谱并面临很多错误.任何人都可以提供一些关于我的食谱中包含哪些功能或参数的提示.我的食谱如下

DESCRIPTION = "cameracapture application" 
SECTION = "examples" 
LICENSE = "CLOSED" 
PR = "r0" 

DEPENDS += "opencv"

SRC_URI = "git://https://github.com/zafrullahsyed/cameracapture.git;protocol=https;tag=v0.1"

EXTRA_OECMAKE=""

do_configure() { 
 cmake ../ 
} 

inherit pkgconfig cmake
Run Code Online (Sandbox Code Playgroud)

我按照这些教程用cmake写了我的食谱但是徒劳无功: Bitbake Player食谱

CMake的-BitBake的-QT

cmake openembedded bitbake

9
推荐指数
3
解决办法
2万
查看次数

如何检查执行的实际bitbake命令

bitbake是否存储调用的shell命令(沿着调用路径)?我可以在日志文件中找到shell-command输出,但是想查看实际的命令行.

openembedded bitbake

8
推荐指数
1
解决办法
2694
查看次数

配方为其他开发人员部署.ipk

我有一个配方(比如my_package_1.0.bb),用于构建库并使用我需要的库和头来填充sysroot进行开发.我还看到我的包的.ipk是在build/tmp/deploy/ipk /下创建的.

我的要求是,我想共享库,标题和在我的客户的sysroot目录中进行部署的配方(用于开发),但不是我的包的源代码.处理这个问题的最佳方法是什么?

有没有办法分享.ipk和一些安装.ipk的方法?

PS:客户打算使用我的标题和库中的接口开发应用程序.客户没有许可我的包的来源.

recipe openembedded bitbake yocto

8
推荐指数
1
解决办法
3904
查看次数

如何在yocto / openembedded项目中添加更多python模块?

我想在我的yocto / openembedded项目中添加更多的python模块,但是我不确定该怎么做?我希望添加flask及其依赖项。

python linux openembedded bitbake yocto

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

Yocto“无法运行 qemu:无法初始化 SDL(x11 不可用)”

所以我在本地构建服务器上安装了 Yocto,因为谁想要大规模构建吞噬他们的工作区 amirite?

主机和服务器是 Arch Linux 4.19.44-1-lts

无论如何,我只是从这里找到的快速构建页面运行示例,当我尝试

 $ runqemu qemux86 
Run Code Online (Sandbox Code Playgroud)

从 ssh(启用 X11 转发)我得到的只是这个糟糕的输出:

runqemu - INFO - Running MACHINE=qemux86 bitbake -e... runqemu - INFO 
- Continuing with the following parameters: 

KERNEL: [/home/bob/poky/build/tmp/deploy/images/qemux86/bzImage--5.0.3+git0+f0b575cda6_3df4aae607-r0-qemux86-20190520164453.bin] MACHINE: [qemux86] FSTYPE: [ext4] ROOTFS: [/home/bob/poky/build/tmp/deploy/images/qemux86/core-image-sato-qemux86-20190520164453.rootfs.ext4] CONFFILE: [/home/bob/poky/build/tmp/deploy/images/qemux86/core-image-sato-qemux86-20190520164453.qemuboot.conf] 

runqemu - INFO - Setting up tap interface under sudo [sudo] password for bob: runqemu - INFO - Network configuration: 
192.168.7.2::192.168.7.1:255.255.255.0 runqemu - INFO - Running /home/bob/poky/build/tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-i386 
-device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -drive file=/home/bob/poky/build/tmp/deploy/images/qemux86/core-image-sato-qemux86-20190520164453.rootfs.ext4,if=virtio,format=raw 
-vga vmware -show-cursor …
Run Code Online (Sandbox Code Playgroud)

x11 qemu qx11embedcontainer openembedded yocto

8
推荐指数
1
解决办法
5051
查看次数

无法在飞思卡尔i.MX28上启动基本的OpenEmbedded-Core

我一直在试图建立和启动OpenEmbedded的核心的评估套件飞思卡尔的ARM i.MX28,使用飞思卡尔ARM层OpenEmbedded的核心.不幸的是,我找不到基本的"入门"指南(尽管有一个Yocto入门指南).不幸的是,我无法"开始",成功启动到主板的调试串口上的基本命令提示符.

这就是我能够拼凑起来的东西,就我迄今为止所做的而言.

获取源

mkdir -p oe-core/freescale-arm
cd oe-core/freescale-arm
git clone git://git.openembedded.org/openembedded-core oe-core
git clone git://github.com/Freescale/meta-fsl-arm.git
cd oe-core
git clone git://git.openembedded.org/meta-openembedded
git clone git://git.openembedded.org/bitbake bitbake
Run Code Online (Sandbox Code Playgroud)

设置环境

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

这使我们进入一个新的子目录build并设置某些环境变量.

编辑配置

编辑conf/bblayers.conflocal.conf文件:

conf/bblayers.conf应该添加meta-fls-armmeta-oe添加图层BBLAYERS.例如:

BBLAYERS ?= " \
  /home/craigm/oe-core/freescale-arm/oe-core/meta \
  /home/craigm/oe-core/freescale-arm/oe-core/meta-openembedded/meta-oe \
  ${TOPDIR}/../../meta-fsl-arm \
  "
Run Code Online (Sandbox Code Playgroud)

conf/local.conf,我设置:

BB_NUMBER_THREADS = "4"
PARALLEL_MAKE = "-j 4"
MACHINE = "imx28evk"
Run Code Online (Sandbox Code Playgroud)

建立 …

arm embedded-linux openembedded

7
推荐指数
1
解决办法
2254
查看次数

请求澄清Yocto继承

我最近开始构建基于Linux的嵌入式系统,这与我通常的嵌入式设备相去甚远,我可以完全控制所有内容.

作为其中的一部分,我正在研究Yocto/bitbake/OpenEmbedded构建系统.

我正在努力解决一件事,那就是分层概念,所以我试图弄清楚层使用/影响其他层的方式.

从我的理解至今,.bb配方文件使用require简单地包含另一个文件,类似于C的#include "myheader.h"通常看起来本地.

.bbappend在"上"层将自动神奇地包括基础文件文件然后进行更改,排序的固有require.

相比之下,inherit关键字查找一个.bbclass在多,因为它所处的同样的方式类文件.bb的文件,并继承了所有从他们的detials(有点像#include <stdio.h>这又一般,看在系统区(A) ).

所以问题的第一部分是:我的理解是否正确?还是我太简单了?

然后我的问题的第二部分涉及BBEXTENDS根据我目前的理解使用.如果我们已经能够通过使用扩展配方require,那么在BBEXTENDS变量中列出所述配方的目的是什么?


(a)是的,我知道它们完全依赖于标题的来源,我只是谈论它们的常用用法.

openembedded bitbake yocto

7
推荐指数
1
解决办法
6110
查看次数

简单安装本机脚本以用于其他配方

我需要foo在一个配方(foo-native)中安装一个本机脚本,调用它,然后在do_compile另一个(目标)配方的步骤中使用它- 调用它bar.

我的(最小)原生食谱

SRC_URI = "file://foo"
LICENSE = "CLOSED"

inherit native

BBCLASSEXTEND = "native"

S = "${WORKDIR}"

do_compile() { 
    : 
}

do_install() {
    install -d ${D}/usr/bin
    install ${WORKDIR}/foo ${D}/usr/bin
}
Run Code Online (Sandbox Code Playgroud)

该脚本foo存在于一个目录中,该目录files位于配方旁边.即

foo/
??? files
?   ??? foo
??? foo.bb
Run Code Online (Sandbox Code Playgroud)

我的目标食谱 bar

SRC_URI = ""
LICENSE = "CLOSED"

DEPENDS = "foo-native"

do_fetch[noexec] = "1"
do_configure[noexec] = "1"

do_compile() {
    foo >myfile.json
}

do_install() {
    install -d ${D}/etc
    install ${WORKDIR}/myfile.json …
Run Code Online (Sandbox Code Playgroud)

openembedded bitbake yocto

7
推荐指数
1
解决办法
2186
查看次数

Yocto Project和OpenEmbedded之间的区别?

关于Yocto项目常见问题:

Yocto Project和OpenEmbedded共享一个名为openembedded-core的核心元数据集合.但是,这两个组织仍然是分开的,每个组织都有自己的重点.OpenEmbedded为各种体系结构,功能和应用程序提供了一整套元数据.Yocto项目致力于为核心架构和特定板提供功能强大,易于使用,可互操作,经过良好测试的工具,元数据和板级支持包(BSP).

我还没有得到任何清楚.这两个框架旨在构建Linux发行版.但我想知道它们具体区别于什么.不仅在技术上,而且在客观上,所以我可以争论为什么选择一个或另一个.

而且,为什么Yocto如此突出?尽管OE是第一个构建框架.

ps:我曾与Yocto Project合作过,但与OE合作过.

openembedded yocto

7
推荐指数
1
解决办法
2330
查看次数

Yocto 安装后不需要的文件如何删除?

我正在尝试为 Yocto 中的自定义库创建一个配方。我目前收到此错误:

ERROR: ... do_package: QA Issue: pot-plugin: Files/directories were installed but not shipped in any package:
  /usr/lib/qt5/plugins/mediaservice/a.so.1.0
  /usr/lib/qt5/plugins/mediaservice/a.so.1
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
Run Code Online (Sandbox Code Playgroud)

我已经设置了这些,FILES_${PN}但在这种情况下,Yocto 抱怨那些符号链接太多,并且不属于该包。实际上,正确的做法是将它们也从 sysroot 本身中删除。因此,我尝试定义该do_install步骤,但在创建包之前找不到如何删除这些步骤。我做了类似的事情:

do_install {
   rm <some_path>/a.so.1.0
   rm <some_path>/a.so.1
}
Run Code Online (Sandbox Code Playgroud)

但我找不到正确的使用路径。有人可以解释这是否是解决问题的正确方法,如果是,我应该使用什么路径在安装这些文件之后和创建包之前删除这些文件?谢谢!

openembedded bitbake yocto yocto-recipe

7
推荐指数
1
解决办法
1万
查看次数