在控制台模式下獲得更好的解析度(nVidia 驅動程式)

在控制台模式下獲得更好的解析度(nVidia 驅動程式)

前段時間,在嘗試將我的桌面系統從 Ubuntu 18.10 更新到 19.04 時,出現了一些問題,最終導致圖形環境無法正常運作。

這迫使我使用控制台(Ctrl+Alt+F3),它運作得很好。事實上,它運作得很好。螢幕被充分利用,字體清晰,雖然很小,但憑藉與顯示器解析度的完美契合,可讀性很高。我最終擁有了一個非常大的工作空間。與之結合tmux,這是一個完美的開發環境。

我對這個新設定感覺非常好,以至於幾週以來我都忽略了修復圖形環境。然而,文字模式中缺少的一件事是 Firefox,而且我在不訪問它的情況下能做的事情就只有這麼多。所以我解決了這個問題,這顯然與 nVidia 圖形驅動程式有關。只需卸載並重新安裝即可修復。現在圖形環境可以完美運作。

所以,我不再「需要」控制台模式,但因為我喜歡它,所以我想再次使用它,但令我沮喪的是,解析度被設定為預設的 1024x768。 Crips 字體消失了,文字變得過大且模糊,降低了工作環境,並帶來了令人不快的閱讀體驗。

所以,我上去尋找一些解決方案。碰巧這個問題常被問到。我發現了同一個答案的許多變體,它們都指向grub.

現在,這很奇怪,因為在上面的場景中,控制台解析度發生了變化,但grub沒有絲毫修改。所以聞起來有魚腥味。儘管如此,我還是不情願地試了一下。解決方案的一個很好的變體grub可以是在這裡讀。所以我使用顯示器的解析度應用了它,但它不起作用。分辨率仍然較低且模糊。

深入挖掘後,我發現了一些關於如何選擇視訊模式的建議,首先使用vbeinfoon列出它們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

相關內容