我有一个 Raspberry Pi,要访问 GPIO 引脚或硬件外围设备(例如 I2C、SPI),您需要以 root 身份运行访问这些的程序。或者,您可以将运行该程序的用户添加到该外围设备的组(例如,用于 I2C 的组 i2c)。
我的问题:在现实世界中(例如,一些运行嵌入式 linux 的机器)是简单地将用户添加到程序所需的每个外围设备的每个用户组的标准做法吗?有没有更好的方法来做到这一点?
我的第二个问题:例如,当您使用 C 直接访问硬件寄存器而不是通过 /sys. 我能想到的唯一方法是始终以 root 身份运行,这根本不是一个好主意,或者编写一个处理访问寄存器的内核模块,而用户空间程序与该模块通信(这一切似乎如果有更多“推荐”的方式,就像很多工作一样)。程序通常如何访问嵌入式 Linux 设置上的硬件寄存器?