Gentoo Logo

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


7. Configurando el kernel

Contenido:

7.a. Zona horaria

Primero necesita seleccionar su zona horaria para que su sistema sepa dónde está ubicado. Busque su zona horaria en /usr/share/zoneinfo, luego cópiela en /etc/localtime . Por favor, evite las zonas horarias /usr/share/zoneinfo/Etc/GMT* ya que los nombres no indican las zonas esperadas. Por ejemplo, GMT-8 es realmente GMT+8.

Listado de Código 1.1: Configurar la zona horaria

# ls /usr/share/zoneinfo
(Suponiendo que queremos usar GMT)
# cp /usr/share/zoneinfo/GMT /etc/localtime

7.b. Instalar las fuentes

Elegir un núcleo

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

Sugerimos utilizar en PPC tanto las vanilla-sources como las gentoo-sources, ambos núcleos 2.6. El último está disponible para una instalación sin red. Vamos, pues, a continuar con la instalación o emerge de las fuentes del kernel. La USE="-doc" es necesaria en este momento para prevenir la instalación de xorg-x11 u otras dependencias. USE="symlink" no es necesario en una instalación nueva, pero nos asegura una correcta creación del enlace /usr/src/linux.

Listado de Código 2.1: Instalar fuentes del kernel

# USE="-doc symlink" emerge gentoo-sources

En /usr/src se encuentra un enlace simbólico llamado linux apuntando a las fuentes del núcleo actual. En nuestro caso, el enlace a las fuentes del núcleo instaladas apunta a gentoo-sources-2.6.15. Tenga en cuenta que su versión puede ser diferente.

Listado de Código 2.2: Ver el enlace a las fuentes del kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           22  Mar 18 16:23 /usr/src/linux -> 
linux-2.6.15

Ahora vamos a configurar y compilar las fuentes del núcleo. Puede usarse genkernel para ello, ya que crea un núcleo genérico como el usado por el CD de instalación. Sin embardo explicamos primero la configuración "manual" porque es la mejor manera de optimizar nuestro entorno.

Para configurar manualmente el núcleo, podemos seguir en Predeterminado: Configuración manual. En cambio,para usar genkernel podemos leer Alternativa: Usar genkernel.

7.c. Predeterminado: Configuración manual

Introducción

Configurar manualmente un núcleo se ve frecuentemente como el procedimiento más difícil al que tiene que enfrentarse un usuario de Linux. Nada mas lejos de la realidad: después de configurar un par de núcleos no recordaremos si fue difícil la primera vez ;)

Sin embargo, una cosa es cierta: debemos conocer nuestro sistema para configurar el núcleo manualmente. Mucha de la información necesaria se puede recolectar instalando pciutils (emerge pciutils) que contiene lscpi. Ahora podremos utilizar lscpi en el entorno del chroot. Se puede ignorar sin riesgo cualquier aviso relativo a pcilib (como "pcilib: cannot open /sys/bus/pci/devices"). Alternativamente, se puede ejecutar lscpi desde un entorno no chroot. Los resultados serían los mismos. También se puede ejecutar lsmod para ver que módulos del núcleo usa el CD de instalación (puede proporcionar buenos consejos sobre qué habilitar). Otro lugar para buscar posibles pistas sobre que componentes habilitar es comprobar los mensajes del kernel que se obtienen durante el proceso de inicio. Ejecute dmesg para ver los mensajes del kernel.

Ahora hay que ir al directorio de las fuentes, para configurar el núcleo. Se recomienda incluir inicialmente la configuración por defecto con make defconfig. Una vez que la configuración por defecto haya sido incluida, ejecutaremos make menuconfig que lanzará un menú de configuración basado en ncurses.

Listado de Código 3.1: Invocar a menuconfig

# cd /usr/src/linux
# make defconfig
# make menuconfig

Nos darán la bienvenida varias secciones de configuración. Listaremos primero algunas opciones que se deben activar (de otro modo Gentoo no funcionará, o no funcionará adecuadamente sin configuración adicional).

Activar opciones necesarias

Primero que nada, activaremos el uso de código y dispositivos en desarrollo y experimentales. Es necesario, porque algunos dispositivos o código importante no aparecerían:

Listado de Código 3.2: Seleccionar código/dispositivo expremiental

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
General setup --->
  [*] Support for hot-pluggable devices

Ahora, en File Systems seleccionaremos el soporte para los sistemas de ficheros empleados. No deben compilarse como módulos, en cuyo caso el sistema Gentoo no sería capaz de montar las particiones. También debe seleccionarse el /proc file system y Virtual memory.

Listado de Código 3.3: Selecionar los sistemas de ficheros necesarios

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
    
(Deben seleccionarse una o más de las siguientes opciones según se necesite)
  <*> Reiserfs support
  <*> Ext3 journalling file system support  
  <*> Second extended fs support
  <*> XFS filesystem support

