После обновления некоторых виртуальных машин 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