我仍然想检查我的 Bootloader + Linux Startupcode 以获得嵌入式设备。因此,我想捕捉打印到串行端口的每个命令的时间。
我知道有像 putty(我强烈推荐)、getty、cutecom、picocom、screen 等程序。但是这些都没有在主机屏幕上的传入消息中添加时间戳(我不是真的在说话关于日期,更像是自第一次输出以来经过了多少毫秒)。这实际上听起来没什么大不了的。
我发现有一个脚本在执行我想要的操作,称为 grabserial 但它无法正常工作,因为它处理整个输出的速度很慢。我在另一个论坛上讨论过这个问题(如果你想知道:grabserial problem 但它不是主题的一部分)。所以我不能使用那个脚本。
现在再次:你能告诉我一个 Linux 终端,它为从串行端口接收到的每一行添加时间戳吗?
谢谢
[编辑:]我发现了一个非常粗糙的workaround与cereal,它想要一些设置,因为它会在您每次使用它时锁定端口。最后,它添加了实际日期和时间,而不是每个步骤之间的启动时间和差异时间,所以你可以看到我仍在寻找合适的解决方案。
这可能晚了 3 年,但 minicom (https://en.wikipedia.org/wiki/Minicom) 支持终端上打印的每一行的时间戳。在 Ubuntu 中,它在默认存储库中直接可用。
tio 位于 https://tio.github.io 提供了各种时间戳选项:
-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 中启用设置
你可能想看看使用 strace 来监视串口。请参阅如何在 Linux 中监视串行端口上的数据?
如果你愿意自己构建二进制文件,你可以尝试一个分支的 picocom (https://github.com/codepox/picocom)。这是基于有点旧的picocom 1.7。
我已经分叉并增强了这个 picocom 并使其能够显示增量时间或挂钟时间戳。你可以在这里(https://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
我相信 ExtraPuTTY 是您正在寻找的解决方案。
但是,我不清楚你是想让某些东西在 Linux 上运行,还是只是为了能够监控它(SSH 到 Linux)。如果您不想要 Windows 解决方案,那么我深表歉意。
2023-05-05 编辑:抱歉,我不知道我 8 年前提供的链接现在转到了某个咨询公司。我当时用的是extraputty,并没有刻意链接一个公司来推广。 Here 是 archive.org 的链接,显示了我发表这篇文章时的网站。