Busindre » Blog Archive » insmod: error inserting ‘*.o’ -1 Invalid module format

insmod: error inserting ‘*.o’ -1 Invalid module format

November 21st, 2006 by Busindre

Un error muy típico de newbie a la hora de compilar aplicaciones es el no tener las versiones correctas de las herramientas para compilar (Compilador, kernel, sources y headers). Trataremos este error tan comun y generalmente de muy fácil arreglo:

Error comun:

# insmod: error inserting 'modulo.o': -1 Invalid module format (see the strace output of insmod below)


Típicas dos Causa:

1) Comprobar que tenemos la misma versión de kernel que de sources o headers:

Version Kernel: Linux 2.4.31
Version Sources: linux-2.4.31

Ejemplo en repositorios:

Kernel 2.4.27-2-386
kernel-headers-2.4.27-2
kernel-source-2.4.27

NOTA: Debemos buscar si usamos repositorios la versión idéntica, en ocaciones, como en el caso anterior vemos que el "-2" (Segunda modificación ) no se encuentra en las sources. Esto si estamos usando los repositorios oficiales deberiamos estar tranquilos de que funcione. Pero en algun caso se ha visto que por ese "-n" surgen problemas a la hora de insertar módulos. Que no ponga la arquitectura es menos importante, pero siempre recomendable. (Cuanto más idéntica sea la versión mejor)

2) Comprobar que estamos compilando con la misma versión del compilador (gcc) usado en la compilación del actual kernel. (En los precompilados podemos encontrar sorpresas y ver que está compilado con otra versión que no es la de nuestro actual gcc).

root@busipc:# cat /proc/version
Linux version 2.4.31 (root@tree) (gcc version 3.3.5) #6 Sun Jun 5 19:04:47 PDT 2005

root@busipc:# gcc -v
gcc versión 3.3.5

NOTA: Si esas dos soluciones no te funcionan, algo menos que tienes que mirar.

Posted in Bugs |

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.