Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/07/2006, 03:43
Avatar de nekcab
nekcab
 
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 19 años, 6 meses
Puntos: 0
Cita:
Iniciado por PC's Troll
1.-Este módulo son ciertas líneas de código en el kernel, un archivo en un directorio aparte o ambas?
El mismo módulo para un mismo HW puede tener 2 orígenes: bien el archivo comprimido bajado de la WEB ( pendiente de compilar ), bien el incluído en el kernel de linux de tu distro ( ya compilado ). El Kernel en Linux se actualiza precisamente para ir incorporando nuevos modelos de hardware, y no sería la primera vez que tras una instalación inicial, un HW q se encuentra en el kernel, por la razón que sea, no se ha compilado la opción de cargar dicho módulo. Solución en el caso d que dicho HW esté contemplado en tu distro: recompilar el kernel, máxime teniendo en cuenta que con esta última opción dicho módulo se ha diseñado específicamente para la distro específica que tu tienes. A dif.de compilarlo del arch.bajado de la WEB del fabricante, que es una version genérica para todo tipo d distros ( no por ello menos mala, simplemente más genérica para todo tipo de distros ).
Cita:
Iniciado por PC's Troll
Eso de "compilar", se trata de compilar el kernel, el archivo de módulo o ambas?
Como he dicho antes puede ser compilar el kernel para que cargue el módulo correspondiente q a tí te interesa, o bien compilar los archs.incluídos en la carpeta resultado de descomprimir un arch.: *.tar.gz o *.tar.bz2 descargado de la WEB del fabricante.

En el caso de los archs.procedentes de la WEB del fabricante, cuando compilas lo que haces es ejecutar un script ( archivo guión de compilación ) cuya finalidad no es otra que la de:
1.- generar un módulo
2.- cargarlo de manera permanente cada vez que reinicias la máquina

Los módulos son....dicho de manera un tanto salvaje.....unos drivers de un determinado HW. Entonces, éstos drivers, en Linux, independientemente de donde tu hayas conseguido dichos módulos ( bien del incluído en kernel de tu distro bien de la WEB del fabricante ), pueden hacer funcionar el hardware que sea mediante 2 caminos:
a.- cargándolos como módulos ( en el caso de dispositivos que no se usen frecuentemente ): archivo en codigo binario con extensión:
- *.o (en Kernel's inferiores a 2.6 )
- *.ko (en Kernel's superiores a 2.6 )
- ....puede q haya otras extensiones, pero no las conozco. Y puedes encontrar módulos:
a.1.- pertenecientes a tu distro
a.2.- externos a tu distro, pero que se guardan en la misma ruta que los otros y funcionan igual de bien

b.- cargándolos como parte del núcleo d arranque del S.O. Linux (distro la q sea ): incrementas el tamaño del núcleo que se carga al inicio, pero útil si se trata de dispositivos, utilidades, .... que uses MUY frecuentemente. Inconveniente: que debes compilar el kernel ( algo pesado en ocasiones )

En el caso de que te hayas decantado por instalar el módulo de la WEB del fabricante: si tras compilar los archs.d tus respectivas tarjetas de red, no ha surgido ningún error de consideración .... entonces teóricamente el script q mencionamos antes se habrá encargado de que se cargue como módulo.

Entonces, teóricamente los módulos se guardan en rutas específicas, según del tipo de hardware que se trate. Así, p.e. en Debian ( variante de Ubuntu ) la ruta para modulos de hardware de red sería en:
Cita:
/lib/modules/....nºkernel q tengas..../net/*.o
/lib/modules/....nºkernel q tengas..../net/*.ko
Una vez localizados ahí, con la orden q te comenté en el anterior post:
Para directamente cargar el módulo:
Cita:
lsmod ....nombre módulo....
Para probar y cargar el módulo:
Cita:
insmod ...nombre módulo....
Permiter saber si dicho módulo se ha compilado correctamente

¿Que ya estás seguro que el módulo funciona?....( tras ejecutar el comando que ya te comenté de "cat /proc/net/dev" o el: "lspci" -sin comillas, evidentemente- ) pues entonces solo te falta automatizar la carga de dicho módulo ( que deberás de asegurarte que se encuentra en la carpeta dedicada a dicho fin ) especificándolo en un archivo la mar de interesante:
Cita:
/etc/modules
Te informo que en kernel's de tu distro a partir de la versión 2.6 ( para averiguar que versión tienes:
Cita:
uname -r
), teóricamente dicho archivo ya no se utiliza, pero este punto tengo q investigar más dado que hace una semana que estoy manejando este nuevo kernel y he de probar más.

Te habrás dado cuenta que cada cierto tiempo sale una nueva versión de Kernel, y con ella aparecen cambios: bien nuevas formas de reconocer o instalar el HW, nuevas funcionalidades, ..... y eso hay que ir leyendo, probando, .... jeje, y compartiendo ( espero que tu tambien te encargues de pasar la pelota cuando vengan más y más novatos... ¡¡¡¡ legión seremos de conocimiento !!! )

P.D.: un link donde explican algo de como funcionan los módulos. Es de RedHat pero aplicable en parte a otras distro's.


Un saludo.

Última edición por nekcab; 19/07/2006 a las 07:30