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

2番目の出力の問題は、@記号の後に数字[0.037661 @0]が付くことです。この部分文字列をすべて削除した後、bootgraph.plログを解析してSVGを生成できました。

だから私の質問は、この文字列(@ 0)が何を参照しているのかということです。 busybox dmesg出力からこれを削除できますか?

編集する:busybox dmesgボードの起動時にシリアルコンソールを表示すると(2番目の形式)と同じメッセージが表示されるため、@digit問題はバージョン3.14.29以降の形式が他の古いカーネルに関連しているようです。カーネル?それともマザーボードのベンダーがカーネルに追加しましたか?

ベストアンサー1

おすすめ記事