miércoles, 29 de septiembre de 2010

Curso RHCT Modificacion de Modulos sin Compilar el Kernel

En esta ocacion veremos como manejar Modulos del Kernel sin necesidad de compilar el Kernel ,
en algunos casos ( no se si actualmente se haga por que ya no lo he hecho ) al instalar algunos programas como VMWARE, era necesario recompilar un Kernel , para agregar los modulos .

Cuando el Sistema operativo Linux inicia, lee el archivo /etc/rc.sysinit . el cual es el encargado de leer los modulos configurados al Kernel . este archivo no lo editaremos.

También contamos con el archivo /etc/modeprove.conf , el cual contiene los ALIAS de los modulos

===========================

alias scsi_hostadapter ata_piix
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0
alias eth0 pcnet32
==========================

Los Alias estandar del sistema esta en el directorio /etc/modeprobe.d

==========================
-rw-r--r-- 1 root root 810 Sep 27 2009 blacklist
-rw-r--r-- 1 root root 833 Sep 3 2009 blacklist-compat
-rw-r--r-- 1 root root 83 Mar 17 2010 blacklist-firewire
-rw-r--r-- 1 root root 6111 Sep 3 2009 modprobe.conf.dist
=========================

el archivo modprobe.conf.dist incluye una gran cantidad de alias estandar para el sistema . que seran cargdos automaticamente , a difierencia de los archivos blacklist que no son cargado automaticamente.

Hagamos un ejemplo

el comando lsmode , nos sirve para listar los modulos que han sido cargados al kernel

# lsmod

===========================

Module Size Used by
pcnet32 35269 0
autofs4 29253 3
ipv6 267617 24
xfrm_nalgo 13381 1 ipv6
crypto_api 12609 1 xfrm_nalgo
hidp 23105 2

.
.
.
=====================================

para ver un ejemplo claro , removeremos un modulo existente cargado al kernel con el comando rmmod

# rmmod pcnet32

# lsmod

===========================

Module Size Used by
autofs4 29253 3
ipv6 267617 24
xfrm_nalgo 13381 1 ipv6
crypto_api 12609 1 xfrm_nalgo
hidp 23105 2
.
.
.
=====================================
# modeprobe pcnet32

# lsmod

===========================

Module Size Used by
pcnet32 35269 0
autofs4 29253 3
ipv6 267617 24
xfrm_nalgo 13381 1 ipv6
crypto_api 12609 1 xfrm_nalgo
hidp 23105 2
.
.
.
=====================================

los modulos son lehidos del directorio cd /lib/modules/`uname -r` donde el uname -r es la version del kernel actuamente cargado

# cd /lib/modules/`uname -r`

# ls
=====================
build modules.dep modules.pcimap updates
extra modules.ieee1394map modules.seriomap weak-updates
kernel modules.inputmap modules.symbols
modules.alias modules.isapnpmap modules.usbmap
modules.ccwmap modules.ofmap source
=========================

existen módulos que dependen de otros , el comando depmod , regenera el archivo de módulos y dependencias , modules.dep .

# depmod -a

esta opción regenerara todas las dependencias .

existen también comando que nos ayudaran a localizar módulos por dispositivos:

# lsusb

despliega información sobre los dispositivos conectados al USb

# lspci

despliega información sobre los dispositivos conectados al PCI

# lspmcia

espliega información sobre los dispositivos conectados al pmcia