k10railgunによるK10/K10.5世代のAMD製CPUの電圧下げに関するメモ(バージョン0.801.8a時点・ページ2/3)
「k10railgunによるK10/K10.5世代のAMD製CPUの電圧下げに関するメモ(バージョン0.801.8a時点・ページ1/3)」の続き。
実行
実行の際にはヘルプの表示を除いて管理者権限が必要。
k10railgunはPythonスクリプトなので、Pythonが入っている環境であればスクリプトを端末の中で実行すれば動作する*1。バージョン0.801.8aの時点ではPythonのバージョンは2系を対象としている。
$ sudo [k10railgun.pyの場所] ([オプション...])
カーネルモジュールについてはcpufreq関係の他に
- cpuid
- msr
といったものが必要となるが、モジュールがシステム(ディストリのカーネル)内に存在すれば読み込み処理は自動的に行われる。
以下、出力は
のハードウェア環境におけるものとなる。
情報の表示
管理者権限で引数を付けずに実行すると
(定格電圧での動作時に実行) $ sudo [k10railgun.pyの場所] ---- CPU/System Information -------------------------------------------------- M/B(BIOS) / BaseClk :A785GMH/128M(P1.30) / 200.00MHz CPU Name / Cores/S :AMD Athlon(tm) II X3 445 Processor / 3Cores/Socket CPUID _ExFM_BaseFM-S:00100F53 Revision BL-C3 Flags :HwC1EDi/SmiC1EDi//C5Di/AVimp/SVI ---- Freq./Pstate Management --------- ---- Power Management ---------------- MaxFreq./Pstates:3100MHz/ 3 VDD Renge mV :max 1325-min 0 CPB Src/Count :Di/0 PSI_L :Di / 1550mV>=VDD ON VSSlamTime/P0-Pm:200us/tns / 500mV AltVid vss :Di 0us AltVid Start/VDD: 975mV / 975mV [Default]F4x1[F3:E0] Register |[CurrentB]MSRC00100[68:64] Register Freq Ratio FIDh VDD VIDh Nb NbVh | Freq Ratio FIDh VDD VIDh Nb NbVh PS MHz /DID mV /IddA VDD /DID | MHz /DID mV /IddA VDD /DID 0: 3100 15.50 0f/0 1325 12/57 1150 20/0 | 3100 15.50 0f/0 1325 12/57 1150 20/0 1: 2400 12.00 08/0 1225 1a/39 1150 20/0 | 2400 12.00 08/0 1225 1a/39 1150 20/0 2: 1900 9.50 03/0 1125 22/36 1150 20/0 | 1900 9.50 03/0 1125 22/36 1150 20/0 3: 800 4.00 00/1 975 2e/15 1150 20/0 | 800 4.00 00/1 975 2e/15 1150 20/0 CPU0 CPU1 CPU2 [CoFreq MHz] 800 800 800 [CoVDD mV ] 975 975 975
のように、マザーボードやCPUの情報とともに、設定可能な各P-State(上の場合は「0」から「3」の4つ)とそれに対応するクロックや電圧などが表示される。0番が最大クロック,3番が最小クロックでの動作状態。
マザーボードによってはBIOSで(OS起動前から有効な)コア電圧を設定できる場合があるが、その設定は0番のP-StateとしてOS起動後にも有効となる(1番からは定格のときと同じ)・つまり定格/最大のクロックのときだけ電圧が下がる状態となっている。
(BIOSでコア電圧を1.2375Vに指定した状態で実行) $ sudo [k10railgun.pyの場所] ---- CPU/System Information -------------------------------------------------- M/B(BIOS) / BaseClk :A785GMH/128M(P1.30) / 200.00MHz CPU Name / Cores/S :AMD Athlon(tm) II X3 445 Processor / 3Cores/Socket CPUID _ExFM_BaseFM-S:00100F53 Revision BL-C3 Flags :HwC1EDi/SmiC1EDi//C5Di/AVimp/SVI ---- Freq./Pstate Management --------- ---- Power Management ---------------- MaxFreq./Pstates:3100MHz/ 3 VDD Renge mV :max 1325-min 0 CPB Src/Count :Di/0 PSI_L :Di / 1550mV>=VDD ON VSSlamTime/P0-Pm:200us/tns / 500mV AltVid vss :Di 0us AltVid Start/VDD: 975mV / 975mV [Default]F4x1[F3:E0] Register |[CurrentB]MSRC00100[68:64] Register Freq Ratio FIDh VDD VIDh Nb NbVh | Freq Ratio FIDh VDD VIDh Nb NbVh PS MHz /DID mV /IddA VDD /DID | MHz /DID mV /IddA VDD /DID 0: 3100 15.50 0f/0 1325 12/57 1150 20/0 | 3100 15.50 0f/0 1238 19/57 1150 20/0 1: 2400 12.00 08/0 1225 1a/39 1150 20/0 | 2400 12.00 08/0 1225 1a/39 1150 20/0 2: 1900 9.50 03/0 1125 22/36 1150 20/0 | 1900 9.50 03/0 1125 22/36 1150 20/0 3: 800 4.00 00/1 975 2e/15 1150 20/0 | 800 4.00 00/1 975 2e/15 1150 20/0 CPU0 CPU1 CPU2 [CoFreq MHz] 800 800 800 [CoVDD mV ] 975 975 975
BIOSで「1.2375V」に指定した場合は0番のP-Stateだけ「1238」表示で他は定格電圧の設定のときと同じになっているのが分かる。
ヘルプの表示
ヘルプは一般ユーザでも参照でき、--help(-h)オプションを付けて実行すると表示される。
$ [k10railgun.pyの場所] -h Usage: k10railgun.py options:--reset --fq=V0,V1,,V4 --vdd=V0,V1,,V4 --write -p Px --load --save --list k10railgun.py [options] Options Priority: -r > --fq/--vdd > --cofvid Px = PState Number. Vx = Value is XXX:abs,+-XXX:relative, none:noset and xXXX:ratio(Only Freq) 0xXXX: VID in hexadecimal(Only VDD) example:--fq=,2000,-100,x8.5 --vdd=,1300,-50,+50 Options: --version show program's version number and exit -h, --help show this help message and exit (中略) -g governor number, --governor=governor number A value of "-" is the Governors list.The setting can be displayed numerically.
電圧の変更
--vdd=[P-State 0の電圧],[P-State 1の電圧],(以下続く)(-v [P-State 0の電圧],[P-State 1の電圧],(以下続く))と--write(-w)オプションを付けて実行すると、各P-Stateの電圧を変更することができる。--write(-w)オプションを付けないとCPUへの変更が反映されない。
(定格電圧での動作時に実行・1238mV,1138mV,1038mV,888mV指定) $ sudo [k10railgun.pyの場所] -v 1238,1138,1038,888 -w ---- CPU/System Information -------------------------------------------------- M/B(BIOS) / BaseClk :A785GMH/128M(P1.30) / 200.00MHz CPU Name / Cores/S :AMD Athlon(tm) II X3 445 Processor / 3Cores/Socket CPUID _ExFM_BaseFM-S:00100F53 Revision BL-C3 Flags :HwC1EDi/SmiC1EDi//C5Di/AVimp/SVI [VDD] changed. [MSR] Pstate Registar Change. [KernelModule] Reload Powenow-k8 ---- Freq./Pstate Management --------- ---- Power Management ---------------- MaxFreq./Pstates:3100MHz/ 3 VDD Renge mV :max 1325-min 0 CPB Src/Count :Di/0 PSI_L :Di / 1550mV>=VDD ON VSSlamTime/P0-Pm:200us/tns / 500mV AltVid vss :Di 0us AltVid Start/VDD: 975mV / 975mV [CurrentB]MSRC00100[68:64] Register |[CurrentA]MSRC00100[68:64] After Freq Ratio FIDh VDD VIDh Nb NbVh | Freq Ratio FIDh VDD VIDh Nb NbVh PS MHz /DID mV /IddA VDD /DID | MHz /DID mV /IddA VDD /DID 0: 3100 15.50 0f/0 1325 12/57 1150 20/0 | 3100 15.50 0f/0 1238 19/57 1150 20/0 1: 2400 12.00 08/0 1225 1a/39 1150 20/0 | 2400 12.00 08/0 1138 21/39 1150 20/0 2: 1900 9.50 03/0 1125 22/36 1150 20/0 | 1900 9.50 03/0 1038 29/36 1150 20/0 3: 800 4.00 00/1 975 2e/15 1150 20/0 | 800 4.00 00/1 888 35/15 1150 20/0 CPU0 CPU1 CPU2 [CoFreq MHz] 800 800 800 [CoVDD mV ] 975 975 975 AutoSave: __autosave.conf
変更後のクロック/電圧の対応一覧は右側に表示される。
実行の自動化(OS起動/休止状態復帰時に自動実行する)
ディストリごとにOS起動時に実行されるスクリプトが用意されているので、それに下のようなスクリプト実行の行を書き込む(例:/etc/rc.local)。
[k10railgun.pyの場所] -v [P-State 0の電圧],[P-State 1の電圧],(以下続く) -w
ここに記述した設定内容に問題があった場合(電圧の値が低すぎてフリーズしてしまうような設定が書かれた場合など)、それを直すのには復旧用のモードや別のOS(ライブCD/DVDやマルチブート時の他のOS)で起動するなどして復旧しなくてはならないこともありうるため、設定値の試行錯誤段階でOS起動時の自動実行の記述をするのはおすすめしない。ある程度テストをして安定して動作するようになってから記述する。
OS起動のかなり初期の段階で実行したい場合は/etc/以下にある起動時のスクリプト(ディストリによって異なる)の中に記述することもできるが、上にも書いたようにBIOS設定で(OS起動前から有効な)コア電圧を設定できる場合もあるので、無理して早い段階で実行するようにしても省電力の効果はあまり期待できない。
TuxOnIceやuswsuspで休止状態を用いる場合、復帰後に電圧が戻ってしまうので復帰後に再実行する必要がある。hibernate-scriptを用いる場合は
[追記]ファイル名: /etc/hibernate/common.conf
OnResume 01 [k10railgun.pyの場所] -v [P-State 0の電圧],[P-State 1の電圧],(以下続く) -w
のようにすると復帰時に自動的に実行されるようになる(hibernate-scriptのラッパースクリプトを用いて自動実行する方法もある)。上の「OnResume 01」は復帰後の一連の処理の中の最後の段階で実行するための記述。
(「k10railgunによるK10/K10.5世代のAMD製CPUの電圧下げに関するメモ(バージョン0.801.8a時点・ページ3/3)」に続く)
関連記事:
- k10railgunによるK10/K10.5世代のAMD製CPUの電圧下げに関するメモ(バージョン0.801.8a時点・ページ1/3)
- k10railgunによるK10/K10.5世代のAMD製CPUの電圧下げに関するメモ(バージョン0.801.8a時点・ページ3/3)
使用したバージョン:
関連URL: