升級到 RHEL 6.8 後虛擬控制台大小增加
在將一些 VMware 虛擬機更新到RHEL 6.8(核心 2.6.32-642)後,虛擬控制台的大小似乎有所增加——非常大。
控制台中沒有執行 X 伺服器,也就是說,它是一個經典的基於文本的 linux 控制台。
當我通過虛擬控制台登錄時,
LINES
和COLUMNS
變數的值是: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