Discussion:
problema al compilar modulo de kernel
Alejandro Vargas
2011-04-08 07:58:22 UTC
Permalink
Tengo un problema un poco raro. Resulta que quería agregar un
dispositivo más a un módulo de kernel, el sata_via.

Instalé el fuente del kernel, agregué una línea, y compilé. Pero
resulta que cuando quiero insertar el módulo, me da un error:



[***@server linux]# insmod drivers/ata/sata_via.ko
insmod: error inserting 'drivers/ata/sata_via.ko': -1 Invalid module format

Sin embargo, si miro la información del módulo, se ve todo normal:

[***@server linux]# modinfo drivers/ata/sata_via.ko
filename: drivers/ata/sata_via.ko
version: 2.6
license: GPL
description: SCSI low-level driver for VIA SATA controllers
author: Jeff Garzik
srcversion: C44E990DB72962F2CEF725A
alias: pci:v00001106d00002249sv*sd*bc*sc*i*
alias: pci:v00001106d00009000sv*sd*bc*sc*i*
alias: pci:v00001106d00005287sv*sd*bc*sc*i*
alias: pci:v00001106d00007372sv*sd*bc*sc*i*
alias: pci:v00001106d00005372sv*sd*bc*sc*i*
alias: pci:v00001106d00003249sv*sd*bc*sc*i*
alias: pci:v00001106d00003149sv*sd*bc*sc*i*
alias: pci:v00001106d00000591sv*sd*bc*sc*i*
alias: pci:v00001106d00005337sv*sd*bc*sc*i*
depends: libata
vermagic: 2.6.36.2-desktop-2mnb SMP mod_unload modversions 686


Si la comparo con el que sí funciona:


[***@server linux]# modinfo sata_via
filename:
/lib/modules/2.6.36.2-desktop-2mnb/kernel/drivers/ata/sata_via.ko.gz
version: 2.6
license: GPL
description: SCSI low-level driver for VIA SATA controllers
author: Jeff Garzik
srcversion: D1AF35C48C78B740A1DD317
alias: pci:v00001106d00009000sv*sd*bc*sc*i*
alias: pci:v00001106d00005287sv*sd*bc*sc*i*
alias: pci:v00001106d00007372sv*sd*bc*sc*i*
alias: pci:v00001106d00005372sv*sd*bc*sc*i*
alias: pci:v00001106d00003249sv*sd*bc*sc*i*
alias: pci:v00001106d00003149sv*sd*bc*sc*i*
alias: pci:v00001106d00000591sv*sd*bc*sc*i*
alias: pci:v00001106d00005337sv*sd*bc*sc*i*
depends: libata
vermagic: 2.6.36.2-desktop-2mnb SMP mod_unload modversions 686


Se ve todo prácticamente igual. Sin embargo el que yo compilé me da un
error. Al menos en el modinfo la única diferencia que yo veo es la
línea que yo agregué y la "srcversion"... Alguen sabe por qué puede
estar dando ese error?
Luciano Ruete
2011-04-08 14:31:13 UTC
Permalink
Post by Alejandro Vargas
Tengo un problema un poco raro. Resulta que quería agregar un
dispositivo más a un módulo de kernel, el sata_via.
Instalé el fuente del kernel, agregué una línea, y compilé. Pero
insmod: error inserting 'drivers/ata/sata_via.ko': -1 Invalid module format
filename: drivers/ata/sata_via.ko
version: 2.6
license: GPL
description: SCSI low-level driver for VIA SATA controllers
author: Jeff Garzik
srcversion: C44E990DB72962F2CEF725A
alias: pci:v00001106d00002249sv*sd*bc*sc*i*
alias: pci:v00001106d00009000sv*sd*bc*sc*i*
alias: pci:v00001106d00005287sv*sd*bc*sc*i*
alias: pci:v00001106d00007372sv*sd*bc*sc*i*
alias: pci:v00001106d00005372sv*sd*bc*sc*i*
alias: pci:v00001106d00003249sv*sd*bc*sc*i*
alias: pci:v00001106d00003149sv*sd*bc*sc*i*
alias: pci:v00001106d00000591sv*sd*bc*sc*i*
alias: pci:v00001106d00005337sv*sd*bc*sc*i*
depends: libata
vermagic: 2.6.36.2-desktop-2mnb SMP mod_unload modversions 686
/lib/modules/2.6.36.2-desktop-2mnb/kernel/drivers/ata/sata_via.ko.gz
version: 2.6
license: GPL
description: SCSI low-level driver for VIA SATA controllers
author: Jeff Garzik
srcversion: D1AF35C48C78B740A1DD317
alias: pci:v00001106d00009000sv*sd*bc*sc*i*
alias: pci:v00001106d00005287sv*sd*bc*sc*i*
alias: pci:v00001106d00007372sv*sd*bc*sc*i*
alias: pci:v00001106d00005372sv*sd*bc*sc*i*
alias: pci:v00001106d00003249sv*sd*bc*sc*i*
alias: pci:v00001106d00003149sv*sd*bc*sc*i*
alias: pci:v00001106d00000591sv*sd*bc*sc*i*
alias: pci:v00001106d00005337sv*sd*bc*sc*i*
depends: libata
vermagic: 2.6.36.2-desktop-2mnb SMP mod_unload modversions 686
Se ve todo prácticamente igual. Sin embargo el que yo compilé me da un
error. Al menos en el modinfo la única diferencia que yo veo es la
línea que yo agregué y la "srcversion"... Alguen sabe por qué puede
estar dando ese error?
El que funciona esta gzip'eado, no se tendrá que ver.
--
Luciano
Alejandro Vargas
2011-04-09 09:32:58 UTC
Permalink
Post by Luciano Ruete
Post by Alejandro Vargas
Se ve todo prácticamente igual. Sin embargo el que yo compilé me da un
error. Al menos en el modinfo la única diferencia que yo veo es la
línea que yo agregué y la "srcversion"... Alguen sabe por qué puede
estar dando ese error?
El que funciona esta gzip'eado, no se tendrá que ver.
No creo. Intenté renombrar el que funciona y poner el nuevo en su
lugar, gzipeado y todo y el modprobe da el mismo error que metiéndolo
a mano con insmod.

