CP2112でPMBusが繋がっているのでそれを叩くとよい
Linux Kernel 3.15以上であればカーネルにドライバがあるので特に苦労することはなく/dev/i2c-*
に現れる
遊んでたらカーネルごとハングしたのでドライバおかしいかもしれない(5.4.0-97-generic)
基本的にPMBus
address (7-bit) | address (8-bit) | description |
---|---|---|
0x59 | 0xB2 | Module 1 |
0x58 | 0xB0 | Module 2 |
0x25 | 0x4A | ATX電源モジュール (PSU1+PSU2->12V, 5V, 3V3) |
0x56 | 0xAC | Frame |
AC->DC 12V
LED光らせる機能もあるらしい
command | description |
---|---|
0xD1 | Serial Number |
0x90 | FAN回転速度 |
0x88 | 入力電圧 |
0x20 | 出力電圧の指数 |
0x8B | 出力電圧の仮数 |
0x8E | 温度 |
0x8C | 出力電流 |
0x89 | 入力電流 |
0x96 | 出力電力 |
0x97 | 入力電力 |
PSU1 (12V)+PSU2 (12V)からATX電源出力用にDC-DCする部分
ここは冗長でないけどサーバーで冗長化されているかと言えば12V単一出力をマザーボード上でDC-DCしているはずなのでそんなに変わらなそう
command | description |
---|---|
0x00 | ページ切り替えレジスタ |
0x20 | 出力電圧の指数(ページごとに存在) |
0x8B | 出力電圧の仮数(ページごとに存在) |
0x8C | 電流(ページごとに存在) |
0x8D | 温度 |
page | description |
---|---|
0x00 | 12V[1] |
0x01 | 12V[2] |
0x02 | 12V[3] |
0x10 | 5V |
0x11 | 3.3V |
PMBusじゃなくてシリアル番号とか
先頭と末尾にASCIIコード範囲外の変な値入ってるけどFSP GuardianだとそのままUTF-16として解釈してる 謎
command | description |
---|---|
0x16 | |
0x22 | |
0x30 | |
0x48 |
未保証
各モジュールにコマンド0x3B(FAN_COMMAND_1)を書き込むとファンの回転速度をコントロールできる
通常とフル回転が選べるだけ?不明