# Configurar kernel a mano ( menuconfig )

## LuzbeL

Hola, queria preguntaros una dudilla: A la hora de configurar el kernel, recomendais que quite el soporte a todo aquello que no vaya a utilizar nunca? Y una cosa, que diferencia hay de tenerlo en modo de Modulo y activado? ( * y M )

También, queria preguntar que es lo que hace en realidad las USE Flags.

Gracias.

----------

## ZaPa

Hola...

El tener activado una opción del kernel con el asterisco <*> indica al kernel que esos modulos se cargen al inicio pero no como modulos, nada más arrancar el sistema, el kernel cargará las opciones indicadas con (*) sin consultar ningun archivo adicional ni nada por el estilo.

En cambio, con la M de modulo <M>. El kernel cargará estos "modulos" o "drivers" cuando tu se lo indiques. 

O bien, con un modprobe o bien editando el fichero de inicio del sistema de carga de modulos.

Antes de la carga de los modulos al inicio del sistema consulta un fichero de configuración para ver si el administrador quiere o no que se cargue este modulo.

Si los marcas como modulos, puedes consultar que modulos tienes cargados con lsmod, cosa que si lo tienes con <*> no.

Las USE Flags son para desactivar lo que tu no quieras en una compilación del programa, te comento:

Ubuntu por ejemplo, al instalar un paquete .deb instala TODO el paquete. Es decir, todas sus caracteristicas que quizás nosotros no las necesitamos y lo único que va a provocar es que consuma recursos innecesariamente...

Imagina que quieres instalar putty (para control remoto, ssh, telnet, etc..). Pero tu solamente quieres putty para linea de comandos y no quieres que muestre ventanas con gtk. Emergeriamos putty de la siguiente forma:

```

USE="-gtk" emerge putty

```

Con el - le indicamos que NO queremos esa opción o libreria para el programa que quiero compilar.

Cosa que con ubuntu SI o SI te instala TODO. ¿Porque? ¿si no necesito esa utilidad en un programa en concreto? Además esto hará que consuma tu pc más recursos.

En definitiva: Las uses son para ACTIVAR o DESACTIVAR librerias adicionales que se van a compilar con el programa que quieres instalar en tu pc.

Un saludo.

----------

## LuzbeL

Vale gracias.  :Very Happy:  Me has servido mucho de ayuda.

P.D: Si por egemplo pongo -gtk , e instalo 1 programa que instala esto, me daría error o se me quedaria la instalación corrupta por no haber instalado todo lo necesario el programa?

Gracias.

----------

## pelelademadera

2 cosas.

hacer 

```
USE="-gtk" emerge putty
```

 no es para nada recomendado... cuando hagas un emerge -DuNav world, te reinstalara putty con gtk si la tienes activada globalmente.

para eso esta el fichero package.use dentro de /etc/portage/ y habria que agregar

```
net-misc/putty -gtk
```

por otra parte, que lo instales con una flag o no, solo significa soporte para tal o cual cosa. en gral, gtk, qt, qt4 significan que lo instala con soporte a grafico. si instalas mplayer con la flag lame, instalara mplayer igual que sin la flag, solo que podras usar lame para codificar con codec lame.

no se si aclara tus dudas.

por otra parte, el kernel, sacar el soporte para lo que no uses seria lo recomendado para un sistema optimizado, ademas, agregar el soporte es solo volver a hacer el menuconfig, tildar lo que necesitas y compilar encima, reinicias y listo

recorda que tenes que instalar con <*> los drivers de la controladora de tu disco de booteo, sino no booteara, grub arrancara bien, pero te aparecera algo como waiting for root device

----------

## ZaPa

Hola...

No te daria ningún error. Simplemente el programa no se instala con esa utilidad y ya está...

Si quisiera instalar cualquier gestor de red, pero solamente lo quiero para tcp/ip v4 y no para tcp/ip v6, se haria lo que te comenté anteriormente con la use relacionada a ipv6  y con esto se instalaria el programa SIN SOPORTE PARA ipv6. Con esto ahorramos espacio y recursos..

