IOError:[Errno 1]不允许操作:' / dev / mem'

时间:2017-11-02 08:20:55

标签: python webserver

我使用 Zynq SoC Ubuntu 16.04.03 以及python CGIHTTPServer 模块来托管网页在按钮提交时,它运行一个带有写入/ dev / mem的python脚本(我有一个内存映射的自定义PWM硬件外设,我想通过电路板提供的页面设置一个寄存器值)。

index.html (片段):

<iframe name="dummy" style="display:none;"></iframe>
<form action="cgi-bin/textinput.py" method="POST" target="dummy">
    <input type="text" size="10" name="data" value=""><br>
    <input type="submit" value="Submit">
</form>

textinput.py (片段)

with open ("/dev/mem", "r+b") as f:
  mem = mmap(f.fileno(), pwm_size, offset=pwm_offset)

当Web服务器尝试在HTTP帖子后运行脚本时,我收到错误:

不允许操作.. / dev / mem

我已经找到了很多关于这个主题的主题,到目前为止已经实现了以下&#34;解决方案&#34;,从预期到#34;绝望的措施&#34;。

1)我的用户名是该组的一部分&#34; gpio&#34;
2)我的用户名启动&#34; python -m CGIHTTPServer 8000&#34;在/ var / www / html中index.html所在的位置 3)textinput.py位于/ var / www / html / cgi-bin
4)/ var / www(及其内容)已经被#ch; gpio&#34;和chmod g + rw
5)同样,/ dev / mem已被授予gpio组访问权限 5)我&#;;&#34; sudo visudo&#34;并输入&#34; gpio ALL =(ALL:ALL)ALL&#34;

无论如何,我无法让python网络服务器在 CGI-bin 文件夹中运行 testinput .py而不会抱怨权限。

毋庸置疑,我能够通过&#34; sudo python testinput.py&#34; 成功运行脚本,并且我能够/ dev / mem没有问题。但这没用,因为我需要Web服务器来启动脚本本身。

所以我已经没有想法了。 任何人都想指出我错过了什么?

我应该进一步澄清我在Raspberry Pi上而不是Raspbian发行版(我在Ubuntu 16.04上),所以我没有/ dev / gpiomem可以使用。

0 个答案:

没有答案