Jak ustawić rozdzielczość w konsolach tekstowych (rozwiąż problemy, gdy dowolny `vga = ...` zawiedzie)


29

Jest to powszechny sposób ustawiania rozdzielczości konsol tekstowych (które są zwykle dostępne w Ctrl-Alt-F1 przez Ctrl-Alt-F6) za pomocą vga=...parametru jądra. Używam Ubuntu 10.04 Lucid, wyjście uname -ato:

Linux  2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux

Aby zidentyfikować dostępne tryby, korzystam z sudo hwinfo --framebufferraportów, które:

02: None 00.0: 11001 VESA Framebuffer                            
  [Created at bios.464]  
  Unique ID: rdCR.R1b4duaxSqA  
  Hardware Class: framebuffer  
  Model: "NVIDIA G73 Board - p456h1  "  
  Vendor: "NVIDIA Corporation"  
  Device: "G73 Board - p456h1  "  
  SubVendor: "NVIDIA"  
  SubDevice:   
  Revision: "Chip Rev"  
  Memory Size: 256 MB  
  Memory Range: 0xc0000000-0xcfffffff (rw)  
  Mode 0x0300: 640x400 (+640), 8 bits  
  Mode 0x0301: 640x480 (+640), 8 bits  
  Mode 0x0303: 800x600 (+800), 8 bits  
  Mode 0x0305: 1024x768 (+1024), 8 bits  
  Mode 0x0307: 1280x1024 (+1280), 8 bits  
  Mode 0x030e: 320x200 (+640), 16 bits  
  Mode 0x030f: 320x200 (+1280), 24 bits  
  Mode 0x0311: 640x480 (+1280), 16 bits  
  Mode 0x0312: 640x480 (+2560), 24 bits  
  Mode 0x0314: 800x600 (+1600), 16 bits  
  Mode 0x0315: 800x600 (+3200), 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 0x0330: 320x200 (+320), 8 bits  
  Mode 0x0331: 320x400 (+320), 8 bits  
  Mode 0x0332: 320x400 (+640), 16 bits  
  Mode 0x0333: 320x400 (+1280), 24 bits  
  Mode 0x0334: 320x240 (+320), 8 bits  
  Mode 0x0335: 320x240 (+640), 16 bits  
  Mode 0x0336: 320x240 (+1280), 24 bits  
  Mode 0x033d: 640x400 (+1280), 16 bits  
  Mode 0x033e: 640x400 (+2560), 24 bits  
  Config Status: cfg=new, avail=yes, need=no, active=unknown  

Wygląda na to, że dostępnych jest wiele trybów hi-res, takich jak 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (nawiasem mówiąc, co oznacza liczba dodatnia na liście trybów?). Jednak ustawienie dowolnego z tych trybów w łańcuchu opcji wiersza, wierszu vga=0x305powoduje albo konsolę tekstową o czarnej tonacji, albo ekran wypełniony migającymi kropkami koloru / mc.

Jaki jest „nowoczesny”, „solidny” sposób na ustawienie wysokiej rozdzielczości w konsolach tekstowych?

Odpowiedzi:


25

Nowsze jądra domyślnie używają KMS , więc powinieneś odejść od dołączania vga=do linii grub, ponieważ będzie to kolidować z natywną rozdzielczością KMS. Zależy to jednak od używanego sterownika wideo: zastrzeżony sterownik Nvidia nie obsługuje KMS , ale można go obejść.

Powinieneś być w stanie uzyskać pełną rozdzielczość w buforze ramki, edytując swój plik /etc/default/grubi upewniając się, że GFXMODEjest ustawiony poprawnie, a następnie dodając GFXPAYLOADwpis w następujący sposób:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Pamiętaj, aby biegać sudo update-grubpóźniej.


Mam Driver "nvidia"w moim xorg.conf, więc to chyba zastrzeżona kierowca. grubZresztą i tak eksperymentuję . Przy okazji, jak obejść prawnie zastrzeżonego kierowcę?
mbaitoff,

Używam zastrzeżonego sterownika i powyższej metody (na pudełku 10.10) i jest w porządku. Zawsze możesz wypróbować sterownik w stylu secesyjnym, jeśli chcesz: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan

1
Wygląda na to, że podejście GFXPAYLOAD działało, ale tylko set gfxpayload=keepw grub2plikach konfiguracyjnych.
mbaitoff,

2
Ale nadal mam podejrzenia, że ​​mój tryb wideo nie jest natywny. I pod warunkiem, GRUB_GFXPAYLOAD=1920x1080ze GRUB_GFXMODE=1920x1080x24, ale wciąż widzę niewyraźne litery w konsoli, jak gdybym był w nie natywnej rozdzielczości.
mbaitoff,

1
Natknąłem się na to, próbując uzyskać większą konsolę dla mojej maszyny wirtualnej i chciałem dodać do komentarza @ mbaitoff. Aby dostać się set gfxpayload=keepdo konfiguracji grub2, musisz dodać linię GRUB_GFXPAYLOAD_LINUX=keepdo swojego /etc/default/grub. (To jest na Debianie i zakładam, że Ubuntu - YMMV na innych). Musiałem wytropić to w dokumentach grub, więc pomyślałem, że podzielę się.
Czy

13

W przypadku nowszych dystrybucji Debian i Ubuntu za pomocą nvidii musiałem wykonać następujące czynności:

Najpierw edytuj / etc / default / grub. Zmień następujący wiersz:

#GRUB_GFXMODE=640x480 

do tego:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

zastępując 1280x800 pożądaną rozdzielczością.

Następnie:

echo "echo FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-initramfs -u
sudo update-grub

Aby po prostu zmienić rozmiar czcionki, możesz to zrobić za pomocą następującego polecenia:

sudo dpkg-reconfigure console-setup

2
+1 za dpkg-rekonfiguruj konfigurację konsoli
jinowolski

Działa to dla mnie na Kubuntu 16.04 ze sterownikiem NVidia 390.
Maxim Egorushkin

To NIE JEST TYPO, echo „echo FRAMEBUFFER = y” jest poprawne. Sprawdziłem to i zweryfikowałem, a to nie zadziała bez kolejnej komendy echo zapisanej w pliku. Dzięki!
mchid

8

Oto Twoja najlepsza opcja:

Użyj sudo hwinfo --framebufferzgodnie z opisem, wybierz tryb wideo, który chcesz zobaczyć podczas rozruchu w konsoli, a następnie dodaj opcję vga=nnndo parametrów rozruchowych jądra.

Jedyną sztuczką jest nnnto, że wybrałeś tryb wideo wybrany z listy utworzonej przez hwinfo- CONVERTED TO DECIMAL !!!

Jeśli spróbujesz, vga=0xwhateverto nie zadziała.

Na przykład wybrałem tryb wideo 0x307 (1280x1024 (+1280), 8 bitów), przekonwertowałem 0x307 na dziesiętne, czyli 775, a następnie użyłem vga=775parametrów rozruchowych isolinux / extlinux.

Możesz użyć printf do konwersji szesnastkowej na dziesiętną: $ printf "%d\n" 0x307 775

Od samego początku otrzymałem ładny tekst we wszystkich konsolach.

Sukces!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.