Boot Rápido na Beagle

31 views
Skip to first unread message

José Fernando

unread,
Jul 11, 2013, 5:41:17 PM7/11/13
to sis_emb...@googlegroups.com
Olá Pessoal,

acredito que muitos de vocês estejam mexendo com uma Beagle ou pelo menos com Linux embarcado.
Tenho um protótipo montado com a BeagleBone usando um display de 15 polegadas, som, touch, etc.. Utilizei o Buildroot para criar minha distribuição e toolchain e subo uma aplicação leve baseada no QT. Estou com um tempo de boot de aproximadamente 15 s, mas o requisito do meu produto é de apenas 5s ! Vi que até terminar a descompactação do kernel ele já perde uns 9 segundos.

Alguém sabe o caminho das pedras para baixar este tempo? 

Abs,

José Fernando



Diego Sueiro

unread,
Jul 11, 2013, 8:15:13 PM7/11/13
to sis_emb...@googlegroups.com

Olá Fernando,

9s para carregar e descompactar o kernel? Isso realmente é muito tempo.
Aqui vão algumas sugestões, não sei se todas vão se aplicar ao teu caso.
1. Zerar o bootdelay do u-boot. O problema é que com isso vc não vai mais conseguir parar o boot na console do u-boot.
2. Residir os bootloaders (x-loader e u-boot), kernel e rootfs na NAND. Os tempos de leitura  e carregamento em RAM costumam ser menores.
3. Compilar o kernel apenas com os configs necessários para a tua aplicação. Além de reduzir em tamanho vai reduzir o tempo de carga.
4. Deixar nos init scripts apenas o necessário.
5. Compilar os artefatos de software com hard floating point.

Pode ser que o pessoal da lista tenham mais idéias.

--
* dS
Diego Sueiro
Sent from my droid phone.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "sis_embarcados" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para sis_embarcado...@googlegroups.com.
Para postar neste grupo, envie um e-mail para sis_emb...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/sis_embarcados.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Caio

unread,
Jul 12, 2013, 7:50:30 AM7/12/13
to sis_emb...@googlegroups.com
Fernando já buscou no elinux.org? Tem uma material muito interessante.
As dicas que o Diego Sueiro passou são muito importantes e não mais
fáceis de implementar.
A a otimização de processo de boot (inicializar em poucos segundos -
http://www.theregister.co.uk/2009/07/14/montavista_boasts_1sec_linux_boot//)
é bem relacionada com a regra de de pareto (80% do esforço para 20%
de funcionalidades) , Boot muito rápido tem a necessidade de hardware
diferenciado também (memória NOR com possibilidade de bootar com o
kernel descomprimido).
http://www.elinux.org/Boot_Time
http://processors.wiki.ti.com/index.php/Optimize_Linux_Boot_Time

Abraços e Boa sorte!

Caio Pereira
--
----------------------------------------------
Caio Pereira

José Fernando

unread,
Jul 12, 2013, 8:58:54 AM7/12/13
to sis_emb...@googlegroups.com
Obrigado pelas dicas, Diego e Caio,

pelo que estou entendendo vai ser mais interessante eu pula parar uma BeagleBlack ou outro projeto equivalente como o do pessoal da Compulab que estão lançando uma placa com mesmo processador da Beagle, mas vem com a flash no barramento. Desta forma devo ganhar tempo no acesso (bem mais rápido que o cartão SD) e também poderei gravar o kernel descomprimido. Acredito que por este caminho poderei chegar perto dos 5s. 

Abraços

José Fernando

Diego Sueiro

unread,
Jul 13, 2013, 7:42:14 AM7/13/13
to sis_emb...@googlegroups.com
José Fernando,

Eu acho que antes de trocar de plataforma de hardware você pode tentar algumas otimizações de sw. Talvez apenas mudando a plataforma você não consiga reduzir esse tempo em 3x.
Se essas otimizações não atingirem o seu target de tempo você poderá utilizá-las na outra plataforma de hardware.
Aqui vão algumas dicas (algumas repetidas do e-mail anterior):
  1. U-boot: Zerar o "bootdelay"[1], configurar o "bootcmd"[1] apenas com os comandos necessários para o boot do kernel.
  2. Kernel: Realizar o config do kernel a partir de um "make allnoconfig"[2] e ir adicionando apenas o necessário para a tua distribuição. Compilar alguns drivers e features como módulos que serão carregados apenas quando necessários.
  3. Processo de Init paralelizado: Isso você consegue com o Systemd[3].
  4. Sistema de arquivos: Ter controle total de todos os pacotes que vão na sua imagem. Você pode conseguir isso como Yocto Project[4].
  5. Compilar os artefatos de software com hard floating point e opções de otimização e performance[5].

O que precisa estar "de pé" em 5 segundos?
  • Console do sistema;
  • Apenas um splashscreen ou boot animation para entreter o usuário;
  • A aplicação e o sistema totalmente funcional;





Abraços,

--
*dS
Diego Sueiro

Administrador do Portal Embarcados
www.embarcados.com.br

Engenheiro de Controle e Automação
UNIVERSIDADE FEDERAL DE ITAJUBÀ

/*long live rock 'n roll*/


2013/7/12 José Fernando <jose...@gmail.com>

Joao Scheffer

unread,
Jul 13, 2013, 9:43:39 AM7/13/13
to sis_emb...@googlegroups.com
mas bah, que legal.

qual site da compulab, pra acompanhar o lançamento ?

joao

Flavio Castro Alves Filho

unread,
Jul 14, 2013, 6:48:59 PM7/14/13
to sis_emb...@googlegroups.com
Considerando uma situação de flash interna ... uma vez eu vi uma demo
do pessoal da Montavista que deixava o kernel descompactado na flash
em uma aplicação automotiva. O acesso à flash era por DMA. Mesma coisa
para o initramfs (no caso deles, tinha isso :-D).

O tempo de boot era impressionante ... com IHM em QT também ...
parecia microcontrolador.

Segue o vídeo.

http://www.youtube.com/watch?v=-l_DSZe8_F8
--
Flavio de Castro Alves Filho

flavio...@gmail.com
www.linuxembarcado.com
Twitter: http://twitter.com/#!/fraviofii
LinkedIn profile: www.linkedin.com/in/flaviocastroalves

José Fernando

unread,
Jul 15, 2013, 11:01:15 AM7/15/13
to sis_emb...@googlegroups.com
Obrigado Diego,

eu tenho que subir a aplicação em 5 s!

José Fernando

unread,
Jul 15, 2013, 11:59:19 AM7/15/13
to sis_emb...@googlegroups.com
Oi João,

o site da Compulab é http://compulab.co.il/. Eles lançaram uma placa baseado no processador da BeagleBone http://compulab.co.il/products/computer-on-modules/cm-t335-computer-on-module/ . A maior vantagem que eu vejo é o road map de fornecimento que os Beagles não tem.

Abraços,

José Fernando

Caio

unread,
Jul 15, 2013, 5:20:08 PM7/15/13
to sis_emb...@googlegroups.com
@José Fernando,

Esbarrei nesse link, acho que pode te ajudar

http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Boot_Time_Reduction
--
----------------------------------------------
Caio Pereira

Flavio Castro Alves Filho

unread,
Jul 15, 2013, 6:56:52 PM7/15/13
to sis_emb...@googlegroups.com
Eu gosto bastante de Compulab também.

Eles possuem módulos interessantes tanto de TI quando de Freescale.

Em 15 de julho de 2013 12:59, José Fernando <jose...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages