筆記本電腦

出自 Arch Linux 中文维基

本文是筆記本索引頁面,包括很多到其它頁面的連結,以幫助用户將筆記本電腦配置為最佳體驗。配置筆記本電腦大體上和配置台式機相同,但仍然存在一些關鍵的區別。Arch Linux 提供了完成這些配置所需的軟件工具。下文重點講述這些軟件,並附以適當的提示和教程。

下面的廠商專頁包含具體筆記本型號需要注意的地方。

宏碁AppleASUSDellFujitsuHPIBM/LenovoMSISamsungSonyToshibaOther

如果某個筆記本需要特殊的操作,會在廠商頁面提供連結,如果找不到您的型號,可以參考 Category:Laptops 中的相似型號。

電源管理[編輯 | 編輯原始碼]

注意: 閱讀本節前,應首先閱讀 Power managementCPU frequency scaling,本節介紹的是筆記本特有的功能設置。

如果想充分利用電池容量,電源管理是非常重要的。下列工具能幫助延長電池壽命,並保持筆記本電腦的低温和靜音。

電池狀態[編輯 | 編輯原始碼]

有多種方式可以讀取電池狀態,傳統方法是用 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, fprintThinkFinger (適用於 ThinkPads)。

網絡攝像頭[編輯 | 編輯原始碼]

請參閱網絡攝像機配置

硬盤衝擊保護[編輯 | 編輯原始碼]

不同廠家的多款筆記本都有硬盤衝擊保護的功能。目前,由於製造商不願支持所需軟件組件的開源開發,Linux 對於衝擊保護的支持在不同的硬件設施之間有很大的差異。

當前,有兩個分別叫做 HDAPSHpfallAUR 中可用)的項目支持硬盤保護功能。前者適用於 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相較於NTPdOpenNTPDsystemd-timesyncd 更好. Chrony 被設計為:即使在沒有永久網絡連接的系統(如筆記本電腦)上也能很好地工作;而且相較於標準ntp,能更快地進行時間同步。當在虛擬機中的系統使用時,Chrony 有如下優點:更大的頻率校正範圍,能校正快速漂移的時鐘;更好地響應時鐘頻率的快速變化。它的內存佔用較小,且非必要不喚醒進程,提高了電量的使用效率。

編寫單獨的筆記本頁面[編輯 | 編輯原始碼]

如需新建或者修改單獨的筆記本頁面,請參考 Help:Laptop page guidelines

參閱[編輯 | 編輯原始碼]

通用頁面
  • CPU 調頻 是一種主要在筆記本電腦上使用的技術,它使作業系統能夠根據當前系統負載和/或電源提高或降低 CPU 頻率。
  • 顯示電源管理信號 介紹了如何在指定的不活動時間間隔後自動關閉筆記本電腦屏幕(不是顯示屏保而是熄屏)。
  • 無線網絡配置 提供了關於如何配置無線網絡的信息。
  • 額外鍵盤按鍵 提供了關於筆記本上的功能鍵的配置説明。
  • acpid 是一個用於提供 ACPI 事件的靈活且可擴展的守護程序。
型號相關頁面
  • 參考 Category:Laptops 和它的子分類來獲得有關特定型號或廠商筆記本的指南。
  • ThinkPad 筆記本的電池調校,請參考 TLPtp_smapi
  • acerhdf 是宏碁 Aspire One 和一些 Packard Bell 筆記本電腦上控制風扇速度的核心模塊。
外部資源