PDA

Ver la versión completa : compilar modulo



NeoGenessis
03-11-2005, 10:21
Uso debian sarge y el nucleo k me instalaba por defecto era el 2.4. Por diversos motivos me interesaba el nucleo 2.6, asi que lo recompile, ya que el de serie no es capaz de apagar mi portatil.

Tras unas 400 recompilaciones, 100 mas 100 menos, he conseguido un nucleo k rula todo como yo quiero, GRACIAS AL SUPREMO BIT por ello.

el problema es el siguiente: hice la recompilacion del nucleo en una maquina mucho mas rapida que el portatil, creando el paquete deb, e instalandolo luego en el portatil via un pendrive.

Hasta ahi todo perfecto, ademas me instale las cabeceras y ningun problema.

Ara viene lo chungo, tengo un wifi conceptronics que usa el rt2500, tengo el codigo fuente de dicho driver y lo he compilado unas 400 veces, 100 mas 100 menos, amos, las mismas que el kernel. Siempre he podido, menos esta ultima vez. Primero me decia que /lib/modules/2.6.13/builtd no existia o no estaba definido. Tras darme cuenta de que en realidad apuntaba al los archivos fuente del nucleo los puse, y justo donde se necesitaban: /usr/src/kernel-source-2.6.13 . asi ya no se queja de que no hay reglas de build pero me da error por cada linea de codigo del driver.

Es necesario k copie el archivo de configuracion del nucleo: /boot/config-2.6.13 al archivo /usr/src/kernel-source-2.6.13/.config y recompile en el portatil?????

mas que nada que tarda como unas 6h y no es pa tomarselo en coña.

thank's

j8k6f4v9j
03-11-2005, 15:56
No, no hace falta recompilar en el portátil. ¿Estás seguro de que las cabeceras se corresponden con las de la versión del kernel que tienes en el portátil?

Te dejo un extracto de la documentación de aircrack: http://gabaon.bravehost.com/aircrack_doc_es.htm

# Instalación del controlador rt2500 (Ralink b/g PCI/PCMCIA)

ifconfig ra0 down
rmmod rt2500

cd /usr/src
wget http://100h.org/wlan/linux/ralink/rt2500-cvs-20051008.tgz
wget http://100h.org/wlan/linux/patches/rt2500-cvs-20051008-prismheader.patch
tar -xvzf rt2500-cvs-20051008.tgz
cd rt2500-cvs-20051008
patch -Np1 -i ../rt2500-cvs-20051008-prismheader.patch
cd Module
make && make install
modprobe rt2500

Asegúrate de cargar el controlador con modprobe (no insmod) y de poner la tarjeta en modo Monitor antes de levantar la interfaz.

Espero que te sirva

NeoGenessis
04-11-2005, 14:57
Gracias j8k6f4v9j pero creo k hay un error,

Por ahora no me interesa usar el modo monitor (por ahora...), en cuanto las cabeceras si son las adecuadas. Sobre el modo de cargar el modulo, tranki k lo hago ok, como ya dije la he hecho rular unas 400 veces, 100 mas 100 menos. El problema se da en el momento de compilar, ya que aparecen un monton de errores y warnings referente a que hay cosas no definidas en la cabecera.

Para que me entiendas, con el nucleo 2.4 lo he compilado y usado sin problemas , pero el 2.4 usa el formato de modulos .o mientras el 2.6 usa el ko (ok o como sea), por lo que debo recompilarlo otra vez.

Para hacerlo hago:
# make
# make install
evidentemente en la carpteta /rt2500_cvsxxxxxx/Modules
y siempre me ha rulado, alguna vez me ha dado problemas si la definicion de los modulos de administracion de energia no era correcta, pero fuera de eso se compilaba, ahora ni eso.

Gracias de todos modos, seguire por el valle de la penumbra del 2.6 hasta que vea la luz, a ver el proximo finde.

j8k6f4v9j
04-11-2005, 15:46
Para que me entiendas, con el nucleo 2.4 lo he compilado y usado sin problemas , pero el 2.4 usa el formato de modulos .o mientras el 2.6 usa el ko (ok o como sea), por lo que debo recompilarlo otra vez.
Justo al contrario que yo :), con la rama 2.4 no tenia nada claro por qué no me iba el driver del rt2500. Me compilé un 2.6 (con no pocos problemas) y luego el driver compiló y se instaló a la primera. Espero que lo soluciones.

Salu2

NeoGenessis
22-12-2005, 23:45
La verdad es que al final opte por la reinstalacion del sistema. Creyendo que de ese modo aprenderia algo referente a algun error que hubiera cometido.

Tras varias reinstalaciones y posteriores reinstalaciones del nucleo de la serie 2.6 na, que no iva ni a tiros. Al final tras mucho pelear descubir unas cuantas cosas:

Dentro de /lib/modules/2.X.XX siendo las X la subversion y revision, deben haber dos enlaces. De hecho no tienen pq estar los dos. Uno es al source del kernel, k no tiene pq estar, el otro es a las cabeceras.

Segundo si no estan las wireless tools instaladas el driver no compila bien, asi como paquetes relacionados con la copilacion de modules (si se busca en synaptic fijo que se encuentra de que estoy hablando).

Si la compilacion falla una vez debemos borrar todos las pruebas de haberlo intentado. Eso significa ejecutar rm *.o (o *.ko si es para un 2.6) en la carpeta del modulo, y si se puede de las cabeceras tambien. Eso evitara los mensajes de que los symbols son invalidos.

De todos modos he visto que muchas veces la carga en el 2.4 da errores indicando que no esta el dispositivo, pero luego muestra un mensaje de carga dando una web, creo k theserialmonkey o algo asi. y de ese modo se puede hacer rular. En mi caso con el 2.4 no me lo pilla y no pila la configuracion del /etc/network/interfaces asi k me he hecho unos scripts, que basicamente son scripts de bash que lo configuran la ip como dinamica, luego configuran wireless y luego lanzan el cliente dhcp.

El resultado es k funiona bien, pero no de muerte. Tengo previsto recompilar el kernel de la serie 2.6 a ver si ahora que se algo mas puedo hacer k rule mejor y no me sobrecarge de modulos "built-in" que luego no puedo quitar.

Lo del modo monitor queda pendiente, pero otro dia lo intento.