是否有带时间戳的Linux串行终端?

qlzsbp2j  于 2022-12-26  发布在  Linux
关注(0)|答案(5)|浏览(272)

我仍然想检查嵌入式设备的引导装载程序+ Linux启动代码。因此,我想捕捉打印到串行端口的每个命令的时间。

我知道有一些程序,比如putty(我非常推荐),getty,cutecom,picocom,screen等等。但是没有一个能在主机屏幕上给收到的消息添加时间戳(我不是在说日期,更像是从第一次输出到现在已经过了多少毫秒)。

我发现有一个脚本在做我想做的事情,叫做 grabserial,但是它不能正常工作,因为它处理整个输出的速度太慢了。我在另一个论坛上讨论了这个问题(如果你想知道的话:grabserial problem,但它不是本主题的一部分)。所以我不能使用该脚本。

  • 现在再次 *:你能告诉我一个Linux的终端,它给每一行加上时间戳,这是从串行端口接收的吗?

谢谢
[Edit:]我发现cereal有一个相当粗糙的变通方法,它需要一些设置,因为每次使用它都会锁定端口。最后,它添加了实际的日期和时间,而不是启动时间和每一步之间的差异时间,所以你可以看到我仍然在寻找一个合适的解决方案。

yptwkmov

yptwkmov1#

这可能晚了3年,但minicom(https://en.wikipedia.org/wiki/Minicom)支持终端上打印的每一行的时间戳,在Ubuntu中,它可以直接在默认的repos中获得。

ufj5ltwl

ufj5ltwl2#

您可能希望使用strace来监视串行端口。

5w9g7ksd

5w9g7ksd3#

如果你愿意自己构建二进制文件,你可以尝试一个分支picocom(https://github.com/codepox/picocom),它基于picocom 1.7,这个版本有点老。
我已经改进了这个picocom,使它能够显示增量时间或挂钟时间戳。你可以找到它herehttps://github.com/tdwong/picocom-with-timestamp)。你仍然需要自己构建二进制文件。
下面是我如何使用它。注意,N是启用/切换时间戳的命令。

$ picocom -b 115200 /dev/ttyUSB0
  ...
<ctrl-a> N      # enable delta-time timestamp
<ctrl-a> N      # toggle wall-clock timestamp
<ctrl-a> N      # disable timestamp
vsaztqbk

vsaztqbk4#

https://tio.github.io处找到的tio提供各种时间戳选项:

-t, --timestamp

          Enable line timestamp.

       --timestamp-format <format>

          Set timestamp format to any of the following timestamp formats:

          24hour          24-hour format ("hh:mm:ss.sss")

          24hour-start    24-hour format relative to start time

          24hour-delta    24-hour format relative to previous timestamp

          iso8601         ISO8601 format ("YYYY-MM-DDThh:mm:ss.sss")

          Default format is 24hour

在您的情况下,显示自启动以来经过了多少时间,如下所示:

tio -t --timestamp-format 24hour-start /dev/ttyUSB0

也可以在tio配置文件~/.tioconfig中启用设置

qco9c6ql

qco9c6ql5#

我相信ExtraPuTTY是您正在寻找的解决方案。
然而,我不清楚你是想要在Linux上运行还是仅仅能够监视它(SSH到Linux)。如果你不想要Windows解决方案,那么我道歉。

相关问题