Yocto Kirkstone设置root密码失败及extrausers方法失效求助
Yocto Kirkstone中root密码设置问题及疑问
在Yocto Kirkstone版本下,为Freescale LS1046ARDB开发板(使用官方linux qoriq发行版)设置root密码时,多种常规方法均失效,具体情况如下:
尝试过的无效方法
1. local.conf中使用extrausers明文密码配置
在local.conf中添加以下配置:
INHERIT += "extrausers" EXTRA_USER_PARAMS = "usermod -P 'mypasswd' root;"
2. local.conf中使用extrausers加密密码配置
通过openssl生成SHA-512加密密码后,在local.conf中配置:
INHERIT += "extrausers" EXTRA_USER_PARAMS = "usermod -p '\$6\$12345\$CdkMCUqHIe6eWfFhMIppyUE/S.iLGe.PACPivJhw05ideCyogNpnVNDIBSQXhSruJxfZCasTi6YvFOrPgFvM7/' root;"
以上两种方法均分别测试了开启和关闭EXTRA_IMAGE_FEATURES ?= "debug-tweaks"的场景:开启时root无密码,关闭时密码验证失败。
3. 通过ROOTFS_POSTPROCESS_COMMAND手动修改/etc/shadow
在sources/meta-qoriq/recipes-kernel/linux/linux-qoriq.inc中添加以下内容:
set_pw () { encrypted=$(openssl passwd -6 -salt 12345 mypasswd) sed -i "s/^root::/root:$encrypted:/" ${IMAGE_ROOTFS}/etc/shadow } ROOTFS_POSTPROCESS_COMMAND += "set_pw;"
该方法同样无法成功设置密码。
成功生效的方法
将以下内容添加到镜像构建文件sources/meta-qoriq/recipes-fsl/images/fsl-image-networking.bb中:
inherit fsl-utils ROOTFS_POSTPROCESS_COMMAND += "set_pw;"
同时将set_pw函数添加到sources/meta-qoriq/classes/fsl-utils.bbclass文件中,此方法成功设置了root密码。但无法直接在fsl-image-networking.bb文件中定义bash函数。
疑问
为何常规的extrausers配置方法在Kirkstone版本中失效?该方法在Poky等其他Yocto版本中可行,是否Kirkstone版本的语法发生了变更?
内容的提问来源于stack exchange,提问作者Simon Rechermann
相关产品推荐
相关产品推荐

