2012-05-03 22 views
6

Me he quedado atascado en la versión de mi kernel a 2.6.22. El mensaje de error es:Error de compilación del kernel: gcc: error: elf_i386: No existe ningún archivo o directorio

SYSCALL arch/i386/kernel/vsyscall-int80.so gcc: Error: elf_i386: No existe el fichero o directorio make [1]: * [arch/i386/kernel/vsyscall -int80.so] Error 1 make: * [arch/i386/kernel] Error 2

He intentado buscar respuestas en google, como cambiar a una versión de mi gcc, etc. Pero no pasa nada. Mi sistema operativo es Ubuntu 11.04 con kernel versión 3.1.4.

Entonces, ¿qué hay de malo? Gracias por sus respuestas.

+0

¿por qué le gustaría degradar? – kuba

Respuesta

22

Puede verificar el vdso makefile que debe estar en arch/x86/vdso/Makefile.

encuentra la línea

 VDSO_LDFLAGS
existen dos líneas, una para x64 y otra para sistemas de x32 bit.

debe tener

 -m elf_x86_64
y otro
 -m elf_x86

reemplazarlos como

 -m64
y
 -m32
respectivamente.

Referencia a la corrección de errores Link1 Lockergnome y Link2 ubuntu.

+0

mientras que su respuesta puede resolver los problemas de otras personas, no resuelve este caso ya que en la pregunta @KMHook indica que la syscall problemática ocurre en el archivo 'arch/i386/kernel/vsyscall-int80.so', y sin embargo está sugiriendo para cambiar algunas líneas en el directorio 'arch/x86 /'. – ecem

2

Solía ​​this respuesta para este problema, y ​​ha cambiado la parte -m elf_i386--m32 en Makefile almacenada en arch/i386/kernel directorio, y se resolvió el problema , para referencia futura.

0

He cambiado el archivo Makefile especificado (arch/x86/vdso/Makefile) y solucionó el problema. Mi plataforma es Ubuntu-12.04, Linux 3.13.0-30.

Cuestiones relacionadas