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
古賀様
返信有難う御座います。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]
有難う御座いました。
koga
2025年6月1日 9時28分
アットマークテクノの古賀(休日モード)です。
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