Armadilloフォーラム

/dev/spidevX.X の open errorについて

t.884-ts

2025年5月30日 18時02分

==========
製品型番:A6400-D00Z
Debian/ABOSバージョン:Debian 10.13
カーネルバージョン:4.14-at66
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

お世話になっております。アルマジロ640のユーザです。
CON9にspi接続のADコンバータを接続して計測に用いています。

/dev/spidev0.0

を使ってADCと通信しております。
ルート権限であればspiのデバイスにアクセス出来るのですが、ゲストの状態でspiデバイスにアクセスしようとすると、

open error

となってしまいます。

試しに、/dev/spidev0.0 を chown コマンドを使って所有者と所有グループをゲストに変更したところ、
ゲストの状態でもデバイスにアクセスできました。
しかし、アルマジロ電源OFF/ONで再起動すると、/dev/spidev0.0 の所有者と所有グループが再びルートになってしまい。ゲストではspiにアクセスしようとすると

open error

となってしまいます。
ゲストでログインして、/dev/spidev0.0 にアクセスしても

open error

とならない方法ないでしょうか。
どうかよろしくお願い致します。

コメント

アットマークテクノの古賀(休日モード)です。

t.884-tsさん:
>お世話になっております。アルマジロ640のユーザです。
>CON9にspi接続のADコンバータを接続して計測に用いています。
>
>/dev/spidev0.0
>
>を使ってADCと通信しております。
>ルート権限であればspiのデバイスにアクセス出来るのですが、ゲストの状態でspiデバイスにアクセスしようとすると、
>
>open error
>
>となってしまいます。

spi デバイスにアクセスするのは、ご自分で作成されたアプリケーションでしょうか?
もしそうであれば、そのアプリケーション(実行ファイル)のオーナーを root にして、chmod u+s を使って setuid ビットを立てて使うというのは、いかがでしょう?
 https://ja.wikipedia.org/wiki/Setuid

古賀様

返信有難う御座います。t.884-tsです。
早速、下記ご教授頂いたように試したところ無事問題解決致しました。

# chown t884-ts spiadc
# chmod u+s spiadc
# ls -l spiadc
-rws--x--x 1 root t884-ts 8588 May 30 09:00 spiadc

上記変更を行った後、/dev/spidev にアクセスする自作プログラム 『spiadc』を実行したところ、
open error にならずに、無事結果を表示出来ました。
下実行結果です。

# ./spiadc
A=3.30[V] , B=1.00[V] , C=0.50[V]

有難う御座いました。