# ERROR: gnome-base/gnome-menus-2.20.1 failed.

## CiScOh4x0r

Hola, bueno, quisiera saber si alguien me podria ayudar... Tengo el siguiente problema... Ocurre, cada vez que hago un update de mi portage, y cuando utilizo revdep-rebuild....

Desinstalo el paquete, de gnome-base/gnome-menus, e intento actualizar, y reconstruir, y sucede lo mismo...

* Messages for package gnome-base/gnome-menus-2.20.1:

 * Could not find a usable .config in the kernel source directory.

 * Please ensure that /usr/src/linux points to a configured set of Linux sources.

 * If you are using KBUILD_OUTPUT, please set the environment var so that

 * it points to the necessary object directory so that it might find .config.

 * 

 *  ERROR: gnome-base/gnome-menus-2.20.1 failed.

 * Call stack:

 *                   ebuild.sh, line 1711:  Called dyn_setup

 *                   ebuild.sh, line  762:  Called qa_call 'pkg_setup'

 *                   ebuild.sh, line   44:  Called pkg_setup

 *   gnome-menus-2.20.1.ebuild, line   30:  Called linux-info_pkg_setup

 *           linux-info.eclass, line  558:  Called die

 * The specific snippet of code:

 *      get_version || die "Unable to calculate Linux Kernel version"

 *  The die message:

 *   Unable to calculate Linux Kernel version

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/gnome-base/gnome-menus-2.20.1/temp/build.log'.

 *

----------

## jgascon

 *CiScOh4x0r wrote:*   

> 
> 
>  * Could not find a usable .config in the kernel source directory.
> 
>  * Please ensure that /usr/src/linux points to a configured set of Linux sources.
> ...

 

Seguramente no tienes el enlace de /usr/src/linux apuntando a las fuentes del kernel que estás usando para comprobarlo haz lo siguiente:

```

ls -l /usr/src/linux

lrwxrwxrwx 1 root root 22 oct 12 21:46 /usr/src/linux -> linux-2.6.22-gentoo-r5

```

```

uname -r

2.6.22-gentoo-r5

```

Si no coinciden vuelve a crear el enlace de /usr/src/linux

Método tradicional:

```

rm /usr/src/linux

cd /usr/src

ln -s linux-2.6.22-gentoo-r5 linux

```

Método gentoo:

```

eselect kernel list

Available kernel symlink targets:

  [1]   linux-2.6.21-gentoo-r4

  [2]   linux-2.6.22-gentoo-r2

  [3]   linux-2.6.22-gentoo-r5 *

  [4]   linux-2.6.22-gentoo-r8

  [5]   linux-2.6.23-gentoo

eselect kernel set 3

```

eselect viene en el paquete app-admin/eselect

----------

## CiScOh4x0r

Bueno, lo intente de las dos formas y esto resulto:

Esto fue antes de hacerlo...

```
GeNtOo ciscoh4x0r # ls -l /usr/src/linux

lrwxrwxrwx 1 root root 19 Nov  2 05:40 /usr/src/linux -> linux-2.6.23-gentoo

GeNtOo ciscoh4x0r # uname -r

2.6.19-gentoo-r5
```

Ahora intento con "Eselect"

```
GeNtOo ciscoh4x0r # eselect kernel list

Available kernel symlink targets:

  [1]   linux-2.6.22-gentoo-r9

  [2]   linux-2.6.23-gentoo *
```

Ahora, del metodo traidiconal:

```
GeNtOo ciscoh4x0r # rm /usr/src/linux

GeNtOo src # ln -s linux-2.6.23-gentoo linux
```

y el resultado es 

```
ciscoh4x0r@GeNtOo ~ $ ls -l /usr/src/linux

lrwxrwxrwx 1 root root 19 Nov  2 05:48 /usr/src/linux -> linux-2.6.23-gentoo

ciscoh4x0r@GeNtOo ~ $ uname -r

2.6.19-gentoo-r5
```

No se, pero tengo el leve presentimiento que segun lo que me dijiste algo debia cambiar, y sigo viendolo justo como lo encontre...

----------

## jgascon

De lo que se trata es de que la salida de ls -l /usr/src/linux  y uname -r coincidan. El enlace /usr/src/linux es un enlace al directorio donde se encuentran las fuentes usadas para compilar el kernel en ejecución. uname -r devuelve el nombre del kernel que se está ejecutando. Algunas aplicaciones, como la que estás intentado instalar, necesitan compilarse contra las mismas fuentes del kernel en ejecución. Aclarado esto, prosigamos. 

```

GeNtOo ciscoh4x0r # ls -l /usr/src/linux

lrwxrwxrwx 1 root root 19 Nov  2 05:40 /usr/src/linux -> linux-2.6.23-gentoo

GeNtOo ciscoh4x0r # uname -r

2.6.19-gentoo-r5

```

Por lo que se ve aquí el kernel que estás ejecutando es un 2.6.19 pero el enlace apunta al directorio de las fuentes del 2.6.23. Como en la salida de eselect que posteas no aparecen las fuentes del 2.6.19 intenta crear el enlace a mano:

```

cd /usr/src

rm linux

ln -s linux-2.6.19-gentoo-r5 linux

```

Para que no te cambie el enlace de /usr/src/linux cada vez que instales el paquete gentoo-sources quítale el USE symlink:

```

echo "gentoo-sources -symlink" >> /etc/portage/package.use

```

----------

## CiScOh4x0r

Ya lo consegui...    :Laughing: 

```
GeNtOo ciscoh4x0r # uname -r

2.6.19-gentoo-r5

GeNtOo ciscoh4x0r # ls -l /usr/src/linux

lrwxrwxrwx 1 root root 22 Nov  2 08:41 /usr/src/linux -> linux-2.6.19-gentoo-r5

GeNtOo ciscoh4x0r # 
```

