You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yocto(Dunfell版本)构建时设置custom.target为默认启动目标?

Yocto修改systemd默认启动目标(Dunfell版本及通用方法)

针对Dunfell版本的具体操作

方式1:通过systemd配置文件覆盖

在你的自定义layer中创建如下目录结构:
meta-yourlayer/recipes-core/systemd/systemd-conf/systemd.conf.d/

在该目录下新建default-target.conf文件,内容如下:

[Manager]
DefaultTarget=custom.target

然后创建systemd_%.bbappend文件,添加以下内容引入这个配置:

FILESEXTRAPATHS_prepend := "${THISDIR}/systemd-conf:"
SRC_URI += "file://systemd.conf.d/default-target.conf"

方式2:使用SYSTEMD_DEFAULT_TARGET变量

在你的Image Recipe(如core-image-minimal.bbappend)或者local.conf中直接设置:

SYSTEMD_DEFAULT_TARGET = "custom.target"

注意:需确保custom.target的unit文件已被正确安装到镜像中。


Yocto通用修改方法(适用于多数版本)

方式1:利用SYSTEMD_DEFAULT_TARGET变量

这是Yocto官方推荐的方法,在Image Recipe或local.conf中设置:

SYSTEMD_DEFAULT_TARGET = "custom.target"

构建过程中,systemd包会自动处理默认目标的链接指向,前提是custom.target已包含在镜像内。

方式2:手动修改默认链接

可以在自定义Recipe的do_install阶段添加链接命令:

do_install_append() {
    ln -sf /usr/lib/systemd/system/custom.target ${D}/etc/systemd/system/default.target
}

或者在Image Recipe中通过ROOTFS_POSTPROCESS_COMMAND处理:

ROOTFS_POSTPROCESS_COMMAND += "set_default_target;"
set_default_target() {
    ln -sf /usr/lib/systemd/system/custom.target ${IMAGE_ROOTFS}/etc/systemd/system/default.target
}

注意事项

  • 确保custom.target的unit文件已正确部署到${D}/usr/lib/systemd/system/路径下,可通过自定义Recipe或systemd的bbappend实现。
  • 验证方法:构建完成后,检查镜像根文件系统内etc/systemd/system/default.target的指向,或系统启动后执行systemctl get-default确认。

内容的提问来源于stack exchange,提问作者Florian Berndl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:06:37