笔记本电脑

出自 ArchWiki
(重定向自 Touchpad

笔记本电脑主页面包含配置笔记本电脑以获得最佳体验所需的文章(章节)的链接。设置笔记本电脑在许多方面与设置台式机相同。但是,有一些关键差异。Arch Linux 提供了完全控制笔记本电脑所需的所有工具和程序。这些程序和实用程序在下面突出显示,并附有适当的提示和教程。

要概览特定笔记本电脑型号的已报告/已实现的 Linux 硬件兼容性,请参阅以下子页面中每个供应商的结果。

AcerAppleASUSDellFrameworkHPIBM/联想 (Lenovo)MSISamsungSonyToshiba其他

如果存在特定笔记本电脑型号的说明,则相应的文章会在供应商子页面的第一列中交叉链接。如果供应商表格中未列出该型号,则可以通过 Category:Laptops 供应商子类别中类似型号的现有说明获得帮助。

电源管理

注意: 您应该阅读文章 电源管理CPU 频率调节。下面描述了其他笔记本电脑特定的功能。

对于任何希望充分利用电池容量的人来说,电源管理都非常重要。以下工具和程序有助于延长电池寿命,并使您的笔记本电脑保持凉爽和安静。

电池状态

可以通过多种方式读取电池状态。经典方法是使用一些守护进程定期使用 ACPI 接口轮询电池电量。在某些系统上,当电池充/放电 1% 时,电池会向 udev 发送事件,此事件可以使用 udev 规则连接到某些操作。

可以使用以下命令直接从内核检查电池

$ cat /sys/class/power_supply/BAT0/capacity

BAT0 也可能具有供应商名称。例如,Wacom 手写笔的 wacom_battery_0

或者,您可以使用 upower 抽象实用程序

$ for BAT_PATH in $(upower -e | grep BAT); do upower -i "$BAT_PATH"; done

ACPI

可以使用终端中的 ACPI 实用程序读取电池状态。ACPI 命令行实用程序通过 acpi 软件包提供。有关更多信息,请参见 ACPI 模块

  • cbatticon 是一个位于系统托盘中的电池图标。
  • batifyAUR 是一个 udev 规则文件,用于触发插电和电池电量通知(支持多 X 会话)。
  • batsignal 是一个轻量级的电池监视器守护程序,它使用 libnotify 来警告低电量。

低电量时休眠

如果您的电池在充/放电 1% 时向 udev 发送事件,则可以使用此 udev 规则在电池电量 критическом 时自动休眠系统,从而防止所有未保存的工作丢失。

注意: 并非所有电池都报告放电事件。在电池供电的情况下运行 udevadm monitor --property 进行测试,查看是否报告了任何事件。您应该至少等待 1% 的电量下降。如果未报告任何事件,并且 /sys/class/power_supply/BAT0/alarm 为非零值,则当 BAT0/energy_now 降至报警值以下时,电池可能会触发事件,并且只要百分比数学运算有效,udev 规则就可以工作。某些笔记本电脑在 BIOS 中默认禁用此选项。
/etc/udev/rules.d/99-lowbat.rules
# Suspend the system when battery level drops to 5% or lower
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="/usr/bin/systemctl hibernate"
注意
  • 在示例中,[0-5] 是一个 shell 类型的模式匹配表达式,它匹配 0 到 5 范围内的一个字符。它并不意味着“当容量在 0 到 5 范围内时”,并且使用类似 [20-25] 的内容将不会匹配 20 到 25 范围内的容量。有关 udev 规则可用的模式匹配,请参阅 此处
  • 预先测试要运行的命令,以确保其可以正常工作。例如,/usr/bin/systemctl hibernate 可能会返回错误:“Call to Hibernate failed: Not enough swap space for hibernation”(调用休眠失败:交换空间不足以进行休眠)。

只要条件满足,此规则就会重复执行。因此,当从休眠状态恢复时,如果电池电量 критическом,计算机将直接休眠。某些笔记本电脑在低于特定电池电量时无法启动,因此可以相应地调整规则。

如果您有多个电池,或者您正在使用电池供电的外围设备,则该规则可能会被另一个电池放电意外触发;可以通过获取另一个属性/值对添加到您的 udev 规则中来解决此问题,该规则专门匹配主电池,例如 model_name。可以通过检查 /sys/class/power_supply/nameOfMainBattery/attributesAndOtherDirectories,或者运行 udevadm monitor --property 并等待电池事件来获得此类新的属性/值对。

电池可能会跳到较低的值而不是持续放电,因此使用了 udev 字符串匹配模式来匹配所有容量 0 到 5。

要关闭系统而不是休眠,请使用 /usr/bin/systemctl poweroff-i 标志可用于忽略关闭抑制器,请参见 systemctl(1) § OPTIONS。可以添加其他规则以根据电源状态和/或容量执行不同的操作。

如果您的系统没有或缺少 ACPI 事件,频繁运行 以下脚本,该脚本使用 acpi

#!/bin/sh
acpi -b | awk -F'[,:%]' '{print $2, $3}' | {
	read -r status capacity

	if [ "$status" = Discharging -a "$capacity" -lt 5 ]; then
		logger "Critical battery threshold"
		systemctl hibernate
	fi
}

如果您有多个电池,或者您正在使用电池供电的外围设备,则应修改脚本的第二行,添加 grep 以监视正确的电池,如下所示:acpi -b | grep "Battery 0" | awk -F'[,:%]' '{print $2, $3}' | {。将 Battery 0 替换为 acpi -b 报告的所需电池。

注意: 拔下电池或外围设备可能会破坏您的脚本,因为它可能会导致剩余电池重命名,即当 Battery 0 被拔下时,Battery 1 会自动变为 Battery 0,依此类推。
测试事件

测试 udev 规则的一种方法是让它们在运行时创建一个文件。例如

/etc/udev/rules.d/98-discharging.rules
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", RUN+="/usr/bin/touch /home/archie/discharging"

当笔记本电脑充电器拔下时,这会在 /home/archie/discharging 创建一个文件。您可以通过拔下笔记本电脑并查找此文件来测试规则是否有效。有关更高级的 udev 规则测试,请参见 Udev#加载前测试规则

挂起和休眠

手动挂起操作系统(挂起到内存(待机)或挂起到磁盘(休眠))有时可以提供优化电池寿命的最有效方法,具体取决于笔记本电脑的使用模式。

请参阅主文章 挂起和休眠

硬盘停止转动问题

文档记录 此处

为防止笔记本电脑硬盘驱动器过于频繁地停止转动,请按照 hdparm#电源管理配置 中的说明设置较不激进的电源管理。即使是默认值也可能过于激进。

唤醒触发器

唤醒源/事件/触发器将系统从任何硬件 节能 状态中唤醒。要查找和配置这些,请参见 唤醒触发器

硬件支持

屏幕亮度

参见 背光

触摸板

要使触摸板正常工作,请参见 libinput 页面。Touchpad Synaptics 是较旧的输入驱动程序,目前处于维护模式,不再更新。

触摸板完全未检测到

如果触摸板设备未检测到并且根本未显示为设备,则可能的解决方案可能是使用以下一个或多个内核参数

i8042.noloop i8042.nomux i8042.nopnp i8042.reset
Elantech

如果未检测到 Elantech 触摸板,并且您的 日志 中出现以下行

elan_i2c 5-0015: 5-0015 supply vcc not found, using dummy regulator

这与 psmouse 模块尝试使用辅助总线用于触摸板设备,而 elan_i2c 无法执行此操作的问题有关。解决方法是强制其使用主总线。创建以下文件并重新加载 psmouse 模块或重新启动

/etc/modprobe.d/psmouse.conf
options psmouse elantech_smbus=0

指纹识别器

参见 Fingerprint-guifprintThinkFinger(用于 ThinkPad)。

网络摄像头

参见 网络摄像头设置

硬盘防震保护

来自不同供应商的多款笔记本电脑都具有防震保护功能。由于制造商迄今为止拒绝支持所需软件组件的开源开发,因此 Linux 对防震保护的支持在不同的硬件实现之间差异很大。

目前,两个名为 HDAPSHpfall 的项目支持此类保护。HDAPS 适用于 IBM/联想 Thinkpad,而 hpfall 适用于 HP/Compaq 笔记本电脑。

混合显卡

笔记本电脑制造商开发了在单台计算机中使用两张显卡的新技术,从而实现了高性能和节能用途。这些笔记本电脑通常默认使用 Intel 芯片进行显示,因此首先需要 Intel 显卡驱动程序。然后,您可以选择方法来利用第二张显卡芯片。

硬件视频加速

使用硬件解码和编码可以延长电池寿命。参见 视频加速

音频静音 LED

在使用 Intel HD Audio 的笔记本电脑上,用户可能需要手动指定编解码器型号,才能使音频静音 LED 工作。首先,检查您的笔记本电脑是否使用 Intel HD Audio;如果使用,以下命令将产生输出

$ lsmod | grep snd_hda_intel

接下来,您需要找到您的音频编解码器型号

$ grep Codec /proc/asound/card*/codec*

现在您需要在可用型号名称列表中找到您的编解码器。如果您找不到特定型号的编解码器,您可以通过试错法找到一个可用的编解码器。

为了告诉内核模块要加载哪些特定于型号的选项,请指定 model= 内核模块参数。例如

/etc/modprobe.d/mute-led.conf
options snd_hda_intel model=model_name

要测试这是否有效,必须重新加载内核模块。您可以通过重新启动来完成此操作。

如果您需要测试大量编解码器,则避免重新启动可能更有效,方法是首先将系统置于没有进程使用内核模块的状态,然后使用新参数重新加载模块。这可以通过注销所有图形和控制台会话,并停止显示管理器(如果正在使用)来完成。在控制台中重新登录后,运行以下命令

# modprobe -r snd_hda_intel
# modprobe snd_hda_intel model=model_name

该模块现在将使用 model_name 中指定的新编解码器。

网络时间同步

对于笔记本电脑,使用 Chrony 作为 NTPdOpenNTPDsystemd-timesyncd 的替代方案来通过网络同步时钟可能是一个好主意。Chrony 旨在即使在没有永久网络连接的系统(例如笔记本电脑)上也能良好工作,并且能够比标准 ntp 快得多的时间同步。Chrony 在虚拟机上运行的系统中使用时有几个优点,例如更大的频率校正范围,以帮助快速校正漂移的时钟,以及对时钟频率快速变化的更好响应。它还具有更小的内存占用和不必要的进程唤醒,从而提高了电源效率。

编写笔记本电脑页面

如果您想创建或修改任何笔记本电脑页面,请参见 Help:笔记本电脑页面指南

参见

通用
  • CPU 频率调节 是一种主要由笔记本电脑使用的技术,它使操作系统能够根据当前系统负载和/或电源方案向上或向下调节 CPU 频率。
  • 显示电源管理信号 (Display Power Management Signaling) 描述了如何在指定的不活动间隔后自动关闭笔记本电脑屏幕(不仅仅是用屏幕保护程序变黑,而是完全关闭)。
  • 无线网络配置 提供了有关设置无线连接的信息。
  • 键盘输入 描述了多媒体键的配置。
  • acpid 是一个灵活且可扩展的守护进程,用于传递 ACPI 事件。
特定于某些笔记本电脑类型的页面
  • 有关特定型号/供应商的专用页面,请参见 Category:笔记本电脑 及其子类别。
  • ThinkPad 的电池调整可以在 TLPtp_smapi 文章中找到。
  • 有关专为最新 ROG 和 TUF 笔记本电脑设计的一组工具,请参见 ASUS Linux
外部资源