在 UBUNTU 20.04 上为 Raspberry Pi 启用 SPI

在 UBUNTU 20.04 上为 Raspberry Pi 启用 SPI

我正在尝试做什么

作为使用 ubuntu 设置机器人的一部分,我调用来访问 spi 的库称为 spidev。当我执行以下几行时,出现以下错误:

>>> import spidev
>>> spi = spidev.SpiDev()
>>> spi.open(0,1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied
>>>

当我进一步检查时,我发现了以下情况:

[onboard:mr2]~/catkin_ws$ ls -la /dev/spi*
crw------- 1 root root 153, 0 Apr  1  2020 /dev/spidev0.0
crw------- 1 root root 153, 1 Apr  1  2020 /dev/spidev0.1

这意味着它们似乎只有 root 才能访问。我相信这是一个真是个坏主意更改 /dev 文件的文件权限。所以我的问题是:

如何在 Raspberry Pi 上的 Ubuntu 20.04 上启用 /dev/spi*?

  • 似乎常见的建议是运行 raspi-config。但是,据我所知,raspi-config 在 Ubuntu 上不可用或无法运行,仅在 Raspian 上可用。

  • 另一个更有希望的建议是修改各种配置文件之一。但是对于 Pi 的 Ubuntu 20.04 服务器,我找不到相应的文件。

  • 一个解决方法是如果我以 root 身份登录。所以这证明这是一个文件权限问题。但我不知道是哪个文件,而且,再次强调,破坏系统设置的权限似乎不是一个好主意。

所以我想我是选错了方向,但我不知道还能尝试什么。

答案1

创建/etc/udev/rules.d/90-gpio-spi.rules方式:

KERNEL=="spidev0.0", OWNER="root", GROUP="spi"
KERNEL=="spidev0.1", OWNER="root", GROUP="spi"

创建组本身并将其分配给现有用户“ubuntu”:

sudo groupadd -f --system spi
sudo usermod -a -G spi ubuntu

重新开始

sudo shutdown -r now

然后再试一次。

与 Raspberry Pi 上的 GPIO 问题相关的来源

相关内容