Soy bastante nuevo en el mundo integrado, así que perdónenme si esto parece obvio.
Estoy trabajando en una placa basada en AT91SAM9260. Tengo 256 MB de flash y 64 MB de RAM. La configuración actual muestra dos uImages. La primera es una imagen de recuperación solo de RAMDISK, y la segunda es la uImage principal. El primero se utiliza para actualizar rootfs.ubifs en /dev/mtd1 para la uImage principal.
Uno de los problemas que encuentro es quedarme sin memoria al actualizar los rootfs de la imagen de recuperación. Dependiendo del tamaño de rootfs, se queda sin memoria mientras parpadea. Estoy usando TFTP para colocar la imagen en el dispositivo y mostrarla. Por lo tanto, debe residir en la memoria junto con la uImage de recuperación.
¿Existe quizás una forma más eficiente de hacer esto? Si bien el objetivo es mantener nuestros rootfs pequeños, obviamente, dado que se trata de un dispositivo integrado, algunos de nuestros clientes tienen necesidades diferentes y no les importa que el sistema operativo ocupe más memoria flash.
Respuesta1
Podría intentar eliminar algún proceso (servicios como samba, snmp...) antes de flashear (suponiendo que el reinicio se realice cuando se complete la actualización) para obtener más memoria disponible.