我看过这个问题: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。
在pyro分支上查看systemd_232.bb和systemd.inc之后,看起来SRC_URI中的第一个.patch文件很难应用“丢失文件”。
我认为这是因为你用$ {WORKDIR}覆盖S但在systemd.inc中它被设置为“$ {WORKDIR} / git”。所以systemd的git存储库被克隆到$ {WORKDIR} / git,你尝试在$ {WORKDIR}中修补它。
从.bbappend文件中删除S = $ {WORKDIR}应该可以解决问题。
它的.bbappend
,而不是.bb_append
。也许这已经足够了。您可以检查附加是否应用,如果它显示在bitbake-layers show-appends
中。如果在那里列出,你可以用bitbake -e systemd | less
检查它的效果。随着少量可选的调用,但方便:)