После обновления некоторых виртуальных машин 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
устанавливает размер графического экрана (
COLUMNS=160
LINES=48
Как изменить размер консоли?
Заранее спасибо
обновление 1
Я искал эту проблему в Google и нашел множество решений с использованием параметра ядра 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
устанавливает размер графического экрана (
COLUMNS=160
LINES=48
Как изменить размер консоли?
Заранее спасибо
обновление 1
Я искал эту проблему в Google и нашел множество решений с использованием параметра ядра 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, консоль стала огромной.
В двух словах:
Попробуйте отключить драйвер буфера кадра svgadrmfb
VMware. У меня было такое же изменение разрешения, и я обнаружил, что фреймбуфер стал включенным после обновления на одной из моих виртуальных машин.
Теперь длинный ответ ...
Я наткнулся на ваш вопрос в поисках ответа на та же самая проблема , хотя в моем случае разрешение экрана изменилось, когда я выполнял перезагрузку после автоматических обновлений на устройстве 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
Я открыл этот пост в обсуждении RedHat, и член службы поддержки предложил мне этот другой пост . Я пробовал различные показанные решения и добавление параметра ядра
vmwgfx.enable_fbdev=0
в файл конфигурации grub
сработало.
Всем спасибо.