如何在Yocto Linux中禁用虚拟终端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Yocto Linux中禁用虚拟终端相关的知识,希望对你有一定的参考价值。

有谁知道如何禁用Linux中的虚拟终端?我在i.MX6处理器上使用Yocto,Morty版本。即使我们的基本发行版是Yocto,但不幸的是我们已经不同于使用配方构建它,所以这更像是一个直接的Linux问题而不是Yocto ......

提供一些关于我的问题的详细信息:它是针对具有HDMI端口的嵌入式设备 - 当我将终端连接到HDMI端口时,它显示Linux企鹅徽标,getty服务并在600秒后消隐。我只想使用hdmi端口作为输出,输出中没有显示任何内容,我希望它始终保持开启状态。

我发现hdmi端口映射到/ dev / tty1 - 当我输入:echo“asdfasdf”> / dev / tty1我看到输出到监视器的字符。

以下是我尝试过的一些无用的东西 - 如果我能弄清楚如何将其作为虚拟终端禁用,那么很多都不需要...

•我想出了如何禁用getty服务,但光标仍然闪烁。我甚至不想要一个光标显示

•我试图通过禁用内核配置参数中的LOGO来禁用企鹅的显示 - 我用LOGO注释了任何东西:

CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

无济于事。徽标仍然显示:。

•它在600秒后空白的事实是控制台消隐 - 我可以在文件中看到它设置为600:/ sys / module / kernel / parameters / consoleblank。当我发出命令时:echo -e' 033 [9; 0]'> / dev / tty1它将控制台消隐设置为0并唤醒终端。能够唤醒控制台是有限的成功,但我想完全禁用虚拟终端...

•我尝试在配置文件中注释掉任何虚拟终端定义无效:

CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y

我读过的所有内容都表明/ dev / tty1是一个虚拟终端或控制台。根据我读到的有关VT选项的内容,禁用CONFIG_VT应该这样做:

VT - 虚拟终端在此说“是”以获得对具有显示器和键盘设备的终端设备的支持。这些被称为“虚拟”,因为您可以在一个物理终端上运行多个虚拟终端(也称为虚拟控制台)。您需要至少一个虚拟终端设备才能使用键盘和显示器。因此,只有配置嵌入式系统的人才想在这里说不,以节省一些内存;登录这种系统的唯一方法是通过串行或网络连接。虚拟终端是有用的,因为,例如,一个虚拟终端可以显示系统消息和警告,另一个可以用于文本模式用户会话,第三个虚拟终端可以并行运行X会话。使用某些键组合(通常是Alt功能键)在虚拟终端之间切换。如果您不确定,请说“是”,否则您将无法对Linux系统做太多工作。

但由于某种原因,它什么也没做!

•我找到了这个帖子; https://askubuntu.com/questions/357039/how-do-i-disable-virtual-consoles-tty1-6和其他人一样,但没有一点帮助,因为我的发行版没有在这个帖子中提供的解决方案中的任何目录或我找到的任何其他目录。例如,我没有/etc/events.d也没有/ etc / default / console-setup文件,也没有/ etc / init目录......我想这是因为我的发行版使用了systemd解决方案是基于SysV的init吗?

如果我能弄清楚如何禁用该端口作为终端,则无需禁用徽标或控制台消隐...

那么有人可以尝试指针或事物吗?我相对较新(10年后回归 - 我在DNX工作10年前的v2.6,似乎我所知道的关于init的一切都是相当过时的lol)到linux所以我确信我错过了很多...

谢谢, - 查克

答案

我想我找到了问题的答案。这实际上是这里记录的帧缓冲控制台:Documentation / fb / fbcon.txt。从文档:

正如其名称所示,帧缓冲控制台(fbcon)是一个运行在帧缓冲设备之上的文本控制台。它具有任何标准文本控制台驱动程序的功能,例如VGA控制台,其附加功能可归因于帧缓冲区的图形特性。

评论出来

CONFIG_FRAMEBUFFER_CONSOLE = Y

在位于/ arch / arm / configs的配置文件中将禁用它。

此部分文档还向您展示了如何在运行时禁用它:

那么,我们如何从控制台取消绑定fbcon?部分答案在Documentation / console / console.txt中。总结一下:

回显表示framebuffer控制台驱动程序的绑定文件的值。所以假设vtcon1代表fbcon,那么:

echo 1> sys / class / vtconsole / vtcon1 / bind - 将framebuffer console连接到控制台层echo 0> sys / class / vtconsole / vtcon1 / bind - 从控制台层分离framebuffer console

当我发出echo 0命令时,当我发出echo 1命令时,光标停止闪烁并再次开始闪烁。

我认为还有另一种方法可以通过在OpenEmbedded机器配置文件中放置USE_VT =“0”来修改Yocto构建环境。 sysvinit-inittab配方引用“USE_VT”变量。这个答案是从Yocto Linux邮件列表中给我的 - 但是我没有测试过,因为我们已经从Yocto分歧了......

以上是关于如何在Yocto Linux中禁用虚拟终端的主要内容,如果未能解决你的问题,请参考以下文章

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

如何在 yocto 中编译 linux-raspberrypi 内核?

结合Yocto Qemu与Eclipse单步调试开发Linux Kernel

linux 中如何禁用虚拟网卡?

如何禁用在android片段类中按下的后退按钮

linux 内核 镜像 工具 哪些 yocto