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 2005root@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 |
