2009-06-10 15 views
8

Quiero codificar controladores en C en Linux OS, aunque creo que es muy difícil. ¿Puedo obtener algunas sugerencias sobre cómo comenzar o qué libros seguir? Los controladores pueden ser desde mi puerto USB a la tarjeta gráfica.cómo codificar los controladores?

Sé dónde puedo buscar libros, me gustaría saber en cuanto a qué conocimientos básicos debo comenzar. ¿Necesito tener conocimientos de hardware y qué libros específicos son buenos para principiantes como yo?

+9

comienzan con no terminar cada frase con "!!". ;-) –

Respuesta

4

try amazon !! hay muchos libros allí para los conductores. algunos tienen muestras 2 !!

+5

¿Por qué el voto a favor? Me gusta cómo el estilo coincide con la pregunta. – aib

+1

Porque no se considera * útil *, creo. – Roddy

7

"Linux Device Drivers" (el libro O'Reilley) de Rubini y Corbet es el libro definitivo para controladores de dispositivos Linux.

¡Genial! vea la versión gratuita en PDF en la respuesta de Roddy & ¡El comentario de Kristina!

+1

La tercera edición también está disponible de forma gratuita en línea en http://lwn.net/Kernel/LDD3/. – kristina

3

Antes de saltar al diseño de controladores, primero debe obtener habilidades C excepcionales y, probablemente, algunos conocimientos de kernel de Linux. Diseñar controladores no es trivial y podría asustarte si no estás acostumbrado a programar en un nivel bajo.

Podría recomendar The C programming Language si no está acostumbrado a C, ya que es, en mi opinión, el manual sobre C si tiene algún fondo de programación.

+4

Las habilidades de Solid C son sin duda una buena idea, pero no hay nada de miedo en el desarrollo del núcleo y del controlador. Lo que está en juego es mayor cuando comete un error. :-) –

0

Basta con mirar los códigos fuente de los controladores actuales. Escribí el controlador usb rndis leyendo solo los comentarios que aparecen encima de los códigos.

Obtenga la fuente del kernel y consulte el directorio/drivers. Los controladores USB están en el directorio usb, sin embargo, los controladores usb de las redes se encuentran en/net/usb.

Puede leer un montón leyendo los comentarios.

2

conductores difieren mucho en complejidad dependiendo del dispositivo. Los controladores USB están en el lado simple del espectro; Los controladores de GPU son enormemente complejos e incluso los autores de esos controladores generalmente no saben todo lo que hacen. Mi recomendación sería centrarme en los controladores para el hardware que a usted personalmente le importa, en lugar de tratar de ser un chatarra de hardware; será más fácil a largo plazo.

Las respuestas de todos los demás sobre las fuentes de documentación y varias cosas para leer son muy acertadas y realmente debería aceptar una de ellas.

Muchas de las comunidades de controladores más complejas también tienen su propia información específica de dominio. Si desea escribir un controlador de GPU, las comunidades de DRI/DRM y Mesa tienen sus propios wikis y listas de correo que le ayudarán mucho, así como su propia documentación. http://dri.freedesktop.org/ es un lugar de partida decente, como es http://wiki.x.org/.

Espero que esto ayude!

Cuestiones relacionadas