PHC

提供: ArchWiki
2015年11月30日 (月) 19:17時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

関連記事

PHC はプロセッサを低電圧化するための acpi-cpufreq のパッチです。プロセッサの消費電力を半分以下に抑えて、バッテリーの寿命を伸ばしたりファンのノイズを少なくすることができます。PHC はプロセッサのアーキテクチャが低電圧化をサポートしている場合のみ使えます。

PHC の代替

cpupowerdAUR[リンク切れ: アーカイブ: aur-mirror] はユーザー空間でカーネル内の cpufreq ガバナーを置き換えて低電圧化できるようにします。AMD のプロセッサでのみ使うことが可能です。PHC と同じように安全な電圧を調べる必要があります。

サポートされている CPU

PHC は以下のプロセッサファミリーをサポートしています:

Intel

ノート: 最新の Intel core i CPU は acpi_cpufreq ではなく Intel P-states を使用するため PHC を使うことはできません。
  • Mobile Centrino
  • Atom (N2xx)
  • Core / Core2 (T と P シリーズ)
  • Core i (第二世代以下、Core i3 550 でテスト済み)
ノート: PHC の最新安定版リリース 0.3.2 では Core i3 で周波数のロックができません。従って、最大周波数以外の周波数における最適な電圧を確認するのは極めて難しい、あるいは不可能です。

AMD

  • K8 シリーズ

必要なパッケージのインストール

Intel プロセッサを使っている場合は AURphc-intelAUR を、AMD-K8 シリーズのプロセッサを使っている場合は phc-k8AUR をインストールしてください。

次に、あなたのカーネル用のモジュールをコンパイルする必要があります。カーネルをアップデートした後もコンパイルが必要です (ただし DKMS を使うことでコンパイルは自動化できます、下を参照)。

モジュールをビルドするには linux-headerslinux-lts-headers をインストールしなくてはなりません。

次を実行:

# phc-intel setup

または:

# phc-k8 setup

acpi-cpufreq モジュールが起動時にロードされていない場合は、/etc/modules-load.d/ に適当なファイルを作成してください。詳しくはカーネルモジュール#ロードを参照。

ノート: phc-intelAUR の場合、acpi-cpufreq モジュールは /usr/lib/modprobe.d/phc-intel.conf によって自動的にロードされます。

DKMS による自動モジュール生成

dkms-phc-intelAUR パッケージは DKMS を使って、カーネルのアップデート後に自動的にモジュールをアップデートします。カーネルやカーネルのヘッダが確実に同期されるように、シャットダウン時に行われます (アップデートがインストールされる順番によっては、システムアップグレード中に行っても問題はありません)。

systemd サービスを有効化するには、次を実行:

# systemctl enable dkms-phc-intel

PHC の設定

安全な低電圧の確認

mprime-phc-setup スクリプトを使うことで、最適な電圧を自動的に確認することができます (ソースコード)。コードをテキストファイルにコピーして、chmod +x して実行可能属性を付与して、実行してください。先に mprimeAUR または mprime-binAUR をインストールする必要があります (CPU が安定しているか確認するのに使われます)。このスクリプトは多数のシステムでテストされたわけではありませんが、おそらく安全です。

linux-phc-optimizeAUR[リンク切れ: アーカイブ: aur-mirror] を使うこともできますが、場合によって 安全ではない電圧が出てしまうことがあります。このスクリプトはシステムがクラッシュするまで電圧を少しずつ下げていき、安定する電圧を推測します。システムがクラッシュするので、テスト中は何もしてはいけません。実行したら、/usr/share/linux-phc-optimize/phc_tweaked_vids をチェックしてください。

設定の編集

phc モジュールをコンパイルして最低電圧が確認できたら、/etc/default/phc-intel/etc/default/phc-k8 の設定ファイルに値を追加してください。

例:

VIDS="25 22 15 8 5"

システムを再起動すると systemd によってモジュールが自動的にロードされます。

トラブルシューティング

モジュールのロード

次を実行:

$ dmesg | grep acpi-cpufreq

モジュールに関するエラーが表示されたら、何か設定がおかしいか PHC が使われていません。

ハードウェアの認識

/sys/devices/system/cpu/cpu0/cpufreq/ に "phc_" から始まるファイルがあるはずです。PHC が使われているかどうかを確認するには、次を実行:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls

いくつか値が表示されるはずです。何も値が表示されない場合、あなたの CPU は PHC をサポートしていません。

電圧の制御

CPU の電圧を確認することで PHC がちゃんと機能しているかどうか確認することができます: 電圧が通常電圧よりも下がっている場合、PHC が仕事をしているということです。手動で電圧を設定することもできます、例:

# echo 34 26 18 12 8 5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids

システムの安定性

低電圧化した CPU が安定しているかどうか確認するには、mprimeAURlinpackAUR (Intel のみ) を長時間実行してみてください。

参照