这是一个关于在名为 Compulab 设备上运行的 Linux 的问题 实用专业版,但我认为在这里问这个问题以解决任何平台的问题都是值得的(如果可能的话)。
我曾经与间谍, 一个完美的遥控计划为TTY 文本模式控制台。
如果我启动我的 Utilite乌班图12.04和HDMI 电缆已连接在我的 720p 主屏幕上,我可以远程连接到任何 TTY,例如第一个 TTY:
# conspy 1
但如果我断开电缆并重新启动:
luis@utilite-desktop:~$ sudo conspy 1
conspy: screen too large. I only handle up to 200x80.
看来分辨率高达 1080p,因此 TTY 文本模式下的列/行太大,ConSpy 无法管理它们。
与 Kali v1.0.9 的结果相同。
根据我所读到的内容,Linux 在更改文本模式分辨率方面似乎存在严重问题(令人难以置信,但这是事实)。
我发现的所有方法都需要GRUB 修改,但 Utilite 使用U盘启动而不是 GRUB,而且它对我来说太神秘了,无法管理(永远不要谈论将数据保存到闪存的风险)。
有没有吗更改 TTY 的更简单方法文本分辨率(即:行和列)?
我努力了:
# nano /etc/rc.local
...然后添加:
stty cols 83 rows 40
但结果保持不变。
答案1
目前还不清楚文本缓冲区的尺寸是多少太大了对于 ConSpy(stty --all
或未提供),因此有关文本行数和 cpl 的建议如下。
TUI 控制台有不同的参数:
- 视频模式(即多少条扫描线×屏幕宽度(以点为单位));
- 多少字符框是否存在(即文本行 × cpl)。
一般情况下:
文本行数 = 扫描线数 / 字符高度
cpl = 屏幕宽度(以点为单位) / 字符宽度
字符高度和宽度以点为单位。除法是整数,余数被舍去。
要减少文本行数,请加载字符高度更大的字体。要减少 cpl(每行字符数),请加载字符宽度为 12 或更大的字体。例如:
setfont /usr/share/consolefonts/Uni3-TerminusBold24x12.psf.gz
(尽管恕我直言,终点站在很多方面都很丑陋)。
在 Ubuntu 上,/etc/init/console-setup.conf
可以创建一个自定义脚本,以便在启动时执行。即,代替
exec loadkeys /etc/console-setup/cached.kmap.gz
有人可能会写
script
setfont /usr/share/consolefonts/Uni3-TerminusBold24x12.psf.gz
loadkeys /etc/console-setup/cached.kmap.gz
end script
请注意,cached.kmap.gz 是键盘布局(键盘映射)并且不干扰字体。无需setfont
从“console-setup.conf”执行。因为“控制台”一词的含义这个选择似乎合乎逻辑。
更新:/etc/init/console-font.conf
Ubuntu 中有任务。
或者阅读Ask Ubuntu 上的这些东西,也许会找到有用的东西。
上面的大多数建议都假设帧缓冲区 ( fbdev
) 驱动程序已启用。此外,在这种情况下,fbset
不带参数的命令(或sudo fbset
来自用户 shell)报告当前视频模式的几何形状,如下所示:
geometry
屏幕宽度 扫描行数……
在类似硬件 VGA 模式,在现代 Linux 中已过时,最大字符宽度为 9。因此,只能通过启用非标准(减小的)屏幕宽度来减少 cpl(每行字符数),从而降低像素时钟频率的非标准模式。这并不总是可行且安全的。
关于 Linux 虚拟控制台上的文本行 × cpl 的另一项注释。这些值可以通过以下方式获得
sudo od -t u1 -N 2 /dev/vcsa
数字
第一个十进制数是文本行,第二个是 cpl。有关其工作原理的说明,请参阅 vcs(4) 和 od(1)。