Si tu realizas una instalación de una USE ""ESENCIAL"" para el funcionamiento del programa, casi seguro que no te deje continuar con la compilación avisandote de que tal USE es necesaria. O también podria, terminar de compilarse, pero no iniciar el programa o no trabajar correctamente..

Algo asi me ocurrio a mí con KDENLIVE. Es un programa de edición de video para linux. Compilé este programa sin soporte para mpeg, en la compilación no se mostró ningún warning ni nada por el estilo, pero a la hora de trabajar con el programa, causaba crashes y demás problemas bastante raritos. La solución, fué compilar KDENLIVE con la use mpeg activada.

ATENCIÓN ! Es importante lo que comenta pelelademadera, para quitar cualquier opción no se realiza como te lo dije anteriormente (solo era un ejemplo) para ese fin, portage tiene los ficheros, package.use donde puedes indicar que USES quieres o no utilizar.

El no hacerlo como comenta pelademadera puede corromper tu sistema al realizar una actualización del sistema.

Saludos.

----------

## LuzbeL

Yo a lo que me referia era el modificar el USE Flags de make.conf. Ahi entonces me recomendais no utilizar ningun use?  por eso de que luego no me instale bien las cosas. Esto lo digo porque voy a instalar Gentoo en una PC y quisiera tener aclarado lo de las USE. En ese PC no utilizare kde ni gnome.

----------

## Pablo S. Barrera

Sabes que seria de muchisima utilidad leas esta guia

http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=2&chap=2

Más alla de la ayuda brindada en este foro hay muchisimo para comprender de los USE, no es nada trivial el tema, una correcta configuracion de los USE hace un sistema adaptado, una incorrecta hace un sistema lleno de cosas que no necesitas y las cosas que necesitas no las tenes. La optimizacion tiene que ver con esto en si.

Compilar cierto paquete con ciertas caracteristicas, depende solo de vos, de lo que vayas a usar. Hay USE temporales, de ciertas aplicaciones, de todo el sistema. La lectura de esa guia va a ayudarte muchisimo realmente. Espero puedas leerla. Cualquier duda obvio el foro esta al rescate. Saludos y bienvenido!

----------

## pelelademadera

personalmente uso perfil default, en el make.conf tengo las uses globales, y despues cada paquete con sus uses particulares en /etc/portage/package.use

lleva tiempo hacerlo, pero es lo mas "optimo"

----------

## LuzbeL

Bueno, yo pondré en make.conf como USE's: "-kde -gnome -gtk -qt -qt -qt3 -qt4",  ya que no me interesa mucho los temas gráficos, porque me instalaré Ratpoison. Pero eso si, como dije, a la hora que quiera utilizar gimp o algun otro programa, no me dará problemas no? podré utilizarlo bien.

Otra cosa, en la BIOS tengo una opción que se llama SATA MODE oalgo asi, y em da la opcion de ponerlo en RAID y IDE. En cual he de ponerlo? Me he fijado que si lo pongo en RAID, al principio tengo que cargar el Gentoo minimal CD con "gentoo nodmraid", ya que si no a la hora de crear la particion me salia como sda1pt1 o una cosa así rara... Esto a que se debe? y otra cosa. MI placa base tiene de controladora SATA, VIA. A la hora de compilar el kernel a mano, con elegir VIA SATA Support me debería de valer a para que me reconociera el disco duro? o tengo que activar otra cosa?

Gracias.

----------

## ensarman

yo tengo en algunos programas  activada la USE=gnome para que, por ejemplo, el firefox me pueda abrir automaticamente archivos descargados con el programa respectivo.

bueno aveces la opcion USE=gnome hace qeu se activen algunas caratreristicas utiles que estan presentes en las librerias de gnome.

