私は古いカーネル(3.14.29)を実行するarmボードを開発しています。
dmesg
出力を取得して渡そうとします。bootgraph.plカーネルブートシーケンスのSVGを生成します。ただし、dmesg
出力を渡した後、bootgraph.pl
次のようになります。
Illegal division by zero at bootgraph.pl line 179
busybox dmesg
もう少し調べた後、タイムスタンプ出力が標準ではないことがわかりました。
たとえば、dmesg
util-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以降の形式が他の古いカーネルに関連しているようです。カーネル?それともマザーボードのベンダーがカーネルに追加しましたか?