尝试使用qemu运行ARM可执行文件时权限被拒绝

尝试使用qemu运行ARM可执行文件时权限被拒绝,arm,filesystems,virtualbox,cross-compiling,mount,Arm,Filesystems,Virtualbox,Cross Compiling,Mount,我试图使用qemu运行交叉编译的文件,但即使在使用sudo运行时,也会出现权限被拒绝/操作不被允许的错误 我在VirtualBox 5.0.22中运行Debian 8.7 i386,交叉编译到ARM。这里将更详细地描述交叉编译设置 交叉编译的文件在复制到本机ARM设备时运行良好 #include <stdio.h> int main() { printf("Hello ARM\n"; return 0 } 试着直接跑会给你带来麻烦 # ./testARM # bash: .

我试图使用qemu运行交叉编译的文件,但即使在使用sudo运行时,也会出现权限被拒绝/操作不被允许的错误

我在VirtualBox 5.0.22中运行Debian 8.7 i386,交叉编译到ARM。这里将更详细地描述交叉编译设置

交叉编译的文件在复制到本机ARM设备时运行良好

#include <stdio.h>
int main()
{
  printf("Hello ARM\n";
  return 0
}
试着直接跑会给你带来麻烦

# ./testARM
# bash: ./testARM: Permission denied
试图通过qemu运行

# qemu-arm ./testARM
# ./testARM: Operation not permitted
sudo也一样

# sudo qemu-arm ./testARM
# ./testARM: Operation not permitted
在本机平台上运行它是为works交叉编译的

beaglebone:~$ ./testARM
Hello ARM
当然,我还检查了文件权限rwxr-xr-x 谷歌向我展示了另一个有同样问题的人,但没有解决办法

我最好的猜测是,从VirtualBox内部运行qemu是导致问题的原因,但有多个报告表明它可以正常工作。主机CPU是Intel Core i7


可能是什么问题?我希望在构建过程中运行自动测试,这就是为什么使用qemu进行工作设置会很好。

正如@TobySpeight所设想的,这只是一个文件系统装载标志问题。它在stackexchange上有描述


使用exec标志进行装载解决了这个问题:mount-o remount,exec filesystem

您是否可以确认您刚刚从Debian存储库以包的形式安装了qemu user,并且已经安装了必要的动态库?我想你可能有,为编译和链接工作。另外,您是否尝试过qemu用户静态?事实上,第一个被拒绝的权限建议您检查文件权限和文件系统装载标志。您能在该目录中构建并运行本机二进制文件吗?正如@TobySpeight所设想的,这只是一个文件系统装载标志问题。这里描述的是:
beaglebone:~$ ./testARM
Hello ARM