我在这里抓取了Raspberry上的Ubuntu图像,https://ubuntu.com/download/raspberry-pi通过一个虚拟用户加载了一个L928N python程序,并得到了一个错误。进行了一些挖掘和测试,结果发现ubuntu组无法访问属于/dev/gpiomem的root root。
因此,剩下的选项是将我的python程序作为root运行,但是virtualenv并没有真正隔离我的程序。看起来sudo从root的全局python设置中提取了所有的东西。当我在raspberry pi上运行几个项目时,让它们重叠可能会使我沮丧的夜晚,试图理解为什么某些东西坏了(当一个dep更新一个项目而不是另一个项目时)。
因此,我制作了/dev/gpiomem组gpio,它是ubuntu用户的一部分。Viola、pip、virtualenv和我的项目在受控的孤立虚拟环境中不使用sudo!
现在,几天后登录,运行程序,它失败。原来/dev/gpiomem又回到了root root。
我的问题是A)是否有更好的方式让ubuntu访问/dev/gpiomem B),是否有办法确保组保持不变(假设A不是)。
发布于 2021-02-03 03:15:39
在Ubuntu上,而不是gpio组,将用户添加到dialout组中,让自己能够访问GPIO引脚。
(这已记录在由/usr/share/doc/rpi.gpio-common/README.Debian包安装的rpi.gpio-common文件中。)
正如4xy所指出的,安装rpi.gpio-common包将设置udev规则。
在安装rpi.gpio-common并将我的用户添加到dialout组后,我不得不重新启动Pi,然后我能够作为普通用户访问GPIO引脚。
把这一切结合在一起:
sudo apt install rpi.gpio-common
sudo adduser "${USER}" dialout
sudo reboot发布于 2021-01-28 10:48:43
不需要手动添加这些规则。
sudo apt install rpi.gpio-commonhttps://askubuntu.com/questions/1230947
复制相似问题