我正在尝试读取运行 Linux 的 Zynq 上的内存映射寄存器。我正在使用 python,但我很确定我的问题与系统相关。在 docker 之外,我可以打开 /dev/mem 并 mmap 适当的段,但是当我尝试使用 docker-compose 访问它时,我遇到了权限问题。 我已将容器用户添加到 kmem 中,并尝试以 root 身份运行容器。 我在有或没有特权的情况下运行过:true 我使用了卷和设备挂载(卷:“/dev/mem:/dev/mem”和设备:“/dev/mem”),
我使用 O_RDONLY|O_SYNC 打开 /dev/mem 和 MAP_SHARED、PROT_READ 来映射它,但我总是被拒绝权限。即使 dd if=/dev/mem skip=0x80100000 count=16 也会出现权限问题。 我以 root 身份运行 Containerd。
我一定缺少一些权限问题,有什么想法吗?
看这个:Docker 访问 Raspberry Pi GPIO 引脚 访问 /dev/mem 与访问 gpio sysfs 相同:
$ docker run --privileged -d 随便 检查有关此选项的 Docker 文档。它可能不是最佳选择,具体取决于您的安全要求有多严格。
$ docker run --device /dev/mem -d 随便