标签: yocto

bitbake SRC_URI文件://

如果我在本地目录中有一个tarball,helloworld.tar.gz,比如/ home/user/tarballs /,如何从该目录中获取bitbake配方?

我的helloworld.bb是

SECTION = "examples"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING; md5=1b1b8016e15e07a2fec59623ebf12345"

SRC_URI = "file://helloworld.tar.gz"
Run Code Online (Sandbox Code Playgroud)

但是当我咬嘴时,我收到以下警告信息:

WARNING: Unable to get checksum for helloworld SRC_URI entry helloworld.tar.gz: file could not be found
Run Code Online (Sandbox Code Playgroud)

我读了一些关于FILES和FILESEXTRAPATHS的内容可以影响下载路径,但不确定在何处/如何设置它们.

我做了一个bitbake -c show FILESEXTRAPATHS但收到错误信息:

ERROR: Nothing PROVIDES 'FILESEXTRAPATHS'
Run Code Online (Sandbox Code Playgroud)

uri path environment-variables bitbake yocto

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

如何编写需要内核源头文件的BitBake驱动程序配方?

介绍

do_install在BitBake配方中有一个任务,我为驱动程序编写了执行自定义install脚本的任务.任务失败,因为安装脚本无法在其中找到内核源头文件<the image rootfs>/usr/src/kernel.此脚本在生成的OS上运行正常.

发生了什么

这是我食谱的相关部分:

SRC_URI += "file://${TOPDIR}/example"
DEPENDS += " virtual/kernel linux-libc-headers "
do_install () {  
   ( cd ${TOPDIR}/example/Install ; ./install )
}
Run Code Online (Sandbox Code Playgroud)

这是install脚本的相关部分:

if [ ! -d "/usr/src/kernel/include"  ]; then
  echo ERROR: Linux kernel source include directory not found.  
  exit 1
fi
cd /usr/src/kernel
make scripts
...
./install_drv pci ${DRV_ARGS}
Run Code Online (Sandbox Code Playgroud)

我检查了改变if [ ! -d "/usr/src/kernel" ],也失败了.install传递不同的选项install_drv,我有以下相关部分:

cd ${DRV_PATH}/pci
make NO_SYSFS=${ARG_NO_SYSFS} NO_INSTALL=${ARG_NO_INSTALL} ${ARGS_HWINT}
if …
Run Code Online (Sandbox Code Playgroud)

header-files linux-kernel openembedded bitbake yocto

11
推荐指数
1
解决办法
7865
查看次数

Yocto版本控制

我们正在努力对我们的应用程序,RFS,Uboot和内核进行版本控制

我们有一个你好的世界计划.每次我们更改(修补)程序的新功能时,我们都必须在版本号的帮助下跟踪更改.我们需要这个版本号(hello world package)应该自动递增.同样我们与Linux和uboot有关.

yocto能为我们这样做吗?或者我们还有其他选择来实现这一目标.请建议我们,因为我们是yocto所有功能的新手.

yocto

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

Bitbake没有在rootfs映像中安装我的文件


我创建了一个bitbake配方,它将我的两个文件(VPU的固件二进制文件)复制到目标根文件系统上的/ lib/firmware /目录中.

我尝试了很多选项,所以我现在不确定我的食谱中有什么不必要/多余以及需要什么.我认为FILESEXTRAPATHS ..,SRC_URI ..和do_install ..应该足够了,但它不适用于它,也不适用于所有其他的东西.

DESCRIPTION = "VPU libraries provided by fsl"

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"

PACKAGE_ARCH = "all"
ALLOW_EMPTY_${PN} = "1"

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " \
    file://vpu_fw_imx6d.bin \
    file://vpu_fw_imx6q.bin \
"

INSANE_SKIP_${PN} += "installed-vs-shipped"

do_install () {
    install -d ${D}${base_libdir}/firmware/
    cp ${WORKDIR}/vpu_fw_imx6d.bin ${D}${base_libdir}/firmware/
    cp ${WORKDIR}/vpu_fw_imx6q.bin ${D}${base_libdir}/firmware/
    chmod 755 ${D}${base_libdir}/firmware/vpu_fw_imx6d.bin
    chmod 755 ${D}${base_libdir}/firmware/vpu_fw_imx6q.bin
}
PACKAGES = "${PN}"
FILES_${PN} += " \
        ${D}${base_libdir}/firmware/vpu_fw_imx6d.bin \
        ${D}${base_libdir}/firmware/vpu_fw_imx6q.bin \
"
Run Code Online (Sandbox Code Playgroud)

能不能指出我做错了什么?

编辑:
安德斯答案真的帮助并解决了这个问题.

我发布"固定"食谱,以防有人发现它有用.

DESCRIPTION = "VPU libraries …
Run Code Online (Sandbox Code Playgroud)

bitbake yocto

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

如何编写yocto/bitbake配方以将目录复制到目标根文件系统

我有一个'二进制'(即不编译)文件的目录,只是希望它们安装到我的目标根文件系统上.

我看过几篇文章,其中没有一篇似乎对我有用.

此配方所需的功能是:

myRecipe/myFiles/ - > myRootFs/dir/to/install

我目前的尝试是:

SRC_URI += "file://myDir"

do_install() {
         install -d ${D}/path/to/dir/on/fs
         install -m ${WORKDIR}/myDir ${D}/path/to/dir/on/fs
}
Run Code Online (Sandbox Code Playgroud)

我不能总是抱怨Yocto文档,这真的很棒!只是找不到这样的例子!

directory copy recipe bitbake yocto

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

使用yocto启用systemd服务

嗨,这是我的图层树

