跟桌電比起來,筆電含有更多內建的硬體設備,所以要額外注意。過去跑Windows時,困擾我的就是內顯獨顯切換的問題,Arch Linux也不例外。
工作用的筆電還敢裝Arch Linux啊?很勇嘛。對我來說,就算開機只有終端機畫面也大概知道怎麼修。但若是開會前掛掉就…所以要妥善安排更新時程XDD
Arch Linux提供的社群資源頗豐,缺韌體到AUR抓就好啦。
我的筆電是微星MSI Modern 15 A10RBS。CPU為Intel i5-10210u,GPU為Nvidia MX350。
以下的安裝過程大致上跟桌機差不多: 在主力電腦安裝Arch Linux
我曾經試過安裝GNOME桌面,現在改用KDE Plasma。
但有幾點不同,我特地列出來。
1.安裝系統時的眉角#
首先,BIOS的Secure Boot是一定要關的,我懶得自己生成密鑰。
在用fdisk切割硬碟的時候,筆電的NVME裝置代號不會是/dev/sda
,而是/dev/nvme0n1
。
因為Wifi網卡是Intel的,安裝系統前用Arch Linux開機隨身碟內附的 iwctl工具連線就可以了,不用準備光纖網路。
在pacstrap的階段,參照
Arch Linux Wiki類似機型的建議,安裝intel-ucode
和intel-media-driver
套件。linux-firmware
套件也涵蓋了這臺筆電部份的驅動程式。
2. Intel內顯與Nvidia獨顯的切換#
剛裝好系統的時候顯示卡只有Intel的內顯啟動,如果沒裝Nvidia閉源驅動的話,預設是載入nouveau驅動,HDMI孔能輸出訊號。
其實對筆電來說,Nvidia顯示卡是個多餘的耗電玩意,開了續航力直接砍半。沒有用到重度3D計算的話,主畫面顯示用內顯負責就夠了,nouveau驅動照樣能在HDMI孔輸出訊號,而且還很省電。
真的需要用到Nvidia顯卡的話,安裝閉源驅動,再參考 Arhc Wiki選一個切換在Nvidia顯卡與Intel內顯切換的套件,例如optimus-manager或 EnvyControl,在內顯和獨顯間切換,以確保最大效能。
- 從AUR安裝
optimius-manager
:
yay -S optimius-manager
- 如果之前是用
nvidia
套件安裝Nvidia驅動的話,要將其改成DKMS的版本,optimius-manager才會正常運作:
sudo pacman -S nvidia-dkms
sudo pacman -R nvidia
- 安裝圖形界面
optimius-manager-qt
,會在系統匣顯示切換顯示卡的按鈕:
yay -S optimius-manager-qt
- 設定開機啟動Optimius Manager服務:
sudo systemctl enable optimius-manager
3. 補齊驅動程式#
開機後,重裝kernel:
sudo pacman -S linux linux-headers
在那之後會顯示possible missing firmware
字樣,把那些驅動名稱拿去Google,通常AUR都會有收。
4. 用ISW-Modern控制筆電風扇溫度#
- 安裝防止Intel CPU過熱的thermald,啟用開機服務:
sudo pacman -S thermald
sudo systemctl enable --now thermald
- 安裝
cpupower
監看CPU頻率,還有power-profiles-daemon
,這樣KDE系統匣就會出現省電與效能模式的開關:
sudo pacman -S cpupower power-profiles-daemon
sudo systemctl enable cpupower
最後是比較麻煩的按照溫度控制風扇轉速,通用的風扇控制工具有pwmconfig
和fancontrol
,它會嘗試控制風扇轉速。
sudo pacman -S lm_sensors
sudo sensors-detect
sudo sensors
sudo pwmconfig
sudo fancontrol
可惜的是,pwmconfig對我的MSI筆電無效,顯示There are no pwm-capable sensor modules installed
,大概是缺了核心驅動吧。
上述方法無效的情況下,風扇愛轉不轉的,這樣會燒壞的!此時就得改用針對特定廠牌設計的風扇控制軟體。當然MSI只提供Windows版風扇控制軟體,Linux只能求助網路社群。
所幸MSI還不是太冷門的Linux筆電廠牌…網路社群有人做了「ISW」和「OpenFreezeCenter」,適用大多數MSI筆電。可進一步控制風扇,使其按照溫度調整轉速。
我採用的是 Ice-Sealed Wyvern (ISW-Modern)
- 按照作者指示,用指令稿安裝
acpi_ec
核心模組,以及ISW
sudo pacman -S linux-headers dkms
sudo reboot
git clone https://github.com/musikid/acpi_ec.git
cd acpi_ec
sudo ./install.sh
sudo reboot
git clone https://github.com/FaridZelli/ISW-Modern.git
cd ISW-Modern
sudo bash ./install.sh
- 編輯
/etc/isw.conf
,參考 類似機型設定,在底部填入風扇轉速規則:
[15A10RBS]
# Modern 15 A10RBS-462TW
address_profile = MSI_ADDRESS_DEFAULT
fan_mode = 140
battery_charging_threshold = 100
# CPU
cpu_temp_0 = 45
cpu_temp_1 = 55
cpu_temp_2 = 65
cpu_temp_3 = 75
cpu_temp_4 = 90
cpu_temp_5 = 95
cpu_fan_speed_0 = 50
cpu_fan_speed_1 = 58
cpu_fan_speed_2 = 65
cpu_fan_speed_3 = 72
cpu_fan_speed_4 = 80
cpu_fan_speed_5 = 85
cpu_fan_speed_6 = 100
# GPU
gpu_temp_0 = 45
gpu_temp_1 = 60
gpu_temp_2 = 70
gpu_temp_3 = 82
gpu_temp_4 = 90
gpu_temp_5 = 93
gpu_fan_speed_0 = 50
gpu_fan_speed_1 = 55
gpu_fan_speed_2 = 65
gpu_fan_speed_3 = 72
gpu_fan_speed_4 = 80
gpu_fan_speed_5 = 85
gpu_fan_speed_6 = 100
- 寫入EC,啟動ISW服務,並設定開機自動啟動ISW服務。不確定是否有啟動的話用
sudo systemctl status [email protected]
確認。
sudo isw -w 15A10RBS
sudo systemctl start [email protected]
sudo systemctl enable [email protected]
另有圖形程式 OpenFreezeCenter可以管理風扇,不過我覺得讓ISW自己調整就夠了。
4. 結束#
筆電闔上螢幕進入睡眠通常會睡死,桌面環境不論GNOME或KDE皆然。這個要查看dmesg然後排除問題…好麻煩,我直接在系統設定將它改成闔上螢幕「只關閉螢幕」不睡眠。
這樣就完成了,麥克風、相機都正常運作。