ОШИБКА: команда useradd: useradd не удалась в сборке Yocto - PullRequest
2 голосов
/ 28 марта 2019

Я пытаюсь создать пользователя и добавить его в группу дозвона.

Я сделал рецепт, который наследует 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.

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Я подозреваю, что это связано с тем, что группа dialout не существует, по крайней мере, в то время, когда добавляется myuser.

Если вы пропустите часть -G dialout ипостроить образ, у вас есть группа под названием dialout в /etc/group?Если нет, вы можете создать группу dialout так же, как вы создаете mygroup.Если он уже существует, я подозреваю, что вам нужно убедиться, что пакет, добавляющий группу dialout, установлен перед вашим пакетом, используя что-то вроде RDEPENDS_${PN} += "<package that provides dialout group>.

0 голосов
/ 29 марта 2019

В итоге это решило разделение каждого пользователя по своему рецепту. Я понятия не имею, почему не получилось использовать их в одном рецепте, поскольку он основан на этом примере в мета-скелете.

Так что вместо того, чтобы иметь один users.bb с несколькими пользователями, у меня теперь есть user1.bb, user2.bb и т. Д., И он работает как чудо.

...