embedded-linux - yocto 在编译时禁用 systemd 服务的自动启动

标签 embedded-linux yocto systemd

我想在使用 Yocto 运行 Linux 镜像编译的嵌入式 Linux 目标上启动时禁用 timesyncd.service 的自动启动

在我的董事会名称下,我尝试创建 systemd_%.bbappend 文件,其内容为

/meta-xxxx/recipes-core/systemd/systemd_%.bbappend

inherit systemd
do_install_append() {

        echo "djm";
        #rm -fr ${D}${sysconfdir}/systemd/system/dbus-org.freedesktop.resolve1.service
        #rm -fr ${D}${sysconfdir}/systemd/system/multi-user.target.wants/systemd-resolved.service

        #rm -fr ${D}${sysconfdir}/systemd/system/dbus-org.freedesktop.timesync1.service
        #rm -fr ${D}${sysconfdir}/systemd/system/sysinit.target.wants/systemd-timesyncd.service
        echo "djm-2";
        echo "D=  "  ${D};
        echo "syscondfdir= " ${sysconfdir};
        ls -l  ${D}${sysconfdir}/systemd/system/
 #      exit 1

}

但我仍然在/etc/systemd/system 文件夹中看到启动 timesyncd 的软链接(soft link)

打印 ${D} 显示我

build-xxxx/tmp/work/cortex-xxxx-linux-gnueabi/systemd/1_243.2-r0/image

build-xxxx/tmp/work/cortex-xxxx-linux-gnueabi/systemd/1_243.2-r0/image/etc 现在是空白的

所以这意味着当运行 do_install_append 时,文件夹结构是空白的,创建软链接(soft link)的真正配方/创建软链接(soft link)的流程位于不同的配方或不同的函数? 有人可以帮助我,我应该如何在 yocto 编译时执行此操作?

最佳答案

弄清楚了如何做到这一点,我们必须为 systemd 默认提供的功能/包更新 systemd.preset 文件。

在文件meta-xxx/recipes-core/systemd/systemd_%.bbappend

do_configure_append() {

#disabling autostart of systemd-timesyncd
    sed -i -e "s/enable systemd-timesyncd.service/disable systemd-timesyncd.service/g" ${S}/presets/90-systemd.preset

#disabling autostart of systemd-resolved
    sed -i -e "s/enable systemd-resolved.service/disable systemd-resolved.service/g" ${S}/presets/90-systemd.preset
}

关于embedded-linux - yocto 在编译时禁用 systemd 服务的自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67460881/

相关文章:

qt - 树外 galcore 构建导致 Qt 段错误

linux - 追加文件目录的 Yocto/Bitbake 路径变量

linux - i2c:SDA 上的半幅值

yocto - 使用 yocto/bitbake 时,在不同配方生成的目录中安装文件而不发生冲突的正确方法是什么?

embedded-linux - linuxrc 的目的是什么,在 rootfs 中是否需要它?

linux - 从 systemd 服务调用 "top"命令

c++ - 在 OpenGL ES 2 应用程序/进程之间共享渲染表面(FrameBuffer、Pbuffers 等)

embedded-linux - 如何将uboot烧录到板载NAND闪存上

linux - 防止将 systemd 服务日志转发到 syslog,而不影响发送到 syslog 的其他服务日志

linux - 使用 sd_notify() 传播 systemd 重新加载