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

如何在Yocto的sysvinit-inittab配方中排除/etc/inittab特定行?

解决Yocto中sysvinit-inittab占用串口的问题

方案1:用sed精准注释目标行(推荐)

在自定义层的recipes-core/sysvinit-inittab/sysvinit-inittab_%.bbappend中添加以下内容,通过sed仅修改指定行,完全保留原inittab的其他配置:

do_install_append() {
    # 注释掉占用ttyLP2的getty进程行
    sed -i '/s2:123:respawn:\/sbin\/getty -L 115200 ttyLP2 linux/s/^/#/' ${D}${sysconfdir}/inittab
}
  • 原理:在原配方完成inittab文件安装后,追加执行sed命令,精准匹配目标行并在行首添加#注释,不会改动其他任何配置项。
  • 若需要直接删除该行而非注释,将sed命令替换为:
    sed -i '/s2:123:respawn:\/sbin\/getty -L 115200 ttyLP2 linux/d' ${D}${sysconfdir}/inittab
    

方案2:替换自定义inittab文件(适合需多处修改场景)

如果需要对inittab做多处定制,可复制Karo层中原inittab文件到自定义层对应目录,仅注释/删除目标行,然后在bbappend中指定优先使用自定义层的文件:

  1. 在自定义层创建recipes-core/sysvinit-inittab/files/inittab,修改其中的ttyLP2行并保留其他配置。
  2. 在bbappend中添加:
    FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
    
  • 注意:此方法需要同步原配方inittab的更新,若供应商后续修改inittab,需手动同步自定义文件内容。

验证方法

执行bitbake sysvinit-inittab -c deploy后,查看部署目录下的inittab文件,或烧录镜像后在设备上检查/etc/inittab,确认目标行已被处理且其他配置完整。

内容的提问来源于stack exchange,提问作者A.A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:19:59