【问题标题】:linux kernel tty driver can you turn off echo by default in the code?linux内核tty驱动可以在代码中默认关闭echo吗?
【发布时间】:2019-02-18 13:03:49
【问题描述】:

与本题相关:tty-flip-buffer-push-sends-data-back-to-itself

所以我遇到了同样的问题,我编写了一个驱动程序,并在我的 tty 回调代码中将 tty 写回给用户(正在运行 cat /dev/mytty)。

当我写到 tty 时,它会循环回来,并且 cat 应该把它打印出来。然而,由于 echo 它在它上面永远循环。输入命令stty -F /dev/mytty -echo 可以解决这个问题。

所以我的问题是在我的驱动程序代码中是否有可以更改为不默认回显的设置?也许在tty_probe(...)tty_set_operations(...) functinos 中?

【问题讨论】:

  • 这种策略真的不应该由随机的 TTY 驱动程序决定。
  • @IanAbbott 这是给我的特定 tty 驱动程序的 :)
  • 但是您的驱动程序是否有特定的理由偏离规范?毕竟,如果用户需要做一些奇怪的事情,比如cat /dev/mytty,他们可以很容易地禁用回显。也许您没有将该设备用作通用 TTY 端口?
  • @IanAbbott 我只是想用cat 之类的东西来测试它,但我认为一旦我通过了测试阶段,那就没关系了,因为我将以编程方式与 tty 通信(例如与 posix open()/close() 等...)。我想我更愿意为mytty 设备设置回声关闭,因为它没有任何用途。但我总是可以删除那段代码。总而言之 - 除了早期测试之外,不,我没有具体原因 - 除了懒惰?!

标签: c linux linux-kernel linux-device-driver


【解决方案1】:

您可以在调用tty_set_operations() 之前关闭回显,如下所示:

tty_driver->init_termios.c_lflag &= ~ECHO;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    相关资源
    最近更新 更多