PDF de programación - Programación de drivers en Linux

Imágen de pdf Programación de drivers en Linux

Programación de drivers en Linuxgráfica de visualizaciones

Publicado el 28 de Junio del 2018
614 visualizaciones desde el 28 de Junio del 2018
178,9 KB
12 paginas
Creado hace 18a (20/03/2006)
Programación de drivers en Linux
Ing. Carlos Hernández Cenzano

03/15/06

Tipos de Dispositivos

• Dispositivos de caracter (byte): puerto serial, puerto paralelo,

teclado, etc. Transfieren la información byte por byte.

• Dispositivos de bloques: unidades de discos duros, unidades de

discos flexibles, tarjeta de , etc. Transfieren la información por
bloques.

• Dispositivos de red: tarjetas ethernet, tarjetas WiFi, etc.

2

Archivos especiales de caracter y bloque

3

Interfaces de los dispositivos de red

4

El archivo especial

Tipo de
Archivo
especial

Identificador
de tipo de
dispositivo

MAJOR NUMBER

Número de

dispositivo de un

tipo

MINOR NUMBER

5

¿Cómo se accede a los dispositivos con archivos
especiales?
• Como si se tratase de archivos ordinarios:

– fopen
– fread
– fwrite
– fclose



excepto por ioctl (Input / Output Control)
– ioctl se utiliza para dar comandos al dispositivo, por ejemplo para
un puerto serial se tiene los comandos: TIOCMGET, TIOCMBIS,
TIOCMBIC, TIOCMSET, TIOCSBRK y TIOCCBRK. (Serial
HOWTO http://www.tldp.org/HOWTO/Serial-HOWTO.html)

6

¿Qué incluye un driver?

• Registrar el driver del dispositivo (insmod) MAJOR NUMBER
• Retirar el registro del driver del dispositivo (rmmod)
• Usar el dispositivo (fopen)
• Comandos de control (ioctl)
• Operación de lectura (fread)
• Operación de escritura (fwrite)
• Dejar el dispositivo (fclose)

7

Compilar driver.c

• Makefile

obj-m += driver.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean



# make all

8

Crear el dispositivo especial

mknod
• Para la primera versión de chardev.c de The Linux Kernel Module

Programming Guide

mknod /dev/chardev c 254 0

Tipo de
Archivo
especial

Identificador
de tipo de
dispositivo

MAJOR NUMBER

Número de

dispositivo de un

tipo

MINOR NUMBER

9

¿Qué se necesita para programar un driver?

• Concocimientos de Lenguaje C
• Uso de las sentecias para E/S outb, outw, outl, etc.
• Compilador gcc

• La información técnica del dispositivo.
• Conocimientos sobre el bus del dispositivo ISA, PCI, etc.

Librerías, código fuente del kernel

10

Lab PC + / Lab PC 1200 (ISA)

11

Referencias

• The Linux Kernel Module Programming Guide

http://www.tldp.org/LDP/lkmpg/

• Linux Device Drivers, Third Edition

Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman

12
  • Links de descarga
http://lwp-l.com/pdf12193

Comentarios de: Programación de drivers en Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad