【问题标题】:Bitbake does not install my files in my rootfsBitbake 不会在我的 rootfs 中安装我的文件
【发布时间】:2017-02-16 17:46:09
【问题描述】:

我的目标是创建 Bitbake 配方,它将在 /etc 目录中安装配置文件,以及将这个配置应用到 /ect/init.d 目录(并调用 update-rc-d)的脚本。 我已经看到另一个类似的问题(Bitbake not installing my file in the rootfs image)。我做了这个家伙所做的几乎完全一样的事情,但不幸的是它没有奏效。 问题是 Bitbake 没有抱怨任何事情,只是没有将这些文件添加到 rootfs。 这是我目前的食谱。我还将脚本和配置文件放到了两个目录中:files 和 alsa-config,它位于 recipe 目录中。

SUMMARY = "Alsa Config"
DESCRIPTION = "Adds alsa configuration file, and startup script that applies it."

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI += " \
           file://my-alsa-config \
           file://asound.state \
"

PACKAGE_ARCH = "${MACHINE_ARCH}"

S = "${WORKDIR}"

INITSCRIPT_NAME = "my-alsa-config"
INITSCRIPT_PARAMS = "defaults 99 01"

inherit autotools update-rc.d

do_install() {
install -m 0644 ${WORKDIR}/asound.state ${D}${sysconfdir}
}

FILES_${PN} += "${sysconfdir}/asound.state"

在我的 local.conf 中我添加了一行:

CORE_IMAGE_EXTRA_INSTALL += "alsa-config "

请问,有人可以帮忙吗?

【问题讨论】:

  • 你也应该安装初始化脚本(do_install())。
  • 感谢您的提示!它让我做了一些事情,解决了问题:)

标签: yocto bitbake recipe


【解决方案1】:

幸运的是,我能够解决这个问题。这是解决方案:

SUMMARY = "Alsa Config"
DESCRIPTION = "Adds alsa configuration file, and startup script that applies it."

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI += " \
           file://my-alsa-config \
           file://asound.state \
"
PACKAGE_ARCH = "${MACHINE_ARCH}"

S = "${WORKDIR}"

INITSCRIPT_NAME = "my-alsa-config"
INITSCRIPT_PARAMS = "defaults 99 01"

inherit autotools update-rc.d

do_install() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/my-alsa-config ${D}${sysconfdir}/init.d/
install -m 0644 ${WORKDIR}/asound.state ${D}${sysconfdir}/
}

FILES_${PN} += "${sysconfdir}/asound.state \
                ${sysconfdir}/my-alsa-config"

一点点cmets:

  1. PACKAGE_ARCH 必须正确设置。在我的情况下,当我没有它时,由于某种原因没有设置脚本文件的执行权限。
  2. do_install() 必须创建每个需要的目录。即使我知道,在我的 rootfs 中会有 /etc 目录,我也必须创建它。而且我不确定是否有必要,但最好在安装目录的末尾加上斜线,以防万一。
  3. 也必须安装要在启动时启动的初始化脚本;)
  4. 脚本必须设置适当的权限。

【讨论】:

  • PACKAGE_ARCH 应该与此问题无关,不需要斜杠,而且${sysconfdir} 默认打包到FILES_${PN},因此不需要附加。
  • 好吧,也许 PACKAGE_ARCH 应该无关紧要,但事实并非如此。这一行是在它开始工作之前添加的最后一行。没有它一切都很好,除了在初始化脚本上缺乏执行权。我明天会检查其余的。
猜你喜欢
  • 2016-03-08
  • 2020-03-31
  • 2019-01-27
  • 2023-03-03
  • 2018-03-09
  • 2014-12-23
  • 2020-09-30
  • 1970-01-01
  • 2016-07-05
相关资源
最近更新 更多