現時点では、私はコード変更なしでこれを行う簡単な方法がないことがわかりました。あなたは、次のいずれかを呼び出すことができます(私の場合drivers/mtd/devices/m25p80.c
に)
該当するファイルには:しかし、私は私が必要な情報を取得することができます(おそらくハックのビット)簡単なコード変更を発見した
dev_err("...");
dev_alert("...");
dev_warn("...");
dev_notice("...");
_dev_info("...");
include/Linux/device.h
で定義されているので、それらはLinuxドライバインターフェイスの一部なので、どのドライバからでも使用できます。
実行時にdev_err()とdevalert()の両方が "画面上"に印刷されることがわかりました。ただし、これらのデバイスメッセージはすべて/var/log/messages
にあります。私は形式のメッセージを追加するので:dev_err()
またはdev_alert()
非常に適切ではありませんを使用して明らかに
cat /var/log/messages | grep -i jedec
:dev_notice("JEDEC id %06x\n", jedecid);
を、私は次のコマンドでデバイスIDを見つけることができます! - しかしdev_notice()
、さらには_dev_info()
と思われます。
それがコードの変更を必要とするので、まだ答えとしてこれをマーキングなし - 誰もが1を知っているならばまだ良い解決策を望んで...
更新
上記「溶液」は動作しますが、その少し気が狂っています - 確かに仕事をしてくれるでしょう。しかし、私はコードを変更している場合、適切に行うことができると判断しました。このために必要な
cat /sys/class/m25p80/m25p80_dev0/device_id
メイン関数呼び出しがある(この順序で)::だから私は今、あなたは、次のコマンドを使用して、フラッシュのIDを取得することができるように、sysfsの中にインターフェイスを追加する変更を実施している
alloc_chrdev_region(...)
class_create(...)
device_create(...)
sysfs_create_group(...)
誰もがそれを望むなら、私はその答えに展開することができますが、これは、同じことをしたい人のためのヒントを十分に与える必要があります。
ブロックデバイスを照会するなどして有用な情報を得ることができますか? 'blockdev'コマンドを使って? mtdデバイス全体のブロックデバイスがある場合は、それを照会することもできます。そうしないと、個々のmtdパーティションのブロックデバイスに照会する必要があります。場合によっては、最後のmtdパーティションは、元のmtdデバイスの残りのスペースを満たすために自動サイズ調整されます。 –
@IanAbbottいいアイデア - 私は 'blockdev --getsize/dev/mtdblock5'(最後のブロック)を使って、残りのサイズではなく最後の実際のブロックのサイズを表示しました:(...私はブロックはあまりにも余分な情報があった場合にだけではありますが、それらはすべて期待されるパーティションサイズです –
mtd全体のブロックデバイスを作成するためのカーネル設定オプションがありますが、それは既存の/ dev/mtdblock番号設定オプションは 'CONFIG_MTD_PARTITIONED_MASTER'"分割時にマスタデバイスを保持する "です。 –