Як встановити роздільну здатність в текстових консолях (усунення несправностей, коли будь-який `vga = ...` не вдається)


29

Це загальний спосіб встановити роздільну здатність текстових консолей (які зазвичай доступні Ctrl-Alt-F1 через Ctrl-Alt-F6), використовуючи vga=...параметр ядра. Я використовую Ubuntu 10.04 Lucid, вихід uname -a:

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

Для ідентифікації доступних режимів я використовую такі sudo hwinfo --framebufferзвіти:

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  

Схоже, доступно багато режимів високої роздільної здатності, як-от 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (до речі, що означає число "плюс" у списку режимів?). Однак, встановлення будь-якого з цих режимів у рядку, рядку vga=0x305, параметрі ядра , призводить до отримання чорної текстової консолі високої тональності чи екрану, заповненого миготливими кольоровими / bw крапками.

Який "сучасний", "надійний" спосіб налаштування високої роздільної здатності в текстових консолях?

Відповіді:


25

Новіші ядра використовують KMS за замовчуванням, тому вам слід відмовитися від додавання vga=до вашої лінії grub, оскільки це буде суперечити основній роздільній здатності KMS. Однак це залежить від використовуваного відеодрайвера: власний драйвер Nvidia не підтримує KMS , але ви можете обійти його.

Ви маєте змогу отримати повну роздільну здатність у фреймбуфері, відредагувавши свій /etc/default/grubі переконайтесь, що значення GFXMODEвстановлено правильно, а потім додайте GFXPAYLOADзапис таким чином:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Не забудьте бігати sudo update-grubзгодом.


У мене Driver "nvidia"в моєму xorg.conf, тому це, мабуть, власний драйвер. Я все grubодно буду експериментувати . До речі, як обійти фірмовий драйвер?
mbaitoff

Я використовую захищений драйвер і вищевказаний метод (на коробці 10.10), і це добре. Ви завжди можете спробувати драйвер nouveau, якщо хочете: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan

1
Схоже, підхід GFXPAYLOAD працював, але лише set gfxpayload=keepу grub2файлах конфігурації.
mbaitoff

2
Але я все ще підозрюю, що мій режим відео не є рідним. Я при умови , GRUB_GFXPAYLOAD=1920x1080з GRUB_GFXMODE=1920x1080x24, але я все ще бачу розмиті букви в консолі , як ніби я в нерідній дозволі.
mbaitoff

1
Натрапивши на це, намагаючись отримати більшу консоль для мого VM і хотів додати до коментаря @ mbaitoff. Щоб увійти set gfxpayload=keepв конфігурацію grub2, вам потрібно додати рядок GRUB_GFXPAYLOAD_LINUX=keepдо свого /etc/default/grub. (Це на Debian, і я б припустив Ubuntu - YMMV для інших). Довелося полювати це в документі-грубі, так що я подумав, що поділюсь.
Буде

13

Для новіших дистрибутив Debian & Ubuntu, що використовують nvidia, мені довелося зробити наступне:

Спочатку відредагуйте / etc / default / grub. Змініть наступний рядок:

#GRUB_GFXMODE=640x480 

до цього:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

замінивши 1280x800 на потрібну роздільну здатність.

Потім:

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

Щоб просто змінити розмір шрифту, ви можете зробити це за допомогою наступної команди:

sudo dpkg-reconfigure console-setup

2
+1 для налаштування консолі dpkg-конфігурація
jinowolski

Це працювало для мене на Kubuntu 16.04 з драйвером NVidia 390.
Максим Єгорушкін

Це НЕ TYPO, ехо "ехо FRAMEBUFFER = y" правильно. Я перевірив і перевірив це, і це не буде працювати без наступної команди ехо, записаної у файл. Спасибі!
мчід

8

Ось ваш найкращий варіант:

Використовуйте, sudo hwinfo --framebufferяк описано, виберіть режим відео, який ви хотіли б бачити під час завантаження в консолі, а потім додайте параметр vga=nnnдо параметрів завантаження ядра.

Єдина хитрість полягає в тому, що nnnце відео режим, який ви вибрали зі списку, створеного компанією hwinfo- ПЕРЕГЛЯДАЄТЬСЯ ДЕКІМАЛЬНО !!!

Якщо ви спробуєте, vga=0xwhateverце не вийде.

Наприклад, я вибрав режим відео 0x307 (1280x1024 (+1280), 8 біт), я перетворив 0x307 в десяткове, що становить 775, а потім я використовував vga=775у завантажувальних параметрах isolinux / extlinux.

Ви можете використовувати printf для перетворення шістнадцяткової у десяткову: $ printf "%d\n" 0x307 775

І я з самого початку отримав хороший тонкий текст у всіх консолях.

Успіху!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.