在编译时禁用 systemD 服务
Disable systemD services at compile time
我查看了这个问题: 并尝试使用 systemd_%.bbappend 文件实施该解决方案,但它似乎不起作用。我正在尝试删除(首选)或至少禁用两项服务,即 NTP 服务和 Getty 服务。我是 运行 Yocto (Pyro) 在 4.14.16 内核上,目标是 i.MX6。
我一直把文件放在poky/meta-markem-imaje-bsp/recipes-core/systemd/。是否需要在其他地方?
这是我的文件的内容:
DESCRIPTION = "Customization of systemD services."
do_install_append() {
rm ${D}${sysconfdir}/systemd/system/getty.target.wants/getty@tty1.service
}
PACKAGECONFIG_remove = "timesyncd"
FILES_${PN} += "${sysconfdir}/systemd/system"
REQUIRED_DISTRO_FEATURES= "systemd"
更新 - 我将 bb_append 修复为只是 bbappend,它不再编译。我看到了这个:
更新 2 - 该文件正在运行。出于某种原因,将 getty 放在 PACKAGECONFIG_remove 中不起作用,但是删除 link 可以禁用该服务(一旦我修复了 rm 命令)。我已经用最终版本更新了上面的 bbappend 文件。谢谢大家
请记住,我是 Yocto 菜鸟。
它是 .bbappend
,而不是 .bb_append
。也许这已经足够了。如果显示在 bitbake-layers show-appends
中,您可以检查是否应用了追加。如果它在此处列出,您可以使用 bitbake -e systemd | less
检查其效果。 less 的调用是可选的,但很方便 :)
查看 pyro 分支上的 systemd_232.bb 和 systemd.inc 后,您的 SRC_URI 中的第一个 .patch 文件似乎无法应用 "missing file"。
我认为这是因为您用 ${WORKDIR} 覆盖了 S 但在 systemd.inc 中它被设置为“${WORKDIR}/git”。所以 systemd 的 git 存储库被克隆到 ${WORKDIR}/git 并且你尝试在 ${WORKDIR}.
中修补它
从您的 .bbappend 文件中删除 S=${WORKDIR} 应该可以解决问题。
我查看了这个问题:
我一直把文件放在poky/meta-markem-imaje-bsp/recipes-core/systemd/。是否需要在其他地方?
这是我的文件的内容:
DESCRIPTION = "Customization of systemD services."
do_install_append() {
rm ${D}${sysconfdir}/systemd/system/getty.target.wants/getty@tty1.service
}
PACKAGECONFIG_remove = "timesyncd"
FILES_${PN} += "${sysconfdir}/systemd/system"
REQUIRED_DISTRO_FEATURES= "systemd"
更新 - 我将 bb_append 修复为只是 bbappend,它不再编译。我看到了这个:
更新 2 - 该文件正在运行。出于某种原因,将 getty 放在 PACKAGECONFIG_remove 中不起作用,但是删除 link 可以禁用该服务(一旦我修复了 rm 命令)。我已经用最终版本更新了上面的 bbappend 文件。谢谢大家
请记住,我是 Yocto 菜鸟。
它是 .bbappend
,而不是 .bb_append
。也许这已经足够了。如果显示在 bitbake-layers show-appends
中,您可以检查是否应用了追加。如果它在此处列出,您可以使用 bitbake -e systemd | less
检查其效果。 less 的调用是可选的,但很方便 :)
查看 pyro 分支上的 systemd_232.bb 和 systemd.inc 后,您的 SRC_URI 中的第一个 .patch 文件似乎无法应用 "missing file"。
我认为这是因为您用 ${WORKDIR} 覆盖了 S 但在 systemd.inc 中它被设置为“${WORKDIR}/git”。所以 systemd 的 git 存储库被克隆到 ${WORKDIR}/git 并且你尝试在 ${WORKDIR}.
中修补它从您的 .bbappend 文件中删除 S=${WORKDIR} 应该可以解决问题。