Al final terminé compliando el kernel completo y ahora sí me lo toma.
Pero no veo cuál es la diferencia, porque son los fuentes del mismo
kernel que tenía. Lo único que no se me ocurrió fue probar un insmod
-f. Tal vez lo que estaba mal era el mensaje de error y estaba
diciendo que la versión no correspondía... Lo que yo quería era
ahorrarme de tener que esperar a que compilara todo un kernel.
MAbeeTT
2011-04-12 01:24:48 UTC
Permalink
Post by Alejandro Vargas
Post by Luciano Ruete
Post by Alejandro Vargas
Se ve todo prácticamente igual. Sin embargo el que yo compilé me da un
error. Al menos en el modinfo la única diferencia que yo veo es la
línea que yo agregué y la "srcversion"... Alguen sabe por qué puede
estar dando ese error?
El que funciona esta gzip'eado, no se tendrá que ver.
No creo. Intenté renombrar el que funciona y poner el nuevo en su
lugar, gzipeado y todo y el modprobe da el mismo error que metiéndolo
a mano con insmod.
Cuando compilaste usaste las cabeceras del mismo kernel que estabas
corriendo? con el mismo .configure (if the flys).
Post by Alejandro Vargas
Al final terminé compliando el kernel completo y ahora sí me lo toma.
Pero no veo cuál es la diferencia, porque son los fuentes del mismo
kernel que tenía. Lo único que no se me ocurrió fue probar un insmod
-f. Tal vez lo que estaba mal era el mensaje de error y estaba
diciendo que la versión no correspondía... Lo que yo quería era
La descripciones decían que eran la misma versión :-/. Será un bug? (lo dudo).
Post by Alejandro Vargas
ahorrarme de tener que esperar a que compilara todo un kernel.
--
             .::MAbeeTT::.

 mabeett [at] gmail [ dot] com
 some time ago:


 mtspcchaiaeia [at] gmail [dot] com
MAbeeTT
2011-04-08 14:46:32 UTC
Permalink
Post by Alejandro Vargas
Tengo un problema un poco raro. Resulta que quería agregar un
dispositivo más a un módulo de kernel, el sata_via.
Instalé el fuente del kernel, agregué una línea, y compilé. Pero
insmod: error inserting 'drivers/ata/sata_via.ko': -1 Invalid module format
filename:       drivers/ata/sata_via.ko
version:        2.6
license:        GPL
description:    SCSI low-level driver for VIA SATA controllers
author:         Jeff Garzik
srcversion:     C44E990DB72962F2CEF725A
^^
Post by Alejandro Vargas
alias:          pci:v00001106d00002249sv*sd*bc*sc*i*
alias:          pci:v00001106d00009000sv*sd*bc*sc*i*
alias:          pci:v00001106d00005287sv*sd*bc*sc*i*
alias:          pci:v00001106d00007372sv*sd*bc*sc*i*
alias:          pci:v00001106d00005372sv*sd*bc*sc*i*
alias:          pci:v00001106d00003249sv*sd*bc*sc*i*
alias:          pci:v00001106d00003149sv*sd*bc*sc*i*
alias:          pci:v00001106d00000591sv*sd*bc*sc*i*
alias:          pci:v00001106d00005337sv*sd*bc*sc*i*
depends:        libata
vermagic:       2.6.36.2-desktop-2mnb SMP mod_unload modversions 686
/lib/modules/2.6.36.2-desktop-2mnb/kernel/drivers/ata/sata_via.ko.gz
version:        2.6
license:        GPL
description:    SCSI low-level driver for VIA SATA controllers
author:         Jeff Garzik
srcversion:     D1AF35C48C78B740A1DD317
^^

Cómo se genera srcversion, si volvés al archivo original entrega la
misma cadena que el otro?
Qué te dice file /ruta/almodulo.ko, para el original y el tuyo?
Post by Alejandro Vargas
alias:          pci:v00001106d00009000sv*sd*bc*sc*i*
alias:          pci:v00001106d00005287sv*sd*bc*sc*i*
alias:          pci:v00001106d00007372sv*sd*bc*sc*i*
alias:          pci:v00001106d00005372sv*sd*bc*sc*i*
alias:          pci:v00001106d00003249sv*sd*bc*sc*i*
alias:          pci:v00001106d00003149sv*sd*bc*sc*i*
alias:          pci:v00001106d00000591sv*sd*bc*sc*i*
alias:          pci:v00001106d00005337sv*sd*bc*sc*i*
depends:        libata
vermagic:       2.6.36.2-desktop-2mnb SMP mod_unload modversions 686
Se ve todo prácticamente igual. Sin embargo el que yo compilé me da un
error. Al menos en el modinfo la única diferencia que yo veo es la
línea que yo agregué y la "srcversion"... Alguen sabe por qué puede
estar dando ese error?
Empezaría por asegurarme que el binario se corresponda con el ELF apropiado.
--
             .::MAbeeTT::.

 mabeett [at] gmail [ dot] com
 some time ago:


 mtspcchaiaeia [at] gmail [dot] com
Loading...