otra cosa, por ejmplo si usas USE=-gtk en algunas aplicaciones, simplemente no tendras interfaz gráfica pero el programa funcionará sin interfaz fráfica, por ejemplo en wpa_supplicant con USE=qt4 me da una interfaz gráfica que funciona casi como un NetwarkManager para wifi

----------

## LuzbeL

Y un programa sin interfaz gráfica como es? No me lo hago a la idea. Saludos.

----------

## pelelademadera

aver, son algunos nada mas que tienen esas opciones. putty es uno, si no activas interfaz, se usa  por consola.

amule se puede instalar con interfaz o modo demonio que tambien se maneja por consola.

no te enrolles, si usas gnome o cualquier derivado usa la flag gtk. si usas kde, usa qt4 como flag y listo

otro ejemplo es mplayer. si activas gmplayer como flag, instala una interfaz basica de mplayer, si usas otro reproductor, es innecesario activar esa flag

----------

## LuzbeL

Es que utilizaré Ratpoison, por eso quise poner esas USE's que puse anteriormente

----------

## pelelademadera

 *Quote:*   

> emerge  -pv ratpoison
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> ...

 

no necesita ninguna de esas flags. de ultima ademas, podes modificar las flags al vuelo, recompilas y listo, ya sea particularmente para un paquete, o para el sistema desde make.conf

----------

## Juan Facundo

 *ZaPa wrote:*   

> ...El tener activado una opción del kernel con el asterisco <*> indica al kernel que esos modulos se cargen al inicio pero no como modulos, nada más arrancar el sistema, el kernel cargará las opciones indicadas con (*) sin consultar ningun archivo adicional ni nada por el estilo.

 

No me queda muy claro esto, o yo estoy con un error de concepto: hasta donde se, y si alguien me corrige por favor: lo que marques con *, se compilara junto con el núcleo, no necesita ser cargado luego ya que se carga en el momento en que se carga el núcleo.

 *Quote:*   

> ..En cambio, con la M de modulo <M>. El kernel cargará estos "modulos" o "drivers" cuando tu se lo indiques. 
> 
> O bien, con un modprobe o bien editando el fichero de inicio del sistema de carga de modulos.
> 
> Antes de la carga de los modulos al inicio del sistema consulta un fichero de configuración para ver si el administrador quiere o no que se cargue este modulo.

 

Según creo, no existe diferencia al tener un controlador como módulo o en el núcleo. Es cuestión de utilidad y gustos.

Por ejemplo, yo tengo 2 tarjetas de sonido. Una la uso para uso normal, así que el controlador de ésta, está compilado junto con el núcleo, no necesito cargarlo como módulo. Pero a veces me gusta poner música en las fiestas y esas cosas, entonces necesito la segunda, que es una soundblaster live!, entonces, en ese momento, cargo el módulo controlador de esta tarjeta 

```
pc-xx #: modprobe snd-emu10k1
```

 y ya las tengo para usar a ambas con el programa mixxx, por ejemplo.

----------

## ZaPa

Hola.

Juan Facundo, he reeleido varias veces lo que has escrito y es exáctamente lo mismo que yo he explicado en mi post...Según me a dado a entender...

Otra cosa importante es que, algunos modulos SI o SI necesitan marcarse como modulos <M>, como por ejemplo, ALSA del kernel, que no funciona correctamente si no se marca como modulo...

Saludos.

----------

## pelelademadera

es asi como ustedes lo dicen, la diferencia fundamental esta en poder cargarlo o no, y ademas en poder pasarle parametros cuando esta como M, yo personalmente compilo todo lo basico que siempre esta en mi pc como * y solo dejo como M lo que no voy a usar todo el tiempo, x ejemplo el bluetooth. o algun sistema de ficheros, como puede ser ext3 y ext4 que no los uso yo, pero tengo conocidos que lo usan. me resulta mas comodo tener las cosas como * al menos las que siempre se usan. la placa de audio, las eth.... supongo que es lo mismo si se acomoda todo, no se como es el tema de consumo de recursos a igual cantidad de modulos cargados y * seteados

