# [kernel] Archivo System.map (debatiendo)

## pcmaster

Hola,

Normalmente compilo el kernel y funciona bien, pero tengo una "duda existencial":

Cuando aprendí Linux, me enseñaron que tras compilar el kernel (usaba Slackware con kernel 2.4.x) hay que copiar a /boot el archivo del kernel y el archivo system.map que se crea en /usr/src/linux tras compilar. Lo que pasa es que, si instalaba dos o más versiones del kernel, solo había un archivo system.map: el generado junto al último kernel.

Desde que uso Gentoo siempre he usado genkernel para compilar el kernel (ahora uso el 2.6.11). genkernel monta automaticamente la partición de /boot, y copia ahí el archivo del kernel que se ha generado, con nombre kernel-2.6.8-gentoo-r8 (por ejemplo). Con las primeras versiones que usé (Gentoo 1.4), yo copiaba el archivo System.map de /usr/src/linux a /boot (Genkernel no lo hacía), y luego configuraba e instalaba lilo. Ningún problema.

Las últimas versiones de genkernel también copian el archivo System.map a /boot, poniéndole un nombre del tipo: System.map-2.6.11-gentoo-r8. Yo siempre he creado un enlace simbólico llamado  System.map a ese archivo System.map-version.del.kernel.

Ahora viene la pregunta: ¿es realmente necesario que haga el enlace? ¿para qué sirve exactamente el archivo system.map?

----------

## einar matveinen

Te pongo unos links:

http://www.kernelnewbies.org/faq/

http://aplawrence.com/Bofcusm/643.html

----------

## gringo

 *Quote:*   

> Normalmente compilo el kernel y funciona bien, pero tengo una "duda existencial": 

 

idem, es una de estas grandes dudas que yo tengo tb. -> hace años que no pongo el system.map en el /boot y sin problemas. 

Por lo que sé determinados programas lo esperan en /boot y en caso de que no existiese lo buscarán por defecto en el directorio /lib/modules/tu_kernel/build ( que apuntará a las fuentes del kernel) ... con lo cuál, que sentido tiene ponerlo en boot ?

saluetes

----------

## einar matveinen

 *gringo wrote:*   

>  *Quote:*   Normalmente compilo el kernel y funciona bien, pero tengo una "duda existencial":  
> 
> idem, es una de estas grandes dudas que yo tengo tb. -> hace años que no pongo el system.map en el /boot y sin problemas. 
> 
> Por lo que sé determinados programas lo esperan en /boot y en caso de que no existiese lo buscarán por defecto en el directorio /lib/modules/tu_kernel/build ( que apuntará a las fuentes del kernel) ... con lo cuál, que sentido tiene ponerlo en boot ?
> ...

 

Idem también, a mí me ocurre lo mismo.

----------

## lunatc

Yo también llevo años sin poner el system.map en /boot cuando compilo el kernel y hasta la fecha no he tenido ningún problema.

Sin embargo, me he dado cuenta que al "emerger" paquetes que dependen del kernel como lirc, o las nvidia-kernel al final pone un mensaje que dice algo así:

```
 

........

/usr/src/linux/System.map not found

You must manually update the kernel module dependencies using depmod.

........

```

(esto se encuentra en /usr/portage/eclass/linux-mod.eclass, que según he observado es incluido en dichos paquetes al principio del ebuild)

Luego supongo que el System.map debe de contener información de dependencias entre módulos del kernel actual...

Supongo.... :Rolling Eyes: 

Salu2

----------

## gringo

 *Quote:*   

> /usr/src/linux/System.map not found
> 
> You must manually update the kernel module dependencies using depmod.

 

eso mas bien parece que o bien tu enlace /usr/src/linux no es correcto o que has borrao accidentalmente el system.map de las fuentes de tu kernel despues de haberlo compilao... a mi la única vez que ma ha salido ese mismo mensaje de error era porque efectivamente el enlace linux no existía  :Wink: 

todo un expediente-x desos  :Very Happy:   :Very Happy:   :Very Happy: 

saluetes

----------

## lunatc

 *gringo wrote:*   

> 
> 
> eso mas bien parece que o bien tu enlace /usr/src/linux no es correcto o que has borrao accidentalmente el system.map de las fuentes de tu kernel despues de haberlo compilao

 

Pues va a ser que si...  :Smile: 

normalmente cuando tengo el kernel instalado suelo hacer un make clean para liberar un poco de espacio...

Salu2

----------

## pcmaster

Gracias por vuestras respuestas.

La duda me venía porque, si cuando compilas copias siempre el nuevo archivo System.map en /boot, llamándolo simplemente System.map, machacas el archivo System.map del kernel anterior, pero sigue arrancando igual con ambos. Por eso no tenía clara su utilidad, ni sabía si arrancaría de faltar el archivo.

Quitaré el enlece de /boot, dejando solo los archivos que copia Genkernel, y si no se queja, así se quedará. Si hay algún problema, volveré a poner el enlace.

----------

## Sertinell

Yo nunca he copiado el system.map, y de hecho jamas tengo montada la boot, as i qe coo a alguien se le ocurra buscar ahi sin montar antes ...

Pues eso, yo no lo copio  :Wink: 

----------

