# [modulos kernel] Arrancar modulo externo al kernel (solved)

## FreshHand

Wenas a todos.

A ver si alguien consigue solucionarme unas dudas.

Tengo una controladora HighPoint Rocket raid 454, para la cual hay drivers en el kernel de gentoo, pero solo para trabajar en modo IDE normal, para poder usar las funciones raid me tube que descargar el driver de la web de highpoint, localice el codigo fuente alli, me lo descargue y lo compile. El modulo funciona bien, pero me lo creo en el mismo directorio en donde tengo el codigo fuente, la pregunta es : ¿como hago para poder meterlo junto a los demas modulos del kernel y que asi se cargue automaticamente durante el arranque del ordenador?, porque actualmente tengo que hacer n insmod ./hpt374.ko como root cada vez que arranco. Ya probe a copiarlo simplemente en /lib/modules/.....    pero nada.

Y otra cuestion tambien relacionada sobre lo mismo,  el modulo actualmente lo tengo compilado usando las fuentes del nucleo 2.6.18, pero cuando quise compilarlo sobre el 2.6.20, me dice que no encuentra el "include/config.h", ¿¿alguien sabe si eliminaron este archivo en esta version o si me olvido de activar algo al hacer el make menuconfig ???

Gracias por adelantado.

Fresh Hand.Last edited by FreshHand on Mon Jun 18, 2007 7:28 pm; edited 1 time in total

----------

## Cereza

Una cosa que podrías hacer es poner el comando que usas cada vez que arrancas en /etc/conf.d/local.start

Todos los comandos añadidos a ese archivo se ejecutan automáticamente como root en cada inicio, yo lo uso para trastear algunos módulos del kernel.

----------

## esteban_conde

 *Quote:*   

> simplemente en /lib/modules/..... pero nada.
> 
> 

 

Metete en el directorio donde compilaste el driver y ejecuta make install a ver si suena la flauta y te crea las entradas de configuración a la vez que te copia el kernel en /lib/modules/kernel-activo/

----------

## FreshHand

 *Quote:*   

> y ejecuta make install a ver si suena la flauta

 

 *Quote:*   

> xp2000 driveropensource # make install
> 
> make: *** No hay ninguna regla para construir el objetivo `install'.  Alto.
> 
> 

 

Pues no,  no sono la flauta..... XD

Respecto a lo de usar /etc/cond.d/local.start ....   si, funcionar funciona, pero me deja con mal sabor de boca, ya que como tengo un lector de tarjetas por usb, me planta el lector como sda,sdb,sdc,sdd (en /dev) y luego el array raid como sde,  lo cual puede cambiar si quito el lector,  ademas, no me vale poner una entrada en el fstab, ya que lo lee antes de ejecutar local.start y no existe sde en ese momento con lo que acabo por tener que seguir usando la consola para montar el array. Gracias de todos modos por la sugerencia, me la guardo en caso de no aparecer nada mas....

Alguna otra idea ???

Fresh Hand.

----------

## Inodoro_Pereyra

A ver si sirve esta:

Agrega el modulo que quieres cargar en /etc/modules.autoload.d/kernel-2.6

Da resultado con modulos del propio kernel, si ya copiaste el .ko a /lib/modules/kernel_en_uso deberia funcionar me imagino.

Salud!

----------

## FreshHand

Acabo de llegar hace un rato del trabajo, y probe /etc/modules.autoload.d/kernel-2.6 pero tampoco,  durante el arranque aparece :

* Loading module hpt473 ...  [!!]

* Failed to load hpt473

De echo, si hago desde la consola un "modprobe -l"  no aparece listado con el resto de modulos.

Pues si q se me complica la historia... y eso q no parecia q fuese a tener muchos problemas tras encontrar el codigo fuente en la web.. XD

Fresh Hand.

----------

## i92guboj

 *FreshHand wrote:*   

> Acabo de llegar hace un rato del trabajo, y probe /etc/modules.autoload.d/kernel-2.6 pero tampoco,  durante el arranque aparece :
> 
> * Loading module hpt473 ...  [!!]
> 
> * Failed to load hpt473
> ...

 

Esto cambia las cosas. Si haces el modprobe a mano, ¿aparece algún error luego en dmesg? Usa modprobe para cargar el módulo, y postead aquí los errores que salgan en consola, y los que aparezcan al final de la salida del comando dmesg, a ver si encontramos algo que nos ayude ahí.

----------

## FreshHand

Si hago un modprobe a mano no me da error en el dmesg, directamente me pone en la consola que no encuentra el modulo,  que es exactamente el mismo problema que el que da en el arranque, el problema de que no funcione el modprobe no es que el modulo este mal (como ya dije, el modulo funciona, el problema es que no lo localiza,  al hacer modprobe -l, me aparece la lista de todos los modulos disponibles, pero el hpt473.ko que es el que yo quiero cargar, no aparece en esa lista a pesar de haberlo copiado dentro del /lib/modules/....   la cuestion es que doy por supuesto q ademas de tener q copiar ahi el modulo habra que pasarle algo de informacion mediante algun fichero de configuracion para que luego el modprobe sepa encontrarlo, la coña es que no doy con ello.

Por el momento, estoy saliendo del paso poniendo el insmod /.....   dentro de /etc/conf.d/local.start como dijo Cereza, y luego en el fstab le tengo una entrada usando los parametros user y noauto,  para luego usar el Applet "Dispositivos de almacenamiento" de la barra de kde, asi al menos, solo tengo que hacer dos clicks para montar el array, pero me gustaria tenerlo de una manera mas "limpia" porque eso funciona, pero me siento como manolo y benito.....  :Very Happy: 

Fresh Hand.

----------

## esteban_conde

 *Quote:*   

> # Find kernel install path
> 
> kernel_path="/lib/modules/`uname -r`"
> 
> mkdir -p "$kernel_path/misc"
> ...

 

Esto de arriba es un extracto de un install.sh de otro modulo externo en mi caso kqemu.ko, el motivo de ponertelo es que se parece bastante a tu caso, como se puede observar lo primero que hace es encontrar la ruta de los modulos del kernel actual y la almacena en la variable kernel_path, luego crea un directorio (misc) y por ultimo corre depmod -a.

Se me ocurre que puedes hacer esto mismo a mano sin necesidad de ningun script creando un directorio mkdir /lib/modules/kernel_que_estes_corriendo/misc y luego copiar el modulo en ese directorio y por ultimo correr /sbin/depmod -a 

Comprueba que los permisos del subdirectorio misc sean 755 para que los usuarios tengan derechos de lectura y ejecucion(aunque lo mas facil es que te lo cree asi por defecto)

Suerte.

----------

## FreshHand

esteban_conde .... eres mi idolo   :Very Happy: 

Efectivamente, la linea que soluciona todo el problema es "/sbin/depmod -a",  estube leyendo el man de este comando y ahora lo entiendo,  el modprobe lee la lista de un archivo llamado modules.dep,  y este es el comando que CREA esa lista, por eso el modprobe nunca me lo listaba,   acabo de probar a reiniciar y bingo..  el modulo lo carga sin mayores problemas (amen de que tambien lo lista el modprobe -l)

Mil gracias.

Fresh Hand.

----------

## esteban_conde

Pues me alegro de que te haya servido, en principio crei que el modulo te vendria con algun instalador o en su defecto, se podria jugar con las opciones de configure para que hiciese lo que has hecho tu, pero ya ves, nunca esta de mas echar mano de man y aunque programar solo se domina programando de lo que hacen otros tambien se puede aprender si tienes tino.  :Wink: 

----------

