在编译时禁用systemD服务

问题描述 投票:0回答:2

我看过这个问题:Disable a standard systemd service in Yocto build,我正在尝试用systemd _%.bbappend文件实现解决方案,但它似乎没有起作用。我试图删除(首选)或至少禁用两个服务,NTP服务和Getty服务。我在带有i.MX6目标的4.14.16内核上运行Yocto(Pyro)。

我一直把文件放在poky / meta-markem-imaje-bsp / recipes-core / systemd /中。它需要在其他地方吗?

这是我的文件的内容:

DESCRIPTION = "Customization of systemD services."

do_install_append() {
    rm ${D}${sysconfdir}/systemd/system/getty.target.wants/[email protected]
}

PACKAGECONFIG_remove = "timesyncd"

FILES_${PN} += "${sysconfdir}/systemd/system"

REQUIRED_DISTRO_FEATURES= "systemd"

更新 - 我修改了bb_append只是bbappend,它不再编译。我看到了这个:

更新2 - 文件正在运行。出于某种原因,将getty放入PACKAGECONFIG_remove不起作用,但是删除链接有助于禁用该服务(一旦我修复了rm命令)。我已经使用最终版本更新了上面的bbappend文件。谢谢大家。

请记住,我是Yocto noob。

embedded yocto systemd
2个回答
0
投票

在pyro分支上查看systemd_232.bb和systemd.inc之后,看起来SRC_URI中的第一个.patch文件很难应用“丢失文件”。

我认为这是因为你用$ {WORKDIR}覆盖S但在systemd.inc中它被设置为“$ {WORKDIR} / git”。所以systemd的git存储库被克隆到$ {WORKDIR} / git,你尝试在$ {WORKDIR}中修补它。

从.bbappend文件中删除S = $ {WORKDIR}应该可以解决问题。


0
投票

它的.bbappend,而不是.bb_append。也许这已经足够了。您可以检查附加是否应用,如果它显示在bitbake-layers show-appends中。如果在那里列出,你可以用bitbake -e systemd | less检查它的效果。随着少量可选的调用,但方便:)

© www.soinside.com 2019 - 2024. All rights reserved.