在将一些VMware虚拟机更新到RHEL 6.8 (内核2.6.32-642)之后,似乎虚拟控制台的大小已经增加了 – 这是巨大的。
没有X服务器在控制台中运行,即它是一个经典的基于文本的Linux控制台。
当我通过虚拟控制台login时, LINES和COLUMNSvariables的值是:
COLUMNS=160 LINES=48
我怎样才能调整控制台?
提前感谢
更新1
我GOOGLE了这个问题,并发现了很多使用grub.conf的vga= kernel选项的解决scheme。 我已经尝试过,但不起作用; 尽pipe该选项在重新启动后出现在/proc/cmdline ,但不会被忽略。
我在dmesg输出中find了这两行:
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模块如何设置graphics屏幕大小( 1280x768@32 )和文本160x48大小( 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 framebuffer驱动程序。 我在分辨率上发生了相同的变化,发现在我的一台虚拟机上更新后,帧缓冲器已经启用。
现在为了长长的答案…
我遇到了你的问题,寻找同样确切的问题的答案,虽然在我的情况下,当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驱动程序(从缺less/dev/fb0 )。
我发现以下文章如何禁用帧缓冲区: http : //kb.digium.com/articles/FAQ/How-to-disable-the-Linux-frame-buffer-if-it-s-causing-problems
我testing了build议的内核启动参数:
vga=normal nofb nomodeset video=vesafb:off (实际上,我尝试过video=svgadrmfb:off ,但是无论如何它都不起作用。) i915.modeset=0 就我而言,这是nomodeset ,为我工作。 一旦我做了这个发现,我做了如下的永久性(我偏离了链接页面的第4步)。 看完/etc/grub.d/10_linux文件后,我意识到/etc/default/grub中的GRUB_CMDLINE_LINUX_DEFAULTvariables是所有需要更改的。 (也在AskUbuntu#19486中build议。)
在我的情况下,variables是:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
我改变了这一行:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0 nomodeset"
进行更改后,更新GRUB的configuration:
sudo update-grub
然后发出一个init 6重启。
如果您的系统以前没有加载svgadrmfb ,那么屏幕分辨率现在应该在帧缓冲区被禁用时返回。
root@server:~# tput cols 80 root@server:~# tput lines 25
此外,一旦系统启动,您可以validation有效的内核启动命令:
root@server:~# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64 root=/dev/mapper/turnkey-root ro consoleblank=0 nomodeset
我在RedHat的讨论中打开了这篇文章 ,一位支持人员向我推荐了这篇文章 。 我尝试了不同的解决scheme,并添加了内核选项
vmwgfx.enable_fbdev=0
在grubconfiguration文件中工作。
感谢大家。