Cara mengatur resolusi dalam konsol teks (memecahkan masalah ketika ada `vga = ...` gagal)

29

Ini adalah cara umum untuk mengatur resolusi konsol teks (yang biasanya tersedia oleh Ctrl-Alt-F1 melalui Ctrl-Alt-F6) dengan menggunakan vga=...parameter kernel. Saya menggunakan Ubuntu 10,04 Lucid, output dari uname -aadalah:

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

Untuk mengidentifikasi mode yang tersedia, saya menggunakan sudo hwinfo --framebufferlaporan mana:

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  

Sepertinya banyak mode hi-res tersedia, seperti 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (omong-omong, apa arti angka-plus dalam daftar mode?). Namun, pengaturan salah satu dari mode ini dalam string opsi kernel, baris vga=0x305, menghasilkan konsol teks hitam pekat, atau layar diisi oleh warna berkedip / titik-titik bw.

Apa cara 'modern', 'kuat' untuk mengatur resolusi tinggi di konsol teks?

mbaitoff
sumber

Jawaban:

25

Kernel yang lebih baru menggunakan KMS secara default, jadi Anda harus beralih dari menambahkan vga=ke baris grub Anda karena itu akan bertentangan dengan resolusi asli KMS. Namun, itu tergantung pada driver video yang Anda gunakan: driver Nvidia berpemilik tidak mendukung KMS , tetapi Anda dapat mengatasinya.

Anda harus bisa mendapatkan resolusi penuh dalam framebuffer dengan mengedit /etc/default/grubdan memastikan bahwa GFXMODEitu diatur dengan benar, dan kemudian menambahkan GFXPAYLOADentri seperti:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Ingatlah untuk berlari sudo update-grubsesudahnya.

jasonwryan
sumber
Aku punya Driver "nvidia"di saya xorg.conf, jadi mungkin driver proprietary. Saya akan grubtetap bereksperimen . Ngomong-ngomong, bagaimana cara mengatasi pengemudi berpemilik?
mbaitoff
Saya menggunakan driver berpemilik dan metode di atas (pada kotak 10.10) dan tidak masalah. Anda selalu dapat mencoba driver nouveau jika Anda mau: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan
1
Sepertinya pendekatan GFXPAYLOAD berhasil, tetapi hanya dengan set gfxpayload=keepdi grub2file konfigurasi.
mbaitoff
2
Tapi saya masih curiga bahwa mode video saya bukan asli. Aku disediakan GRUB_GFXPAYLOAD=1920x1080dengan GRUB_GFXMODE=1920x1080x24, tapi aku masih melihat huruf kabur di konsol seolah-olah saya berada di resolusi non-native.
mbaitoff
1
Tersandung di ini mencoba untuk mendapatkan konsol yang lebih besar untuk VM saya dan ingin menambahkan komentar @ mbaitoff. Untuk masuk set gfxpayload=keepke konfigurasi grub2, Anda perlu menambahkan baris GRUB_GFXPAYLOAD_LINUX=keepke /etc/default/grub. (Ini di Debian, dan saya akan menganggap Ubuntu - YMMV pada yang lain). Harus memburu ini di dokumen grub, jadi kupikir aku akan berbagi.
Will
13

Untuk distro Debian & Ubuntu yang lebih baru menggunakan nvidia, saya harus melakukan hal berikut:

Pertama, edit / etc / default / grub. Ubah baris berikut:

#GRUB_GFXMODE=640x480 

untuk ini:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

mengganti 1280x800 dengan resolusi yang diinginkan.

Kemudian:

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

Untuk mengubah ukuran font, Anda dapat melakukannya dengan menggunakan perintah berikut:

sudo dpkg-reconfigure console-setup
mchid
sumber
2
+1 untuk dpkg-mengkonfigurasi ulang konsol-setup
jinowolski
Ini bekerja untuk saya di Kubuntu 16.04 dengan driver NVidia 390.
Maxim Egorushkin
Ini BUKAN TYPO, gema "echo FRAMEBUFFER = y" benar. Saya telah memeriksa dan memverifikasi ini dan ini tidak akan berfungsi tanpa perintah gema berikutnya ditulis ke file. Terima kasih!
mchid
8

Inilah pilihan terbaik Anda:

Gunakan sudo hwinfo --framebufferseperti yang dijelaskan, pilih mode video yang ingin Anda lihat selama boot di konsol, lalu tambahkan opsi vga=nnnke parameter boot kernel.

Satu-satunya trik adalah itu nnnadalah mode video yang Anda pilih dari daftar yang dihasilkan oleh hwinfo- CONVERTED TO DECIMAL !!!

Jika Anda mencobanya vga=0xwhatevertidak akan berhasil.

Misalnya saya memilih mode video 0x307 (1280x1024 (+1280), 8 bit), saya mengkonversi 0x307 ke desimal yang 775 dan kemudian saya gunakan vga=775dalam parameter boot isolin / extlinux.

Anda dapat menggunakan printf untuk mengonversi heksadesimal menjadi desimal: $ printf "%d\n" 0x307 775

Dan saya mendapat teks bagus di semua konsol sejak awal.

Keberhasilan!

chris_startx
sumber