# [KERNEL] Problema con el make menuconfig (solucionado)

## Darth Noire

Hola

Bueno el problema es que cuando iba a instalar Alsa en mi Gentoo utilizando la proporcionada por el núcleo.  Descubro que no puedo ejecutar el comando (make menuconfig).

Hago lo siguiente:

localhost darthnoire # cd /usr/src/linux

localhost linux # make menuconfig

y me sale lo siguiente:

make: *** No hay ninguna regla para construir el objetivo 'menuconfig'. Alto.

Si ejecuto el siguiente comando esto es lo que me sale:

localhost darthnoire # ls -l /usr/src/linux

lrwxrwxrwx 1 root root 22 sep 28 21:35 /usr/src/linux -> linux-2.6.22-gentoo-r8

De verdad no se cual pueda ser el problema ya que antes de intentar instalar Alsa había activado los soportes para el vídeo haciendo uso del (make menuconfig). 

Cualquier ayuda se los agradezco.

GraciasLast edited by Darth Noire on Wed Nov 14, 2007 4:11 am; edited 1 time in total

----------

## jgascon

Péganos, por favor, la salida de la siguiente orden:

```

ls /usr/src/linux

```

----------

## Darth Noire

Hola

Buena aquí esta la salida de ese comando:

```
localhost darthnoire # ls /usr/src/linux

arch     drivers    init          lib                          net          sound             vmlinux

block    fs            ipc          mm                       scripts     System.map

crypto  include    kernel     Module.symvers   security   usr
```

Espero que sirva.

Gracias

----------

## achaw

Ese directorio esta incompleto. Falta el Makefile po ejemplo, por eso te sale ese error. Hay algo que esta mal, usaste portage para instalar el kernel? Parece mas residuos de un viejo kernel desinstalado....

Saludos

----------

## i92guboj

Ese dir no tiene makefile al menos desde yo recuerdo.

Prueba ARCH="x86" make menuconfig (o make oldconfig o lo que quieras).

Si tu arch no es x86, cámbiala por la correcta, por ejemplo: ARCH="x86_64". A ver si anda.

----------

## achaw

 *Quote:*   

> ls /usr/src/linux
> 
> arch     Documentation  ipc     linux-2.6.22-gentoo-r2  net             security
> 
> block    drivers        Kbuild  MAINTAINERS             patches.txt     sound
> ...

 

----------

## Darth Noire

Hola

Bueno contestando a la pregunta de achaw, si instale el kernel utilizando portage de echo esa instalación es la única que echo de un kernel esta instalación  porque anterior mente había borrado la maquina completamente, osea es una nueva instalación.

También hice lo que me sugirió i92guboj, pero nada la salida fue la misma:

```
localhost darthnoire # ARCH="x86" make menuconfig

make: *** No hay ninguna regla para construir el objetivo 'menuconfig'. Alto.
```

Pregunto si bajo la nueva versión del kernel (gentoo-sources-2.6.23), la cual creo que todavía no esta como estable en el árbol de portage, se solucionaría el problema.

La versión que estoy utilizando del kernel es "linux-2.6.22-gentoo-r8".

Gracias

----------

## achaw

Seguro, actualizando o volviendo a emerger el kernel actual que tenes imagino que se solucionaria...

Saludos

----------

## jgascon

Si has hecho un emerge --depclean últimamente es muy posible que emerge se haya "cepillado" la mitad del directorio de las fuentes del kernel pero lo más probable es que tengas todavía el archivo .config con la configuración. Yo de ti haría una copia del .config eliminaría el directorio /usr/src/linux-2.6.22-gentoo-r8 y volvería a emerger el paquete:

```

emerge =sys-kernel/gentoo-sources-2.6.22-gentoo-r8

```

Depués ya puedes compilar e instalar el kernel como siempre  :Wink: 

----------

## i92guboj

 *achaw wrote:*   

>  *Quote:*   ls /usr/src/linux
> 
> arch     Documentation  ipc     linux-2.6.22-gentoo-r2  net             security
> 
> block    drivers        Kbuild  MAINTAINERS             patches.txt     sound
> ...

 

Ops jeje, no se como vi el post, que pensé que estábais hablando del dir arch/. Olvidad mi post de arriba.

