权限被拒绝你好世界Yocto/Openembedded

Permission denied Hello world Yocto/Openembedded

我想用 Yocto 为我的 Toradex Colibri iMX7 交叉编译一个简单的 C Hello World。 我的 meta-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 灵感来自 this one :

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

我是 root 为什么会有 Permission denied

谢谢你的帮助!

install -m 0644 ${S}/helloworld ${D}${bindir}

您是在告诉安装程序不为任何人设置执行权限:试试“0755”。