Cómo crear tus propios drivers para linux.

6 03 2008

El tema es para tratar de orientar sobre como crear drivers para linux, ya que no abundan estos temas por la red (al menos en español) está explicado en dos fases:

  • Aprende programación
  • Crea los drivers

Y un extra:

  • Cursos de inglés.

Paso I: Aprende Programación:

http://www.ubuntu-es.org/index.php?q=node/24400

http://www.ubuntu-es.org/index.php?q=node/77017

En toda comunicación hay un emisor (tu), un receptor (la computadora) y un lenguaje.

La forma de comunicarnos con las computadoras es por medio de lenguajes de computación, han evolucionado con el tiempo para facilitarnos a nosotros la comunicación con ellas.

Los hay de bajo nivel (código máquina), nivel medio (Lenguaje C), alto nivel (Basic). Los lenguajes de bajo nivel son mas difíciles de aprender, los de nivel medio son mas fáciles y los mas sencillos de aprender son los lenguajes de alto nivel.


* Conoce y trabaja el lenguaje C

Qué software de programación usar?

http://elqui.dcsc.utfsm.cl/util/C/Tutorial-C/cursc.html#Programas

Si usas escritorio gnome puedes usar anjuta http://lliurex.net/home/files/documentacion/es/html509/ch34.html

Si usas escritorio kde puedes usar kdevelop http://www.estrellateyarde.es/discover/manual-c-kdevelop-en-linux


* Conoce el lenguaje de las máquinas.

http://es.wikipedia.org/wiki/C%C3%B3digo_m%C3%A1quina



Paso II:
Descarga el LDKK, acá es donde empieza el trabajo (aunque luego de lo anterior esto es pan comido):

Descarga:http://kernel.org/pub/linux/kernel/people/gregkh/ddk/http://www.laneros.com/showthread.php?t=68134http://www.ubuntu-es.org/index.php?q=node/17847http://groups.google.cl/group/linuxchillan/msg/eb1d7dd2ceaac31e


El manual introductorio – Perfectamente explicado y en español:

  1. Programación de drivers para dispositivos
    1. ¿Qué es un driver?
    2. ¿Por qué escribir un driver?
    3. Recomendaciones
      1. Proveer mecanismos, y no políticas
    4. Uso de módulos
      1. Módulos de ejemplo
      2. Hola Mundo
      3. Ejercicio 1
      4. Módulo simple con un driver de caracter
        1. Sintaxis de inicialización “C Tagged Structures”
      5. Módulo para un driver de caracter
      6. Módulo para un driver de con lectura bloqueante y no bloqueante
      7. Módulo para capturar una interrupción
        1. Entradas en el /proc
        2. Restricciones de un manejador de interrupción:
        3. Work queues
    5. Referencias

Fuente: http://wiki.freaks-unidos.net/linux%20drivers

Un manual en inglés:

http://www.freesoftwaremagazine.com/articles/drivers_linux?page=0%2C0

http://www.freesoftwaremagazine.com/node/1238/pdf



Especialistas:

http://gatos.sourceforge.net/

programador_de_235_drivers_para_Linux/Default.aspx…

http://www.iearobotics.com/


Porqué el tema?

Porque en lugar de andar pidiendo un driver libre la comunidad mundial linux puede hacerlo.Es mas, lo mejor es crear (al menos en el papel) hardware libre desde 0.


http://www.ubuntu-es.org/index.php?q=node/72345


Contenido del archivo LDDK:

Para ver el contenido del archivo:

1.- Descomprimir el archivo (click derecho, descomprimir), pesa 306 MB.

2.- Montar la iso en una unidad virtual de cd, con gmount para ver su contenido.


3.- Este es el contenido (en inglés): 5 Archivos o carpetas:

Documentation: Información sobre el hardware (cpu, ppc, usb, etc).Ldd3: El libro Linux Device Drivers en pdfs por capítulos, 18 capítulos (700 kb por capítulo).

Carpeta linux-source: linux-2.6.16.18.tar.bz2

COPYING de 18 kb.

ddk_cdrom.odt de 31 kb

index.html de 4 kb
README de 1 kb


El contenido de index.html: Linux Device Driver KitThis CD contains all that is needed to learn how to create Linux Device Drivers.The contents of this cd are broken down into three major categories:

  • Documentation
  • Linux Kernel source code
  • the book, “Linux Device Drivers”

Documentation

The best place to start in learning about Linux kernel programming is the main kernel HOWTO. This file gives you a good overview of some of the other files in the Documentation directory that are useful as well as some tips for web sites that can help answer specific questions.

There are a lot of different files in the Documentation directory. The main index file gives a short overview of the different files and subdirectories in this location.

The Linux kernel creates a wide range of different documents directly from the source code itself. Here are links to some of these documents:

Linux kernel source code

There is a full, expanded copy of the latest Linux kernel source code available at the time this cd was created. It is located here and can be used to build external modules directly against. For more information on how to build and use this source tree, please see the kbuild documentation.

Linux Device Drivers book

The entire copy of the book, “Linux Device Drivers, Third Edition” is available here.




Extra: Si no saben inglés, aprendan, click al siguiente enlace:

https://arukard.wordpress.com/2008/04/06/abecedario-numeros-dias-de-la-semana-en-ingles-escritura-y-pronunciacion/


Acciones

Information

One response

19 06 2010
linuxlatex

Muy buena iniciativa , intentare hacerlo en mi tiempo libre..

: ) lo mejor seria crear propias drivers especialemente para la pc sobre todo para las targetas graficas

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: