我正在尝试创建一个用户并将其添加到拨出组。

我做了一个继承useradd并添加我的系统需要的用户的食谱。

这是我食谱的相关部分:

inherit useradd

USERADD_PACKAGES = "${PN}"

USERADD_PARAM_${PN} = "-d /home/myuser -r -m -s /bin/bash myuser -g
mygroup -G dialout;"

GROUPADD_PARAM_${PN} = "-g 870 mygroup;"

生成错误之前,构建将进入rootfs_build步骤。日志显示:
NOTE: useradd: Performing useradd with [--root
/mnt/hdd1/yocto/build/tmp/work/intel_corei7_64-poky-
linux/core-image-sato/1.0-r0/rootfs -d /home/myuser -r -m -s /bin/bash
myuser -g mygroup -G dialout]
ERROR: useradd: useradd command did not succeed

没有-G dialout选项,它可以完美地工作。
关于如何解决这个问题的任何想法?
我也尝试过继承Extrausers并执行usermod -aG dialout myuser

最佳答案

我怀疑这是由于dialout组不存在,至少在添加myuser时不存在。

如果跳过-G dialout部分并构建图像,是否在/etc/group中有一个称为Dialout的组?如果没有,则可以按照创建dialout的相同方式创建mygroup组。如果已经存在,我怀疑您需要确保在使用dialout之类的软件包之前已安装添加RDEPENDS_${PN} += "<package that provides dialout group>组的软件包。

10-04 20:14