В доступе отказано Привет, мир Yocto/Openembedded

Я хочу кросс-компилировать с Yocto простой C Hello World для моего Colibri iMX7 от Toradex. Дерево моей мета hellow выглядит следующим образом:

 meta-hellow
 ├── conf
 │   └── layer.conf
 └── recipes-myhello
     └── files
         └── helloworld.c
         └── README.TXT
     └── myhello_0.0.bb

helloworld.c:

#include <stdio.h>

int main(int argc, char** argv)
{
        printf("Hello World!\n");
        return 0;
}

myhello_0.0.bb вдохновлен этим:

DESCRIPTION = "Hello world program"
#To prevent the LICENSE field not set error
LICENSE = "CLOSED" 
PR = "r0"

SRC_URI = "file://helloworld.c \
           file://README.txt"

do_compile() {
        ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/helloworld.c -o helloworld
}

do_install() {
        install -m 0755 -d ${D}${bindir} ${D}${docdir}/helloworld
        install -m 0644 ${S}/helloworld ${D}${bindir}
        install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/helloworld
}

Я добавил свой слой в мой bblayers.conf примерно так ${TOPDIR}/../layers/meta-hellow \ и добавил пакет в local.conf так IMAGE_INSTALL_append = "myhello",

Но проблема у меня, после установки его на мою плату с opkg install, как следует:

root@colibri-imx7:~# myhello
-sh: /usr/bin/myhello: Permission denied

Почему есть Permission denied так как я root?

Спасибо за помощь!

1 ответ

Решение
install -m 0644 ${S}/helloworld ${D}${bindir}

Вы указываете программе установки, чтобы ни у кого не было разрешения на выполнение: попробуйте вместо этого "0755".

Другие вопросы по тегам