Gracias, achaw.

----------

## Darth Noire

Hola

Bueno es seguido dándole vuelta al problema y me e encontrado con esto.

Si escribo esta instrucción:

```
darthnoire@localhost  ~ $ ls /usr/src
```

me da esta salida:

```
linux    linux-2.6.22-gentoo-r8    linux-2.6.22-gentoo-r9
```

En realidad no se si eso esta correcto ya que yo no e bajado ningún otro kernel, no se si al hacerle un update al sistema me lo haya bajado.

Ahora si ejecuto este comando:

```
localhost darthnoire # cd /usr/src/linux-2.6.22-gentoo-r8 && make menuconfig
```

me sale lo mismo que las otras veces:

```
make: *** No hay ninguna regla para construir el objetivo 'menuconfig'. Alto.
```

Pero si lo cambio por:

```
localhost darthnoire # cd /usr/src/linux-2.6.22-gentoo-r9 && make menuconfig
```

Entro a la configuración del kernel como siempre sin ningún problema.

Gracias

----------

## Yoshi Assim

Hola:

Asegúrate que el link /usr/src/linux apunta al directorio con el kernel que quieres compilar

```
gentoo ~ # ls -la /usr/src

total 88

drwxr-xr-x  5 root root  4096 nov  1 13:39 .

drwxr-xr-x 18 root root  4096 nov  1 16:40 ..

-rw-r--r--  1 root root 63955 oct 12 21:03 .config

-rw-r--r--  1 root root     0 abr 20  2007 .keep

lrwxrwxrwx  1 root root    24 nov  1 13:39 linux -> ./linux-2.6.22-gentoo-r9

drwxr-xr-x 20 root root  4096 oct 20 10:23 linux-2.6.21-gentoo-r4

drwxr-xr-x 20 root root  4096 oct 31 20:44 linux-2.6.22-gentoo-r8

drwxr-xr-x 20 root root  4096 nov  1 14:22 linux-2.6.22-gentoo-r9

lrwxrwxrwx  1 root root    22 ago 24 20:29 linux.old -> linux-2.6.21-gentoo-r4

lrwxrwxrwx  1 root root    22 oct 12 21:05 linux-r8 -> linux-2.6.22-gentoo-r8

gentoo ~ # 

```

Yo tengo dos kernel "antiguos", y un par de links antiguos que me sirven (por comodidad y rapidez) para volver al kernel viejo en un momento si, por lo que fuera, el nuevo núcleo no arrancara bien o su funcionamiento no fuera correcto...

Si no quieres configurar un núcleo desde cero puedes copiar desde el directorio /proc el fichero .config.gz que es una copia, comprimida, de la configuración de tu kernel de arranque (si fue configurado con esta característica)...

1 ) Para asegurarte de que todo está OK borra el contenido del directorio /usr/src. Pon mucho cuidado y atención al borrar:

```
gentoo src # rm -Rf /usr/src/*
```

2 ) Emerge el kernel que quieras. P.Ej.: gentoo-sources:

```
gentoo ~ # emerge gentoo-sources
```

3 ) Crea el link linux al directorio del kernel que has emergido. P.Ej.: gentoo-sources-r9:

```
 gentoo src # link -s /usr/src/linux-2.6.22-gentoo-r9 /usr/src/linux
```

4 ) Copia y descomprime la configuración del kernel con el que arrancaste (si está activada esta opción) desde /proc:

```
gentoo linux # cp /proc/.config.gz /usr/src/linux

gentoo linux # gunzip .config.gz
```

5 ) Ahora actuliza el config  al kernel que quieres compilar, sólo te preguntará sobre las opciones y módulos que hayan cambiado del kernel antiguo al nuevo:

```
gentoo linux # make oldconfig
```

6 ) Ahora deberías estar en condiciones de poder ejecutar un make menuconfig o de compilar el kernel con make -j3 (la opción -j3 sirve para lanzar 3 compilaciones a la vez, lo que mejora el tiempo de compilación del kernel) y después con make modules_install copiar los módulos a /lib/modules...

7 ) A continuación monta la partición /boot si no la tienes montada en el sistema y copia el bzImage desde /usr/src/linux/arch/i386/boot a /boot

