Laptop Mode Tools (日本語) - ArchWiki

# Laptop Mode Tools (日本語)

関連記事

- acpid
- systemd
- cpufrequtils
- pm-utils
- ラップトップ
- Powertop
- TLP

Laptop Mode Tools は Linux 用のノートパソコン省電力化パッケージです。Linux カーネルの Laptop Mode 機能を有効にする手段として不可欠であり、ハードドライブをスピンダウンさせることができます。さらに、シンプルな設定ファイルを使ってその他の電源関連の設定を多数変更することが可能です。

acpid や CPU の周波数スケールと組み合わさって、LMT は完全なノートパソコンの電源管理スイートを実現します。

## インストール

AUR から laptop-mode-tools をインストールしてください。

## 設定

設定は以下のファイルで行います:

- `/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` で設定します。

Warning: ハードドライブを極端にスピンダウンすると寿命が短くなることもあります。値を考える時は慎重に。

`CONTROL_MOUNT_OPTIONS` 変数を使用すると (デフォルトでオン)、laptop-mode-tools はパーティションを自動的に再マウントして、マウントオプションに `commit=600,noatime` を追加します。これによってジャーナリングプログラム jbd2 はディスクに数秒ごとにアクセスし続けながら、ディスクジャーナルは10分ごとに更新されます。

Warning: この設定を使うと10分間の作業を喪失することになります。また、`atime` マウントオプションは使用しないで下さい。代わりに `noatime` や `relatime` を使って下さい。
Note: nilfs2 パーティションで `CONTROL_MOUNT_OPTIONS` を有効にしてはいけません。フォーラムの次のスレッドを参照してください: https://bbs.archlinux.org/viewtopic.php?id=134656

#### ソリッドステートドライブ

公式の、上流の 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

Note: 設定の詳細については `/etc/laptop-mode/conf.d/intel-sata-powermgmt.conf` ファイルに詳しい説明があります。

#### USB の自動サスペンド

Tip: USB の自動サスペンド機能は usb-autosuspend モジュールから runtime-pm モジュールに移動されています。`/lib/udev/rules.d/99-laptop-mode.rules` の usb-autosuspend は runtime-pm に置き換えて下さい。

    # 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

Note: 設定の詳細は `/etc/laptop-mode/conf.d/runtime-pm.conf` ファイルを見て下さい。常に使用している USB ツールが存在する場合は (USB マウスなど)、ブラックリストに入れることでサスペンドしないようになります。

### ディスプレイとグラフィック

#### 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"

Note: 設定の詳細については `/etc/laptop-mode/conf.d/lcd-brightness.conf` ファイルに詳しい説明があります。

#### ターミナルの点滅

    # 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

Note: 設定の詳細については `/etc/laptop-mode/conf.d/terminal-blanking.conf` ファイルに詳しい説明があります。

### ネットワーク

#### 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つで設定を管理します:

1. `/etc/laptop-mode/conf.d/wireless-power.conf` は省電力設定の一般的なファイルです ("iwconfig wlan0 power on/off" を使用)。ほとんどのチップセットで適用されます (ただし以下に記載する Intel のチップセットは除く)。
2. `/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 は使われません、下を見て下さい)。
3. `/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

Note: ダミーフックに実行可能属性を設定しないでください。

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 を指定できます。

Note: `systemctl restart laptop-mode` を実行して laptop-tools モジュールを忘れずに再起動してください。

## 参照

- Laptop Mode Tools
- Mailing List Archives

Categories:

- Laptops (日本語)
- Power management (日本語)