저는 오래된 커널(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
두 번째 출력의 문제는 @ 기호 뒤에 숫자 [0.037661 @0
]가 붙는 것입니다. 이 하위 문자열을 모두 제거한 후 bootgraph.pl
로그를 구문 분석하고 SVG를 생성할 수 있었습니다.
그래서 제 질문은 이 문자열(@0)이 무엇을 참조하는지 입니다. busybox dmesg 출력에서 이를 제거할 수 있나요?
편집하다:busybox dmesg
보드가 부팅될 때 직렬 콘솔을 보면 (두 번째 형식)과 동일한 메시지가 표시되므로 @digit
문제는 버전 3.14.29 이후의 형식이 다른 이전 커널과 관련된 것 같습니다. 커널? 아니면 마더보드 공급업체가 커널에 추가한 것입니까?