手上有一台塵封好些日子的老筆電 Aspire ES1-331-C2DE,CPU 為 Celeron N3160。之所以塵封起來,是因為起初回收到它時,經過排查便發現它是自身的螢幕故障,有訊號但已無法正常呈像,不過外接 HDMI 介面則是可用。由於筆電若螢幕無法使用,就失去了可攜式的用處。除非找得到料件來更換螢幕,否則 DR 就覺得它沒有什麼使用的意義,也否決了把它當桌機來使用的提議。然而最近重新評估手邊的可用物資,轉念接受了自己曾經否決的想法。於是就將這台筆電的螢幕拆除,用分離的外接螢幕與它搭配,就當成某種特殊的桌機來使用。
為了與手邊的多數設備保持相對一致的系統環境,決定安裝 AlmaLinux 9.5。然而在進入安裝程式後,就發現會隨即死當,操作沒幾步就會畫面連同整個系統凍住無回應,鍵盤及滑鼠皆失去作用。另外用 SystemRescue 隨身系統來測試,也是倘若進入桌面環境就容易死當,不同的 Linux 內核版本,但狀況是相同的。感覺不太妙,應該是遇到某種 Intel 顯示驅動程式的 Bug。而且以前在其它的 Intel 內顯上沒有遇過,不太常見。於是決定無論如何,先設法把系統安裝起來,然後在安裝好的 Linux 系統內做進一步的研究與測試。
安裝程式有提供 VNC 遠端連入操作的功能,但是試過一樣死當;於是改採純文字安裝模式,其互動介面相當陽春,讓人不是很想要做一些進階的設定。但就是先隨意安裝起來,畢竟主要目的是要先建立一個方便反覆測試的系統環境。在以純文字模式順利完成安裝後,進入安裝好的系統,然後就以遠端 SSH 的方式來進行細部操作。
安裝後的系統,同樣也是桌面環境隨意操作,很容易就會出現死當的情形。與此同時,SSH 也會沒有回應,並且系統日誌中也沒有留存相關的記錄,是徹底死當的狀態。然而只要不去動桌面,僅僅在本機或遠端的命令行下操作指令,則系統可以一直運作下去,沒有發生任何異常。
首先用指令確認 Linux 內核當下是使用那一個模組來驅動內顯:
- lspci -k | grep -EA3 'VGA|3D|Display'
輸出結果為 i915 模組,接著就是上網找案例跟解法了,循線找到以下條目:
經過一陣試驗後,認為最保險的作法,是「intel_idle.max_cstate=1」及「i915.enable_dc=0」這兩個內核參數都一併使用,便能夠有效地避免死當情形。寫入至開機時內核參數的指令如下:
- sudo grubby --args="intel_idle.max_cstate=1 i915.enable_dc=0" --update-kernel=ALL
倘若後續要移除前述參數則是使用以下指令:
- sudo grubby --remove-args="intel_idle.max_cstate=1 i915.enable_dc=0" --update-kernel=ALL
重新啟動並進入系統後,以下指令能夠確認當前內核啟動時使用了哪些參數:
- cat /proc/cmdline
於是可以再重新執行一次安裝程式,在一開始的選項表單先手動編輯內核啟動參數,來避免操作過程死當,也就能夠用比較理想的過程來進行安裝。後續完成系統安裝後,也必須記得要再重新加入所需的內核參數至系統中。
除此之外,在目前所用的系統版本下,還發現這台筆電有觸控板支援方面的問題。需要在 BIOS 內的 Touchpad 選項,從 Advanced 變更至 Basic 模式,觸控板在系統中才能夠運作(也需要記得確認鍵盤的功能熱鍵是切換至將觸控板啟用的狀態)。雖然事實上這台筆電已經是當桌機在用了,連內建的無線網卡都因為所連接的天線是連同螢幕一併拆除而實質上不可用,都一律靠有線網路或 USB 無線網卡,所以觸控板能否使用已是蠻次要的需求。