无法打开 /dev/mem:权限被拒绝

Failed to open /dev/mem: Permission denied

今天,我尝试在 raspberry Pi 上使用此命令:

sox -t mp3 /home/pi/test.mp3 -t wav - | /home/pi/PiFmRds/src/pi_fm_rds -audio -

但是我收到了这条错误消息:

Failed to open /dev/mem: Permission denied.
Terminating: cleanly deactivated the DMA engine and killed the carrier.
sudo: ./sox : command not found

我试图在命令前放置“sudo”,但我遇到了同样的错误。 请问我该如何解决这个问题? (对不起,如果我做错了,我今天开始玩我的树莓派,这也是我在这个网站上的第一个问题) 提前致谢!

将 sudo 放在 sox 前面对您没有帮助,因为我很确定错误消息“无法打开 /dev/mem”来自 pi_fm_rds。而且这仍然是在没有 sudo 的情况下开始的。

您实际上是在执行两个命令。 sox 是第一个,pi_fm_rds 第二个。您正在将第一个命令的输出发送到第二个命令(通过管道 |)。

要使用 root 权限调用 pi_fm_rds,您可以选择以下三个选项之一:

使用 sudo

调用 pi_fm_rds
sox -t mp3 /home/pi/test.mp3 -t wav - | sudo /home/pi/PiFmRds/src/pi_fm_rds -audio -

或者将您的用户添加到 kmem 组(允许访问 /dev/mem)- 需要 logout/reboot。

sudo usermod -a -G kmem userName

或将程序设为 root - 或 setgid kmem

chown root:root /home/pi/PiFmRds/src/pi_fm_rds
chmod u+s /home/pi/PiFmRds/src/pi_fm_rds