Vmware-Esxi

升級到 RHEL 6.8 後虛擬控制台大小增加

  • July 28, 2016

在將一些 VMware 虛擬機更新到RHEL 6.8(核心 2.6.32-642)後,虛擬控制台的大小似乎有所增加——非常大。

控制台中沒有執行 X 伺服器,也就是說,它是一個經典的基於文本的 linux 控制台。

當我通過虛擬控制台登錄時,LINESCOLUMNS變數的值是:

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 時,控制台變得很大。

簡而言之:

嘗試禁用 VMware 的svgadrmfb幀緩衝驅動程序。我的解析度也發生了同樣的變化,並發現在我的一台虛擬機上更新後幀緩衝區已啟用。

現在長答案…

我在尋找相同問題的答案時遇到了您的問題,儘管在我的情況下,當我在 TurnKey Linux 設備(基於 Debian)上自動更新後重新啟動時,顯示解析度發生了變化。我們稱之為vm1

在探勘核心**日誌dmesg_

[    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變數 in/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

引用自:https://serverfault.com/questions/789518