私の知識レベル
こんにちは、私は Linux の初心者であり、Linux デバイス モデルとファイル システムについて調べるために最善を尽くしています。私が探しているものを尋ねる/グーグルする語彙を持っていない場合は申し訳ありません(私はPCBデザイナーのバックグラウンドを持っています)。ここで少し頭がいっぱいです。
私が読んだいくつかのドキュメント:
- http://www.tldp.org/LDP/lkmpg/2.6/html/lkmpg.html (これは /dev についてのみ述べています)
- https://www.kernel.org/doc/Documentation/sysfs-rules.txt (この混乱は私を悲しませます)
質問
さまざまな PCB レール電圧モニター用のドライバーを実装しようとしています。ADC 値は、SPI 経由でメイン プロセッサと通信する MCU によって読み取られます。この MCU は GPIO 制御も行います。これについては、既に動作する /sys/class/GPIO ドライバーを作成しましたが、正直なところ、完全には理解できません。
したがって、ADC 側でも /sys の下のどこかにいるべきだと考えていますが、どこにあるのかわかりません。/デバイス? /クラス?
私の理解では、/dev または /proc はドライブや CPU などのためのものであるため、ビルドすることはできますが、すべきではありません。
私が検討しているオプションの 1 つは、カスタム クラスを作成することです。/sys/class/boardvoltage かな?しかし、これは開発者が作成する一般的なドライバ ボードである必要があり、適切な属性を持つクラスが既に存在すると考えています。
ボーナス質問
より広い意味で、ドライバー開発者は各クラスの目的をどのように知る必要があるのでしょうか? 各タイプのクラスにアクセスするさまざまな方法をどのように学習しますか? たとえば、/dev ドライバーが読み取りと書き込みを行う間、GPIO は「cat」または「echo」されます。/sys/class/leds のようなものを実行する方法を学ぶにはどうすればよいですか?