Si usamos PPPoE o un módem para conectar a Internet, necesitaremos las siguientes opciones del núcleo:

Listado de Código 3.4: Seleccionar los controladores necesarios para PPPoE

Device Drivers --->
  Networking 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 molestan pero no son necesarias. La opciónPPP over Ethernet tampoco es obligatoria, tal vez solo sea usada por rp-pppoe cuando se configure PPPoE en modo núcleo.

Si es necesario, no hay que olvidar incluir el soporte en el núcleo para la tarjeta ethernet.

Los usuarios de sistemas NewWorld y OldWorld querrán igualmente activar el soporte HFS. Los usuarios de OldWorld lo necesitan para poder copiar el núcleo en la partición MacOS. Los usuarios de NewWorld lo necesitan para configurar la partición especial Apple_Bootstrap:

Listado de Código 3.5: Activar el soporte HFS

File Systems --->
  [*] HFS Support

En el momento presente, la característica de núcleo preentivo es todavía inestable en PPC y puede causar fallos de compilación y de segmentación aleatorios. Se sugiere encarecidamente no usar esta opción.

Listado de Código 3.6: Asegurarse que la opción Preemptible Kernel está desactivada

Platform options --->
  [ ] Preemptible Kernel

Si estamos arrancando desde Firewire, necesitaremos habilitar estas opciones. Si no queremos compilar el soporte embebido, necesitaremos incluir estos módulos y sus dependencias en un initrd.

Listado de Código 3.7: Activar soporte para dispositivos firewire en el arranque

  Device Drivers --->
    IEEE 1394 (FireWire) support --->
      <*> IEEE 1394 (FireWire) support
      <*>   OHCI-1394 support
      <*>   SBP-2 support (Harddisks etc.)

Si estamos arrancando desde USB, necesitaremos habilitar estas opciones, si no queremos compilar el soporte embebido, necesitaremos incluir estos módulos y sus dependencias en un initrd.

Listado de Código 3.8: Activar soporte para dispositivos USB en el arranque

  Device Drivers --->
    USB support --->
      <*> Support for Host-side USB
      <*>   OHCI HCD support
      <*>   USB Mass Storage support

No desactivaremos el soporte en el núcleo para el framebuffer porque se necesita para un arranque satisfactorio. Si utilizamos un chipset basado en NVIDIA deberemos utilizar el framebuffer de OpenFirmware. Si utilizamos un chipset basado en ATI, deberemos utilizar el controlador de framebuffer basado en el chipset (Mach64, Rage128 or Radeon).

Listado de Código 3.9: Elegir un Controlador de Framebuffer

  Device Drivers --->
  Graphics support --->
    <*> Support for frame buffer devices
    [*] Open Firmware frame buffer device support
    <*> ATI Radeon display support
    <*> ATI Rage128 display support
    <*> ATI Mach64 display support
    Console display driver support --->
      <*> Framebuffer Console support

Nota: Si seleccionamos más de un dispositivo de framebuffer puede que se utilice por defecto un controlador no óptimo. Podemos tanto utilizar un sólo framebuffer como especificar el que queremos utilizar pasándolo como parámetro del núcleo durante el arranque, como por ejemplo video=radeonfb.

Continuaremos con Compilar e instalar al acabar de configurar el núcleo.

Compilar e instalar

Ahora que ya está configurado el núcleo, es el momento para compilarlo e instalarlo. Saldremos de la configuración y comenzaremos con el proceso de compilación:

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

# make && make modules_install

Cuando el núcleo haya terminado de compilar, se ha de copiar la imagen a /boot (hay que asegurarse que esté correctamente montada en ordenadores Pegasos). Si estamos utilizando BootX para arrancar, copiaremos el núcleo después.

Yaboot y BootX usan un núcleo sin comprimir a diferencia de otros gestores de arranque. El núcleo sin comprimir se llama vmlinux y se encontrará en /usr/src/linux una vez que el núcleo haya terminado de compilarse. Si está utilizando una máquina Pegasos, el microcódigo del Pegasos necesita un núcleo comprimido llamado zImage.chrp que puede encontrarse en /usr/src/linux/arch/ppc/boot/images.

Listado de Código 3.11: Instalar el kernel

cd /usr/src/linux
reemplace <kernel-version> con la versión correspondiente del núcleo
(Apple/IBM)
# cp vmlinux /boot/<kernel-version>
(Pegasos)
# cp arch/ppc/boot/images/zImage.chrp /boot/<kernel-version>

Ahora hay que continuar con Instalar módulos del núcleo separadamente.

7.d. Instalar módulos del núcleo separadamente

Configurar los módulos

Se deben poner los módulos que queramos cargar automáticamente en /etc/modules.autoload.d/kernel-2.6. Se pueden agregar opciones extras a los módulos si así se quiere.

