Estou trabalhando em uma placa de braço executando um kernel antigo (3.14.29)
Estou tentando obter a saída dmesg
e passá-la para o bootgraph.pl para gerar um SVG da sequência de inicialização do kernel.
No entanto, depois de passar a dmesg
output para bootgraph.pl
, obtenho:
Illegal division by zero at bootgraph.pl line 179
Após algumas pesquisas, descobri que o registro de data e hora da saída busybox dmesg
não é padrão.
Assim, por exemplo, no padrão dmesg
fornecido pelo util-linux, a saída é esta:
[ 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
enquanto a saída do busybox dmesg
se parece com o seguinte:
[ 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
O problema na segunda saída é o sinal @ e o número após ele [0,037661 @0
], depois de remover todas as ocorrências desta% substringbootgraph.pl
foi capaz de analisar o log e gerar o SVG.
Então, minha pergunta é a que esta string (@ 0) se refere e posso removê-la da saída do busybox dmesg?
EDITAR: observe que, olhando para o console serial enquanto o quadro é inicializado, vejo as mesmas mensagens que o busybox dmesg
(o segundo formato com o @digit
), Então eu acho que o problema relacionado ao kernel antigo ter um formato diferente, Então houve alguma mudança em relação a isso no kernel após a versão 3.14.29? ou isso é adicionado ao kernel pelo vendedor de cartão?