# duda sobre compilacion en s.o con más de un kernel instalado

## papu

bien me surgió una duda que hace un par de años seguro no me hubiera surgido, pero ahora mismo se me olvidó el tema.

actualmente tengo 2 bzimage (2.6.31 y 2.6.32) asi com las fuentes de ambos kernels, y es el kernel 2632 el que tengo ahora mismo con las fuentes compiladas, el kernel2631 esta limpiado via mrproper.

Entoces si entro con bzimage del 2631 y compilo programas, supongo que usa las fuentes del 2631, pero si yo borro estas fuentes, entiendo que no es posible ya compilar con este kernel ¿cierto? , solo pdría volver a compilar sin tener las fuents si tubiera los linux-headers correspondientes o bien si volviera a descomprimir las fuentes ¿no?

otra pregunta, tiene sentido tener los linux-headers,(por ejemplo mis linux-headers son version más antigua que mis kernels que uso), si se tienen las fuentes?

es decir las linux-headers solo sirven para compilar si no se tiene los archivos fuentes del kernel ¿no?

y la última pregunta, ¿porqué se mantienen los modulos de cada kernel instalado cuando se hace un mrproper? quizas con un make distclean se borren , pero nunca lo utilizo. O bien siempre se mantienen y se han de borrar a mano, no lo se.

no se me habré explicado, sino es así dedicmelo.

saludos, adéu.

----------

## Inodoro_Pereyra

Las cabeceras del kernel que instalas con el paquete sys-kernel/linux-header se usan para compilar en contra algunas librerías importantes únicamente. No recuerdo ya mismo si son las de libc o las de glibc (o ambas  :Very Happy: ) y no necesariamente tienen que coincidir con la versión del kernel instalado.

En definitiva, si vas a recompilar libc o glibc, podrías aprovechar para actualizar las cabeceras antes.

Para el resto de tus paquetes instalados, la versión instalada de linux-headers no hará ninguna diferencia.

A ver si alguien puede ampliar un poco esta información.

Salud!

----------

## papu

 *Inodoro_Pereyra wrote:*   

> Las cabeceras del kernel que instalas con el paquete sys-kernel/linux-header se usan para compilar en contra algunas librerías importantes únicamente. No recuerdo ya mismo si son las de libc o las de glibc (o ambas ) y no necesariamente tienen que coincidir con la versión del kernel instalado.
> 
> En definitiva, si vas a recompilar libc o glibc, podrías aprovechar para actualizar las cabeceras antes.
> 
> Para el resto de tus paquetes instalados, la versión instalada de linux-headers no hará ninguna diferencia.
> ...

 

aja, mis linux-header son mas antiguas que mis kernsl x.x.31 y x.x.32, solo sirven entonces para ese tipo de paquetes que dices? yo crei que con los linux-headers se podía compilar paquetes aunque no tubieras fuentes del kernel.

los libc o glibc supongo se compilaran usando los headers del kernel que tenga yo compilado o este usando en ese momento no? o solo se compilan usando linux-headers( aunque sea más antiguos)?. Es algo lioso esto  :Very Happy: 

saludos, adéu.

----------

## will198

Hola a todos,

Yo lo que tenía entendido es que linux-headers y lilbrerías del kernel eran excluyentes... me explico, hay paquetes que necesitan fuentes del kernel (en mi caso el claro ejemplo son los drivers de la nvidia)... y puedes tener las propias fuentes o las linux headers (creo que ocupan menos espacio que todas las fuentes del kernel)

yo en mi caso lo que hago es compilar el kernel, y dejar las fuentes en usr/src/linux... suelo hacer el mrproper para que ocupe menos... y desde un problema que tuve con no se que paquete vuelvo a poner la config en /usr/src/linux/.config...

por cierto lo de tener muchas fuentes del kernel en /usr/src/ yo creo que da igual la que importa es a la que apunta el vinculo simbólico linux

de todas formas todo esto que os pongo son las sensaciones que tengo yo del tiempo que llevo usando el cacharro este (linux)

por cierto... creo que alguna vez se me ha quejado el driver de nvidia porque no coincidian los headers con la imagen del kernel (cuando usaba ubuntu y no compilaba mi propio kernel... usaba los headers en lugar de las fuentes del kernel)

un saludo a todos y feliz navidad

----------

## opotonil

 *Quote:*   

> 
> 
> En definitiva, si vas a recompilar libc o glibc, podrías aprovechar para actualizar las cabeceras antes. 
> 
> Para el resto de tus paquetes instalados, la versión instalada de linux-headers no hará ninguna diferencia.
> ...

 

Tan solo puedo aportar que hay algun paquete mas que las necesita, porque en la ultima compilacion de "qemu-kvm" me casco diciendo que necesitaba tener como minimo la version x, no recuerdo cual, de las "linux-header".

Salu2.

----------

## papu

vaya cuanto tiempo, buscando info sobre el tema he ido a parar a mi mismo post de cuando empezaba a usar gentoo  :Smile:  , que divertido autocontestarse 