Para ver todos los módulos disponibles, se puede ejecutar el comando find. No hay que olvidar sustituir "<versión del kernel>" con la versión del kernel que hemos compilado:

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

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

Por ejemplo, para cargar automáticamente el módulo 3c59x.o, hay que editar el fichero kernel-2.6 y escribir en él el nombre del módulo.

Listado de Código 4.2: Editar /etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6

Listado de Código 4.3: /etc/modules.autoload.d/kernel-2.6

3c59x

Continuaremos la instalación con Configurar el sistema.

7.e. Alternativa: Usar genkernel

Si hemos llegado a esta sección, es porque habremos elegido usar el guión genkernel para configurar el kernel.

Ahora que el árbol de las fuentes del núcleo está instalado, es hora de compilarlo usando el guión genkernel que automáticamente construirá uno por nosostros. genkernel trabaja configurando un núcleo prácticamente idéntico al núcleo del CD de instalación. Esto significa que cuando se usa genkernel para construir el núcleo, el sistema generalmente detectará todo el hardware durante 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, hay que hacer emerge al ebuild de genkernel:

Listado de Código 5.1: Instalar genkernel

# emerge genkernel

A continuación, hay que copiar la configuración del núcleo empleada por el CD de instalación al sitio donde genkernel busca la configuración predeterminada del núcleo:

Listado de Código 5.2: Copiar la configuración del kernel del CD de instalación

# zcat /proc/config.gz > /usr/share/genkernel/ppc/kernel-config-2.6

Si estamos usando firewire o USB para arrancar, necesitaremos añadir los módulos al initrd. Editaremos /usr/share/genkernel/ppc/modules_load y cambiaremos MODULES_FIREWIRE="ieee1394 ohci1394 sbp2" para el soporte de firewire o MODULES_USB="usbcore ohci-hcd ehci-hcd usb-storage" para el soporte de USB.

Ahora hay que compilar las fuentes del núcleo ejecutando genkernel --genzimage all. Para Pegasos necesitaremos usar una configuración diferente y crear una zImage en lugar del núcleo vmlinux usado en las máquinas Apple. Recordaremos que como genkernel compila un núcleo que soporta casi todo el hardware, esta compilación ¡tardará un rato en terminar!

Observaremos que si la partición de arranque no usa ext2 o ext3 como sistema de archivos, se necesita configurar manualmente el núcleo usando genkernel --menuconfig --genzimage all para agregar soporte para el sistema de archivos correspondiente en el núcleo (no como módulo). Los usuarios de EVMS2 o LVM2 probablemente querrán añadir también los argumentos --evms2 or --lvm2.

Listado de Código 5.3: Ejecutar genkernel

# genkernel --genzimage all

Listado de Código 5.4: Ejecutar genkernel en el Pegasos

# genkernel --genzimage --kernel-config=/usr/share/genkernel/ppc/Pegasos all

Una vez que genkernel haya terminado, un núcleo, un conjunto completo de módulos y un disco raíz de inicio (initrd) habrán sido creados. Usaremos el núcleo e initrd para configurar un gestor de arranque más tarde en este documento. Escribiremos los nombres del núcleo y de initrd ya que se necesitarán para el archivo de configuración del gestor de arranque. initrd se iniciará inmediatamente después del arranque para realizar la autodetección de hardware (igual que en el CD de instalación) antes que se inicie el sistema "real". Nos aseguraremos de escribir también los parámetros de arranque necesarios, puesto que se requieren para un arranque correcto con genkernel.

Listado de Código 5.5: Verificar los nombres del kernel e initrd creados

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

Si queremos que nuestro sistema sea más parecido al CD de instalación deberemos, cuando la instalación de Gentoo esté hecha, instalar coldplug. Mientras initrd autodetecta el hardware necesario para arrancar el sistema, coldplug autodetecta casi todo lo demás.coldplug está disponible como uno de los paquetes del Package CD.

Listado de Código 5.6: Instalar y habilitar coldplug

(Hacer esto después de la instalación, durante las intrucciones de instalación de GRP)
# emerge -k coldplug
# rc-update add coldplug boot

Si queremos que nuestro sistema tenga en cuenta los eventos de hotplug, deberemos instalar y configurar hotplug así:

Listado de Código 5.7: Instalar y habilitar hotplug

# emerge hotplug
# rc-update add hotplug default

Ahora continuaremos con Configurar el sistema.


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


Imprimir

Ver completo

Página actualizada 27 de febrero, 2006

Esta traducción ha dejado de tener soporte

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

Sven Vermeulen
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

Lars Weiler
Editor

Jochen Maes
Editor

Xavier Neys
Editor

Joseph Jezak
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

José Alberto Suárez López
Traductor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Carles Ferrer
Traductor

Donate to support our development efforts.

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