Gentoo Logo

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


7. Configurar el núcleo

Contenido:

7.a. Instalar las fuentes

Elegir un núcleo

El eje alrededor del cual se construyen todas las distribuciones es el núcleo de Linux. Es la capa entre los programas de usuario y el hardware del sistema. Gentoo proporciona a sus usuarios varias fuentes de núcleos. Una lista completa está disponible en la Guía del núcleo en Gentoo.

Para los sistemas basados en AMD64 tenemos, entre otros núcleos, gentoo-sources (fuentes del núcleo modificadas para obtener algunas características adicionales).

Elija sus fuentes del núcleo e instálelas usando emerge.

Listado de Código 1.1: Instalar unas fuentes del núcleo

# emerge gentoo-sources

Si echa un vistazo al directorio /usr/src verá un enlace simbólico llamado linux que apunta a las fuentes del núcleo. En este caso, asumimos que las fuentes del núcleo instaladas apuntan a gentoo-sources-3.12.20. Su versión podría ser distinta, así que, por favor tenga esto presente.

Listado de Código 1.2: Visualizar el enlace a las fuentes del núcleo

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -> linux-3.12.20

Ahora vamos a configurar y compilar las fuentes del núcleo. Puede usar para esto genkernel, que construirá un núcleo genérico como el usado por el CD de instalación. Aquí explicaremos la configuración "manual", ya que es la mejor manera de optimizar su entorno.

Si quiere configurar manualmente su núcleo, continúe con Predeterminado: Configuración Manual. En cambio, si quiere usar genkernel debe leer Alternativa: Usar genkernel.

7.b. Predeterminado: Configuración manual

Introducción

Configurar manualmente un núcleo frecuentemente es visto como el procedimiento más difícil que tiene que realizar un usuario de Linux. Nada más lejos de la verdad -- después de configurar un par de núcleos no recordará si fue difícil ;)

Sin embargo, una cosa es cierta: debe conocer su sistema al empezar a configurar el núcleo manualmente. Se puede recolectar mucha información instalando pciutils (emerge pciutils), que contiene lspci. Ahora podrá usar lspci en el entorno chroot. Puede ignorar tranquilamente los avisos sobre pcilib (como pcilib: cannot open /sys/bus/pci/devices) desplegado por lspci. Alternativamente, puede ejecutar lspci desde un entorno no-chroot. Los resultados son iguales. También puede ejecutar lsmod para ver qué módulos del núcleo está usando el CD de instalación (puede darle indicaciones acerca de qué activar).

Ahora vaya al directorio de sus fuentes y ejecute make menuconfig. Esto producirá un menú de configuración basado en ncurses.

Listado de Código 2.1: Invocar a menuconfig

# cd /usr/src/linux
# make menuconfig

Aparecerá una pantalla con diversas secciones de configuración. En primer lugar listaremos algunas opciones que debe activar (sino Gentoo no funcionará, o no funcionará correctamente sin ninguna configuración adicional). Tenemos también una Guía de configuración del núcleo en Gentoo en el wike de Gentoo que le puede ser de ayuda.

Activar las opciones necesarias

Asegúrese que todos los controladores vitales para el arranque del sistema (como pueden ser los de SCSI, ...) están compilados dentro del núcleo y no como módulos o, de lo contrario, su sistema no será capaz de arrancar correctamente.

Luego procederemos a seleccionar el tipo exacto de procesador. El mantenedor del núcleo x86_64 recomienda fervorosamente activar las características MCE de manera que puedan ser notificados ante cualquier falla de hardware. En x86_64 estos errores no son impresos a dmesg tal como sucede en otras arquitecturas pero sí a /dev/mcelog. Esto requiere del paquete app-admin/mcelog. Asegúrese de que selecciona la emulación IA32 Emulation si desea ejecutar programas de 32 bits. Gentoo instalará un sistema multi-librería (computación mixta 32/64 bit) por defecto, por lo que esta opción es necesaria.

Nota: Si planea usar un perfil que no sea multi-librería (para un sistema 64 bits puro) entonces no tendrá que seleccionar el soporte de emulación IA32. Sin embargo necesitará también seguir las instrucciones para cambiar a un perfil no multi-librería , así como elegir el gestor de arranque correcto.

