「Laptop Mode Tools」の版間の差分
細 (→USB の自動サスペンド) |
細 (1版 をインポートしました) |
(相違点なし)
|
2015年1月11日 (日) 14:25時点における版
Laptop Mode Tools は Linux 用のノートパソコン省電力化パッケージです。Linux カーネルの Laptop Mode 機能を有効にする手段として不可欠であり、ハードドライブをスピンダウンさせることができます。さらに、シンプルな設定ファイルを使ってその他の電源関連の設定を多数変更することが可能です。
acpid や CPU の周波数スケールと組み合わさって、LMT は完全なノートパソコンの電源管理スイートを実現します。
インストール
AUR から laptop-mode-toolsAUR をインストールしてください。
設定
設定は以下のファイルで行います:
/etc/laptop-mode/laptop-mode.conf
- メインの設定ファイル。/etc/laptop-mode/conf.d/*
- 数十の"モジュール"ごとの機能。
それぞれのモジュールは conf.d/
内のファイルの CONTROL_*
引数を変更することにより、enabled
や disabled
にしたり auto
に設定することができます。/etc/laptop-mode/laptop-mode.conf
で ENABLE_AUTO_MODULES
が設定されている場合、LMT は CONTROL_*
が auto
に設定されているモジュールを全て有効にします。このルールには2つだけ例外があります: auto-hibernate.conf
と battery-level-polling.conf
は CONTROL_*
の代わりに ENABLE_*
変数を利用します。
どのモジュールが有効・無効・自動になっているか確認するには、次を実行:
$ grep -r '^\(CONTROL\|ENABLE\)_' /etc/laptop-mode/conf.d
最後に、laptop-mode.service
を有効化してください。
ハードディスク
hdparm や sdparm をインストールする必要があります。Hdparm を見て下さい。
hdparm -S
の値でハードドライブをスピンダウンすることにより電力が節約され音がとても静かになります。先読み機能を使えばコンピュータに触っているときでもドライブをスピンダウンさせることが可能です。LMT は hdparm -B
の値も使うことができます。ハードドライブを最大限節電するには 1 で最小は 254 です。例えば、電源使用時にはこの値を 254に設定し、バッテリー使用時には 20 に設定します。通常の作業でディスクがスピンアップするのを待つ間にフリーズがおこるような場合は、高い値 (例: 128) に設定すると良いでしょう。スピンダウンを行う頻度が下がります。hdparm -S
と hdparm -B
の値は /etc/laptop-mode/laptop-mode.conf
で設定します。
CONTROL_MOUNT_OPTIONS
変数を使用すると (デフォルトでオン)、laptop-mode-tools はパーティションを自動的に再マウントして、マウントオプションに commit=600,noatime
を追加します。これによってジャーナリングプログラム jbd2 はディスクに数秒ごとにアクセスし続けながら、ディスクジャーナルは10分ごとに更新されます。
ソリッドステートドライブ
公式の、上流の FAQ より:
問: わたしのマシンにはソリッドステートドライブ (SSD) が載っています。laptop-mode-tools のディスク関連の部分は有効にすべきでしょうか?もしくは有効にするのは不適切ですか?
答: おそらく有効にするのが妥当です。理由は2つあります。(a) Laptop Mode は書き込み回数を減らすため、SSD の寿命が伸びる。(b) Laptop Mode は書き込みをバーストにするので、ALPM などの省電力機能が有効になる。ただし、使用しているハードウェアによって効果は著しく異なります。ハードウェアによっては全く効果がありませんが、一部のハードウェアでは相当な利益があります。
CPU 周波数
CPU 周波数ドライバーをインストールする必要があります。CPU 周波数スケーリングを見て下さい。
# cpufreq.conf # ThinkPad T40/T42/T60 Example # CONTROL_CPU_FREQUENCY=1 BATT_CPU_MAXFREQ=fastest BATT_CPU_MINFREQ=slowest BATT_CPU_GOVERNOR=ondemand BATT_CPU_IGNORE_NICE_LOAD=1 LM_AC_CPU_MAXFREQ=fastest LM_AC_CPU_MINFREQ=slowest LM_AC_CPU_GOVERNOR=ondemand LM_AC_CPU_IGNORE_NICE_LOAD=1 NOLM_AC_CPU_MAXFREQ=fastest NOLM_AC_CPU_MINFREQ=slowest NOLM_AC_CPU_GOVERNOR=ondemand NOLM_AC_CPU_IGNORE_NICE_LOAD=0 CONTROL_CPU_THROTTLING=0
デバイスとバス
Intel SATA
- Intel SATA AHCI コントローラーの Aggressive Link Power Management 機能を有効にすればディスク IO がないときにディスクリンクが省電力モードに設定されます。
# intel-sata-powermgmt.conf # ThinkPad T40/T42/T60 Example # DEBUG=0 CONTROL_INTEL_SATA_POWER=1 BATT_ACTIVATE_SATA_POWER=1 LM_AC_ACTIVATE_SATA_POWER=1 NOLM_AC_ACTIVATE_SATA_POWER=0
USB の自動サスペンド
# runtime-pm.conf # ThinkPad T40/T42/T60 Example # DEBUG=0 CONTROL_RUNTIME_AUTOSUSPEND=1 BATT_SUSPEND_RUNTIME=1 LM_AC_SUSPEND_RUNTIME=1 NOLM_AC_SUSPEND_RUNTIME=1 AUTOSUSPEND_TIMEOUT=2
ディスプレイとグラフィック
LCD 輝度
- 次のコマンドを実行することでノートパソコンで利用できる明るさの値を取得することができます:
$ cat /proc/acpi/video/VID/LCD/brightness
ThinkPad T40/T42
ThinkPad T40/T42 ノートパソコンの場合、次を実行することで明るさの値の最大値と最小値が取得できます:
$ cat /sys/class/backlight/acpi_video0/brightness $ cat /sys/class/backlight/acpi_video0/max_brightness
# lcd-brightness.conf # ThinkPad T40/T42 Example # DEBUG=0 CONTROL_BRIGHTNESS=1 BATT_BRIGHTNESS_COMMAND="echo 0" LM_AC_BRIGHTNESS_COMMAND="echo 7" NOLM_AC_BRIGHTNESS_COMMAND="echo 7" BRIGHTNESS_OUTPUT="/sys/class/backlight/thinkpad_screen/brightness"
ThinkPad T60
- ThinkPad T60 ノートパソコンの場合、次を実行することで明るさの値の最大値と最小値が取得できます:
$ cat /sys/class/backlight/thinkpad_screen/max_brightness $ cat /sys/class/backlight/thinkpad_screen/brightness
# lcd-brightness.conf # ThinkPad T60 Example # DEBUG=0 CONTROL_BRIGHTNESS=1 BATT_BRIGHTNESS_COMMAND="echo 0" LM_AC_BRIGHTNESS_COMMAND="echo 7" NOLM_AC_BRIGHTNESS_COMMAND="echo 7" BRIGHTNESS_OUTPUT="/sys/class/backlight/acpi_video0/brightness"
ターミナルの点滅
# terminal-blanking.conf # ThinkPad T40/T42/T60 Example # DEBUG=0 CONTROL_TERMINAL=1 TERMINALS="/dev/tty1" BATT_TERMINAL_BLANK_MINUTES=1 BATT_TERMINAL_POWERDOWN_MINUTES=2 LM_AC_TERMINAL_BLANK_MINUTES=10 LM_AC_TERMINAL_POWERDOWN_MINUTES=10 NOLM_AC_TERMINAL_BLANK_MINUTES=10 NOLM_AC_TERMINAL_POWERDOWN_MINUTES=10
ネットワーク
Ethernet
# ethernet.conf # ThinkPad T40/T42/T60 Example # DEBUG=0 CONTROL_ETHERNET=1 LM_AC_THROTTLE_ETHERNET=0 NOLM_AC_THROTTLE_ETHERNET=0 DISABLE_WAKEUP_ON_LAN=1 DISABLE_ETHERNET_ON_BATTERY=1 ETHERNET_DEVICES="eth0"
無線 LAN
無線インターフェイスの電源管理設定はハードウェアに依存しており、設定するのが少し厄介です。ワイヤレスチップセットに応じて、以下の3つのファイルのどれか1つで設定を管理します:
/etc/laptop-mode/conf.d/wireless-power.conf
は省電力設定の一般的なファイルです ("iwconfig wlan0 power on/off" を使用)。ほとんどのチップセットで適用されます (ただし以下に記載する Intel のチップセットは除く)。/etc/laptop-mode/conf.d/wireless-ipw-power.conf
は古い ipw ドライバーで動作する Intel チップセット用です。IPW3945, IPW2200, IPW2100 に適用されます。(LMT 1.55-1 現在) IPW3945 には iwpriv を使用し、IPW2100 と IPW220 には iwconfig と iwpriv の設定を組み合わせます。詳しくは/usr/share/laptop-mode-tools/modules/wireless-ipw-power
を参照 (ipw3945 は使われません、下を見て下さい)。/etc/laptop-mode/conf.d/wireless-iwl-power.conf
は iwl4965, iwl3945, iwlagn モジュールで動作する Intel チップセット用です (4965, 5100, 5300, 5350, 5150, 1000, 6000 チップセットをサポートしています)。
3つとも有効にしてもあまり問題にはなりません。LMT はインターフェイスが使用しているモジュールを検出してそれにあわせて動作するからです。
上記のそれぞれの設定ファイルでサポートされているモジュールは LMT から直接引用してきています。ただし、現在の 2.6.34 カーネルは ipw3945 と iwl4965 モジュールがないため、やや情報が古いようです (3945 チップセットは iwl3945 を使用し、4965 チップセットは iwlagn モジュールを代わりに使用しています)。どちらにしろ LMT が動作するのには影響がないため、あくまで資料として記載しています。
iwlagn モジュールで動作するチップセットには既知の問題が存在します (つまり 5300 チップセットなど)。/sys/class/net/wlan*/device/power_level
ファイルが存在しないため、これらのチップセットでは /etc/laptop-mode/conf.d/wireless-iwl-power.conf
の以下の設定は無視されます:
IWL_AC_POWER IWL_BATT_POWER
代わりに、標準の方法 ("iwconfig wlan0 power on/off") が自動的に使われます。
オーディオ
AC97
# ac97-powersave.conf # ThinkPad T40/T42/T60 Example # DEBUG=0 CONTROL_AC97_POWER=1
Intel HDA
# intel-hda-powersave.conf # ThinkPad T40/T42/T60 Example # DEBUG=0 CONTROL_INTEL_HDA_POWER=1 BATT_INTEL_HDA_POWERSAVE=1 LM_AC_INTEL_HDA_POWERSAVE=1 NOLM_AC_INTEL_HDA_POWERSAVE=0 INTEL_HDA_DEVICE_TIMEOUT=10 INTEL_HDA_DEVICE_CONTROLLER=0
トラブルシューティング
Laptop-mode-tools がイベントを認識しない
acpid をインストールして systemd サービスの acpid.service
を有効化してください。
これで問題が解決しない場合、laptop-mode の設定ファイルで有効にしたいサービスが 1 に設定されているか確認してください。多くのサービス (cpufreq コントロールなど) はデフォルトで "auto" に設定されていますが、これだと有効にならないこともあります。
バッテリーで起動した時に bluetooth が動作しないという問題が起こる場合、runtime-pm を無効にすれば直ることがあります。
電源使用時に Laptop-mode-tools が無効にならない
laptop-mode-tools と pm-utils の両方をインストールしていると、互いに干渉しあって、laptop-mode-tools が正しく設定を行えないことがあります。
pm-utils の重複する機能があるスクリプトを無効化することで修正できます。この問題の主原因は /usr/lib/pm-utils/power.d
にある laptop-mode スクリプトです。/usr/lib/pm-utils/power.d
のフックと同じ名前のダミーファイルを /etc/pm/power.d
に作成することで不必要なフックを動作しないようにすることができます。例えば laptop-mode フックを無効化したい場合:
# touch /etc/pm/power.d/laptop-mode
LMT と同じ機能を持つフックは無効化することを推奨します。
バッテリー使用時に5秒で USB マウスがスリープする
デバイスの ID を確かめて下さい (例: 046d:c534
):
$ lsusb
その値を /etc/laptop-mode/conf.d/usb-autosuspend.conf
の AUTOSUSPEND_USBID_BLACKLIST
変数に記述してください、例えば:
/etc/laptop-mode/conf.d/usb-autosuspend.conf
... AUTOSUSPEND_USBID_BLACKLIST="046d:c534" ...
スペースで区切ることで複数の ID を指定できます。