Ubuntuで省電力設定「TLP」編

スポンサーリンク

TLPで省電力設定

2014年9月9日 更新

Jupiterは一旦開発終了

ちょっと前までは、Jupiterがすごく便利だったんですが、基本的には開発が終了しています。

有志の方がその開発を引き継いでいたりしますが、実際使った感じでは以前のようなJupiterではないのかなと。

よって、Jupiterの代わりを探さなくてはならないのですが・・・。

今回紹介するのはTLPです。

以下、英語サイトを見ながら設定しています。

訳しても伝わりそうなところは日本語にしていますが、下手に訳すとおかしくなりそうなとこは原文ママです。

設定などは、こちらのサイトを参照しております。

まずは、ppaを追加して、インストールです。

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw smartmontools ethtool

です。

ただ、Thinkpadを使用している方にはちょっと違う方法があります。

上記のPPAを追加したあと、下記のコマンドでインストールします。

sudo apt-get install tp-smapi-dkms acpi-call-tools tlp tlp-rdw smartmontools ethtool

こちらそれぞれ、何をするツールかと言いますと。

tlp-rdw – wifiとbluetooth の省電力設定の ON OFF に必要

smartmontools – needed by tlp-stat to display disk drive S.M.A.R.T. data

ethtool – LANを起動させない設定に必要

tp-smapi-dkms Thinkpad のみのツール。バッテリーチャージに関する情報を TLP とやりとりしているみたいです。

acpi-call-tools ThinkPad のみのツール。こちらもバッテリーがらみの設定に必要とのこと。

TLP の切り替えをするツールが登場

こちらだいぶ前からあるのは知っていたんですが・・・。

結構環境に左右されそうなツールですが・・・。気になる方はどうぞ。

参照先のパスが切れています・・・。

Git でも公開されています。

基本ターミナルでの扱いしかできなかった TLP を一部 GUI から操作できます。

個人的にはいらないかな。というところで、実装はしてません。

indicator-TLP

基本的には CLI 管理なツール

このTLPの設定は設定ファイルをエディタで変更する形で行います。基本はCLIです。

エディタはおそらく何を使っても大丈夫ですが、ここではgeditで行なっています。

sudo -i gedit /etc/default/tlp

上記のコマンドで設定ファイルを開きます。

以下、設定箇所です。

個人的には設定を変更しているところを紹介しつつひと通り紹介。

Ubuntuのデフォルトセッティングを削除

sudo update-rc.d -f ondemand remove 

一般的な設定

TLPを有効にする設定

TLP_ENABLE=1

=0で、無効に出来ます。今回は TLP を使いたいので、1 のままですね。

ファイルシステム

DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2

これらは、5まで設定を変えられるみたいです。それぞれどんな効果があるかは、

cat /usr/lib/pm-utils/power.d/laptop-mode

で、確認できるようでうす。Ubuntuのデフォルトは5ということです。

Dirty page

MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60

これは、カーネルがプロセスが使用可能なシステムメモリの60%が汚れた情報で満たされるまで、変更が保存されていないファイルの情報を書き出すことをしないようにします。
デフォルトは60のようです。

Processor and Frequency Scaling

【変更前】
#CPU_SCALING_GOVERNOR_ON_AC=ondemand
#CPU_SCALING_GOVERNOR_ON_BAT=powersave

記述の頭に”#”がいます。これは削除しておきます。

あわせて、バッテリー駆動時には省エネして欲しいので、’ON_BAT=powersave’へ変更します。

【変更後】
CPU_SCALING_GOVERNOR_ON_AC=ondemand
CPU_SCALING_GOVERNOR_ON_BAT=powersave

CPU フリークエンシーのスケーリングを決定します。

以下、その他に設定できるパラメータの説明です。

ondemand : Dynamically switch between CPU(s) available if at 95% cpu load

performance : Run the cpu at max frequency

conservative : Dynamically switch between CPU(s) available if at 75% load

powersave : Run the cpu at the minimum frequency

Min/Max frequency

#CPU_SCALING_MIN_FREQ_ON_AC=0
#CPU_SCALING_MAX_FREQ_ON_AC=0
#CPU_SCALING_MIN_FREQ_ON_BAT=0
#CPU_SCALING_MAX_FREQ_ON_BAT=0

こちらはの設定も、#でコメントアウトしています。
使用しているCPUに依存するとのことです。これについては、tlp-stat outputの+++ Processorを確認しろとのことです。

個人的には現状よくわからないので、パスしています。

Turbo Boost

CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0

この設定は、0で無効。1で有効です。

ただ、使用出来るのは、インテルのcoreiシリーズとカーネル3.7以上が必要です。(ちなみにUbuntu13.04は3.8です)
重要:これはディストリビューションとの設定と競合する可能性があるようです。

個人的には Linux Mint 17(Ubuntu 14.04)& ThinkPad X1 Carbon 旧型で設定して動いています。

Cpu Cores/Hyper-Threads

SCHED_POWERSAVE_ON_AC=0

SCHED_POWERSAVE_ON_BAT=1

負荷が少ない状態でのハイパースレッドの数を最小限にとどめます。

Kernel

