busybox dmesg 旧时间戳格式

busybox dmesg 旧时间戳格式

我正在开发一个运行旧内核(3.14.29)的 arm 板。

我试图获取dmesg输出并将其传递给bootgraph.pl生成内核启动顺序的 SVG。但是将dmesg输出传递给bootgraph.pl我后得到:

Illegal division by zero at bootgraph.pl line 179

经过一番挖掘,我发现busybox dmesg输出的时间戳不标准。

例如,在dmesgutil-linux 提供的标准中,输出是这样的:

[    0.037644] calling  trace_init_flags_sys_exit+0x0/0x14 @ 1
[    0.037650] initcall trace_init_flags_sys_exit+0x0/0x14 returned 0 after 0 usecs
[    0.037656] calling  trace_init_flags_sys_enter+0x0/0x14 @ 1
[    0.037661] initcall trace_init_flags_sys_enter+0x0/0x14 returned 0 after 0 usecs
[    0.037666] calling  init_hw_perf_events+0x0/0x150 @ 1
[    0.037670] hw perfevents: enabled with arm/armv8-pmuv3 PMU driver, 7 counters available
[    0.037697] initcall init_hw_perf_events+0x0/0x150 returned 0 after 0 usecs
[    0.037701] calling  cpu_suspend_init+0x0/0xa4 @ 1
[    0.037707] initcall cpu_suspend_init+0x0/0xa4 returned 0 after 0 usecs
[    0.037713] calling  spawn_ksoftirqd+0x0/0x64 @ 1
[    0.057161] initcall spawn_ksoftirqd+0x0/0x64 returned 0 after 19531 usecs

而输出busybox dmesg如下所示:

[    0.037644@0] calling  trace_init_flags_sys_exit+0x0/0x14 @ 1
[    0.037650@0] initcall trace_init_flags_sys_exit+0x0/0x14 returned 0 after 0 usecs
[    0.037656@0] calling  trace_init_flags_sys_enter+0x0/0x14 @ 1
[    0.037661@0] initcall trace_init_flags_sys_enter+0x0/0x14 returned 0 after 0 usecs
[    0.037666@0] calling  init_hw_perf_events+0x0/0x150 @ 1
[    0.037670@0] hw perfevents: enabled with arm/armv8-pmuv3 PMU driver, 7 counters available
[    0.037697@0] initcall init_hw_perf_events+0x0/0x150 returned 0 after 0 usecs
[    0.037701@0] calling  cpu_suspend_init+0x0/0xa4 @ 1
[    0.037707@0] initcall cpu_suspend_init+0x0/0xa4 returned 0 after 0 usecs
[    0.037713@0] calling  spawn_ksoftirqd+0x0/0x64 @ 1
[    0.057161@0] initcall spawn_ksoftirqd+0x0/0x64 returned 0 after 19531 usecs

第二个输出中的问题是 @ 符号及其后面的数字 [0.037661 @0] ,删除所有出现的该子字符串后bootgraph.pl能够解析日志并生成 SVG。

所以我的问题是这个字符串 (@0) 指的是什么?我可以将其从 busybox dmesg 输出中删除吗?

编辑:busybox dmesg请注意,在主板启动时查看串行控制台,我看到与(带有 的第二种格式)相同的消息@digit,所以我认为问题与具有不同格式的旧内核有关,那么在3.14.29版本之后的内核?或者这是由主板供应商添加到内核中的?

相关内容