Raspberry Pi 4 不接螢幕開機異常:一行設定解決 headless 卡頓問題

問題起因

Raspberry Pi 4 在不接螢幕(headless)的狀態下開機,有時會出現以下症狀:

  • 開機後 SSH 連不進去,等很久才通
  • 某些服務啟動異常或啟動順序錯亂
  • CPU 使用率異常偏高
  • 接上螢幕後一切正常,拔掉又出問題

根本原因在於 Raspberry Pi 的韌體預設會偵測 HDMI 熱插拔訊號。沒接螢幕時,韌體偵測不到顯示器,可能導致顯示輸出初始化卡住,進而拖累整個開機流程。

解法:修改 /boot/firmware/config.txt

只需要在設定檔加一行,強制韌體忽略 HDMI 偵測結果:

[all]
hdmi_force_hotplug=1

這一行的意思是:不管有沒有偵測到螢幕,都當作有接螢幕處理。開機流程不再等待 HDMI 回應,SSH 也就能正常在預期時間內就緒。

如果需要指定解析度

某些情境下(例如 VNC 遠端桌面),你會希望系統以固定解析度輸出,而不是隨便給一個預設值。這時候加上 hdmi_grouphdmi_mode

[all]
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=82

hdmi_group=2 代表使用 DMT(電腦螢幕標準),hdmi_mode=82 對應 1920×1080 60Hz。如果不需要 VNC 或桌面環境,單獨一行 hdmi_force_hotplug=1 就夠了。

[pi4] 還是 [all]?

config.txt 支援條件區塊,可以針對不同機型套用不同設定:

  • [pi4]:只對 Raspberry Pi 4 生效
  • [all]:所有機型通用

如果你只跑 Raspberry Pi 4,兩個寫法效果相同。放在 [all] 是最簡單的選擇,日後換機型也不用重新確認。

完整設定範例

# /boot/firmware/config.txt

[all]
hdmi_force_hotplug=1

# 若需要固定解析度(VNC 或桌面環境):
# hdmi_group=2
# hdmi_mode=82

修改後重開機

存檔後執行:

sudo reboot

重開後拔掉螢幕,SSH 應該能在正常時間內連上,不再有莫名卡頓。

補充:常用的 hdmi_mode 對照

hdmi_mode解析度更新率
351280×102460Hz
511600×120060Hz
821920×108060Hz
851280×72060Hz

hdmi_group=2(DMT)適用於一般電腦螢幕;如果接的是電視,改用 hdmi_group=1(CEA)。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料