Gostaria que meu pi zero inicializasse rapidamente (menos de 1 segundo) usando Linux. Nesse caso, podemos fingir que é um controlador incorporado e não um computador completo (mas lento) padrão.
Você tem alguma dica (adicional) de como atingir esse objetivo?
O que eu já tentei:
- várias opções (como parâmetros do kernel, kernels personalizados nas distribuições std. - arch, raspbian, ajustando as coisas do systemd etc.) - tudo lento em geral
- Encontrei alguns recursos para alterar a cadeia de gerenciadores de inicialização, mas atualmente não consigo ajustá-la nesse nível
- os melhores resultados que consegui alcançar foram fornecidos pelo buildroot
Usando as regras a seguir, sou capaz de inicializar em (aproximadamente) 4 segundos, mas ainda assim, é lento:
- não use initrd
- não use módulos (incorpore os drivers necessários ao kernel)
- não use vários dispositivos (lvm)
- não use ataque
- não use debug
- debugfs
- depuração do kernel (em hacks do kernel)
- não use PCI / PCMCIA
- não use SATA / ATA
- não use o logotipo de inicialização
- não use a biblioteca C completa, como
glibc
- não use otimização para tamanho
- configuração
cmdline.txt
- não use o console serial:
- delete
console=xxx
, onde xxx é a porta serial- editar
/etc/inittab
(desova de getty)- raiz do setup fs type:
rootfstype=ext4
config.txt
- não use o atraso de inicialização:
boot_delay=0
- não use arco-íris:
disable_splash=1
- não se preocupe com o modo de segurança:
avoid_safe_mode=1
Duvido que você consiga inicializar o Pi em aproximadamente 1 segundo.
—
Steve Robillard
Eu acho que o melhor que você pode conseguir é menos de 1 minuto. Se você realmente precisar de uma inicialização rápida para o aplicativo inicializar algo, tente fazer a interface de qualquer sensor com um microcontrolador e faça a instalação, mas faça com que o Pi comece a controlar o microcontrolador (em série?) Assim que ele inicializar.
—
Anonymoose
O piCore (fabricado pelo Tiny Core Linux) pode ser capaz de ir um pouco mais rápido.
—
lights0123