首页 > 解决方案 > Yocto Warrior 无法为 root 或其他用户设置密码

问题描述

我正在使用 meta-tegra Warriors 分支层为 Nvidia Jetson Nano 构建 sd 卡映像。映像完成并且电路板启动,但如果我尝试在 Yocto 中设置任何类型的密码,我将无法登录。我已经尝试创建除 root 以外的用户并设置他们的密码,但同样的问题出现在我无法登录的地方。

如果我启用“debug-tweaks”,并且根本不尝试修改 root 密码,我可以在没有密码的情况下成功登录。

我正在为 OE 使用战士分支,并且没有修改其他层。如何设置root密码?谢谢。

这是我的 local.conf 密码相关行:

# Password Stuff
INHERIT += "extrausers"
#EXTRA_IMAGE_FEATURES = "debug-tweaks"
EXTRA_USERS_PARAMS = "usermod -P mypassword123 root; "
EXTRA_USERS_PARAMS = " useradd testing; \
                       useradd mts; \
                       usermod  -p 'testing12345' testing; \
                       usermod  -p 'comp12345' comp; \

标签: yoctobitbakeopenembedded

解决方案


usermodwith -p(minus p) 需要从命令生成的哈希,openssl passwd因此您需要设置 Yocto 变量,如下所示:

EXTRA_USERS_PARAMS = "usermod -p $(openssl passwd <some_password>) root;"

如果你想在 bitbake 变量上附加一些东西,你需要使用_appendor+=运算符,即:

EXTRA_USERS_PARAMS_append = " useradd testing;"
EXTRA_USERS_PARAMS_append = " useradd mts;"
...

推荐阅读