Вероятно, отвечали много раз, но я не могу найти решение моего дела.

Я собираю проект Yocto с помощью bitbake.

Рецепт битбейка попытайтесь изменить разрешение некоторых каталогов и файлов с помощью команды chown. Проблема заключается в том, что команда не выполнена из-за того, что операция изменения владельца не выполнена.

Команда bitbake запускается пользователем luca, который также является sudoers. Если я наберу ls -l, то я вижу в проблемной папке:

-rw-r--r--  1 luca luca 1875 May 13 17:10 arm-thumb-mutex_db5.patch
-rw-r--r--  1 luca luca   33 May 13 17:10 configure.sstate
drwxr-xr-x 16 luca luca 4096 May 13 17:10 db-6.0.30
-rw-r--r--  1 luca luca  665 May 13 17:10 fix-parallel-build.patch
drwxr-xr-x  3 luca luca 4096 May 13 19:11 image
drwxr-xr-x  2 luca luca 4096 May 13 19:11 temp

Очевидно, что если я вручную набираю, sudo chowwn 777 image оно работает, но я не могу изменить скрипт bitbake, который вызывает ошибку.

Что не так с моим разрешением и пользователем?

2 ответа2

0

В конце я сделал chmod 777 из всей папки исходников и все начало работать. Вероятно, разрешения на скрипты или исполняемые файлы. Спасибо всем за поддержку.

0

Я получал похожие ошибки в битбейке. В моем случае это происходило из-за сбоя псевдо-утилиты, но Yocto не ясно показывал ошибки и зависал. Вместо этого он продолжал до тех пор, пока не смог выполнить chmod -R dir от имени обычного пользователя. Утилита Pseudo используется для перехвата вызовов chown , chmod , отслеживания их в базе данных sqlite. Они действуют так, как будто они меняют права доступа к вашему RFS-файлу, но на самом деле не требуют root. В моем случае, если вы искали ошибку в pkg, которая не удалась:

build/tmp/work/aarch64-fsl-linux/gcc-runtime/linaro-4.9-r2015.03/temp> grep pseudo *
log.do_install:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

log.do_install.17098:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Это было потому, что кто-то ранее установил возможности безопасности для предыдущих действий по разработке с помощью: setcap cap_net_admin, cap_net_raw+eip /bin /bash или /usr /bin /python. Чтобы исправить: setcap -r /bin /bash

Это трудно найти сообщение подсказало мне следующее: http://lists.openembedded.org/pipermail/openembedded-core/2012-Feb February/056779.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .