私は Raspberry Pi を持っています。GPIO ピンまたはハードウェア周辺機器 (I2C、SPI など) にアクセスするには、ルートとしてこれらにアクセスするプログラムを実行する必要があります。または、そのプログラムを実行しているユーザーをその周辺機器のグループに追加できます (例: I2C のグループ i2c)。
私の質問: 現実の世界 (組み込み Linux を実行している機械の一部など) では、プログラムが必要とする周辺機器ごとにすべてのユーザー グループにユーザーを追加するのが標準的な方法ですか? これを行うより良い方法はありますか?
2 番目の質問: たとえば、C を使用して /sys ではなく直接ハードウェア レジスタにアクセスする場合、これはどのように機能しますか。これを実行する唯一の方法は、常にルートとして実行することです。これはまったく良い考えではありません。または、ユーザー空間プログラムがそのモジュールと通信している間に、レジスタへのアクセスを処理するカーネル モジュールを作成します (これはすべてのようです)。より多くの「推奨」方法がある場合は、多くの作業が必要です)。プログラムは通常、組み込み Linux セットアップのハードウェア レジスタにどのようにアクセスしますか?