Como fazer uma medição automatizada para o tempo de inicialização de novas imagens?

2

Eu quero gerar imagens para um sistema embarcado e medir automaticamente o tempo que eles levaram para inicializar (especialmente para sistemas diferentes).

Estou usando o Buildroot para gerar minhas imagens do Linux. Eu já conheço os métodos e como aplicá-los, é apenas a questão sobre como fazer a medição do tempo.

ATM para a medição, um Pin GPIO é definido no bootloader de 1º nível para "alto" e o mesmo pino é definido para "baixo" ao entrar no espaço do usuário. Então, com um osciloscópio, o tempo é medido com os cursores manualmente.

Agora para o problema: eu tenho alguns métodos que eu gostaria de ser implementado automaticamente, escolhendo-os em uma interface gráfica e, em seguida, deixe o programa aplicá-los (isso não deve ser um grande negócio). O que eu não tenho tanta certeza é medir o tempo de inicialização depois, quando as imagens estiverem prontas automaticamente.

Alguém tem uma boa ideia para medir o tempo de inicialização?

A única coisa que me vem à mente é confiar nos tempos de impressão do kernel, infelizmente estes medem apenas a hora do kernel.

    
por user3085931 13.03.2014 / 15:19

1 resposta

3

Você pode tentar o bootchart , uma ferramenta projetada para analisar seu procedimento de inicialização e criar um gráfico mostrando quanto tempo foi gasto cada etapa:

After install, simply add these options to your kernel command-line, normally in /boot/grub/menu.lst:

initcall_debug printk.time=y quiet init=/sbin/bootchartd ...

Then - after bootup, run 'pybootchartgui -i' to get an interactive chart rendering tool. If you want to chart the initrd, add rdinitrd=/sbin/bootchartd to the kernel command-line.

To make bootchart2 work best, please ensure your kernel is configured with CONFIG_PROC_EVENTS=y and CONFIG_TASKSTATS=y, without these we are slower, less accurate, and produce an uglier task hierarchy.

If you want to start bootchart2 in a dracut (version >= 008) initramfs, you have to change "init=/sbin/bootchartd" to "rdinit=/sbin/bootchartd" and regenerate the initramfs with bootchart support with "# dracut -f -a bootchart".

Produz imagens como esta:

    
por 13.03.2014 / 15:44