simplemente todo se compila con las fuentes del kernal al que apunta  el enlace simbolico de  /usr/src/linux , independientemente de con que imagen se inicie , si es que hay varias o las fuentes de diferentes kernels  que se tengan en /usr/src/  , cuyos modulos  estan en /lib/modules/

lo que sigo sin saber es para que paquetes es necesario usar linux-headers supongo que seran los que se indican como sigue, en mi instalación a dia de hoy, entre los cuales no aparece glibc por cierto:

```
~ $ equery d linux-headers

 * These packages depend on linux-headers:

app-emulation/qemu-2.7.0-r7 (kernel_linux ? >=sys-kernel/linux-headers-2.6.35)

app-emulation/wine-1.9.20 (>=sys-kernel/linux-headers-2.6)

dev-libs/libbsd-0.8.3 (>=sys-kernel/linux-headers-3.17)

dev-qt/qtgui-5.7.1 (evdev ? sys-kernel/linux-headers)

                   (udev ? sys-kernel/linux-headers)

dev-util/strace-4.15 (sys-kernel/linux-headers)

media-video/ffmpeg-3.2.2 (v4l ? sys-kernel/linux-headers)

sys-apps/busybox-1.25.1 (>=sys-kernel/linux-headers-2.6.39)

sys-apps/iproute2-4.9.0 (>=sys-kernel/linux-headers-3.16)

sys-fs/eudev-3.2.1 (>=sys-kernel/linux-headers-2.6.39)

sys-fs/udisks-2.1.8 (>=sys-kernel/linux-headers-3.1)

sys-libs/efivar-30 (>=sys-kernel/linux-headers-3.18)

sys-libs/libcap-2.25 (sys-kernel/linux-headers)

sys-libs/libcap-ng-0.7.8 (sys-kernel/linux-headers)

sys-libs/libseccomp-2.3.1 (>=sys-kernel/linux-headers-4.3)

sys-libs/mtdev-1.1.5 (>=sys-kernel/linux-headers-2.6.31)

virtual/linuxtv-dvb-headers-5.8 (>=sys-kernel/linux-headers-3.7)

virtual/os-headers-0 (kernel_linux ? sys-kernel/linux-headers:0)

x11-drivers/xf86-input-evdev-2.10.4 (>=sys-kernel/linux-headers-2.6)
```

cuando usaba distribuciones binarias donde nunca compilaba las fuentes del kernel recuerdo que se me pedia bastante los linux-headers, pero desde que uso gentoo simplmente se actualiza y jamás he tenido algun conflicto o se me ha pedido actualizar, también lógicamente porque supongo uso las últimas versiones de los paquetes de la rama inestable.

 :Arrow: 

----------

## quilosaq

 *papu wrote:*   

> ...
> 
> o que sigo sin saber es para que paquetes es necesario usar linux-headers supongo que seran los que se indican como sigue, en mi instalación a dia de hoy, entre los cuales no aparece glibc por cierto:
> 
> ```
> ...

 

glibc no aparece pero es dependencia obligada (salvo que uses freebsd) de virtual/os-headers.

----------

## papu

 *quilosaq wrote:*   

>  *papu wrote:*   ...
> 
> o que sigo sin saber es para que paquetes es necesario usar linux-headers supongo que seran los que se indican como sigue, en mi instalación a dia de hoy, entre los cuales no aparece glibc por cierto:
> 
> ```
> ...

 

¿que paquetes es recomendable recompilar despues de un nuevo linux-headers?  glibc,...   ¿ninguno?

----------

## quilosaq

 *papu wrote:*   

> ...
> 
> ¿que paquetes es recomendable recompilar despues de un nuevo linux-headers?  glibc,...   ¿ninguno?

 

Con carácter obligatorio hay que actualizar lo que diga emerge

```
(root)# emerge -v linux-headers
```

Aparte de lo anterior, no aporta ventaja alguna actualizar ningún paquete, particularmente no sirve de nada actualizar glibc. El caso contrario si que podría darse. Si se actualiza glibc, pudiera ser necesario actualizar linux-headers, dependería de la versión que se tuviera instalada. No hay que preocuparse de esto porque emerge lo dirá llegado el caso.

```
(root)# emerge -v glibc
```

Como buenas prácticas para tener un sistema coherente, hay que actualizar todo lo que dependa recursivamente de linux-header:

```
(root)# emerge -v --update --deep --onlydeps linux-headers
```

o mejor aún

```
(root)# emerge -v --update --deep --newuse world
```

Last edited by quilosaq on Wed Dec 21, 2016 1:27 am; edited 1 time in total

----------

## papu

 *quilosaq wrote:*   

>  *papu wrote:*   ...
> 
> ¿que paquetes es recomendable recompilar despues de un nuevo linux-headers?  glibc,...   ¿ninguno? 
> 
> Con carácter obligatorio hay que actualizar lo que diga emerge
> ...

 

no cuando se compila linux-headers el emerge no dice nada solo compila ese paquete y ya esta, almenos en mi sistema  :Smile: 

----------

