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

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

mbaitoff
источник

Ответы:

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потом.

jasonwryan
источник
У меня есть 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
Наткнулся на это, пытаясь получить большую консоль для моей виртуальной машины, и хотел добавить комментарий @ 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
mchid
источник
2
+1 для dpkg-перенастроить консольную настройку
jinowolski
У меня это работало на Kubuntu 16.04 с драйвером NVidia 390.
Максим Егорушкин
Это НЕ ТИПО, эхо "echo FRAMEBUFFER = y" является правильным. Я проверил и проверил это, и это не будет работать без последующей команды echo, записанной в файл. Благодарность!
mchid
8

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

Используйте, 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

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

Успех!

chris_startx
источник