Listado de Código 2.2: Seleccionar el tipo de procesador y características

Processor type and features  --->
   [ ] Machine Check / overheating reporting
   [ ] Intel MCE Features
   [ ] AMD MCE Features
  Processor family (AMD-Opteron/Athlon64)  --->
    ( ) Opteron/Athlon64/Hammer/K8
    ( ) Intel P4 / older Netburst based Xeon
    ( ) Core 2/newer Xeon
    ( ) Intel Atom
    ( ) Generic-x86-64
  Executable file formats / Emulations  --->
    [*] IA32 Emulation

A continuación seleccione Maintain a devtmpfs file system to mount at /dev de modo que los ficheros de dispositivo críticos estén disponibles cuanto antes en el proceso de inicio.

Listado de Código 2.3: Habilitar soporte devtmpfs

Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Vaya ahora a File Systems y seleccione el soportes para el sistema de archivos que vaya a utilizar. No compile como módulo el sistema de ficheros que vaya a utilizar para la raíz, de lo contrario su sistema Gentoo no podrá montar la partición raíz. También deberá seleccionar Virtual memory y /proc file system.

Listado de Código 2.4: Seleccionar los sistemas de archivos necesarios

File systems --->
(Seleccione una o más de las siguientes opciones según las necesite su sistema)
  <*> Second extended fs support
  <*> Ext3 journalling file system support
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  ...
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Habilite el soporte de etiqueta de partición GPT si lo ha utilizado anteriormente)
-*- Enable the block layer --->
    ...

    [*] Advanced partition selection
      ...
      [*] EFI GUID Partition support

Si está usando PPPoE para conectarse a Internet o está usando un módem dial-up, necesitará las siguientes opciones en el núcleo:

Listado de Código 2.5: Seleccionar los controladores PPPoE necesarios

Device Drivers --->
 Network device Support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Las dos opciones de compresión no le afectan pero no son necesarias, ni para la opción PPP over Ethernet, tal vez solo sea usada por ppp cuando configure un núcleo en modo PPPoE.

Si lo requiere, no olvide incluir el soporte en el núcleo para su tarjeta ethernet:

Si tiene un sistema Opteron con múltiples CPUs o multi-núcleo (por ejemplo: AMD64 X2), active "Symmetric multi-processing support":

Listado de Código 2.6: Activar el soporte SMP

Processor type and features  --->
  [*] Symmetric multi-processing support

Nota: En sistemas multi-núcleo, cada núcleo cuenta como un procesador.

Si usa dispositivos de entrada USB (como un ratón o teclado) no olvide activarlos también:

Listado de Código 2.7: Activar Soporte para Dispositivos de Entrada USB

Device Drivers --->
USB Devices --->
  [*]   USB Human Interface Device (full HID) support

Compilar e instalar

Ahora que hemos configurado el núcleo, es hora de compilarlo e instalarlo. Salga de la configuración y comience con el proceso de compilación:

Listado de Código 2.8: Compilar el núcleo

# make && make modules_install

Al terminar de compilar el núcleo, copie la imagen a /boot. Esto lo gestiona la orden make install:

Listado de Código 2.9: Instalar el núcleo

# make install

Esto copia la imagen del núcleo en /boot junto con el fichero System.map y el fichero de configuración del núcleo.

(Opcional) Construir un sistema de ficheros Initramfs

Si utiliza un esquema de particionamiento específico en el que las localizaciones de ficheros de sistema importantes (como /usr o /var) se encuentran en particiones separadas, entonces necesitará configurar un sistema de ficheros initramfs de modo que esta partición se pueda montar antes de que se acceda a la misma.

Sin un sistema de ficheros initramfs, se corre el riesgo de que el sistema no se inicie de forma correcta ya que las herramientas responsables de montar los sistemas de ficheros necesitan información que se encuentra en éstos. Un sistema de ficheros initramfs obtendrá los ficheros necesarios en un archivo que se utiliza una vez se inicie el núcleo, pero antes de que el control se ceda a la herramienta init. Los guiones en el sistema de ficheros initramfs se asegurará de que las particiones se han montado correctamente antes de que el sistema continúe con su inicio.

Para instalar un sistema de ficheros initramfs, en primer lugar instale genkernel, a continuación genere el sistema de ficheros initramfs.

