Embedded 在编译时禁用systemD服务

Embedded 在编译时禁用systemD服务,embedded,yocto,systemd,Embedded,Yocto,Systemd,我已经研究了这个问题:我正在尝试用systemd_z%.bbappend文件实现解决方案,但它似乎不起作用。我正在尝试删除(首选)或至少禁用两个服务,NTP服务和Getty服务。我正在4.14.16内核上运行Yocto(Pyro),目标是I.MX6 我一直在把文件放在poky/meta-markem-imaje-bsp/recipes-core/systemd/中。它需要在别的地方吗 这是我的文件的内容: DESCRIPTION = "Customization of systemD servi

我已经研究了这个问题:我正在尝试用systemd_z%.bbappend文件实现解决方案,但它似乎不起作用。我正在尝试删除(首选)或至少禁用两个服务,NTP服务和Getty服务。我正在4.14.16内核上运行Yocto(Pyro),目标是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中不起作用,但是删除链接可以禁用服务(一旦我修复了rm命令)。我已经用最终版本更新了上面的bbappend文件。谢谢大家


请记住,我是一个YoctoNoob。

它的
.bbappend
,而不是
.bb\u append
。也许这已经足够了。如果附加显示在
bitbake layers show appends
中,则可以检查是否应用了附加。如果它列在那里,您可以使用
bitbake-e systemd|less
检查其效果。调用less是可选的,但很方便:)

它的
.bbappend
,而不是
.bb\u append
。也许这已经足够了。如果附加显示在
bitbake layers show appends
中,则可以检查是否应用了附加。如果它列在那里,您可以使用
bitbake-e systemd|less
检查其效果。调用less是可选的,但很方便:)

查看pyro分支上的systemd_232.bb和systemd.inc后,您的SRC_URI中的第一个.patch文件似乎无法应用“缺少文件”

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


从.bbappend文件中删除S=${WORKDIR}就可以了

查看pyro分支上的systemd_232.bb和systemd.inc后,您的SRC_URI中的第一个.patch文件似乎无法应用“缺少文件”

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


从.bbappend文件中删除S=${WORKDIR}就可以了

我不确定我是否理解您的意思:您想禁用这两个服务还是完全从映像中删除包?两者都可以。删除是首选,但如果它更容易只是禁用它们,我罚款;我不想绑定rootFS空间。我不确定我是否理解您的意思:您想禁用这两个服务还是完全从映像中删除包?两者都可以。删除是首选,但如果它更容易只是禁用它们,我罚款;我对rootFS空间不感兴趣。这至少是问题的一部分。我已经更新了帖子;它不再编译。这至少是问题的一部分。我已经更新了帖子;它不再编译。