web-dev-qa-db-ja.com

おそらくmtdインターフェイスを介して、インストールされているフラッシュデバイスIDを読み取るにはどうすればよいですか?

UClinuxを使用した組み込みLinuxソリューションでは、より大きなフラッシュデバイスを追加しました。インストールしたデバイス(ハードウェアデバイス)を照会できるようにしたい。

小さいデバイスと大きいデバイスの両方に異なるデバイスIDがあり、デバイスドライバーコードで読み取ることができます。

私が知らないのは、「ユーザーランド」でその情報を取得する方法です。つまりシェル/ bashスクリプトで。

私は見ました:

cat /proc/mtd-これはパーティションのサイズに関する情報を提供します。しかし、これからはわかりません。実際、インストールされているフラッシュチップに基づいてパーティションサイズを変更する必要があります。

mtd_debug info /dev/mtd0-これはかなり近いです、それはセクターサイズ(消去サイズ)、mtdタイプなどについて教えてくれます...しかし2つのフラッシュチップは同じタイプなので、これも十分な情報ではありません。

3
code_fodder

私はこれに対するコードベースのソリューションを作成しました、そのスタック内オーバーフローはここにあります: how-can-i-determine-what-mtd-flash-device-is-installed

ただし、これはコードの変更であるため(1行だけでも)、カーネルの再構築が必要になるため、これを解決策としてマークアップしていません...

1
code_fodder

カーネル出力をスキャンして、NANDに関するメッセージをすばやく確認できます。

dmesg | grep 'Manufacturer ID'

メッセージはバージョンごとに異なります( 2.6.324.1 )。 2.6.32.57の結果は次のとおりです。

[root@board /]# dmesg | grep 'Manufacturer ID'
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
0
SergA