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?

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.


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

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!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.