Listado de Código 2.10: Construir un sistema de ficheros initramfs

# emerge genkernel
# genkernel --install initramfs

Si necesita soporte específico en el sistema de ficheros initramfs, tal como lvm o raid, añada la opción apropiada a genkernel. Lea genkernel --help para obtener más información. En el ejemplo mostrado a continuación se habilita el soporte para LVM y el software raid (mdadm):

Listado de Código 2.11: Construir un sistema de ficheros initramfs con soporte para LVM y software raid

# genkernel --lvm --mdadm --install initramfs

El sistema de ficheros initramfs se almacenará en /boot. Puede encontrar este fichero simplemente listando aquéllos ficheros que comienzan por initramfs:

Listado de Código 2.12: Comprobar el nombre del fichero initramfs

# ls /boot/initramfs*

Ahora continúe cono Los módulos del núcleo.

7.c. Alternativa: Usar genkernel

Si está leyendo esta sección, eligió usar nuestro guión genkernel para configurar el núcleo.

Ahora que el árbol de las fuentes del núcleo está instalado, es hora de compilarlo usando nuestro guión genkernel que automáticamente construirá un núcleo. genkernel trabaja configurando un núcleo prácticamente idéntico al núcleo de nuestro CD de instalación. Esto significa que cuando use genkernel para construir su núcleo, su sistema generalmente detectará todo su hardware en el arranque, tal como lo hace el CD de instalación. Debido a que genkernel no requiere ninguna configuración manual del núcleo, es una solución ideal para esos usuarios que no se sienten cómodos compilando sus propios núcleos.

Ahora, veamos como usar genkernel. Primero, haga emerge al ebuild de genkernel:

Listado de Código 3.1: Instalar genkernel

# emerge genkernel

Ahora, compile las fuentes del núcleo ejecutando genkernel all Recuerde que genkernel compila un núcleo que soporta casi todo el hardware, ¡esta compilación tardará un rato en terminar!

Observe que si su partición de arranque no usa el sistema de archivos ext2 o ext3, necesitará configurar manualmente su núcleo con genkernel --menuconfig all y agregar soporte para su sistema de archivos en el núcleo (no como módulo). Los usuarios de LVM2 probablemente querrán añadir también el argumento --lvm.

Listado de Código 3.2: Ejecutar genkernel

# genkernel all

Una vez que genkernel haya terminado, un núcleo, un conjunto completo de módulos y un disco ram de inicio (initramfs) serán creados. Usaremos el núcleo e initrd para configurar un gestor de arranque más tarde en este documento. Escriba los nombres del núcleo y de initrd ya que los necesitará para el archivo de configuración del gestor de arranque. El initrd iniciará inmediatamente después del arranque para realizar la autodetección de hardware (igual que en el CD de instalación) antes que inicie su sistema "real".

Listado de Código 3.3: Verificar los nombres del núcleo e initrd creados

# ls /boot/kernel* /boot/initramfs*

7.d. Módulos del núcleo

Configurar los Módulos

Debe listar los módulos que quiera cargar automáticamente en /etc/conf.d/modules. Puede agregar opciones extra a los módulos si así lo desea.

Para ver todos los módulos disponibles, ejecute el comando find. No olvide sustituir "<kernel version>" por la versión del kernel que acaba de compilar:

Listado de Código 4.1: Ver todos los módulos disponibles

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

Por ejemplo, para cargar automáticamente el módulo 3c59x.ko (el driver para una tarjeta de red específica de la familia 3Com), edite el archivo /etc/conf.d/modules y escriba el nombre del módulo.

Listado de Código 4.2: Editar /etc/conf.d/modules

# nano -w /etc/conf.d/modules
modules_2_6="3c59x"

Continúe la instalación con Configurar su Sistema.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 1 de junio, 2014

Sumario: El núcleo Linux es el eje de cada distribución. Este capítulo explica cómo configurarlo.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desarrollador Gentoo x86

Tavis Ormandy
Desarrollador Gentoo Alpha

Jason Huebel
Desarrollador Gentoo AMD64

Guy Martin
Desarrollador Gentoo HPPA

Pieter Van den Abeele
Desarrollador Gentoo PPC

Joe Kallar
Desarrollador Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Contribuidor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.