おうちで簡単SFPハック(執筆中)
SFP/SFP+のハードウェアについて
SFP/SFP+のハードウェアについては、以下の資料に詳細が記されています。
ftp://ftp.seagate.com/sff/INF-8074.PDF
ftp://ftp.seagate.com/sff/SFF-8419.PDF
Hackの為に必要な情報としては以下の通り。
- 最低限必要な配線
- VccT/VccE - Vcc(3.3V)
- VeeT/VeeR - GND
- MOD-DEF1 - I2C SCL (I2Cのクロック)
- MOD-DEF2 - I2C SDA (I2Cのデータ
- I2C
- I2Cのプロトコル
- Atmel AT24C01Aに代表されるI2C EEPROM互換のInterface
- I2Cアドレスは0x50と0x51
- 0x50: モジュールの定義情報を含むEEPROM(ハック対象)
- 0x51: DDM等、デバイスの状態が反映されるEEPROM状のインターフェイス
- SFPによってはこの中にパスワードを受け付けるアドレスがあり、そこに適切なパスワードを書き込む事によって0x50の書き込みが可能になるものがある。
- 概ね0x7bからの4バイトがパスワード空間、Finisarのデフォルトは[0x00, 0x00, 0x00, 0x00]
- I2Cは3.3Vロジックなので、Raspberry Piとは直結可能だが、Arduino Unoとは直結不可能なので注意
- Arduino Pro Mini 3.3V等、3.3Vロジックのマイコンとなら接続可能
- SCL, SDAともにプルアップが必要なので忘れずに
- I2Cのプロトコル
デバイスの接続
上記の情報を元に、何らかのコンピュータとSFPを接続する必要がある。SFPコネクタを入手して直接配線する事も可能ではあるが、専用の基板無しでSFPコネクタに半田付けを行うのは至難の業であるので、ここでは、入手及び配線が容易な以下のデバイスを使用する。
- マイコン
- Raspberry Pi(モデルは何でもOK)
- SFPスロット
Cisco TwinGig Converter CVR-X2-SFP
これらを以下のように接続する。プルアップ抵抗はCVR-X2-SFPに内蔵されているため直結でOK!I
以下書きかけ