我想在使用 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/