¿Qué se podría hacer para que Embedded Linux arranque más rápido?

¿Qué se podría hacer para que Embedded Linux arranque más rápido?

Mi equipo está desarrollando un software para una solución Linux integrada. El problema al que nos enfrentamos es que el sistema tarda demasiado en estar listo para comenzar a ejecutar las aplicaciones que deseamos (es decir, demasiado tiempo para cargar el kernel de Linux). Generalmente se necesitan entre 38 y 43 segundos para que esto suceda. Ya revisamos la configuración del kernel eliminando los archivos que sabíamos que no necesitábamos, pero todavía está tomando mucho tiempo.

Mis preguntas: ¿qué más se puede hacer para que el inicio del kernel sea más rápido (preferiblemente sin cambios en el hardware)? ¿Es normal que un Linux Embebido tarde tanto en cargarse? ¿Es posible pedirle al kernel de Linux que inicie nuestras aplicaciones antes de que esté completamente cargado?

El sistema es un Texas Instruments.OMAP L138.

Lo que sigue son imágenes con todos los mensajes más relevantes que se muestran en la Terminal cuando se inicia el kernel. Si no tiene una respuesta (general) para mis preguntas, pero sabe algo sobre una de las líneas que podría ayudar a mejorar la velocidad de arranque del kernel, ¡no dude en responder también!

Primera parte Segunda parte Tercera parte Cuarta parte Parte quinta

Respuesta1

En su salida, el punto donde realmente se carga el kernel es este:

Init version 2.86 booting

Que es después de 23 segundos. Después,en eso, un proceso del espacio de usuario, toma el control y comienza la configuración del espacio de usuario, aunque esto inevitablemente provoca la activación de varios controladores del kernel, posiblemente incluyendo la carga de módulos apropiados.

No ha dicho qué plataforma es esta, pero en, por ejemplo, la Raspberry Pi de un solo núcleo de 700 Mhz, esto es ~ 4 segundos. Entonces esto todavía es muy lento, lo que indica un problema.

Si restamos el intervalo entre 0 y 19 segundos, queda lo que se podría esperar. Esta brecha termina con un comentario sobre MII PHY:este es un controlador de dispositivo ethernet. Si es posible arrancar el sistema sin conexión a red, puede confirmarlo configurando el controlador de Ethernet fuera del kernel y ver si eso es más initrápido.

Después de la marca de 23 segundos, el principal cuello de botella probablemente será la E/S en el sistema de archivos raíz. Por alguna razón, hay un intervalo de 5 segundos entre 25 y 30 segundos que termina con un comentario sobre un error del sistema de archivos FAT. De hecho, hay algunos errores de fs allí. Esto implica que el sistema de inicio está intentando montar sistemas de archivos que no existen, lo que será una pérdida de tiempo.

Entre 33 y 37 segundos tienes más errores indicativos de meteduras de pata que involucrancómo se organizan los sistemas de archivos y/o cómo se configura el software que depende de ellos. Una de estas dependenciaspodríaser un sistema de archivos tmpfs que se supone que se creó en la RAM pero falló (por lo tanto, faltan archivos en /var/y /tmp). Puede hacer una pregunta por separado publicando la suya /etc/fstaby pidiéndole a alguien que la explique, si el punto aquí no está claro.

información relacionada