SMBus / I2Cを介してVPDにアクセスする方法は?

SMBus / I2Cを介してVPDにアクセスする方法は?

IPMIクエリと同様に、SMBus / I2Cを介してターゲットサーバー上の各デバイスのVPDにどのようにアクセスしますか?ドライバが必要ですか、それともi2c-devモジュールで十分ですか?サーバーに複数のストレージデバイスが接続されている場合は、ターゲットバスにどのデバイスがあるのか​​を確認します。

私はi2cDetectを使ってi2cバスをチェックしていますが、私のデバイスがどのバスに接続されているのか、もともとバスがあるのか​​を確認することはできません。実際のi2cデバイスを識別するには、i2cバス/アダプタが必要であることがわかります。 i2cクライアントを作成すると、これは行われますが、まだバス接続を確認し、定義されたid_tableにリストされているi2cデバイスに制限されるようにi2cクライアントを作成する必要があります。 i2cデバイスがあるかどうかにかかわらず、可能な場合はすべてのストレージデバイスを検出したいと思います。

どんな答えでも大変感謝します。とても感謝しています。

答え1

部分的な回答(質問が古くなったため、詳細を尋ねることは困難です):

デバイスのVPDが標準EEPROMに保存されている場合可能標準のEEPROMドライバで十分です。 (他の方法でアクセスされている場合は不明です)。

modprobe i2c-dev利用可能な場合は、ユーザースペースからI2Cアクセスを許可しますi2cdetectmodprobe eeprom標準のEEPROMドライバをインストールしてサポートしているデバイスのすべてのバスを検索してアクセスを許可します/sys/bus/i2c/drivers/eeprom

しかし、私のデバイスがどのバスに接続されているのか、もともとバスがあるのか​​を確認することはできません。

はい、少し痛いです。ハードウェアをよく理解し、バスで見ることができるデバイスに基づいていくつかの推測をする必要があります。

見ている

/sys/bus/i2c/devices/i2c-*/name
/sys/bus/i2c/devices/i2c-*/device/driver/

また役に立ちます。

関連情報