修改内核参数(不允许进行mmap操作,EPERM)

时间:2019-02-08 16:58:55

标签: c linux-kernel redpitaya

我正在尝试在服务器(RedPitaya)和客户端(ubuntu虚拟机)上运行this code

当该程序在具有root特权的客户端上运行时,该程序返回以下错误消息:

root@VirtualBox:/.../rp_remote_acquire# ./rp_remote_acquire -m 1 -a 192.169.1.100 -p 5000 -k 0 -c 0 -d 64
mmap scope io failed (non-fatal), 1
mmap scope ddr a failed (non-fatal), 1
Segmentation fault (core dumped)

我不确定分段错误是否与前两个错误有关,因为我仅在服务器运行时才遇到分段错误...

错误似乎来自这里:

if (param->mapped_io == MAP_FAILED) {
    fprintf(stderr, "mmap scope io failed (non-fatal), %d\n", errno);
    param->mapped_io = NULL;
}

我知道similar problem已经在stackoverflow上得到解决。

我尝试过

sysctl dev.mem.restricted

我尝试添加

linux   /boot/vmlinuz-linux iomem=relaxed

的结尾
/boot/grub/grub.cfg

并重新启动,但问题仍然存在...

我希望允许该程序访问计算机的虚拟内存,从而有望解决所有错误。可能是我没有正确设置内核参数。

有人可以指出正确的方向吗?

0 个答案:

没有答案