??? conf
?   ??? layer.conf
??? COPYING.MIT
??? README
??? recipes-hello
    ??? helloworld
    ?   ??? helloworld-0.1
    ?   ?   ??? helloworld.c
    ?   ?   ??? helloworld.patch
    ?   ?   ??? newhelloworld.c
    ?   ??? helloworld_0.1.bb
    ??? message
    ?   ??? message-0.1
    ?   ?   ??? message.txt
    ?   ??? message_0.1.bb
    ??? service
        ??? service-0.1
        ?   ??? test_systemd.service
        ?   ??? test_systemd.sh
        ??? service_0.1.bb
Run Code Online (Sandbox Code Playgroud)

这里test_systemd.service是必须调用test_systemd.sh的服务文件,我试图使用service_0.1.bb来实现

    # This recipe performs the following tasks
    # 1) Install .sh file in /home/root/ and .sh script creates a random text file
    # …
Run Code Online (Sandbox Code Playgroud)

bitbake yocto

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

如何使用Yocto/Unable从任何来源获取URL,在SBC上安装和运行QML QtWebEngine和QtWebKit

环境

  • Debian GNU/Linux 7.8(wheezy) Linux marvin 3.16-0.bpo.2-amd64 #1 SMP Debian 3.16.3-2~bpo70+1 (2014-09-21) x86_64 GNU/Linux
  • 树莓派2
  • Yocto Poky
  • QT5

我的目标是在RPi2上运行Chromium布局Web引擎

我希望能够在我的RPi2上运行它:

import QtQuick 2.1
import QtQuick.Controls 1.1
import QtWebEngine 1.0

ApplicationWindow {
    width: 1280
    height: 720
    visible: true
    WebEngineView {
        id: webview
        url: "http://www.qt-project.org"
        anchors.fill: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何创建我的RPi2图像

我已经使用Yocto成功为我的RPi2创建了一个图像,使用这个独特而神奇的葡萄牙语教程,这个用英语写的

在几行之后,我如何能够为我的RPi2生成图像

mkdir -p ~/yocto/dl
cd ~/yocto
git clone -b dizzy git://git.yoctoproject.org/poky poky-dizzy
cd poky-dizzy
git clone git://git.yoctoproject.org/meta-raspberrypi 
git clone -b dizzy https://github.com/meta-qt5/meta-qt5.git
git clone -b dizzy git://git.openembedded.org/meta-openembedded
git …
Run Code Online (Sandbox Code Playgroud)

qt qtwebkit yocto qtwebengine raspberry-pi2

9
推荐指数
1
解决办法
6662
查看次数

dobake配方中do_compile [noexec]和空函数有什么区别?

如果我想禁用特定的构建步骤,我可以使用以下任一方法:

do_configure[noexec] = "1"
Run Code Online (Sandbox Code Playgroud)

要么

do_configure() {
}
Run Code Online (Sandbox Code Playgroud)

这些替代品有什么区别?我听说使用时会有提高的条件noexec.

bitbake yocto

9
推荐指数
1
解决办法
4294
查看次数

在Yocto中修改内核配置

我已经尝试了很长时间没有运气修改内核配置.:-(

meta-xxx-yyy /中有一个BSP,配有recipes-kernel/linux/linux_git.bb.我尝试覆盖名为meta-xxx-mylayer的层中的内核配置,其中我有recipes-kernel/linux/linux_git.bbappend和recipes-kernel/linux/files/frag.cfg

frag.cfg:

# CONFIG_NETFILTER is not set
CONFIG_AUTOFS4_FS=y 
Run Code Online (Sandbox Code Playgroud)

linux_git.bbappend:

COMPATIBLE_MACHINE_my_mach = "my_mach"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://frag.cfg"
Run Code Online (Sandbox Code Playgroud)

linux_git.bb :(只是文件的一部分)

KERNEL_RELEASE = "3.10"
PV = "3.10"
PR = "r10"
S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "(my_mach)"
Run Code Online (Sandbox Code Playgroud)

meta-xxx-yyy/conf/machine/my_mach.conf :(没有meta-xxx-mylayer/conf/machine/my_mach.conf)

PREFERRED_PROVIDER_virtual/kernel = "linux"
UBOOT_MACHINE = "socfpga_cyclone5_config"
KERNEL_MACHINE = "socfpga"
Run Code Online (Sandbox Code Playgroud)

构建命令:

bitbake linux -c cleansstate -f
bitbake linux -c configure -f
bitbake linux -c compile -f
bitbake linux -c deploy -f
Run Code Online (Sandbox Code Playgroud)

一切都在构建,但是当我检查/proc/config.gz时,我可以看到CONFIG_AUTOFS4_FS未启用.

我在meta-xxx-mylayer层中有另一个配方,它可以很好地构建和安装到rootfs中,所以我知道该层已启用.

在构建期间,frag.cfg文件被复制到./tmp/work/my_mach-poky-linux-gnueabi/linux/3.10-r10​​/,而其余文件位于./tmp/work/my_mach-poky-linux -gnueabi/LINUX/3.10-R10/GIT中/.那是问题吗?

我究竟做错了什么???

linux linux-kernel embedded-linux bitbake yocto

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

在咬包时如何生成已执行任务的有序列表?

我知道我可以列出可能的任务:

bitbake package -c listtasks
Run Code Online (Sandbox Code Playgroud)

但是这个列表还包括需要显式调用的任务(比如do_devshell或do_clean),我希望看到运行时调用的内容:

bitbake package
Run Code Online (Sandbox Code Playgroud)

查看使用'bitbake -e package'获得的输出也没有提供我能够解析的大量信息.

鉴于在添加任务时必须使用"之前"和"之后"明确定义任务的顺序,我希望它以某种形式存储.

yocto

9
推荐指数
1
解决办法
3060
查看次数