Compilando el kernel

Estado
Cerrado para nuevas respuestas.

ciberman

Lanero Reconocido
30 Mar 2003
108
Hola.

He estado intentando compilar el kernel 2.4.20 en mi equipo pero despues de un tiempo de ejecutar make bzImage saca el siguiente error:

drivers/char/drm/drm.o: In function `sis_fb_alloc':
drivers/char/drm/drm.o(.text+0x6ec6): undefined reference to `sis_malloc'
drivers/char/drm/drm.o(.text+0x6f0d): undefined reference to `sis_free'
drivers/char/drm/drm.o: In function `sis_fb_free':
drivers/char/drm/drm.o(.text+0x7052): undefined reference to `sis_free'
drivers/char/drm/drm.o: In function `sis_final_context':
drivers/char/drm/drm.o(.text+0x7506): undefined reference to `sis_free'
make: *** [vmlinux] Error 1

Este error sale cuando le agrego el soporte de SiS en la seccion DRM 4.1 drivers del menu characters devices, lo cual lo hice porque mi tarjeta de video es una sis 300/305 agp, el error persiste asi lo compile como modulo o dentro del kernel, y si no agrego este soporte, el kernel compila bien pero al momento de usarlo la pantalla no da imagen :'( .

Agradeceria cualquier ayuda que me pudieran brindar
 
esos errores son casi siempre por que falta enlazar a una libreria gcc ... -l(lib)
 
pues eso debe estar en las opciones de compilacion y linkeaje (nueva palabra) del make (Makefile), por ejemplo mira este programa que hize la semana pasada y usa crypt():


[19:42:18] ~ Kr4w3K # g++ progs/enc.cpp -o enc
/home/krawek/tmp/ccG5Gd7W.o: In function `genc(char *)':
/home/krawek/tmp/ccG5Gd7W.o(.text+0x446): undefined reference to `crypt'
/home/krawek/tmp/ccG5Gd7W.o: In function `lpass(char *)':
/home/krawek/tmp/ccG5Gd7W.o(.text+0x587): undefined reference to `crypt'
collect2: ld returned 1 exit status

y

[19:43:05] ~ Kr4w3K # g++ progs/enc.cpp -o enc -lcrypt
[19:44:20] ~ Kr4w3K # ./enc
Uso: ./enc: <opcion> [Argumentos]


el problema es parecido
 
Si los errores son parecidos, pero creo que las situaciones son diferentes, en tu caso solo compilas un archivo, por lo cual le puedes pasar la opcion - l (libreria) directamente al g++, sin embargo para compilar el kernel se utiliza un makefile grande, ya que se compilan una gran cantidad de archivos, por lo tanto no se si haya una manera de decirle al make que complie un archivo especifico con una libreria adicional al menos que se modifique directamente el makefile lo cual podria ser complejo.

De todas maneras mirare todas las opciones del makefile haber si se puede hacer lo que mencionas, te comentare si la hallo.

Gracias por tu ayuda
 
es un bug del kernel, porque a mi me ha pasado lo mismo con eso, mejor no actives ese soporte y te arreglas el problema :)
 
He intentado compilar el kernel sin ese soporte, me compila perfectamente pero al momento de usarlo el monitor no muestra imagen, imagine que era por la falta de este soporte.
Por cierto aprovecho para preguntar, que es DRM?
 
El monitor no me esta dando imagen desde el momento de iniciar el nuevo kernel, no me muestra absolutamente nada, aunque el teclado responde, que soporte le podria faltar al nuevo kernel para que ocurra esto?
 
Direct Rendering Manager (DRM) si no me equivoco y mi ingles no me falla, lo que debes saber es que si tines Xfree 4.3.0 no sera necesseario que montes ese soporte, ademas no lo necesitas.
El error puede ser por que has activado o no algo que falta te recomiendo que busques informacion de tu tarjeta en http://www.google.com/linux ahi puedes encontrar personas con tu misma situacion

(EL UNICO PROBLEMA DE LINUX ES EL USUARIO)
 
Coloca tu .config del kernel para ver que opcion es la que pone problema
 
hey que compilador usas , es que yo tambien he tenido problemas con el compilador , con la version 3.2
 
o tambien el soporte que le pusiste necesita que este activado tambien algun otro para poder funcionar adecuadamente entonces por eso a veces aparecen errores de referencias indefinidas
 
segun lo que dice en esa lista, disque que debes tener el framebuffer activado tambien
 
pero a mi me ha sacado ese error y teniendo el framebuffer activado tambien
 
Hola.

Si yo tambien tenia activado el soporte de framebuffer, al final pude compilar el kernel sin ese soporte, aunque la solucion no fue muy elegante cargue el config del kernel que traia por defecto el kernel de mi distribucion (Slackware 8.1 ) y le quite lo que no me servia esto lo hice con el kernel 2.4.18 y funciono perfectamente, aunque seguire intentando con el kernel 2.4.20, algun dia lo tendre que lograr.

Parece ser que este problema es un bug del kernel, seguire investigando.

Gracias por toda la ayuda que me han brindado.
 
Seria entonces bueno que revisen el link de google ahi esta tambien la solucion que dieron los mismos desarrolladores del kernel para ese problema.
 
Estado
Cerrado para nuevas respuestas.

Los últimos temas