进一步阅读

进一步阅读

有没有什么方法可以使用可以从外部按钮激活的脚本来在 TTY 之间切换?我有一个带有 LCD 屏幕的小型家庭控制器 Raspberry,我没有连接键盘或鼠标,并且 LCD 旁边有几个按钮映射用于执行重新启动等命令。我想对其中一个按钮进行编程按一下按键,它将切换到另一个(下一个)tty,并在“循环”结束时返回到 tty1。我知道chvt键盘组合,Alt F1, F2...但没有一个能按我想要的方式工作。是否可以 ??线索是在不同的 tty 上有三个(或更多)程序(如诊断程序),以便在访问我的“机架”时查看:)

答案1

您只需要编写一个像chvt循环 KVT 一样的程序,然后将其连接起来,就像您(您说的)已经将其他程序连接到其他按钮一样。

在 FreeBSD 上:

  • 当前活动的 KVT 编号可作为 的输出vidcontrol -i active
  • “下一个”动作是vidcontrol -s $NEXT在增量和一些模运算之后。

在 NetBSD 上:

  • 当前活动的 KVT 编号可作为 的输出wsconscfg -g
  • “下一个”动作是wsconscfg -s $NEXT在增量和一些模运算之后。

在 Linux 上:

  • 当前活动的 KVT 编号可在 下的伪文件中找到/sys/class/tty
  • “下一个”动作是chvt $NEXT在增量和一些模运算之后。
  • 可能的最大 KVT 数是固定的(并且您始终可以根据需要硬连线较低的最大值)。

对于这三者,以上所有操作都可以通过一些简单的 shell 脚本算法来完成。或者您可以用另一种语言编写程序,直接进行底层ioctl()调用(VT_GETACTIVE例如VT_ACTIVATE在 FreeBSD 上)。

OpenBSD 需要这样的编程来直接调用wsdisplay(4) ioctl(),因为没有方便的实用程序可以实现这一点。

直接渲染到帧缓冲区上的用户空间虚拟终端可能具有类似的机制,但根据软件的不同而有所不同。例如,我的设备响应“消费设备应用程序启动”的实际 USB HID 代码下一个/上一个任务键。

进一步阅读

  • 乔纳森·德博因·波拉德 (2018)。 ”linux-vt”。 设备。诺什工具集。
  • 索伦·施密特等人。 (2016-01-19)。vidcontrolFreeBSD 通用命令手册
  • wsconscfgNetBSD 系统管理员手册。 2006年6月24日。
  • 乔纳森·德博因·波拉德 (2018)。console-multiplexor小吃指南。软件。
  • 乔纳森·德博因·波拉德 (2018)。console-multiplexor-control小吃指南。软件。

相关内容