Linux 2.6.32、busybox、物理SDデバイスの認識

Linux 2.6.32、busybox、物理SDデバイスの認識

2つのSDカード接続と2つのUSBポート(USBハブとしても機能します)を持つUSBカードリーダーの両方が同じデバイスにあります。私は監督なしで使用される組み込みLinuxデバイスを実行しており、カードリーダーに2枚のSDカードを使用して数時間収集されたデータを保存しようとしています。各カードは特定のデータを保持するように設計されており、2つのデータタイプを混在させることはできません。

USB SCSIデバイス(SDカードまたはUSBフラッシュドライブ)がマウントされたときにスクリプトをトリガーするmdevの機能を使用すると、1つの例外を除いて、どのディスクがどのディスクであるかを識別できるようにUSBデバイスの物理的な場所を記録します。できます。カードリーダーは、リーダーの2枚のSDカードが物理的にカードリーダーのポート1にあると報告します。これは、(現在の知識では)カスタム作成プログラムがデータが書き込まれる物理カードを識別できないことを意味します。

ユーザーがシステムにどのカードが何であるかを知らせるためにループに入ることを許可することはできません(ユーザーは2つの新しいカードを挿入し、デバイスの電源を入れてから離れるだけです)。 Busybox互換ツールを使用して、どのファイルシステムがどの物理ディスクに属しているかを確認する方法は?

ありがとうございます。

ベストアンサー1

/sys/blockこれを探すところです。カードリーダーが接続されると、両方のブロックデバイスがフォーマットで一覧表示されますsd*。ここで、*は文字です。これは、システムに物理scsiデバイスが追加されているがメディアにアクセスする方法がないようです(もちろん、ホットプラグシステムがmdevを介して自動的にマウントされるフォーマットされたパーティションがある場合を除く/etc/mdev.conf)。

/sys/block/sda(たとえば)はへのシンボリックリンクです/sys/devices/platform/fsl-ehci.0/usb2/2-1/2-1.1/2-1.1:1.0/host0/target0:0:0/0:0:0:1/block/sda

前のセクション/host/target0:0:0は私のUSBデバイスの物理デバイスツリー構成です。カードリーダーはバス2、ポート1、ポート1にあります。

次の部分は、/host/target0:0:0私がよく理解していない追加のデバイスマッピングです。ただし、最後の数字(対応するリーダーのデバイス用)は、常に1つのポートまたは別のポートに対応する0または1です。

だから私はすでに必要なものを持っていますが、誰かがその空白を埋め、後世のためにより良い説明を提供できればいいでしょう。

おすすめ記事