【问题标题】:How to disable a Virtual Terminal in Yocto Linux如何在 Yocto Linux 中禁用虚拟终端
【发布时间】:2018-05-29 02:31:51
【问题描述】:

有人知道如何在 linux 中禁用虚拟终端吗?我在 i.MX6 处理器上使用 Yocto,莫蒂版本。尽管我们的基础发行版是 Yocto,但不幸的是我们已经偏离了使用食谱构建它,所以这更像是一个直接的 linux 问题而不是 Yocto……

详细说明我的问题:它适用于具有 HDMI 端口的嵌入式设备 - 当我将终端连接到 HDMI 端口时,它会显示 Linux Penguin 徽标、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 的初始化?

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

那么有没有人有我可以尝试的指针或东西?我相对较新(10 年后返回 - 我在 10 年前使用 DNX v2.6 工作,似乎我所知道的关于 init 的一切都相当过时,哈哈)所以我确信我错过了很多......

谢谢, - 查克

【问题讨论】:

    标签: linux terminal console yocto systemd


    【解决方案1】:

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

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

    注释掉一行

    CONFIG_FRAMEBUFFER_CONSOLE=y

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

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

    那么,我们如何从控制台解除 fbcon 的绑定?部分答案在 文档/控制台/console.txt。总结一下:

    将一个值回显到代表帧缓冲区控制台的绑定文件 司机。所以假设vtcon1代表fbcon,那么:

    echo 1 > sys/class/vtconsole/vtcon1/bind - 附加帧缓冲控制台 到 控制台层 echo 0 > sys/class/vtconsole/vtcon1/bind - 将帧缓冲区控制台从 控制台层

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-22
      • 2021-10-23
      • 2022-11-18
      • 1970-01-01
      • 2022-06-23
      • 2011-03-03
      • 2015-02-17
      • 1970-01-01
      • 2014-01-28
      相关资源
      最近更新 更多