Skip to content

Instantly share code, notes, and snippets.

@otya128
Created February 7, 2022 14:25
Show Gist options
  • Save otya128/1784473224a80f3ae453e8667b5fe8e5 to your computer and use it in GitHub Desktop.
Save otya128/1784473224a80f3ae453e8667b5fe8e5 to your computer and use it in GitHub Desktop.

Linux上でFSP Twinsの電圧情報等を取得する

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

Module

AC->DC 12V

LED光らせる機能もあるらしい

command description
0xD1 Serial Number
0x90 FAN回転速度
0x88 入力電圧
0x20 出力電圧の指数
0x8B 出力電圧の仮数
0x8E 温度
0x8C 出力電流
0x89 入力電流
0x96 出力電力
0x97 入力電力

ATX電源モジュール

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

Frame

PMBusじゃなくてシリアル番号とか

先頭と末尾にASCIIコード範囲外の変な値入ってるけどFSP GuardianだとそのままUTF-16として解釈してる 謎

command description
0x16
0x22
0x30
0x48

FSP Guardianで触れない部分

未保証

各モジュールにコマンド0x3B(FAN_COMMAND_1)を書き込むとファンの回転速度をコントロールできる

通常とフル回転が選べるだけ?不明

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment