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

Yocto Warrior分支向IMAGE_INSTALL_append添加包后root登录失效问题

问题诱因
  • 触发该问题的常见原因分为四类:
    1. 认证组件被替换:core-image-minimal 默认使用busybox提供的login程序,EXTRA_IMAGE_FEATURES 中默认的debug-tweaks配置仅对busybox login生效,可支持root空密码登录。你通过IMAGE_INSTALL_append添加的软件包如果依赖了shadow(shadow-base)组件,系统会自动替换为shadow套件的login程序,该程序默认会锁定无密码的root账号,即使保留debug-tweaks配置也无法正常登录。
    2. PAM安全策略拦截:若添加的软件包依赖了PAM(可插拔认证模块),PAM的默认安全规则会禁止空密码的root账号登录,直接拦截登录请求,导致页面跳转回登录提示符。
    3. 登录终端限制:部分软件包会修改/etc/securetty配置,限制root仅能从指定的tty设备登录,如果你使用的登录串口、虚拟终端不在允许列表中,也会触发登录失败。
    4. 根分区空间不足:如果添加的软件包数量过多,导致镜像的根文件系统分区被占满,登录时系统无法写入登录日志、会话配置等临时文件,会直接退出会话回到登录页面。
解决办法

你可以根据自己的使用场景选择对应方案:

  • 方案1:显式设置root密码(最推荐,兼顾开发便利性和基础安全)
    在conf/local.conf中添加以下配置,替换示例密码为你自己的自定义密码即可,该配置对所有认证组件都生效:
    INHERIT += "extrausers"
    EXTRA_USERS_PARAMS = "usermod -P your_root_password root;"
    
  • 方案2:保留root空密码登录(仅适用于本地开发调试环境)
    若不需要设置root密码,可在conf/local.conf中添加对应配置放开限制:
    1. 适配shadow login的空密码配置:
    EXTRA_IMAGE_FEATURES += "empty-root-password allow-empty-password"
    
    1. 若存在PAM组件,额外添加配置允许PAM空密码登录:
    PAM_ENABLE_EMPTY_PASSWORDS = "1"
    
    1. 若为/etc/securetty终端限制问题,添加你使用的登录终端到允许列表,imx7平台常用串口为ttymxc0,示例配置如下:
    SECURETTY_APPEND = "ttymxc0"
    
  • 方案3:扩大根文件系统分区
    若排查发现是根分区空间不足导致的问题,在conf/local.conf中添加配置扩大根分区空余空间,以下示例为额外增加512MB空余空间:
    IMAGE_ROOTFS_EXTRA_SPACE = "524288"
    
  • 方案4:回退到busybox login认证
    如果你不需要shadow或PAM的功能,可主动移除相关依赖包,回退到默认的busybox login状态:
    IMAGE_INSTALL_REMOVE = "shadow shadow-base pam libpam"
    
    注意:该方案可能导致你之前添加的部分软件包功能异常,需提前确认依赖兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:01