【问题标题】:Building gstreamer using Yocto使用 Yocto 构建 gstreamer
【发布时间】:2019-04-10 15:04:50
【问题描述】:

我正在尝试为 IMX53 Evk 板构建 gstreamer。 我从http://freescale.github.io/#download 下载了 Yocto 并运行以下命令。

#MACHINE=imx53qsb
#source setup-environment build
#bitbake core-image-minimal

它构建了 u-boot、内核和文件系统。文件系统没有 gstreamer。我也想构建 gstreamer。

据我了解,现在有两种构建 gstreamer 的方法。

方法 1. 修改 distro.conf 文件以构建 gstreamer。我 我不确定如何在 distro.conf 中添加 gstreamer 条目。这 分布是狡猾的分布。

方法 2. 添加带有 gstreamer 条目的 IMAGE_INSTALL_append。我的 怀疑这里是我们必须在 IMAGE_INSTALL_append 中添加的名称。

我可以看到以下与 gstreamer 相关的 bb 文件。你能帮我在local.conf的IMAGE_INSTALL_append中添加什么字符串吗?

./meta-fsl-arm/recipes-multimedia/gstreamer/gst-fsl-plugin_4.0.3.bb
./meta-fsl-arm/recipes-multimedia/gstreamer/gst1.0-fsl-plugin_4.0.3.bb
./meta-fsl-arm/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.11.1.bb
./poky/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
./poky/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
./poky/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.31.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
./poky/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
./poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb
./poky/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
./poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb
./poky/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb
./poky/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb
./poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
./poky/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.85.bb
./poky/meta/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb
./meta-fsl-demos/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer.bb
./meta-fsl-demos/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer-full.bb
./meta-fsl-demos/recipes-multimedia/packagegroups/packagegroup-fslc-gstreamer1.0-full.bb
./meta-fsl-demos/recipes-multimedia/packagegroups/packagegroup-fslc-gstreamer1.0-commercial.bb
./meta-fsl-demos/recipes-multimedia/packagegroups/packagegroup-fslc-gstreamer1.0.bb
./meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer/gst-rtsp_0.10.8.bb
./meta-openembedded/meta-multimedia/recipes-multimedia/nonworking/gstreamer/gst123_0.3.1.bb

【问题讨论】:

    标签: yocto


    【解决方案1】:

    你可以只添加

    IMAGE_INSTALL_append += "gstreamer"
    

    长答案是您应该添加通常存储在 PN 配方变量中的包名称。您可以阅读有关 PN 变量 here 的信息。包名称也可以使用 PACKAGES variable 进行管理。

    【讨论】:

    • @ aleksandrm8 :感谢您提供的信息。我对包裹的 PN 用法有点困惑。我的理解是 bitbake 将获取每个配方并执行提取、解包、配置、构建、打包任务。在 PN 变量定义中更新了“PN 将在创建或生成的文件的上下文中获取包名称”。我没有清楚地理解这一点。您能否在构建软件包时帮助了解 PN 的使用情况。
    • 对不起,但我没有清楚地理解您在“PN 将在创建或生成的文件的上下文中采用包名”这句话中没有清楚地理解的内容。我想你可以理解为“PN是从配方文件名中提取出来的,所以PN既是配方名称(expat_2.0.1.bb)又是包名称(expat)。”。
    • 我的理解:要创建一个包,我们应该有一个 .bb 文件,并在处理 .bb 时涉及“获取、解包、配置、编译、创建包”任务。当 bitbake 开始构建 .bb 文件时,它会将配方(.bb 文件)名称存储在 PN 变量中。使包名称与配方名称相同。在阅读了 Yocto 参考链接中的 PN 变量后,我怀疑 PN 变量在 OE 构建使用的文件的上下文中是否会有一个字符串(配方名称)并且会有一个不同的字符串(可能与配方名称不同)在 OE build 创建或生成的文件的上下文中。
    • 软件包的名称是“gstreamer1.0”而不是“gstreamer”,至少在最近的 yocto 版本上是这样。
    【解决方案2】:

    你要么使用 IMAGE_INSTALL_append = " gstreamer"
    或者 IMAGE_INSTALL += " gstreamer"

    它们做同样的事情,但IMAGE_INSTALL_append 最好与此变量一起使用。

    gstreamer 前面的空间很重要,因为。 假设 IMAGE_INSTALL 是一个字符串:"opkg qtbase"
    如果我们不在前面添加空格。 IMAGE_INSTALL 会是这样的:"opkg qtbasegstreamer" 这会导致错误。

    【讨论】:

      【解决方案3】:

      关于获取包名的建议是正确的。首先找到食谱。 bitbake-layers 对此很有用。然后检查 PN 和 PACKAGES 变量是否未设置,如果它们变得棘手。对于 gstreamer,它们不是

      如果您是 Yocto 的新手,我会在 local.conf 中添加包。输入应该是 IMAGE_INSTALL_append += "gstreamer"。 gstreamer 前面的空间很重要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-07
        • 1970-01-01
        • 2020-01-23
        • 2017-06-02
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        • 2018-05-13
        相关资源
        最近更新 更多