ultima torvalds linus kernels descargar como linux linux-kernel kernel linux-device-driver

torvalds - linux kernel version



Nuevo en el desarrollo de Linux Kernel/Driver (2)

Dado un archivo C, debe mirar las funciones que llama y las estructuras de datos que utiliza, en lugar de preocuparse por archivos particulares.

Hay dos rutas básicas para desarrollar su propio controlador de dispositivo:

  • Toma un conductor que sea similar al tuyo; elimine el código que no sea aplicable a su dispositivo y complete el nuevo código para su dispositivo.
  • Comience con las piezas muy básicas de un controlador de dispositivo, y agregue piezas poco a poco hasta que su dispositivo comience a funcionar.

Los archivos que componen su controlador tendrán más sentido a medida que complete este proceso. Considere lo que pertenece a cada archivo, pero hasta cierto punto, dividir un controlador entre archivos es más un arte que una ciencia. Los controladores más pequeños a menudo caben en uno o dos archivos.

Un poco de diseño también puede ser bueno. Considere qué hace su dispositivo y qué necesitará hacer su controlador. Sobre esta base, debería poder definir qué funciones necesitará tener un controlador de dispositivo.

También creo que los controladores de dispositivos Linux, tercera edición, pueden ayudarlo a encaminarse hacia el desarrollo de controladores.

Los archivos de Linux incluyen archivos basados ​​en lo que hacen, en qué capa están y en qué capa acceden a la pila de llamadas. The Big Picture realmente informa cómo cada archivo está relacionado con el siguiente.

Recientemente, comencé a desarrollar un controlador de un dispositivo integrado que ejecuta Linux.

Hasta ahora solo he leído sobre linux internals.
Al no tener experiencia previa en el desarrollo de conductores, me resulta un poco difícil aterrizar mi primer paso.

  • He descargado el código fuente del kernel (v2.6.32).
  • He leído (skimped) los controladores de dispositivos de Linux (3e)
  • Leí algunas publicaciones relacionadas aquí en StackOverflow.
  • Entiendo que Linux tiene un enfoque "monolítico".
  • He construido el kernel (incluido el controlador existente en menuconfig, etc.)
  • Sé lo básico de los archivos kconfig y makefile, por lo que no debería ser un problema.

¿Puede alguien describir la estructura (es decir, los inter-enlaces)?
de los diversos directorios en el código fuente del kernel.

En otras palabras, dado un archivo de código fuente,
¿A qué otros archivos se referiría para el código relacionado?

(Los "#include" -s proporcionan una idea parcial)

¿Podría alguien ayudarme por favor a tener una mejor idea?
cualquier ayuda será apreciada

Gracias.


Tuve que arreglar un controlador del kernel una vez. Mi mayor consejo (si usas vim) es configurarlo con ctags para que puedas saltar alrededor de la fuente del kernel con ctrl-] cada vez que veas una función que no entiendas.