前段時間,在嘗試將我的桌面系統從 Ubuntu 18.10 更新到 19.04 時,出現了一些問題,最終導致圖形環境無法正常運作。
這迫使我使用控制台(Ctrl+Alt+F3),它運作得很好。事實上,它運作得很好。螢幕被充分利用,字體清晰,雖然很小,但憑藉與顯示器解析度的完美契合,可讀性很高。我最終擁有了一個非常大的工作空間。與之結合tmux
,這是一個完美的開發環境。
我對這個新設定感覺非常好,以至於幾週以來我都忽略了修復圖形環境。然而,文字模式中缺少的一件事是 Firefox,而且我在不訪問它的情況下能做的事情就只有這麼多。所以我解決了這個問題,這顯然與 nVidia 圖形驅動程式有關。只需卸載並重新安裝即可修復。現在圖形環境可以完美運作。
所以,我不再「需要」控制台模式,但因為我喜歡它,所以我想再次使用它,但令我沮喪的是,解析度被設定為預設的 1024x768。 Crips 字體消失了,文字變得過大且模糊,降低了工作環境,並帶來了令人不快的閱讀體驗。
所以,我上去尋找一些解決方案。碰巧這個問題常被問到。我發現了同一個答案的許多變體,它們都指向grub
.
現在,這很奇怪,因為在上面的場景中,控制台解析度發生了變化,但grub
沒有絲毫修改。所以聞起來有魚腥味。儘管如此,我還是不情願地試了一下。解決方案的一個很好的變體grub
可以是在這裡讀。所以我使用顯示器的解析度應用了它,但它不起作用。分辨率仍然較低且模糊。
深入挖掘後,我發現了一些關於如何選擇視訊模式的建議,首先使用vbeinfo
on列出它們grub
。這不起作用。後來我看到一個可以用來videoinfo
代替的註解。這個可以工作,但僅以 4x3 格式列出“低解析度”模式,從 640 到 1280。
最後,另一個答案建議使用hwinfo
,它在用戶模式下可用。這個列出了更多模式,但仍然不是我的顯示器之一。
sudo hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.459]
Unique ID: xxxx
Hardware Class: framebuffer
Model: "NVIDIA GPU Board"
Vendor: "NVIDIA Corporation"
Device: "GPU Board"
SubVendor: "NVIDIA"
SubDevice:
Revision: "Chip Rev"
Memory Size: 16 MB
Memory Range: 0x01000000-0x01ffffff (rw)
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+1024), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+2048), 16 bits
Mode 0x0315: 800x600 (+4096), 24 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x031b: 1280x1024 (+5120), 24 bits
Mode 0x0345: 1600x1200 (+1664), 8 bits
Mode 0x0346: 1600x1200 (+3328), 16 bits
Mode 0x034a: 1600x1200 (+6656), 24 bits
Mode 0x0371: 1360x768 (+6144), 24 bits
Mode 0x0377: 1920x1080 (+7680), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown
我的顯示器的原始解析度為 1680x1050,即 16:10 格式。它不存在於此列表中。這似乎表明顯示卡無法處理。
然而,它在圖形模式下運行得非常好。更奇怪的是,在圖形驅動程式狀況不佳的情況下,1680x1050 的控制台模式過去可以完美運作。不知何故,修復圖形驅動程式使控制台模式的情況變得更糟。
除了前面描述的操作之外,還有什麼可以嘗試的嗎?
編輯:我試過了rEFInd
,它透過 提供了更明智的配置體驗refind.conf
。我想這也意味著這個grub2
技巧不再有效。無論如何,設定resolution 1680 1050
不起作用,引導立即抱怨它,將選擇限制為640x480, 800x600, 1024x768, 1280x1024
.所以我猜想rEFInd
只能選擇其中之一,可能是由於 nVidia VGA Bios 支援的限制。
然而,令我感到奇怪的是,控制台將被限制為僅「繼承」與引導程式相同的解析度。它仍然無法解釋為什麼在修復圖形驅動程式之前,1680x1050 的控制台可以正常工作。
編輯2grub
:修改to的分辨率1280x1024
,這是允許的分辨率之一videoinfo
,成功將Ubuntu tty的分辨率修改為相同1280x1024
。終於有點影響了。它增加了預設的工作空間1024x768
,但字體的可讀性甚至更差…仍然沒有解釋為什麼 tty 使用1680x1050
工作正常,而 nvidia 驅動程式卻陷入混亂。
編輯3:我現在懷疑,雖然我的圖形環境無法工作,但圖形驅動程式可能是由 提供的nouveau
。不幸的是,它與我的顯示卡不相容,因為它太新了(它是 RTX2080)。但不知何故,nouveau
有一個有效的幀緩衝區實現,使得擁有高分辨率控制台成為可能,這是官方 nVidia 驅動程式中奇怪地缺少的東西...
編輯4:按照 @Naoyuki Tai 的要求,但透過 SSH 遠端會話運行:
sudo fbset -i
mode "1024x768-76"
# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
geometry 1024 768 1024 768 32
timings 12714 128 32 16 4 128 4
rgba 8/16,8/8,8/0,8/24
endmode
Frame buffer device information:
Name : EFI VGA
Address : 0x53000000
Size : 3145728
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 0
YWrapStep : 0
LineLength : 4096
Accelerator : No