Pero hay algo que no entiendo bien... 

Esto : 

```
/usr/src/linux -> linux-2.6.19-gentoo-r5
```

 Parpadea , tiene un color rojo de fondo, y parpadea, por que? a lo mejor la pregunta es tonta, y simplemente parpadea, porque encajan los dos, o a lo mejor porque  estoy usando esa version del kernel teniendo la : "linux-2.6.23-gentoo" ...

Tu me diras...

Por cierto, ahora cuando hago un "emerge --sync" me dice esto al empezar :  "--- Invalid atom in /etc/portage/package.use: gentoo-sources" y eso creo que fue porque hice lo que me pediste de 

```
echo "gentoo-sources -symlink" >> /etc/portage/package.use 
```

 ... Tendre problemas? no he dormido aun hahahahha

----------

## jgascon

 *CiScOh4x0r wrote:*   

> 
> 
> Por cierto, ahora cuando hago un "emerge --sync" me dice esto al empezar : "--- Invalid atom in /etc/portage/package.use: gentoo-sources" y eso creo que fue porque hice lo que me pediste de
> 
> 

 

Sí, me equivoqué elimina la línea que te dije que pusieras en /etc/portage/package.use y añade esta:

```

sys-kernel/gentoo-sources -symlink

```

 *CiScOh4x0r wrote:*   

> 
> 
>  Parpadea , tiene un color rojo de fondo, y parpadea, por que?
> 
> 

 

Pues tienes un problema, eso pasa porque al crear el enlace el directorio destino no existe, en este caso linux-2.6.19-gentoo-r5. En algún momento lo debes haber borrado y por eso no salía en el eselect. Lo peor es que al haber borrado el directorio también habrás borrado el .config del kernel con toda la configuración. Pero antes de alarmarnos, haz un ls en el directorio /usr/src y assegúrate que realmente no existe ningún directorio linux-2.6.19-gentoo-r5 (el que parpadea en rojo no vale). Igual solamente lo habías tecleado/pegado mal  :Wink:  Si existe crea otra vez el enlace, si no, vamos a intentar arreglarlo.

Primero de todo elimina el enlace de /usr/src/linux

```

rm /usr/src/linux

```

Después, tienes dos opciones:

a) Compilar e instalar la nueva versión del kernel (2.6.23) y volver a crear el enlace de /usr/src/linux a las fuentes del nuevo kernel. 

    - Ventajas: kernel actualizado

    - Desventajas: tendrás que configurar el kernel

b) Volver a instalar las fuentes del kernel viejo, intentar recuperar la configuración y rehacer el enlace de /usr/src/linux

    - Ventajas: no tienes que volver a configurar el kernel

Sea cual sea la opción elegida te recomiendo que consultes Guía Genkernel de Gentoo Linux o HOWTO Compilar el kernel manualmente según prefieras usar genkernel o compilar el kernel a mano.

Si escoges la opción b), para volver a instalar las fuentes del kernel haz lo siguiente:

```

emerge =sys-kernel/gentoo-sources-2.6.19-r5

```

Lo complicado ahora es recuperar la configuración del kernel. Si tienes suerte y configuraste el kernel con la opción "CONFIG_IKCONFIG_PROC=y" puedes recuperarla haciendo esto:

```

zcat /proc/config.gz > /usr/src/linux-2.6.19-gentoo-r5/.config

```

Si no funciona, y si usabas genkernel puede que la configuración del kernel este en el directorio /boot. Tienes que buscar un archivo que se llame config-2.6.19-gentoo-r5. De esto no estoy muy seguro porque nunca he usado genkernel.

Si no puedes recuperar la configuración del kernel de ninguna manera entonces es mejor que compiles el kernel nuevo.

----------

## CiScOh4x0r

Hola, sabés? estaba recompilando mi kernel, para solucionar el problema, pero llegue a un punto, que no se que es lo que hice mal, baje el gentoo-sources, ok, y todo, hice el config. y ya, solo debo seguir el paso de make && make modules_install.... bueno, este es mi problema:

```
cd /usr/src && ln -s linux-2.6.22-gentoo-r9 linux
```

que es para crear el enlace simbolico, y luego ejecuto 

```
make && make modules_install
```

y me marca un error

```
GeNtOo src # ln -s linux-2.6.22-gentoo-r9 linux

GeNtOo src # make && make modules_install

make: *** No targets specified and no makefile found.  Stop.
```

bueno, no funciono, entonces, dije tal vez es porque no le di la dirección y probe:

```
GeNtOo src # cd /usr/src/linux

GeNtOo linux # make && make modules_install

scripts/kconfig/conf -s arch/x86_64/Kconfig

***

*** You have not yet configured your kernel!

*** (missing kernel .config file)

***

*** Please run some configurator (e.g. "make oldconfig" or

*** "make menuconfig" or "make xconfig").

***

make[2]: *** [silentoldconfig] Error 1

make[1]: *** [silentoldconfig] Error 2

make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.

```

y me dio lo mismo, no entiendo porque, y cuando reviso la carpeta, y reviso los archivos simbolicos que cree, me marcan un error, dicen "link broken"...

no estoy seguro que hice mal!

----------

## jgascon

Antes de ver por donde seguimos cópiame por favor la salida de la siguiente orden ls -l /usr/src

----------

## CiScOh4x0r

Hola! gracias por tu ayuda de verdad, me sirvio de mucho, me andube leyendo unos cuantos howto, y ya logre reparar mi kernel, lo borre,  lo baje de nuevo, y lo recompile, y hoy mi Gentoo está que vuela   :Very Happy:   , agradezco tu ayuda!

----------

