0

我正在尝试在我的 Yocto 构建上安装自定义应用程序。

我目前使用 Raspberry Pi 4 64 位设置,为此我希望 PyQt5 直接在帧缓冲区上显示应用程序(因此没有窗口管理器或桌面环境)。

我当前使用 Yocto 构建的版本在 Raspberry Pi 上完成并启动。在 bitbake 构建之后,所有 Qt5 库也存在于根 fs 中。

虽然,我在获取自定义层时遇到了问题,它添加了一个带有自定义应用程序的自定义配方,也可以复制到目标根 fs。

我的自定义层名为“meta-rpikms”,配方为“recipes-kms-qt-app”,其中包含应用程序 bb 文件。该文件名为“basicquick_0.1.bb”,具有以下内容(此测试应用程序尝试添加对 EGLFS 友好的 Qt5 应用程序,稍后我将尝试 PyQt5):

SUMMARY = "Simple Qt5 Quick application"
#SECTION = "examples"
LICENSE = "MIT"
#PACKAGE_ARCH = "all"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
DEPENDS += "qtbase qtdeclarative qtquickcontrols2"
SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/shigmas/BasicQuick.git"

S = "${WORKDIR}/git"

require recipes-qt/qt5/qt5.inc



do_install() {
      install -d ${D}${bindir_native}
      install -m 0755 BasicQuick ${D}${bindir_native}
}
FILES_${PN} += "${bindir_native}"

当我对 meta-rpikms 的自定义层(称为“qt5-kms-rpi-image”)进行 bitbake 时,它​​会进行计算。当我查看“image_initial_manifest”文件时,我的自定义应用程序确实出现了,这表明它确实编译并尝试安装该应用程序:

# This file was generated automatically and contains the packages
# passed on to the package manager in order to create the rootfs.

# Format:
#  <package_type>,<package_name>
# where:
#   <package_type> can be:
#      'mip' = must install package
#      'aop' = attempt only package
#      'mlp' = multilib package
#      'lgp' = language package

mip,basicquick
mip,bluez5
mip,bridge-utils
mip,hostapd
mip, bla bla bla etc etc etc.

如果我看一下:'~/builds/pyqt5_try1/poky/rpi64-build/tmp/work/cortexa72-poky-linux/basicquick/0.1-r0',预期的文件会出现。还建议它至少构建应用程序。这让人认为我的 .bb 文件中的“安装”参数指向错误的文件夹。

在我的 basicquick_*.bb 文件中,这是创建目录并安装(复制)构建文件:

install -d ${D}${bindir_native}
install -m 0755 BasicQuick ${D}${bindir_native}

我使用“bitbake -e”命令来跟踪变量 D 和 bindir_native:

D="/home/mats/builds/pyqt5_try1/poky/rpi64-build/tmp/work/raspberrypi4_64-poky-linux/qt5-kms-rpi-image/1.0-r0/image"

bindir_native="/usr/bin"

乍一看这似乎没问题,但是当我手动跟随变量“D”的目标时,没有创建“图像”文件夹。我还想知道为什么每个人都在 ${D}/usr/bin 上安装他们的自定义应用程序?这不应该写入 build/tmp/deploy 目录吗?或者我在这里错过了一步。

因此,在这个 'qt5-kms-rpi-image/1.0-r0' 文件夹中,有一个名为 'deploy-qt5-kms-rpi-image-image-complete' 的文件夹,其中包含一个 rootfs。但在 'qt5-kms-rpi-image/1.0-r0' 文件夹中也有一个 rootfs 文件夹。这两个 rootfs 都没有提及我的 basicquick 应用程序,或者在 /usr/bin 中创建的 BasicQuick 文件夹。

此外,在“build/tmp/deploy/images/raspberrypi4-64/qt5-kms-rpi-image-raspberrypi4-64.tar.bz2”中找到的 rootfs 没有提及文件系统中存在的 basicquick 应用程序.

有人对我缺少什么有任何线索吗?我只是没有将文件复制到正确的位置吗?还是最终的部署映像最终会出现在我期望的其他地方?

提前致谢。

诚挚的问候,
Mats de Waard

4

0 回答 0