Laptop Mode Tools - Arch Linux 中文维基

跳至內容

# Laptop Mode Tools

出自 Arch Linux 中文维基

相關文章

- acpid
- systemd
- cpufrequtils
- Laptop
- Powertop
- TLP

翻譯狀態：

- 本文（或部分內容）譯自 Laptop Mode Tools，最近一次同步於 2023-01-30，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

Laptop Mode Tools 是一個 Linux 系統下的筆記本電源管理軟體。它是讓內核開啟筆記本電腦模式功能的主要方法，能讓硬碟降速。另外，它允許你通過一個簡單的配置文件調整一些其他的節能相關的設置。

與 acpid 和 CPU frequency scaling 結合使用，LMT 提供給了大多數用戶一個完整的筆記本電腦電源管理方案。

## 安裝

請安裝 laptop-mode-toolsAUR 或 laptop-mode-tools-gitAUR。

## 配置

配置是通過下列文件來控制的:

- `/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`的模塊。

要查看模塊的狀態，使用下面命令：

    $ grep -r '^\(CONTROL\|ENABLE\)_' /etc/laptop-mode/conf.d

最後啟用 `laptop-mode.service`。

### 硬碟

為了使用該功能您需要安裝 hdparm 或者 sdparm。 查看 Hdparm.

通過 `hdparm -S` 命令來降低硬碟轉速可以讓計算機更省電同時更安靜. 即是您正在使用電腦您依然可以使用磁碟預讀功能讓硬碟經常降低轉速。LMT（筆記本電腦工具包）也可以使用`hdparm -B` 命令。硬碟省電級別最高（最省電）為1,最低是254,使用交流電源供電時默認為254,使用電池供電時默認為1。如果你覺得硬碟減速使得一些操作變慢的話，把它設置為一個高一點的值（比如128）是個好主意，這會讓它不會太頻繁的減速。 `hdparm -S` 和 `hdparm -B` 命令的一些參數設置在 `/etc/laptop-mode/laptop-mode.conf`文件中。

警告：頻繁降速提速會降低硬碟壽命，請不要設置的太激進。

如果 `CONTROL_MOUNT_OPTIONS` 選項為 on (默認即為 on), laptop-mode-tools 會自動重新掛載分區, 並在掛載選項中增加了 'commit=600,noatime'。這會讓磁碟日誌程序jbd2每10分鐘才更新一次磁碟日誌，而通常情況下幾秒鐘就會更新一次 (注意：使用該設置你可能會丟掉前10分鐘的工作成果（當系統意外關閉時）). 同時請確保不要使用 `atime` 的掛載參數, 使用 `noatime` 或 `relatime` 來替代。

注意：`CONTROL_MOUNT_OPTIONS` 的值不應該在nilfs2分區上被設置為 on (原因可查看 https://bbs.archlinux.org/viewtopic.php?id=134656) (也可以查看 https://www.ibm.com/developerworks/cn/linux/l-cn-nilfs2/index.html 對nilfs2文件系統的中文介紹)

#### 固態硬碟

來自官方上游 FAQ:

問題:我電腦裡裝了一個固態硬碟，那麼那些硬碟相關的配置還有效嗎？

回答:它們有可能有效，原因有兩個：1）laptop mode 會減少寫次數，從而延長SSD的壽命；2）laptop mode 會讓寫操作變成突發形式，從而會使一些節電機制（例如ALPM）更好地介入。然而，效果可能會因硬體不同而有差別。有些硬體可能完全沒效果，有些則效果顯著。

### CPU 頻率調節

使用該功能你需要安裝調節CPU頻率的驅動模塊。 查看 CPU frequency scaling.

    # 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控制器的ALPM特性使磁碟空閒時讓磁碟工作在非常低的功耗模式。

    # 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

注意：更多詳細配置信息請參閱 `/etc/laptop-mode/conf.d/intel-sata-powermgmt.conf` 文件。

#### USB 自動休眠

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

注意：更多詳細配置信息請參閱 `/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"

注意：更多配置細節請閱讀 `/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

注意：更多配置細節請參閱 `/etc/laptop-mode/conf.d/terminal-blanking.conf` 文件。

### 網絡

#### 以太網

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

#### 無線區域網

無線網絡設備的電源管理是設備相關的，因此配置時更需要一些技巧。依賴於無線晶片，設置通過下面三個文件中的一個來管理：

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為止）它用 iwpriv 來管理 IPW3945，以及用 iwconfig 結合 iwpriv來管理 IPW2100 和 IPW220。詳細信息請參見 `/usr/share/laptop-mode-tools/modules/wireless-ipw-power` 文件。（注意，ipw3945模塊已經廢棄了，見下面）
3. `/etc/laptop-mode/conf.d/wireless-iwl-power.conf` 用於管理 iwl4965、iwl3945 和 iwlagn 驅動的Intel晶片集（iwlagn 支持 4965, 5100, 5300, 5350, 5150, 1000, 和 6000 晶片集）

注意：三個模塊全開通常不會帶來問題，因為LMT會自動檢測設備對應的模塊。

每個配置文件所支持的模塊是直接源自LMT的。但是有些已經過時了，因為從Linux內核版本2.6.34開始就不再提供ipw3945和iwl4965模塊（3945採用iwl3945，4965採用通用模塊iwlagn）。這並不影響LMT的正常工作。

對於iwlagn驅動的一些晶片集（包括5300或其它），有一個已知的問題。在這些晶片集上，文件 `/etc/laptop-mode/conf.d/wireless-iwl-power.conf`中的下列配置：

    IWL_AC_POWER
    IWL_BATT_POWER

會被忽略，因為文件 `/sys/class/net/wlan*/device/power_level` 不存在。於是通用方法（通過 "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 不能收到事件

對於使用 systemd 的系統，開啟並使其開機自動加載acpid 請運行以下命令:

    # systemctl enable acpid
    # systemctl start acpid

如果這樣不管用的話，請仔細檢查一邊 laptop-mode 的配置文件並確定需要開啟的服務被設置成 1 了。許多服務，包括cpu頻率控制服務 (cpufreq control) 默認設置都是'自動'("auto")，所以可能沒有開啟。

### USB Mouse sleeping after 5 seconds when on battery

First find the ID of you device (it should look like `046d:c534`):

    $ lsusb

Put this value into the `AUTOSUSPEND_DEVID_BLACKLIST` variable in `/etc/laptop-mode/conf.d/runtime-pm.conf`, for example:

    /etc/laptop-mode/conf.d/runtime-pm.conf

    ...
    AUTOSUSPEND_DEVID_BLACKLIST="046d:c534"
    ...

Multiple IDs can be seperated with spaces.

注意：Do not forget to restart `laptop-mode.service`. You might also need to reconnect the USB device.

### Issues with NVIDIA driver

#### KDE shows black screen

When laptop mode is enabled, KDE fails to start. The reason is that the default KDE display manager (SDDM) starts before the NVIDIA driver. To prevent this from happening you need to remove the `nomodeset` kernel parameter.

#### Slower Boot after enabling laptop-mode.service

As described before, laptop-mode-tools affects the NVIDIA driver. Adding the `nvidia-drm.modeset=1` kernel parameter reduces boot time dramatically.

## 相關連結

- Laptop Mode Tools
- Mailing List Archives

分類：​

- 筆記本電腦
- 電源管理

Laptop Mode Tools
新增話題