it-swarm-ru.tech

Как установить разрешение в текстовых консолях (устранение неполадок при сбое любого `vga = ...`)

Это общий способ установить разрешение текстовых консолей (которые обычно доступны с помощью 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, приводит к появлению либо текстовой консоли черного цвета, либо экрана, заполненного мигающими цветными/черно-белыми точками.

Что такое "современный", "надежный" способ настройки высокого разрешения в текстовых консолях?

29
mbaitoff

В новых ядрах по умолчанию используется КМС , поэтому вам следует отказаться от добавления vga= к вашей строке grub, так как она будет конфликтовать с собственным разрешением KMS. Однако это зависит от используемого вами видеодрайвера: проприетарный драйвер Nvidia не поддерживает КМС , но вы можете обойти его.

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

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Не забудьте запустить Sudo update-grub потом.

27
jasonwryan

Для новых дистрибутивов 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
14
mchid

Вот ваш лучший вариант:

Используйте Sudo hwinfo --framebuffer как описано, выберите режим видео, который вы хотели бы видеть во время загрузки в консоли, затем добавьте параметр vga=nnn к параметрам загрузки ядра.

Единственная хитрость в том, что nnn - это режим видео, который вы выбрали из списка, созданного hwinfo - CONVERTED TO DECIMAL !!!

Если вы пытаетесь vga=0xwhatever это не сработает.

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

Вы можете использовать printf для преобразования шестнадцатеричного в десятичное: $ printf "%d\n" 0x307 775

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

Успех!

9
chris_startx