8 ) Modifica la configuración de grub o de lilo o el gestor de arranque que utilices para poder arrancar desde el nuevo kernel. Es mejor añadir una nueva opción para el poder arrancar con el kernel recién compilado y no tocar las entradas de los núcleos anteriores (por si el nuevo fallara o no funcionara correctamente).

9 ) Sería "conveniente" que volvieras a emerger paquetes tales como:

```

sys-fs/udev

sys-apps/dbus

sys-apps/hal

x11-drivers/ati-drivers

sys-fs/ntfs3g

sys-fs/fuse

net-wireless/madwifi-ng

net-wireless/madwifi-ng-tools

net-dns/avahi

sys-power/acpid

sys-power/cpufreqd

app-laptop/laptop-mode-tools

x11-base/xorg-x11

```

Yo tengo un NoteBook HP con chip gráfico Ati Mobility Radeon y una tarjeta wireless con chipset Atheros... por eso recompilo sus controladores y alguna "cosilla" más que ... Es probable que aquí falte añadir algún otro paquete que se me haya pasado por alto... Pero aquí entran en juego los "compis" del foro    :Very Happy:   :Very Happy:   :Very Happy: 

Espero que se haya sido de utilidad.

  Modificado para corregir alguna falta de estilo y hacer una pequeña correción el 12/11/2.007 Last edited by Yoshi Assim on Mon Nov 12, 2007 6:13 pm; edited 2 times in total

----------

## jgascon

Por lo que yo he visto actualizando dos máquinas que tengo con gentoo el comportamiento ahora de emerge al hacer un --depclean es cargarse indiscriminadamente los paquetes de fuentes del kernel que tengas instalados excepto el que él cree que estás usando pero en mi caso no ha acertado nunca y se quería cargar el que estaba usando. Este comportamiento no sé a que se debe quizás haya algún conflicto en cómo yo gestiono los kernels y cómo cree portage que lo estoy haciendo.

Cuando portage se carga un paquete de fuentes gentoo-sources-2.6.x-gentoo-rx deja el directorio /usr/src/linux-2.6.x-gentoo-rx pero se carga casí todo el contenido ya que portage sólo elimina los archivos creados por él no los que tú modificas o creas durante la compilación del kernel. Yo para evitar que se cargue las fuentes que estoy usando he hago esto:

```

echo "=sys-kernel/gentoo-sources-2.6.x-rx" >> /var/lib/portage/world

```

Es una chapuza pero es lo único que se me ha ocurrido.

En tu caso si quieres usar un kernel más reciente (linux-2.6.22-gentoo-r9) puedes copiar el archivo .config que seguramente tendrás en /usr/src/linux correspondiente a tu kernel anterios al directorio del nuevo kernel /usr/src/linux-2.6.22-gentoo-r9 (antes aegúrate que no exista el archivo .config en el directorio donde lo vas a copiar) y ejecutar:

```

make oldconfig

make menuconfig

```

make oldconfig sólo te pedirá que configures las opciones que hayan cambiado entre las versiones de ambos kernels. make menuconfig lo puedes usar para asegurarte de que todas las opciones son correctas.

Todo esto te lo cuento para que no tengas que volver a configurar el kernel  :Wink: 

¡¡¡EDIT!!! Veo que se me ha adelantado el compañero Yoshi Assim en todo lo referente a la compilación del kernel sigue sus consejos que está muy bien explicados  :Wink: 

----------

## Darth Noire

Hola

Muchas gracias por su ayuda ya pude configurar mi kernel con soporte para Alsa.  Seguí los paso que me dio Yoshi Assim y todo salio bien. 

Bueno y secundando lo que dice jgascon sobre que el --depclean borra los paquetes fuentes del kernel creo que podría ser cierto ya que yo antes de encontrarme con este problema había echo un --depclean.  Lo que no entiendo es porque, lo único que se me ocurre es que cuando ejecute el comando --depclean este al encontrar dos kernel en mi sistema busco cual era el mas reciente, en este caso el linux-2.6.22-gentoo-r9, y borro los paquetes fuentes del otro kernel, el linux-2.6.22-gentoo-r8.  No se si eso pudo haber sido lo que paso, pero de ahí en fuera no se me ocurre mas nada.

Muchas gracias por su ayuda.

Saludos

----------

