更改 TTY 中的行数和列数

更改 TTY 中的行数和列数

我想调整按CtrlAltF1(或F2,,F3...)时出现的终端的大小。 25x80 对于 24 英寸屏幕来说太小了。

尝试使用 stty,但命令stty columns 200stty rows 50不能直接工作。我错过了什么还是这是一个错误的方法。

理想情况是寻找通用的解决方案,但会满足于在 RHEL5 和 Ubuntu 中运行的东西。如果可以使用一些可以放入脚本文件中的命令而不是更改一些启动级别的内容,那就更好了。

答案1

Linux 上的玻璃控制台有两种主要类型:图形模式和文本模式。

如果 Linux 内核直接支持您的视频子系统,并且您已启用此/未禁用此(取决于发行版),您将获得图形控制台。如果有驱动程序,系统将自动检测您的屏幕,并且您将获得(默认情况下)以其原始分辨率的 9×16 像素文本。然后你就会遇到相反的问题:文字太小。如果在内核中启用了CONFIG_FONTS和,您可以将启动时字体更改为更大的字体,或者您可以在系统启动后加载更大的字体。CONFIG_FONTS_*如果无法自动检测,有两种方法可以更改分辨率本身:

  • “天啊,我感觉好老”的方式,用内核命令行参数vga=如本论坛帖子中所述。当然,您需要为此重新配置引导加载程序。该vga=选项可以让您获得文本(模式 < 256)和 VESA 兼容的图形模式(模式 ≥ 256)。后者将是图形化的但未加速,因此滚动非常大的帧缓冲区可能看起来很有趣,因为“有趣”的值较慢。
  • 新方法,使用内核模式设置。如果您学习其中一项,请学习这一项,除非您正在做大量嵌入式或复古工作。该vga=方法可能会在某个时候消失。

如果您的显卡不受支持,其驱动程序未加载等,您会发现自己处于文本模式控制台。文本模式控制台受到显卡文本模式范围的限制。 80×25、80×43、80×50是标准的VGA分辨率。最初的非 IBM VGA 和 SVGA 卡总是具有很好的附加文本模式,但现代卡通常没有(“谁想要文本?”)。这里有一个解决方案:您可以直接操作VGA寄存器来重新编程芯片的CRTC部分以获得更高的分辨率。 90年代的一个节目叫SVGA文本模式无需重新配置内核即可为您完成此操作。它有点像xrandr, 但对于文本控制台来说,可能仍然适合你。我喜欢它:我可以在我蹩脚的 14" CRT 上得到一些奇怪的东西,比如 100×37。这使它在 1994 年的开发中变得体面。要在启动时设置模式,你唯一的办法就是使用vga=并使用 VESA 模式。

关于stty命令:它告诉内核关于您的终端,但无法更改终端本身。stty rows 200将告诉内核您远程连接的玻璃终端每个屏幕有 200 行。为什么会出现这种情况是在这个问题的答案中解释了

相关内容