19 votos

Más pequeño incrustado distro de linux?

Me gustaría preguntar a los expertos.. ¿Cuál es la mejor distro de linux embebido para:

  • Memoria Flash ~ 700Kb
  • Ram ~ 256Kb
  • Procesador: High end arm cortex M3 (algo de STM32 de la familia por ejemplo)

Módulos necesarios: - Núcleo Kernel - Controlador básico conjunto: USB/Red (WiFi - Sin AP, sólo cliente, no de seguridad)/SPI, Uart/I2C

Es esto posible o estoy soñando?

La idea es utilizar un 5$ alta de fin de CortexM3 y no usar ninguna de las memorias externas para que yo pueda disfrutar de el listo controladores para SDIO/WiFi etc.

  • He actualizado la pregunta, con la aclaración de WiFi. WiFi en el sentido de que es una simple carrera de la fábrica de cliente. Nada de lujo, tal vez wep si me pueden encajar.

  • Otra actualización: ¿uCLinux?

26voto

Dominika Puntos 31

Yo diría que estás soñando. El principal problema será la limitada memoria RAM.

En 2004, Eric Beiderman las arreglé para conseguir un kernel de arranque con 2,5 MB de RAM, con un montón de funcionalidad eliminado.

Sin embargo, eso fue en x86, y estamos hablando de BRAZO. Así que trató de construir el más pequeño posible del BRAZO kernel, para el 'versátil' plataforma (uno de los más simples). He desactivado todas las opciones configurables, incluyendo los que usted está buscando (USB, WiFi, SPI, I2C), para ver cómo la pequeña se iba a conseguir. Ahora, me estoy refiriendo a que el kernel de aquí, y esto no incluye cualquier espacio de usuario componentes.

La buena noticia es que se ajuste en su flash. El resultado zImage es 383204 bytes.

La mala noticia: con 256kB de RAM, no será capaz de arrancar:

$ size obj/vmlinux
  text     data     bss     dec     hex filename
734580    51360   14944  800884   c3874 obj/vmlinux

El .segmento de texto es más grande que tu memoria RAM disponible, de modo que el núcleo no se puede descomprimir, digamos asignar memoria para arrancar, y mucho menos correr nada útil.

Una solución sería el uso de la ejecución en el lugar de apoyo (CONFIG_XIP), si su sistema admite que (es decir, se puede obtener instrucciones directamente desde Flash). Sin embargo, significa que el kernel necesita para adaptarse a comprimir en flash, y 734kB > 700kB. También, el .y de datos .bss secciones total 66kB, dejando apero 190kB para todo lo demás (es decir, todos asignados de forma dinámica las estructuras de datos en el núcleo).

Eso es sólo el núcleo. Sin los controladores que necesitas, o cualquier espacio de usuario.

Así que, sí, vas a necesitar un poco más de RAM.

5voto

Kris Puntos 172

De la OMI, estás soñando. Especialmente con USB, redes y 802.11 o wi-fi. Yo no creo que usted puede hacer eso y M3 es realmente un tramo.

OpenWRT es una de las más pequeñas y más integrado distro de Linux que conozco para la creación de redes y es difícil conseguir que en virtud de 2MB, esp con Wifi.

Pruebe a buscar en alto-extremo del BRAZO de fichas si eso es lo que realmente quieres, o ir con la Broadcom o Atheros SoC que actualmente son comunes en los routers.

4voto

Sam Warwick Puntos 2304

¿Tienes MMU en el procesador? Si no es posible que desee buscar en: http://www.uclinux.org/ que debe dar mucho más pequeño el tamaño del núcleo de lo mencionado. Funciona para algunos CortexM3 chips de Atmel, por lo que podría trabajar para los suyos. No lo he utilizado, así que esto es sólo una especulación. Doh, acabo de ver que la pregunta había sido actualizado - bueno, si usted no tiene la MMU (probablemente no) no se puede usar "normal" kernel y usted tendrá que usar la ucLinux.

2voto

N West Puntos 576

Usted puede ser que desee considerar NuttX como una alternativa si usted realmente desea compatibilidad con POSIX en un pequeño, no MMU plataforma.

0voto

ProgramME Puntos 141

uCLinux probablemente va a funcionar. Sin embargo, no tendrá protección de memoria en el sistema ya que no tienen la MMU. Esto significa que cualquier accidente en cualquier aplicación podría traer abajo todo el sistema. Usted también puede encontrar problemas de fragmentación de memoria sin la MMU. ¿Por qué no buscar en una de las TI Sitaras? Todavía son bastante baratos y se puede ejecutar completo de Linux en ellos, que va a ser mucho más flexible.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X