MSI的筆電是可以裝Linux的,不過有些細節要注意。我的筆電型號是微星MSI Modern 15 A10RBS
從2022年到現在,在試過FreeBSD、Fedora、Ubuntu、openSUSE之後,我便長期在Arch Linux定居下來了。Arch Linux的社群資源頗豐,缺韌體到AUR抓就好啦。
工作用的筆電還敢裝Arch Linux啊?很勇嘛。對我來說,就算開機只有終端機畫面也大概知道怎麼修。但若是開會前掛掉就…所以要妥善安排更新時程XDD
1. Linux對Modern 15的支援度#
安裝Linux前就是要確認硬體和軟體的支援度。
「MSI Modern 15 A10RBS-462TW」是2020年上市的筆電,CPU搭載Intel® Core™ i5-10210U,內顯Intel UHD 620,另附贈獨顯NVIDIA GeForce MX350(同時負責HDMI的訊號輸出)。搭載512GB的NVMe M.2 SSD。
硬體部份,使用lsubs
列出裝置,觸控板、鍵盤、鍵盤背光、顯示卡、網路攝影機、藍芽、SD卡讀卡機、音效、Wifi網卡、TPM模組,Linux核心都有支援。
CPU和GPU的風扇轉速需要安裝ISW程式調整。
筆電闔上螢幕進入suspend模式會睡死,桌面環境不論GNOME或KDE皆然。這個要查看dmesg然後排除問題…好麻煩,我直接在桌面環境系統設定將它改成闔上螢幕「只關閉螢幕」不睡眠。
軟體部份,MSI True Color沒有Linux版,所以Linux下的螢幕沒辦法像Windows那樣色彩艷麗。不過Linux載入ICC設定檔就可以達到很準確的sRGB顏色了,故不用追求MSI True Color所加料的效果。
MSI Creator Center沒有Linux版,不過它的功能也不過是調整風扇轉速而已,這個可以用Power Profile Daemon+ISW替代。
原廠送的喇叭音效Nahimic可以用 EasyEffects代替,效果還更好。
2. 安裝Arch Linux系統時的眉角#
首先在Windows下載 原廠程式,將UEFI和EC firmware更新到最新版。
BIOS的Secure Boot是一定要關的,我懶得自己生成密鑰。TPM開著沒差。
Arch Linux安裝過程大致上跟桌機差不多: 在電腦安裝Arch Linux。我使用KDE桌面。
在用fdisk切割硬碟的時候,筆電的NVME裝置代號不會是
/dev/sda
,而是/dev/nvme0n1
。因為Wifi網卡是Intel的,安裝系統前用Arch Linux開機隨身碟內附的 iwctl工具連線就可以了,不用準備光纖網路。
在pacstrap的階段,參照 Arch Linux Wiki類似機型MSI Modern 15 A11M的建議,安裝
intel-ucode
和intel-media-driver
套件。linux-firmware
套件也涵蓋了這臺筆電部份的驅動程式。開機後,重裝kernel:
sudo pacman -S linux linux-headers
- 在那之後會顯示
possible missing firmware
字樣,把那些驅動名稱拿去Google,通常AUR都會有收。
3. Intel內顯與Nvidia獨顯的切換#
過去跑Windows時,困擾我的就是內顯獨顯切換的問題,Arch Linux也不例外。
剛裝好系統的時候顯示卡只有Intel的內顯啟動,如果沒裝Nvidia閉源驅動的話,預設是載入nouveau驅動,HDMI孔能輸出訊號。
其實對筆電來說,Nvidia顯示卡是個多餘的耗電玩意,開了續航力直接砍半。沒有用到重度3D計算的話,主畫面顯示用內顯負責就夠了,nouveau驅動照樣能在HDMI孔輸出訊號,而且還很省電。
真的需要用到Nvidia顯卡的話,安裝Nvidia閉源驅動,並使用 EnvyControl,在內顯和獨顯間切換,以確保最大效能。
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筆電廠牌…網路社群有人做了 Ice-Sealed Wyvern (ISW-Modern),適用大多數MSI筆電。可進一步控制風扇,使其按照溫度調整轉速。
另有圖形程式 OpenFreezeCenter和 MControlCenter可以管理風扇,不過我覺得讓ISW自己調整就夠了。
- 按照作者指示,用指令稿安裝
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 enable [email protected]
sudo systemctl start [email protected]
- 要怎麼測試風扇會不會真正轉起來呢?跑
stress-ng
指令,CPU核心塞滿跑5分鐘就知道了。