1 / 19

Módulos del Kernel

Realizado por Kepa Bengoetxea. Módulos del Kernel. Referencia. http://www.ubuntulinux.org/wiki/KernelHowto http://www.tldp.org/HOWTO/Module-HOWTO/index.html Información sobre el kernel: http://www.kernelnewbies.org http://www.escomposlinux.org/wwol26/wwol26.html kernel-COMO:

jerom
Download Presentation

Módulos del Kernel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Realizado por Kepa Bengoetxea Módulos del Kernel

  2. Referencia http://www.ubuntulinux.org/wiki/KernelHowto http://www.tldp.org/HOWTO/Module-HOWTO/index.html Información sobre el kernel:http://www.kernelnewbies.org http://www.escomposlinux.org/wwol26/wwol26.html kernel-COMO: http://es.tldp.org/COMO-INSFLUG/COMOs/Kernel-Como/Kernel-Como-1.html Libro sobre el Núcleo: http://www.tldp.org/LDP/tlk/tlk.html Donde conseguir las fuentes del núcleo: http://www.kernel.org/

  3. Núcleo Monolítico • Un Núcleo monolítico es el núcleo o kernel de un sistema operativo grande y complejo, que engloba todos los servicios del sistema. Ejm:UNIX

  4. Núcleo Monolítico Híbrido • Actualmente Linux es un núcleo monolítico híbrido. • Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso sin restricciones al hardware

  5. Núcleo Monolítico Híbrido • A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al sistema operativo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones.

  6. ¿Qué es un módulo cargable? • El kernel de Linux tiene un diseño modular. • En el momento de arranque, sólo se carga un kernel residente mínimo en memoria. Por ello, cuando un usuario solicita alguna característica que no esta presente en el kernel residente, se carga dinámicamente en memoria un módulo kernel, también conocido algunas veces como un controlador. • Kmod se encargará de cargarlos y descargarlos por nosotros cuando el sistema los necesite. Ejm: controladores de dispositivos PCMCIA o de cintas QIC-80/40.

  7. ¿Qué es un módulo cargable? • Estos controladores o módulos del núcleo se compilan por separado “make modules” (no se compilan con el núcleo: make bzImage) y se incorporan al núcleo que ya está corriendo cuando son necesarios. • Hoy en día la tendencia es “crear y elegir como módulo” todos los controladores (drivers) posibles, salvo aquellos estrictamente necesarios para arrancar el sistema (ext2, ext3, IDE/ATA, SCSI, según el caso). • Aunque siempre se puede hacer una imagen initrd(initial ramdisk) que se encargue de cargar aquellos módulos necesarios que no hemos seleccionado como parte residente del kernel y son necesarios para arrancar el sistema.

  8. Módulos del kernel • GRUB cargan el kernel y el initrd en memoria para luego poder montar el sistema de ficheros root que esta en el disco duro. • El resto de módulos se cargarán cuando un usuario solicite algún controlador ( Ejm: solicita conexión por modem se carga un módulo kernel PPP dinámicamente.)‏ • En el programa de instalación se decide qué módulos necesita cargar en el momento de arranque según el HW detectado. • Si se añade un nuevo hardware después de la instalación, este requiere un módulo kernel, el sistema debe ser configurado para cargar el módulo adecuado para el nuevo hardware.

  9. Módulos del kernel • Ubuntu permite habilitar y configurar los módulos necesarios mediante la utilidad modconf. $sudo modconf Si no está instalado: $sudo aptitude install modconf Nota:Los módulos de tarjetas de vídeo usados para desplegar la interfaz del sistema X Window son parte del paquete XFree86 o Xorg, no del kernel; por lo tanto, este capítulo no se aplica a ellos

  10. Carga Manualemente:Sin parámetros • También se puede realizar la carga de módulos editando manualmente los siguientes archivos: • Ejm: Si se incluye un adaptador de red SMC EtherPower 10 PCI cuyo controlador se llama tulip A)Añadir en /etc/modules : tulip B)Editar /etc/rc.local /usr/sbin/modprobe tulip

  11. Carga Manualemente:Con parámetros • Ejm:cargar controlador de los ventiladores del portátil • A) Créate el fichero Añade la siguiente línea al fichero /etc/modules: i8k Y añadimos las opciones en: vi /etc/modprobe.d/i8k.modprobe options i8k force=1

  12. Carga Manualemente:Con parámetros • Ejm: Cargar controlador de los ventiladores del portátil • B) Editar /etc/rc.local /usr/sbin/modprobe i8k force=1

  13. Módulos del kernel • Paquete para la gestión de módulos del kernel: module-init-tools • El comando /sbin/lsmod muestra una lista de los módulos cargados actualmente donde la primera columna es el nombre del módulo, la segunda columna es el tamaño del módulo y la tercera es el recuento de usos. Si el nombre de un módulo esta listado al final de la línea , el módulo es dependiente del módulo listado en la primera columna de la línea. • Por ejemplo, en la línea: mbcache 9604 1 ext3

  14. Módulos del kernel • Obtener información del módulo.Ejm: /sbin/modinfo ext3 filename: /lib/modules/2.6.20-16-generic/kernel/fs/ext3/ext3.ko license: GPL description: Second Extended Filesystem with journaling extensions author: Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others srcversion: 7F25BA0D0A1B9A2A8F43C49 depends: mbcache,jbd vermagic: 2.6.20-16-generic SMP mod_unload 586

  15. Módulos del kernel Para descargar módulos de memoria: /sbin/rmmod . Ejm: No esta en uso sudo /sbin/rmmod fan Ejm:Esta en uso lsmod bluetooth 55908 7 rfcomm,l2cap,hci_usb sudo rmmod bluetooth ERROR: Module bluetooth is in use by rfcomm,l2cap,hci_usb

  16. Módulos del kernel • Para cargar un módulo (sin dependencias) del kernel .Ejm: sudo insmod /lib/modules/2.6.20-16-generic/kernel/drivers/acpi/fan.ko • Módulos están /lib/modules/<kernel-version>/kernel/drivers/

  17. Módulos del kernel • Para cargar un módulo (con/sin dependencias) del kernel . • Ejm:sudo modprobe fan (sin dependencias)‏ • Ejm:sudo modprobe l2cap (con dependencias)‏ modinfo l2cap filename: /lib/modules/2.6.20-16-generic/.../l2cap.ko alias: bt-proto-0 description: Bluetooth L2CAP ver 2.8 author: Maxim Krasnyansky depends: bluetooth

  18. Módulos del kernel • /sbin/modprobe carga los módulos dependientes bluetooth y luego carga l2cap • modprobe espera que el fichero “/lib/modules/`uname -r`/modules.dep” este debidamente actualizado con las dependencias que existen entre los módulos. Este fichero se actualiza con el comando “depmod -a” Ejm: less /lib/modules/`uname -r`/modules.dep | grep vfat /lib/modules/2.6.20-16-generic/kernel/fs/vfat/vfat.ko: /lib/modules/2.6.20-16-generic/kernel/fs/fat/fat.ko man modprobe y man depmod

  19. ¿Por qué un driver solo funciona para el kernel para el que ha compilado? Si un módulo ha sido compilado con los ficheros cabecera de un kernel, y al actualizar el kernel deja de funcionar puede ser porque: a)los ficheros cabecera y los parámetros de las funciones de la librería han cambiado en número o tipo con el nuevo kernel. b)el kernel ha sido compilado con la característica CONFIG_MODVERSIONS deshabilitada. less /boot/config* | grep CONFIG_MODVERSIONS CONFIG_MODVERSIONS=y

More Related