笔记本电脑
此笔记本电脑主页面包含配置笔记本电脑以获得最佳体验所需的文章(章节)的链接。设置笔记本电脑在许多方面与设置台式机相同。但是,有一些关键差异。Arch Linux 提供了完全控制笔记本电脑所需的所有工具和程序。这些程序和实用程序在下面突出显示,并附有适当的提示和教程。
要概览特定笔记本电脑型号的已报告/已实现的 Linux 硬件兼容性,请参阅以下子页面中每个供应商的结果。
如果存在特定笔记本电脑型号的说明,则相应的文章会在供应商子页面的第一列中交叉链接。如果供应商表格中未列出该型号,则可以通过 Category:Laptops 供应商子类别中类似型号的现有说明获得帮助。
电源管理
对于任何希望充分利用电池容量的人来说,电源管理都非常重要。以下工具和程序有助于延长电池寿命,并使您的笔记本电脑保持凉爽和安静。
电池状态
可以通过多种方式读取电池状态。经典方法是使用一些守护进程定期使用 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-gui、fprint 和 ThinkFinger(用于 ThinkPad)。
网络摄像头
参见 网络摄像头设置。
硬盘防震保护
来自不同供应商的多款笔记本电脑都具有防震保护功能。由于制造商迄今为止拒绝支持所需软件组件的开源开发,因此 Linux 对防震保护的支持在不同的硬件实现之间差异很大。
目前,两个名为 HDAPS 和 Hpfall 的项目支持此类保护。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 作为 NTPd、OpenNTPD 或 systemd-timesyncd 的替代方案来通过网络同步时钟可能是一个好主意。Chrony 旨在即使在没有永久网络连接的系统(例如笔记本电脑)上也能良好工作,并且能够比标准 ntp 快得多的时间同步。Chrony 在虚拟机上运行的系统中使用时有几个优点,例如更大的频率校正范围,以帮助快速校正漂移的时钟,以及对时钟频率快速变化的更好响应。它还具有更小的内存占用和不必要的进程唤醒,从而提高了电源效率。
编写笔记本电脑页面
如果您想创建或修改任何笔记本电脑页面,请参见 Help:笔记本电脑页面指南。
参见
- 通用
- CPU 频率调节 是一种主要由笔记本电脑使用的技术,它使操作系统能够根据当前系统负载和/或电源方案向上或向下调节 CPU 频率。
- 显示电源管理信号 (Display Power Management Signaling) 描述了如何在指定的不活动间隔后自动关闭笔记本电脑屏幕(不仅仅是用屏幕保护程序变黑,而是完全关闭)。
- 无线网络配置 提供了有关设置无线连接的信息。
- 键盘输入 描述了多媒体键的配置。
- acpid 是一个灵活且可扩展的守护进程,用于传递 ACPI 事件。
- 特定于某些笔记本电脑类型的页面
- 有关特定型号/供应商的专用页面,请参见 Category:笔记本电脑 及其子类别。
- ThinkPad 的电池调整可以在 TLP 和 tp_smapi 文章中找到。
- 有关专为最新 ROG 和 TUF 笔记本电脑设计的一组工具,请参见 ASUS Linux。
- 外部资源