----------

## Inodoro_Pereyra

Siempre supuse que todo el asunto de si como estático o como módulo dependía del footprint del kernel en la RAM. Yo también siempre me tiro por estático y dejo módular prácticamente nada... Hablar de cuanta memoria RAM consumirá un kernel con todo estático o modular, con las PC de hoy en día, es ridículo, pero hace 10 años o mas no era tan así y de ahí debe venir todo el asunto.

Claro que también están los casos en donde nada mejor que la modularización, como los sistemas live-(cd/dvd/usb) en donde es imposible conocer el hardware con anterioridad...

Zapa: Si bien no lo he probado nunca, (a ver si alguien me corrije si no estoy en lo cierto) lo único que no va a funcionar si se marcan como estáticos los drivers de sonido es la utilidad alsaconf, que será incapaz de hacer modprobe a los modulos uno por uno hasta dar con el indicado. De hecho, el servicio alsasound a groso modo lo único que hace es cargar el módulo pertinente y ajustar el volumen. Habiendo marcado el driver como estático, no debería ser necesario ejecutar alsaconf. Deberías tener sonido a la primera sin hacer autodetección de nada (ya la hace el kernel el solito cuando bootea).

Salud!

----------

## pelelademadera

yo use siempre alsa con * y nunca tube problemas.

lo que si te puedo decir es que tube un mobo intel, que dmesg me tiraba un error en el firmware, que no tenia ni idea de que era, que lo solucione compilando el driver como M y pasandole parametros, con * no andaba...

----------

## ZaPa

Hola...

Me gusta como se esta extendiendo este post....(aqui existe mucha vida linuxera  :Very Happy: )...

Antes que nada Inodoro_Pereyra un saludazo amigo!!...

Lo escrito anteriormente (sobre modulado o no con alsa), lo he vivido personalmente. Como bien dice el manual de configuración de alsa de gentoo, se deben marcar como Modulo <M> todo lo relacionado con alsa de lo contrario, no funcionara. Lo comento porqué hace un tiempo, estube bastante liado con este tema. No me funcionaba el audio en mi laptop. Marque todo lo relacionado con alsa como modulo y a marchar!!!

Porcierto Inodoro_Pereyra... ¿que es el footprint del kernel?

Saludos.

----------

## Juan Facundo

 *ZaPa wrote:*   

> ...Porcierto Inodoro_Pereyra... ¿que es el footprint del kernel?...Saludos.

  Si, a mi también me mató con esa !!!!  :Laughing:   :Laughing: 

----------

## Inodoro_Pereyra

La huella, la pisada sería la traducción mas parecida. Me salió eso por que es un término que se aplica usualmente en inglés para referirse a cuanto de un recurso se consume con tal o cual aplicación. En este caso me refería a cuanto ocupa el kernel una vez descomprimido en la ram.

Salud!

----------

## Pablo S. Barrera

Con respecto al Raid, es para tener discos espejados, en paralelo digamos. Si en el BIOS pones SATA en modo IDE, vas a tener un disco normal, si lo pones en modo RAID deberias de tener 2 discos iguales y trabajarlos de otra forma, que creo no es tu caso.  

Los conductores VIA del SATA se activan como lo comentaste, esto no tenes que ponerlo como modulo por que no arranca! 

Saludos

----------

## Santi_Casares

Hola gente! Les cuento, soy muy pero muy nuevo en linux. Lo poco que se es gracias a mi profesor de Sistemas Operativos, en su materia estamos armando nuestro propio Gentoo. Por ahora va todo viento en popa, estoy aprendiendo bien, pero el profe nos ha dicho que hay que obviar la parte de menuconfig. Lo cual me hace cuestionar eso, y mis preguntas son ¿Por que hay que obviarlo? ¿que diferencia hay entre configurarlo manualmente y obviar esa parte? ¿cambia mucho la eficiencia o funcionamiento del sistemas operativo?

