笔记本电脑
本笔记本电脑主页面包含配置笔记本电脑以获得最佳体验所需的文章(章节)的链接。在许多方面,设置笔记本电脑与设置台式机相同。但是,也存在一些关键差异。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
可能会返回错误:“调用 Hibernate 失败:没有足够的交换空间用于休眠”
每当设置条件时,此规则都会重复执行。因此,当从电池电量不足时的休眠状态恢复时,计算机将直接休眠。某些笔记本电脑在低于特定电量水平时无法启动,因此可以相应地调整规则。
如果您有多个电池,或者您正在使用电池供电的外围设备,则该规则可能会被另一个电池放电意外触发;这可以通过获取另一个属性/值对来添加到您的 udev 规则中来解决,该规则专门匹配主电池,例如 model_name
。可以通过检查 /sys/class/power_supply/nameOfMainBattery/attributesAndOtherDirectories
或运行 udevadm monitor --property
并等待电池事件来获取此类新的属性/值对。
电池可能会跳到较低的值而不是连续放电,因此使用了所有容量 0 到 5 的 udev 字符串匹配模式。
要关闭系统而不是休眠,请使用 /usr/bin/systemctl poweroff
。可以使用 -i
标志来忽略关闭抑制器,请参见 systemctl(1) § 选项。可以添加其他规则以根据电源状态和/或容量执行不同的操作。
如果您的系统没有或缺少 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#加载前测试规则。
挂起和休眠
手动挂起操作系统(挂起到内存(待机)或挂起到磁盘(休眠))有时可以提供优化电池寿命的最有效方法,具体取决于笔记本电脑的使用模式。
参见主文章 挂起和休眠。
硬盘停止转动问题
记录在此处 here。
为防止笔记本电脑硬盘驱动器过于频繁地停止转动,请按照 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:Laptop 页面指南。
参见
- 通用
- CPU 频率调节 是一种主要用于笔记本电脑的技术,它使操作系统能够根据当前的系统负载和/或电源方案向上或向下调节 CPU 频率。
- 显示电源管理信号描述了如何在指定的不活动时间间隔后自动关闭笔记本电脑屏幕(不仅仅是用屏幕保护程序空白屏幕,而是完全关闭)。
- 无线网络配置提供了有关设置无线连接的信息。
- 键盘输入描述了多媒体键的配置。
- acpid 是一个灵活且可扩展的守护程序,用于传递 ACPI 事件。
- 特定于某些笔记本电脑类型的页面
- 参见 Category:Laptops 及其子类别,以获取专门针对特定型号/供应商的页面。
- ThinkPad 的电池调整可以在 TLP 和 tp_smapi 文章中找到。
- 有关为最新 ROG 和 TUF 笔记本电脑设计的一组工具,请参见 ASUS Linux。
- 外部资源