Назад | Перейти на главную страницу

Размер виртуальной консоли увеличился после обновления до RHEL 6.8

После обновления некоторых виртуальных машин VMware до RHEL 6.8 (ядро 2.6.32-642) похоже, что размер виртуальной консоли увеличен - он огромен.

В консоли не запущен X-сервер, т.е. это классическая текстовая консоль Linux.

Когда я вхожу в систему через виртуальную консоль, значения LINES и COLUMNS переменные:

COLUMNS=160
LINES=48

Как изменить размер консоли?

Спасибо заранее

обновление 1

Я погуглил эту проблему и нашел много решений, используя vga= вариант ядра в grub.conf. Я пробовал это, но это не работает; хотя эта опция присутствует в /proc/cmdline после перезагрузки - не игнорируется.

Я нашел эти две строчки в dmesg вывод:

Console: colour VGA+ 80x25
console [tty0] enabled

но я нашел много строк ниже:

[drm] DMA map mode: Using physical TTM page addresses.
[drm] Capabilities:
[drm]   Rect copy.
[drm]   Cursor.
[drm]   Cursor bypass.
[drm]   Cursor bypass 2.
[drm]   8bit emulation.
[drm]   Alpha cursor.
[drm]   Extended Fifo.
[drm]   Multimon.
[drm]   Pitchlock.
[drm]   Irq mask.
[drm]   Display Topology.
[drm]   GMR.
[drm]   Traces.
[drm]   GMR2.
[drm]   Screen Object 2.
[drm]   Command Buffers.
[drm] Max GMR ids is 64
[drm] Max number of GMR pages is 65536
[drm] Max dedicated hypervisor surface memory is 163840 kiB
[drm] Maximum display memory size is 8192 kiB
[drm] VRAM at 0xd8000000 size is 8192 kiB
[drm] MMIO at 0xd0800000 size is 256 kiB
[drm] global init.
[TTM] Zone  kernel: Available graphics memory: 8167096 kiB
[TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] No driver support for vblank timestamp query.
[drm] Screen Objects Display Unit initialized
[drm] width 1280
[drm] height 768
[drm] bpp 32
[drm] Fifo max 0x00040000 min 0x00001000 cap 0x0000077f
[drm] Using command buffers with DMA pool.
[drm] DX: no.
fbcon: svgadrmfb (fb0) is primary device
Console: switching to colour frame buffer device 160x48
[drm] Initialized vmwgfx 2.9.0 20150810 for 0000:00:0f.0 on minor 0

Вы можете увидеть, как drm модуль устанавливает размер графического экрана (1280x768@32) и размер текстового экрана (160x48). Я ничего не знаю об этом drm модуль. Следующая командная строка показывает кое-что об этом:

# lsmod|grep drm
drm_kms_helper        127219  1 vmwgfx
drm                   362893  4 vmwgfx,ttm,drm_kms_helper
i2c_core               29132  3 i2c_piix4,drm_kms_helper,drm

Я буду искать информацию о drm модуль.

обновление 2

Я подтверждаю, что эта проблема появилась в RHEL 6.8. Я обновил RHEL 6.1 до RHEL 6.7, и размер консоли не изменился.

Позже, когда я обновился до RHEL 6.8, консоль стала огромной.

я открыл эта почта в обсуждении RedHat, и один из сотрудников службы поддержки предложил мне этот другой пост. Я пробовал различные показанные решения и добавлял опцию ядра

vmwgfx.enable_fbdev=0

в grub файл конфигурации работал.

Спасибо всем.

В двух словах:

Попробуйте отключить VMware svgadrmfb драйвер фреймбуфера. У меня было такое же изменение разрешения, и я обнаружил, что фреймбуфер стал включенным после обновления на одной из моих виртуальных машин.

Теперь длинный ответ ...

Я наткнулся на ваш вопрос в поисках ответа на такой же точный проблема, хотя в моем случае разрешение экрана изменилось, когда я перезагрузился после автоматических обновлений на устройстве TurnKey Linux (на основе Debian). Назовем это vm1.

Покопавшись в журнале ядра (dmesg) и сравнив его с журналом другой виртуальной машины, vm2 (у которого все еще было исходное разрешение), я обнаружил vm1 имел следующие дополнительные строки.

[    2.033291] [drm] width 1280
[    2.033305] [drm] height 768
[    2.033318] [drm] bpp 32
[    2.050045] [drm] Fifo max 0x00040000 min 0x00001000 cap 0x0000007f
[    2.085691] fbcon: svgadrmfb (fb0) is primary device
[    2.088207] Console: switching to colour frame buffer device 160x48

Я проверил vm2 и подтвердил, что не загрузил svgadrmfb водитель (из-за отсутствия /dev/fb0).

Я нашел следующую статью о том, как отключить фреймбуфер: http://kb.digium.com/articles/FAQ/How-to-disable-the-Linux-frame-buffer-if-it-s-causing-problems

Я проверил предложенные параметры загрузки ядра:

  • vga=normal
  • nofb
  • nomodeset
  • video=vesafb:off (Собственно, я пробовал video=svgadrmfb:off вместо этого, но это все равно не сработало.)
  • i915.modeset=0

В моем случае это было nomodeset это сработало для меня. Сделав это открытие, я сделал его постоянным следующим образом (я отклонился от шага 4 на связанной странице). Посмотрев на /etc/grub.d/10_linux файл, я понял, что GRUB_CMDLINE_LINUX_DEFAULT переменная в /etc/default/grub все, что нужно было изменить. (Также предлагается в AskUbuntu # 19486.)

В моем случае переменная была:

GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"

Я изменил эту строку на:

GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0 nomodeset"

После внесения этого изменения обновите конфигурацию GRUB:

sudo update-grub

Затем выпустите init 6 перезагрузить.

Если ваша система ранее не загружалась svgadrmfb либо, тогда разрешение экрана теперь должно вернуться, когда фреймбуфер отключен.

root@server:~# tput cols
80
root@server:~# tput lines
25

Кроме того, как только ваша система загрузится, вы можете проверить эффективную команду загрузки ядра:

root@server:~# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64 root=/dev/mapper/turnkey-root ro consoleblank=0 nomodeset