NMI_WATCHDOG=0

0が無効。1が有効、省電力設定です。

ここは触らず、デフォルトのままで行きます。

Change CPU voltages aka “undervolting” – Kernel with PHC patch required

#PHC_CONTROLS=”F:V F:V F:V F:V”

こちらは、そのまま。

注意書きにも「何をしているのか完全に理解して実行せよ」とあります。

よくわからないので、スルー。

Hard disk devices, separate multiple devices with spaces

こちら、ハードディスクの認識の設定のようです。

こちらもとりあえず、デフォルトのままで。

DISK_DEVICES=”sda sdb”

Hard disk advanced power management level

DISK_APM_LEVEL_ON_AC=”254 254″
DISK_APM_LEVEL_ON_BAT=”128 128″

Advanced Power Management Levelの設定です。1〜255まで設定可能です。

1 – max power saving / minimum performance
1の設定も可能ですが、過度の読み書きヘッドのため、この設定では、消耗が激しくなるようです。

128 – compromise between power saving and wear (TLP standard setting on battery)
この設定が最も妥当な設定のようです。

192 – prevents excessive head unloading of some HDDs
HDDによっては、過度の防止につながるとなっています。

254 – minimum power saving / max performance (TLP standard setting on ac)
AC上では最も効率の良い設定のようです(PLTのデフォルト)

255 – disable APM (not supported by some disk models)
APMが無効になります。一部のディスクモデルではサポートされないとのこと。

Disk I/O Scheduler

#DISK_IOSCHED=”cfq cfq”

ディスクデバイスの選択IOスケジューラ設定です。

noop is often the best choice for memory-backed block devices (e.g. ramdisks) and other non-rotational media (flash) where trying to reschedule I/O is a waste of resources

deadline is a lightweight scheduler which tries to put a hard limit on latency

cfq tries to maintain system-wide fairness of I/O bandwidth

ちょっと訳に自身がないので、原文ママ。

ちょっと良くわからないので、コメントアウトしてます。(デフォルト)

SATA aggressive link power management (ALPM):

SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power

パラメーターは、

・min_power
・medium_power
・max_performance

です。

こちらも英訳が微妙なので原文です。

ALPM Aggressive Link Power Management (ALPM) is a mechanism where a SATA AHCI controller can put the SATA link that connects to the disk into a very low power mode during periods of zero I/O activity and into an active power state when work needs to be done. Tests show that this can save around 0.5-1.5 Watts of power on a typical system. ( For more check ” Sources and additional help ” )

PCI Express Active State Power Management (PCIe ASPM):

・default
・performance
・powersave

PCIE_ASPM_ON_AC=performance

PCIE_ASPM_ON_BAT=powersave

いくつかのマシンでは、kernel boot option pcie_aspm=force が必要です。

Radeon graphics clock speed

#RADEON_POWER_PROFILE_ON_AC=high

#RADEON_POWER_PROFILE_ON_BAT=low

パラメーターは以下。

low/mid/high/auto/default

参照サイトでは、カーネル 2.6.35 以上になっていますが、最新の TLP だと3.11 以上になっているようです。

よくわからないので、デフォルトのまま。個人的には設定せず。

WiFi power saving mode

1が無効
5が有効です。

WIFI_PWR_ON_AC=1

WIFI_PWR_ON_BAT=5

Disable wake on lan

Y = Yes , N = No

WOL_DISABLE=Y

Audio power saving for Intel HDA

こちら、Intel HDAの設定になります。

SOUND_POWER_SAVE=1

Power off optical drive in UltraBay >> (ThinkPads only)

これはThinkPadユーザー向けです。

バッテリー上で実行する場合ウルトラベイにて光学ドライブの電源を切る設定です。ただ、自分のマシンはThinkPad X1 Carbonですのであまり意味はないかも・・・。

BAY_POWEROFF_ON_BAT=1

Runtime Power Management for pci(e) bus devices

RUNTIME_PM_ON_AC=on

RUNTIME_PM_ON_BAT=auto

Usb autosuspend

USBのオートサスペンドの設定です。0が無効。1が有効

USB_AUTOSUSPEND=1

System Start and Shutdown

システムの起動時に前回のシャットダウンからの無線デバイスの状態(bluetooth, wifi, wwan)を復元します。

RESTORE_DEVICE_STATE_ON_STARTUP=0

起動時にONにしない設定もあります。

DEVICES_TO_DISABLE_ON_STARTUP=”bluetooth wifi wwan”

ONにしたいものは削除してください。区切りはスペースです。

TLPの操作

TLPはインストール後、再起動すると自動でスタートしますが、再起動せず動かしたい場合は、ターミナルから

 sudo tlp start

温度をチェックする

sudo tlp-stat -t

バッテリー情報だけ確認する

sudo tlp-stat -b

現状の設定の確認

sudo tlp-stat -c

wifiなど、の無線の状態を確認

tlp-stat -r

といった感じです。この他にもいくつかありますが、この程度わかっていれば、ひとまず省エネ設定の一歩かなと。

もっと詳しいことは、こちらのサイトに出ています。

スポンサーリンク

シェアする

フォローする

スポンサーリンク

コメント