笔记本电脑
本文是笔记本索引页面,包括很多到其它页面的链接,以帮助用户将笔记本电脑配置为最佳体验。配置笔记本电脑大体上和配置台式机相同,但仍然存在一些关键的区别。Arch Linux 提供了完成这些配置所需的软件工具。下文重点讲述这些软件,并附以适当的提示和教程。
下面的厂商专页包含具体笔记本型号需要注意的地方。
如果某个笔记本需要特殊的操作,会在厂商页面提供链接,如果找不到您的型号,可以参考 Category:Laptops 中的相似型号。
电源管理[编辑 | 编辑源代码]
如果想充分利用电池容量,电源管理是非常重要的。下列工具能帮助延长电池寿命,并保持笔记本电脑的低温和静音。
电池状态[编辑 | 编辑源代码]
有多种方式可以读取电池状态,传统方法是用 ACPI 接口周期查询。在某些系统中,电池会在每消耗 1% 电量的时候发送 udev 事件,可以用 udev 规则执行需要的操作。
ACPI[编辑 | 编辑源代码]
电池状态可以从终端用 ACPI 工具读取。acpi包 软件包提供了 ACPI 命令行工具,详情请参见 ACPI modules。
- cbatticon包 是常驻系统托盘的电池图标。
- batifyAUR 是一个通过充放电和电量变化 udev 规则文件触发的通知程序(支持 multi-x 会话)。
- batsignalAUR 是一个使用 libnotify 来通知低电量警告的轻量化电池监控守护程序。
低电量时自动休眠[编辑 | 编辑源代码]
如果您的电池会在充/放电的时候向 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"
只要设置了条件,就会重复此规则。因此,当电池电量不足时从休眠状态恢复时,计算机将直接休眠。有些笔记本电脑在超过一定电池电量的情况下无法启动,因此该规则可以作相应的调整。
如果您有多个电池或者使用电池供电的外围设备(比如无线鼠标),该规则可能会被另一个电池的充放电事件所触发。您可以通过查看 /sys/class/power_supply/nameOfMainBattery/attributesAndOtherDirectories
获取主电池的其他属性,比如 model_name
,并将其添加到udev规则中,来避免这种情况发生。
剩余电量百分比可能会一下子减少得比较多,而不是每次掉 1%,所以规则中使用了 [0-5]
来匹配。
您可以添加其他规则以根据电源状态和/或容量执行不同的操作。
如果您的系统不支持 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/example/discharging"
当拔下笔记本电脑充电器时,udev 会在 /home/example/discharging
处创建一个文件。您可以通过拔掉电源并查看文件是否存在来检验该规则是否有效。有关更高级的 udev 规则测试,请参见 Udev#Testing rules before loading。
挂起和休眠[编辑 | 编辑源代码]
根据笔记本的使用模式,手动将系统挂起到内存或磁盘是提高电池使用时间的最有效方法。请参阅 Suspend and hibernate。
硬盘停转问题[编辑 | 编辑源代码]
请参考该文档.
为了防止笔记本机械硬盘过于频繁地停转,请参考hdparm#Power management configuration 设置较为温和的电源管理策略,即使是其默认值也可能太过激进了。
唤醒触发器[编辑 | 编辑源代码]
唤醒触发器(比如开盖、电源按钮等)能够把系统从各类睡眠状态中唤醒,请参考 wakeup triggers 来配置它们。
硬件支持[编辑 | 编辑源代码]
屏幕亮度[编辑 | 编辑源代码]
请参见 Backlight。
触摸板[编辑 | 编辑源代码]
要使触摸板正常工作,可参见 libinput 页面。Touchpad Synaptics 是较旧的输入驱动程序,目前处于维护状态且不再更新。
完全检测不到触摸板[编辑 | 编辑源代码]
如果系统完全未检测到触摸板并将其显示为设备,使用一个或多个下列的内核参数是一种可行的解决方法。
i8042.noloop i8042.nomux i8042.nopnp i8042.reset
Elantech[编辑 | 编辑源代码]
如果系统检测不到 Elantech 触摸板,并且能在 journalctl -k
中看到下列行内容:
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 (适用于 ThinkPads)。
网络摄像头[编辑 | 编辑源代码]
请参阅网络摄像机配置。
硬盘冲击保护[编辑 | 编辑源代码]
不同厂家的多款笔记本都有硬盘冲击保护的功能。目前,由于制造商不愿支持所需软件组件的开源开发,Linux 对于冲击保护的支持在不同的硬件设施之间有很大的差异。
当前,有两个分别叫做 HDAPS 和 Hpfall(AUR 中可用)的项目支持硬盘保护功能。前者适用于 IBM/联想 Thinkpads,而后者适用于惠普/康柏笔记本。
混合图形显示[编辑 | 编辑源代码]
笔记本制造商已经开发了新技术,可以将两个显卡融入一台计算机中,使得高性能和低耗电的兼顾成为可能。这些笔记本通常默认情况下使用英特尔显卡用于显示,所以首先需要安装英特尔显卡驱动。然后可以从这里选择方法来利用第二张显卡。
视频硬解[编辑 | 编辑源代码]
使用硬件解码视频有助于提升电池续航,参见 Video acceleration。
音频静音 LED[编辑 | 编辑源代码]
使用英特尔高清音频技术(Intel HD Audio)的笔记本,可能需要用户手动指定编解码器型号才能使音频静音 LDE 指示灯正常工作。首先,检查笔记本是否使用了英特尔高清音频技术:
$ 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 page guidelines。
参阅[编辑 | 编辑源代码]
- 通用页面
- CPU 调频是一种主要在笔记本电脑上使用的技术,它使操作系统能够根据当前系统负载和/或电源提高或降低 CPU 频率。
- 显示电源管理信号介绍了如何在指定的不活动时间间隔后自动关闭笔记本电脑屏幕(不是显示屏保而是熄屏)。
- 无线网络配置提供了关于如何配置无线网络的信息。
- 额外键盘按键提供了关于笔记本上的功能键的配置说明。
- acpid 是一个用于提供 ACPI 事件的灵活且可扩展的守护程序。
- 型号相关页面
- 参考 Category:Laptops 和它的子分类来获得有关特定型号或厂商笔记本的指南。
- ThinkPad 笔记本的电池调校,请参考 TLP 和 tp_smapi
- acerhdf 是宏碁 Aspire One 和一些 Packard Bell 笔记本电脑上控制风扇速度的核心模块。
- 外部资源