Linux a bordo sin módulos de terceros. ¿Donde empezar? [cerrado]

0

Me gustaría poder diseñar mi propia placa de Linux de la misma manera que diseño mis propias placas de microcontrolador. Obviamente, la complejidad va a ser mayor desde el punto de vista del diseño y ensamblaje de PCB, pero puedo manejarlo.

Lo que no entiendo es la parte del software. Todo lo que se necesita para conseguir que Linux se ejecute en una CPU. ¿Hay algunas opciones que te hagan la vida fácil? Como elegir un procesador donde el fabricante proporciona componentes de software XYZ.

En realidad, para empezar, ni siquiera sería capaz de ir totalmente a la medida con la elección del procesador. Estoy feliz de utilizar un procesador (o sus variantes) siempre que pueda colocarlo en un tablero personalizado que diseño.

    
pregunta Dojo

4 respuestas

4

Comprendo que quieres saber cómo hacer que un procesador funcione con Linux sin tener tantos problemas. Le daré una respuesta basada en mi experiencia, pero eso siempre ha funcionado hasta ahora, ya que creo que podría ser útil para usted. Por lo tanto, es bastante específico para un caso particular, que puede copiar o tomar como referencia para un procesador diferente. Si no es lo que buscas, no hay problema :-)

Cuando se trata de la parte del software, como sugirieron algunos colegas, necesitaría un Kernel de Linux que sea compatible con el microprocesador o la arquitectura elegidos, una forma de Arranque (como U-Boot) para el sistema y el sistema de archivos . De ahora en adelante me referiré a todo el asunto como kernel.

En primer lugar, recomiendo usar una herramienta que automáticamente le dé todo el núcleo para que sea más fácil. Recomiendo Buildroot o Yocto / Poky . La siguiente imagen muestra un núcleo completo mapeado en Flash, para que tenga una idea. En lugar de tener que obtener cada una de las capas una por una, estas herramientas proporcionan la pila completa a la vez para la arquitectura elegida.

Sipuedeelegirsumicroprocesador(porsupuesto,tienequesercompatibleconLinux).Recomiendoirconla familia AT91 . Incluye todas las tarjetas SAMA5Dx así como AT91SAM9x5. Son algunos de los procesadores más simples que pueden ejecutar Linux. En este enlace puede ver, paso a paso, cómo obtener su núcleo completo con Buildroot. Recuerda que puedes decidir arrancar el kernel desde un o desde un < a href="http://www.at91.com/linux4sam/bin/view/Linux4SAM/Sama5d3XplainedMainPage#Create_a_SD_card_with_the_demo"> tarjeta SD (o micro SD). Ambos métodos se explican en la guía.

Además, estas placas tienen un kit de evaluación en el que puede verificar que su kernel funciona y aprender a implementarlo con anticipación. Tendrá los esquemas del kit de evaluación y la guía de diseño de PCB para que sea más fácil. Finalmente, como algunos otros dijeron, necesitarías suficiente RAM, pero eso también se muestra en los esquemas.

No sé si la respuesta sería útil para usted, pero pensé que podría ser. Siempre puede buscar guías similares de otros fabricantes o intentar utilizar Buildroot para un procesador específico desde el principio. ¡Mucha suerte!

Fuentes:

AT91 Linux4SAM

Buildroot

Yocto / Poky

    
respondido por el user175624
2

La CPU no va a ser la parte difícil, solo configuras una cadena de herramientas de compilación cruzada para eso, eso es todo, son los periféricos integrados en el chip los que te dan dolor de cabeza.

Necesitas un árbol de dispositivos adecuado para eso y esto va a ser difícil, trabajo manual. Recomiendo hacer este árbol de dispositivos lo más simple posible. Algunas definiciones de RAM y Flash, un medio para una consola serie, nada más. Así que puedes ver los mensajes del kernel mientras arranca.

Otro obstáculo difícil es tener un cargador de arranque que admita el SoC que usas. Básicamente es lo mismo de nuevo pero menos flexible que el kernel de Linux. Una vez más, debe ajustar un cargador de arranque existente para que tenga la configuración correcta para RAM, Flash y una consola serie.

Si desea simplificar su vida, elija un SoC para el que ya exista un entorno de desarrollo Linux. Busque el proyecto OpenWRT, tiene docenas de SoC para elegir. Algunos pueden estar disponibles gratuitamente.

Tan pronto como el kernel arranque, puede continuar con el siguiente trabajo tedioso. Compile libc y todo el software que desee utilizar para la CPU de destino. Mientras compila, piense en los controladores de dispositivo adicionales que necesita.

    
respondido por el Janka
1

Necesitas:

  • Un núcleo creado para admitir la arquitectura de destino, incluida la endianidad
  • Un medio para iniciar realmente el kernel en la plataforma de destino (por ejemplo, U-Boot )
  • Controladores incluidos en el kernel de arranque o en el kernel initrd para el hardware requerido (por ejemplo, la consola serie; consulte también "árbol de dispositivos")

El hardware en sí necesita tener suficiente RAM para ejecutar Linux. No es un proyecto particularmente simple. Podría ser mejor comenzar con el diseño de otra persona, por ejemplo, enlace

    
respondido por el pjc50
-1

Lo que básicamente se necesita para una plataforma Linux incorporada, es un paquete de soporte de placa. El beneficio de una placa OTS es que esto generalmente viene con el hardware.

Puedes tener un procesador estándar y compatible, pero para ejecutar Linux necesitarás periféricos, flash y ram solo por nombrar algunos. La configuración de todo eso, el lugar donde se ejecuta el gestor de arranque y mucho más, todo debe definirse. Es solo un montón de trabajo y usted necesita saber qué está haciendo para que no funcione.

También puede buscar las distribuciones compatibles de un procesador en particular y copiar el diseño para el que está diseñado (si está disponible y abierto).

Nada comparado (en cuanto a complejidad) a la configuración de puertos y periféricos de un microcontrolador.

    
respondido por el gommer

Lea otras preguntas en las etiquetas