Gentoo Logo

1.  Instalar las fuentes

Elegir un núcleo

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

Para los sistemas basados en ${arch} tenemos gentoo-sources (fuentes del núcleo parcheadas para características extra).

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

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

# emerge gentoo-sources

Cuando vea en /usr/src debería ver un enlace simbólico llamado linux apuntando a las fuentes de su núcleo. En este caso, las fuentes del núcleo instaladas apuntan a linux-${kernel-version}. Su versión podría ser distinta, por favor, téngalo presente:

Listado de Código 1.1: Ver 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-${kernel-version}

Ahora vamos a configurar y compilar las fuentes del núcleo.

1.  Configuración manual

Introducción

La configuración manual de un núcleo frecuentemente se ve 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 sí es cierta: debe conocer su sistema cuando empiece a configurar su núcleo manualmente. Se puede recolectar mucha información instalando pciutils (emerge pciutils) que viene con lspci. Ahora podrá usar lspci dentro del entorno enjaulado (chroot). Puede ignorar tranquilamente las advertencias sobre pcilib (como pcilib: cannot open /sys/bus/pci/devices) que lspci le muestre. Alternativamente, puede ejecutar lspci desde un entorno no-enjaulado. Los resultados son los mismos. También puede ejecutar lsmod para ver qué módulos del núcleo usa el CD de instalación (puede servir como consejo sobre qué habilitar).

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

Listado de Código 1.1: Invocar menuconfig

# cd /usr/src/linux
# make menuconfig

Le saludarán varias secciones de configuración. Listaremos primero algunas opciones obligatorias (de otro modo Gentoo no funcionará, o no funcionará adecuadamente sin configuración adicional).

Activar las opciones necesarias

En primer lugar, realizaremos los ajustes adecuados de la compilación cruzada para asegurarnos de que el núcleo Linux se construye para el tipo de sistema correcto. Para hacer esto, defina Cross-compiler tool prefix a sparc64-unknown-linux-gnu- (incluyendo el guión final):

Listado de Código 1.1: Identificar la plataforma adecuada de compilación cruzada

General setup --->
  (sparc64-unknown-linux-gnu-) Cross-compiler tool prefix

A continuación seleccione Maintain a devtmpfs file system to mount at /dev (Mantener un sistema de ficheros devtmpfs para montar en /dev) de modo que los ficheros de dispositivo críticos ya estén disponibles en las etapas tempranas del proceso de arranque.

Listado de Código 1.1: Habilitar soporte para devtmpfs

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

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

Listado de Código 1.1: Seleccionar los sistemas de ficheros necesarios

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Seleccione una o más de las siguientes opciones según las necesite su
sistema)
  <*> Ext3 journalling file system support
  <*> Second extended fs 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 1.1: Seleccionar los drivers PPPoE necesarios

Device Drivers --->
  Networking 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 hacen daño aunque no son necesarias, así como la opción PPP over Ethernet, que podría ser usada por ppp cuando esté configurado el modo PPPoE.

Ahora active el soporte de bus adecuado:

Listado de Código 1.1: Activar el SBUS/UPA

Console drivers --->
  Frame-buffer support --->
    [*] SBUS and UPA framebuffers
      [*] Creator/Creator3D support (Solo para ranuras UPA usadas en muchas Ultras)
    [*] CGsix (GX,TurboGX) support  (Solo para ranuras SBUS usadas en muchas SPARCStations)

Desde luego, debe habilitar el soporte para el OBP:

Listado de Código 1.1: Activar el soporte del OBP

Misc Linux/SPARC drivers --->
  [*]  /dev/openprom device support

También necesitará el soporte de dispositivos SCSI específicos:

Listado de Código 1.1: Activar el soporte de dispositivos SCSI específicos

SCSI support --->
  SCSI low-level drivers --->
    <*> Sparc ESP Scsi Driver             (Solo para el adaptador SCSI integrado SPARC ESP)
    <*> PTI Qlogic, ISP Driver            (Solo para controladoras SCSI SBUS de PTI o QLogic)
    <*> SYM53C8XX Version 2 SCSI support  (Solo para adaptador SCSI integrado Ultra 60)

Para dar soporte a su tarjeta de red, seleccione una de las siguientes:

Listado de Código 1.1: Activar el soporte de red

Network device support --->
  Ethernet (10 or 100Mbit) --->
    <*> Sun LANCE support                   (Solo para SPARCStation, sistemas antiguos Ultra y como opción Sbus)
    <*> Sun Happy Meal 10/100baseT support  (Solo para Ultra; también soporta "qfe" quad-ethernet en PCI y Sbus)
    <*> DECchip Tulip (dc21x4x) PCI support (Para algunas Netras, como la N1)
  Ethernet (1000Mbit) --->
    <*> Broadcom Tigon3 support (Netras modernas, máquinas Sun Fire)

Si tiene una máquina con 4 puertos Ethernet (10/100 ó 10/100/1000), el orden de los puertos es diferente al de Solaris. Puede usar sys-apps/ethtool para comprobar el estado del puerto.

Si usa un controlador de discos qla2xxx, necesitará un núcleo 2.6.27 o más reciente y además instalar sys-block/qla-fc-firmware. Luego ejecute make menuconfig y navegue a la sección de controladores (Device Drivers). Debe añadir soporte para cargar firmware externo.

Listado de Código 1.1: Activar la carga de firmware externo

Device Drivers  --->
   Generic Driver Options  --->
   ()  External firmware blobs to build into the kernel binary
   ()  Firmware blobs root directory

En "External firmware blobs" coloque ql2200_fw.bin y en "Firmware blobs root directory" coloque /lib/firmware.

Cuando haya terminado de configurar el núcleo, continúe con Compilar e instalar. Sin embargo, luego de haber compilado el núcleo, revise su tamaño:

Listado de Código 1.1: Chequear el tamaño del núcleo

# ls -lh vmlinux
-rw-r--r--    1 root     root         2.4M Oct 25 14:38 vmlinux

Si el fichero (descomprimido) es mayor que 7,5 MB, reconfigure el núcleo hasta que no exceda estos límites. Una forma de lograrlo es compilando la mayor parte de los controladores del núcleo como módulos. El ignorar esto puede resultar en un núcleo que no arranque.

También, si el núcleo es apenas un poco más grande, intente reducirlo con la orden strip:

Listado de Código 1.1: Reducir el tamaño del núcleo

# strip -R .comment -R .note vmlinux

Compilar e instalar

Ahora que ya está configurado el núcleo, debemos compilar e instalarlo. Salga de la configuración y comience el proceso de compilación:

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

# make CROSS_COMPILE=sparc64-unknown-linux-gnu- && make CROSS_COMPILE=sparc64-unknown-linux-gnu- image modules_install

Cuando haya terminado de compilar el núcleo, copie la imagen del núcleo a /boot.

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

# cp arch/sparc/boot/image /boot/${kernel-name}

(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 1.1: 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 1.1: 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 1.1: Comprobar el nombre del fichero initramfs

# ls /boot/initramfs*

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

1.  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 1.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 1.1: Editar /etc/conf.d/modules

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

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

Página actualizada 17 de diciembre, 2013

Donate to support our development efforts.

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