Yo según entiendo, configurandolo a mano me parece mucho mejor porque se ajusta especialmente a la maquina que uno usa y por lo tanto el sistema es mas eficiente. Pero no se, uds. dirán.

Gracias por su atención.

----------

## Pablo S. Barrera

Hola. Podras postear esto mismo pero con otro titulo, entiendo lo que decis pero hay cosas que preguntarte y pueda dar para largo, la cuestion es que uds estan haciendo una Distro y esto es sobre el kernel, las uses y demas factores. Espero no lo tomes a mal y apenas lo vea te cuento que pienso.

----------

## gringo

@Santi_Casares : bienvenido a gentoo. 

La próxima vez abre un hilo nuevo. Igual algún Mod puede moverlo pls.?

 *Quote:*   

> ¿Por que hay que obviarlo? 

 

por una cuestión práctica supongo, explicar la configuración manual del kernel es muy complejo y seguramente no es el objetivo de la materia. 

De cualquier manera puedes hacerlo por tu cuenta, realmente lo único que tienes que hacer es ir leyendo los menús y sus ayudas.

 *Quote:*   

> ¿cambia mucho la eficiencia o funcionamiento del sistemas operativo? 

 

hombre, puedo imaginar un par de situaciones en las que efectivamente el kernel sea "mas eficiente" si sólo tiene compilado lo que le hace falta pero dudo mucho que sea perceptible por el usuario o cuantificable de un forma fiable. Una situación "común" es que para un mismo hardware haya disponible mas de un driver y se cargue el driver que el usuario no necesita. Además supongo que la carga del sistema se "ralentizará" un poco al cargar mas drivers de los necesarios pero cuando digo "ralentizará" estoy hablando seguramente de nanosegundos, es decir, algo imperceptible.

Dos detalles de todas formas :

- la mayoría de distros cargan drivers a diestro y siniestro, forma parte del proceso de detección de hardware. Nuevamente por una razón pŕactica : se suministra un kernel "todoterreno" que tiene que funcionar en todo tipo de hardware y que sea capaz de detectar hardware nuevo.

- en la inmensa mayoría de distros no vas a ser capaz de cargar un kernel compilado por ti a menos que sepas muy bien lo que estás haciendo. Todas las distros parchean sus kernels a lo bestia, gentoo tb. lo hace en sus gentoo-sources pero es casi insignificante comparado con lo que hace fedora p.ej. Lo hacen normalmente para dar soporte a hardware que no está oficialmente soportado aún o simplemente para conseguir una cierta funcionalidad que no está disponible en el kernel oficial.

saluetes

----------

## Pablo S. Barrera

Queria preguntarte si estan haciendo una distro, tipo livecd/livedvd para utilizar sin instalar. ¿Esto es no?

Si asi es el caso hacer un kernel general es lo más adecuado ya que lo corres en cualquier equipo y funciona, es todoterreno como dice Gringo. 

Tambien esta el tema que compilar un kernel es algo sumamente complicado y a la vez sencillo ja. Cada vez que lo hago me hago un cafe, me siento con el tiempo necesario para relajadamente configurar los parametros y siempre me olvido de algo. Es complicado de dar en una clase además. Hay mucho hardware, todos los casos son particulares y la optimizacion requiere conocimientos de hardware, del hardware donde vas a meter al pinguinito, y lleva su tiempo verlo completamente, hay opciones que no se ni para que son, y nunca las utilice, es como que es un tema un tanto grande. 

En pocas distribuciones los usuarios/administradores tocan el kernel. Gentoo de una te tira un balde de agua fria y te despierta con esto, te da la opcion de elegir pero es el unico que hace esto, encima de entrada, a la hora de estar instalando un sistema "nuevo". 

Espero los comentarios te sirvan y queria preguntarte en donde estan haciendo esto y que cualquier cosa estamos aca.

Saludos y bienvenido a Gentoo!

----------

