7

Intel NUC 之 Linux 開機後無畫面問題與 Debian 伺服器安裝小記

 2 years ago
source link: https://blog.darkthread.net/blog/debian-on-nuc/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Intel NUC 之 Linux 開機後無畫面問題與 Debian 伺服器安裝小記-黑暗執行緒

先說心得。

買這台 11 代 i3 Intel NUC 迷你主機主要是當文書機,正式服役前被我借來裝 Debian 玩。入手後有先裝過 Windows 10 驗測硬體,安裝體驗很讚,不需額外下載任何驅動程式,裝完重開機裝置管理員就很完美,無不明裝置,無問號,不愧是 Intel。但如果你裝的是 Linux ,就是另一個世界了。

thumbnail

想裝 Linux 但不想太麻煩,對版本也沒堅持,可參考官方建議裝廠商認證相同的 Ubuntu 16.04 LTS 或 LibreElec 較省事。否則,你有很大的機會被迫參加顯示晶片或無線網卡的副本任務,宛如玩一場 RPG 冒險遊戲,不斷查攻略換武器試新路線,有工程師魂的人會在其中得到額外的樂趣,但前題是問題最後有被解掉,不然只會留下滿滿的賭爛。

因為放不下駭客情懷,Linux 版本我沒選正常人該選的 Ubuntu,而是挑了 Debian。有先做了功課,知道使用 Non-Free Firmware 安裝 Image可以省去額外找 NUC 無線網卡驅動的麻煩,而安裝過程果然順利識別出無線網卡:

Fig1_637960668458744354.jpg

順利走完安裝最後一步準備重開機,正當我覺得在 Intel NUC 裝 Linux 的體驗跟 Windows 一樣美好之際,Debian 重開機後隨即畫面全黑,螢幕顯示沒有偵測到視訊訊號,但鍵盤燈反應正常,感覺就是顯示驅動出了問題。

爬文發現這是 Linux 跟 Intel 顯示晶片相容的常見問題,不是 Debian 的專利,Ubuntu、Fedora 也有案例,也不只發生在 Intel NUC,在其他機型也會發生。Google 關鍵字 linux boot blank screen 能查到一大堆文章。研究跟嘗試了很久,大約知道是 Linux 核心與顯示晶片的相容問題,我對這塊所知有限,看不出個所以然,但最後摸索出 Workaround 避開問題的做法。(逃避雖可恥但有用呀!)

在 GRUB 畫面按 e 編輯啟動參數:圖片來源

Fig2_637960668459223885.png

找到下圖箭頭所指那行最後 quite,改成 quiet splash nomodeset,按 F10 開機:

Fig3_637960668459851111.png

新版 Linux 已將顯示模式設定移入核心,以便在開機階段使用較高解析度顯示,轉換到 Login 畫面時畫面也較不會閃動。設定 nomodeset 就不會啟用顯卡正式運作模式,改以 BIOS 模式運作,直接啟用 X 視窗為止。BIOS 顯示模式解析度底,字型醜,也沒省電功能,但好歹能看到畫面做事。我的 Debian 要當伺服器,以 ssh 遠端登入操作為主,讓我能用 BIOS 顯示模式設好網路及 SSH 伺服器就夠了。

能登入 Debian 後,第一次事要把 nomodeset 加進 GRUB 設定,不然每次開機都要按 e 改參數才有畫面。

su -
nano /etc/default/grub

在 GRUB_CMDLINE_LINUX_DEFAULT 加入 splash nomodeset。

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
GRUB_CMDLINE_LINUX=""

存檔後記得 update-grub 儲存,reboot 重開機就會自動改用 BIOS 顯示模式。除了 nomodeset,還有一些其他處理硬相容的啟動參數,可參考這篇整理:acpi_osi=linux、 nomodeset是什麼意思? by Gopher is cute

接著,我發現 Debian 有抓到無線網卡但沒啟動,安裝過程輸入 WiFi SSID 密碼的程序是安裝時期專用的,不會存成系統設定,故要手動設定無線網路。

用 ip a 找到無線網卡裝置名稱,我的是 wlo1,它在第一張照片也有出現過。ip link set wlo1 up 啟用無線網卡,接著修改 /etc/network/interfaces 設 基地台 SSID、密碼等:參考

su -
ip a
ip link set wlo1 up
nano  /etc/network/interfaces

DHCP 範例:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# WiFi
auto wlo1
iface wlo1 inet dhcp
wpa-ssid *****
wpa-psk ******

靜態 IP 範例:

auto wlo1 
iface wlo1 inet static 
address 192.168.0.100 
netmask 255.255.255.0
gateway 192.168.0.1 
dns-nameservers 192.168.0.1 8.8.8.8
wpa-ssid ***** 
wpa-psk ******

設定 reboot 重開機,無線網路就會在連線狀態了。

我選用的安裝媒體 debian-live-11.4.0-amd64-standard+nonfree.iso 安裝過程沒有地方挑選要安裝的項目,SSH 伺服器預設未啟用,要使用以下指令安裝:

sudo apt-get update
sudo apt-get install openssh-server

確定可以 ssh 登入,小主機當伺服器平時不接螢幕,顯示卡問題就不花時間解決了。

Fig4_637960668460344135.png

sudo dmesg 檢查,有以下紅字裝置錯誤:

DPC: RP PIO log size 0 is invalid
DPC: RP PIO log size 0 is invalid
iwlwifi 0000:00:14.3: firmware: failed to load iwl-debug-yoyo.bin (-2)
firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
snd_hda_intel 0000:00:1f.3: Cannot probe codecs, giving up

爬文,RP PIO log size 在 Dell 與 Lenovo 筆電上也常出現,與 Tiger Lake-LP Thunderbolt 4 PCI Express Root 有關,推測不嚴重。無法載入 iwl-debug-yoyo.bin 是假訊息,有必要可手動改掉,而 snd-hda_intel 跟音效卡有關,對伺服器沒差,不用管。

至此,一台能當伺服器的 Intel UNC Debian 就算裝好了。

and has 2 comments

Comments

Post a comment

Comment
Name Captcha 34 - 4 =

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK