Gentoo Logo

La guía completa Gentoo de migración al kernel Linux 2.6

Contenido:

1.  Introducción

¿Qué hay de nuevo en Linux 2.6?

Esta pregunta no tiene respuesta fácil. Linux 2.6 es el resultado de más de 2 años de rápido desarrollo y estabilización de nuevas características. Es estructuralmente muy diferente a su contraparte versión 2.4. Algunos de los cambios más importantes están listados a continuación:

  • Mejoras en el planificador de tareas (scheduler) y por ende la interactividad: se siente mucho más suave en sistemas de escritorio y aguanta mucho mejor bajo carga que el núcleo 2.4
  • Escalabilidad: Linux ahora escala mucho mejor, hacia arriba y hacia abajo, en sistemas pequeños o embebidos y en sistemas con muchos procesadores
  • Rendimiento: Se ha mejorado notoriamente el rendimiento efectivo de aplicaciones comunes
  • Soporte de hardware: Linux ahora soporta muchas más arquitecturas y dispositivos de hardware out-of-the-box que cualquier otro sistema operativo.

Joseph Pranevich ha escrito (en inglés) un documento muy detallado The Wonderful World Of Linux 2.6, el cual tal vez le interese leer. Si está interesado en más detalles técnicos, puede referirse a El documento post-halloween, pero tenga en cuenta que ya está algo desactualizado.

Gentoo y 2.6

A partir de la versión 2005.0 de Gentoo Linux, el núcleo por defecto es el más reciente de la serie 2.6. El perfil predeterminado del sistema se escoge desde /etc/make.profile que en la versión 2005.0 o superior debería ser un enlace simbólico a /usr/portage/profiles/default-linux/x86/2005.0 bajo el cual se toman en cuenta importantes ajustes de configuración.

Si está usando un perfil 2.4, por favor cámbielo a uno que soporte el núcleo 2.6 como se muestra a continuación:

Listado de Código 1.1: Cambiando su perfil

# rm -f /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile

¿Qué es udev?

En el pasado, Gentoo ha instruido a sus usuarios que utilicen devfs para manejar el directorio /dev, que contiene una serie de interfaces de dispositivos que permiten que las aplicaciones del sistema se comuniquen con el hardware (a través del núcleo).

Mientras que devfs es un buen concepto, tiene algunos problemas internos y ha sido eliminado por completo de las fuentes estables a partir de 2.6.13.

udev es una manera nueva de manejar los nodos correspondientes a dispositivos. Resuelve problemas inherentes a manejadores de dispositivos anteriores y además trata de resolver algunos otros problemas.

Tal vez lo anterior no signifique mucho, pero no tema, los desarrolladores que tan duro trabajan se han esforzado en hacer que la migración desde devfs sea muy fácil. Por favor lea la Guía udev en Gentoo para mayor información en relación a esto.

¿Qué es ALSA?

Con Linux 2.4 es probable que haya usado los drivers del OSS (open sound system, sistema de sonido abierto) para potenciar su tarjeta de sonido. El OSS ha sido reemplazado por unos drivers nuevos y mejores: ALSA.

ALSA, que significa Advanced Linux Sound Architecture, o Arquitectura de Sonido Avanzado para Linux, es un nuevo conjunto de drivers de sonido con una API nueva y mejor presente en el núcleo 2.6. Es compatible con las anteriores aplicaciones OSS, ¡siempre que seleccione las opciones adecuadas de configuración en el núcleo!

Nota: Si no tiene hardware de sonido/audio, puede saltarse las instrucciones relacionadas con ALSA de este documento.

¿Qué es LVM?

Administración Lógica de Volúmenes, o Logical Volume Management (LVM) en inglés, existe como un conjunto de herramientas que le permite manejar el almacenamiento en disco de una manera muy flexible. Entre otras cosas, permite un control poderoso sobre las particiones (por ejemplo, cambiar tamaño sin reiniciar) y hace que operaciones como cambios en dispositivos sean relativamente sencillas. LVM actúa como una alternativa a la manera estándar de administrar las particiones en disco.

Históricamente, el soporte de LVM ha sido implementado en Linux 2.4. Linux 2.6 tiene una nueva versión, llamada LVM2. El proceso de migración requiere la instalación de nuevas versiones de las herramientas del usuario (cubiertas más adelante en este documento), pero ¡dejarán intactos sus datos!

Si no utiliza LVM para el manejo del almacenamiento en disco, entonces esto no le aplica. Si este es el caso, puede pasar por encima las partes de este documento que hacen referencia a LVM/LVM2. El actualizar a Linux 2.6 no requiere que sus datos sean almacenados en particiones LVM - puede mantenerlos en particiones estándar, como siempre.

Si no es usuario de LVM, pero cree que LVM2 parece útil, puede convertir sus discos para usar este formato en una fecha futura, siguiendo la Guía de Instalación LVM2 en Gentoo. Por ahora, concentrémonos en hacer que nuestra migración vaya sobre ruedas.

2.  Preparación

Actualice su sistema

Algunos de los cambios que vienen con Linux 2.6 también requieren algunas modificaciones en las aplicaciones del sistema base. Antes de continuar, debe asegurarse que su sistema esté más o menos actualizado y para estar perfectamente seguro, debe actualizar todos los paquetes de world y system que estén disponibles.

En particular, asegúrese de tener las últimas versiones estables de los siguientes paquetes:

  • sys-apps/baselayout
  • sys-apps/util-linux
  • sys-kernel/genkernel (únicamente si desea utilizar genkernel en vez de configuración manual)

Listado de Código 2.1: Actualizando todos los paquetes en world

# emerge --sync
# emerge -ua world

modutils vs module-init-tools

sys-apps/modutils es el paquete que provee las herramientas como modprobe, rmmod e insmod para Linux 2.4.

Linux 2.6 presenta un nuevo formato de módulo, por ende, requiere nuevas herramientas para manejar módulos. Estos conforman el paquete sys-apps/module-init-tools.

Ahora debe desinstalar modutils e instalar module-init-tools:

Listado de Código 2.2: Cambiando de modutils a module-init-tools

# emerge --unmerge sys-apps/modutils
# emerge module-init-tools

Nota: No se preocupe, aunque haya hecho unmerge modutils, module-init-tools suministra compatibilidad con Linux 2.4, para que todavía pueda arrancar Linux 2.4 y manejar los módulos de ese núcleo.

Nota: Es posible, por las razones esbozadas anteriormente, que module-init-tools ya esté instalado y funcionando con su núcleo Linux 2.4. En este caso, no hace falta preocuparse, ya que su sistema está preparado para manejar módulos de Linux 2.6.

Instalando udev

No hay configuración involucrada aquí. Sencillamente use emerge para instalar udev:

Listado de Código 2.3: Instalando udev

# emerge -a udev

Debería leer ahora la Guía de udev en Gentoo para tener una idea más acabada acerca de las diferencias entre udev y devfs.

Revisando los nodos de dispositivos esenciales

Al arrancar el sistema, este requiere unos nodos de dispositivos esenciales. Como udev no está incluido en el núcleo, no se activa inmediatamente. Para compensar, asegúrese de tener algunos nodos de dispositivos esenciales en el disco.

Nuestros archivos de instalación stage habrán creado los dispositivos requeridos durante la instalación inicial. Sin embargo, algunos usuarios han reportado que esto no es así. Usaremos esta oportunidad para revisar la existencia de dichos archivos, y si no, crearlos.

Como su manejador de dispositivos existente estará montado en /dev, no tendremos acceso directamente, de manera que montaremos la partición raíz con bind en otra ubicación y tendremos acceso al directorio /dev desde allí.

Listado de Código 2.4: Montando la partición raíz con bind y listando los dispositivos estáticos

# mkdir -p /mnt/temp
# mount -o bind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null

Si el comando anterior ls reportó que los dispositivos console o null no existen, los crearemos nosotros mismos como se muestra a continuación:

Listado de Código 2.5: Creando los nodos faltantes para console y null

# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3

Ahora debe desmontar su partición raíz, aunque no haya tenido que crear los dispositivos:

Listado de Código 2.6: Desmontando la partición raíz (montada con bind)

# cd
# umount /mnt/temp
# rmdir /mnt/temp

Instalando las herramientas ALSA

ALSA requiere la instalación de algunos paquetes para que las demás aplicaciones puedan hacer uso de la API ALSA. Estos paquetes le permitirán controlar el mezclador y el nivel del volumen. Las herramientas requeridas son las siguientes:

Listado de Código 2.7: Instalando las herramientas ALSA y las librerías

# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss

3.  Instalando las fuentes Linux 2.6

Escogiendo e instalando un núcleo

Lo primero es instalar las fuentes de un núcleo 2.6 de su elección. Los dos núcleos 2.6 soportados actualmente por Gentoo son gentoo-sources (para máquinas de escritorio) y hardened-sources (para servidores). Hay otras disponibles, vea la Guía Gentoo del Núcleo Linux para más alternativas.

En esta guía usaremos gentoo-sources como ejemplo. Instale sus fuentes del núcleo de su preferencia con emerge:

Listado de Código 3.1: Instalando gentoo-sources

# emerge -a gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild  NS   ] sys-kernel/gentoo-sources-2.6.10-r4

Do you want me to merge these packages? [Yes/No] y

Cuando ejecute el comando emerge mencionado arriba, si observa que este quiere instalar la versión 2.4 de gentoo-sources (por ejemplo: gentoo-sources-2.4.26), entonces significa que el perfil que está usando no está diseñado para los usuarios de Linux 2.6. Por favor, siga la Guía de actualización de Gentoo para cambiarse a un perfil basado 2.6 y reintente instalar las fuentes 2.6 del núcleo.

Actualizando el enlace simbólico /usr/src/linux

Varias herramientas Gentoo cuentan con que /usr/src/linux sea un enlace simbólico a las fuentes del núcleo que está usando (o contra las cuales desea compilar).

Actualizaremos nuestro /usr/src/linux para que apunte a las fuentes que acabamos de instalar. Continuando nuestro ejemplo:

Listado de Código 3.2: Actualizando el enlace simbólico /usr/src/linux

# cd /usr/src
# ln -sfn linux-2.6.10-gentoo-r4 linux

4.  Problemas conocidos con la migración a Linux 2.6

Antes de comenzar a configurar el núcleo, intentaré detallar algunos de los errores más comunes que hace la gente al migrar hacia Linux 2.6, ya que algunos de estos puntos influenciarán la manera que configuremos el núcleo nuevo.

Nota: No todos estos puntos son relevantes en esta etapa, pero los detallaré acá, todos en el mismo lugar, para que pueda consultarlos luego con calma.

No usar "make oldconfig" con un archivo .config de 2.4

Nota: Si no entiende lo que significa esto, no se preocupe, no hará este error si sigue al pie de la letra el resto de esta guía.

Se le harán muchas preguntas, ya que hubo muchos cambios. Muchos que intentan un make oldconfig a partir de un .config de 2.4 terminan con un núcleo que no funciona (no escribe nada a la pantalla, no funciona el teclado, etc.). Por favor, ahórrese la molestia y use el tradicional método menuconfig sólo esta vez.

No usar ide-scsi para quemar CDs/DVDs

En Linux 2.4, la única manera de obtener buenos resultados en el quemado de CDs/DVDs era activando (¡qué feo!) la emulación ide-scsi. Agradecemos que la capa IDE en Linux 2.6 ha sido extendida para soportar mucho mejor a los quemadores de CDs/DVDs.

No hace falta activar opciones adicionales para habilitar el quemado de CDs. Sólo asegúrese de no activar ide-scsi como acostumbraba.

El altavoz del PC es ahora una opción configurable

No conseguirá sus pitidos normales de consola (o respuesta alguna del altavoz del PC) si no activa específicamente la nueva opción CONFIG_INPUT_PCSPKR):

Listado de Código 4.1: Ubicación de la opción PC speaker

Device Drivers  --->
 Input device support  --->
  [*] Misc
   <*>   PC Speaker support

Nota: Por el altavoz del PC o "PC speaker", nos referimos al altavoz analógico que pita una vez al arrancar el sistema. No hacemos referencia al hardware normal de sonido utilizado para escuchar música, etc.

El nuevo driver de dispositivos en bloque USB es problemático a veces

Muy recientemente, un nuevo driver de dispositivos de bloque USB ha sido agregado al núcleo. Al momento de escribir esto, este driver ("ub") está en etapas tempranas y algunos usuarios lo encuentran poco fiable. Si tiene problemas accediendo su disco duro USB, disco flash USB, lector de tarjetas USB o cámara digital USB, podría intentar regresando al antiguo driver estilo SCSI:

Listado de Código 4.2: Desactivando usb

Device Drivers  --->
 Block devices  --->
  < > Low Performance USB Block driver

Nota: El antiguo driver estilo SCSI (USB Mass Storage support) está activado por defecto. Se encuentra bajo "Device Drivers --> USB support", pero generalmente no hará efecto mientras ub también esté presente.

usbdevfs ha sido renombrado a usbfs

Si ha modificado su archivo /etc/fstab para personalizar la manera que se monta el sistema de dispositivos USB, tal vez tenga que cambiar el tipo del sistema de archivos de usbdevfs a usbfs.

Nota: Los núcleos 2.4 recientes también le permitirán usar "usbfs" al igual que "usbdevfs", de forma que se conserva la compatibilidad anterior.

No cambie la prioridad (renice) a X

Si es un usuario de escritorio con 2.4, puede haber modificado su sistema para correr X con una prioridad mayor, ya que en algunos casos mejora el desempeño del escritorio.

Hubo muchos cambios en el planificador (scheduler) de 2.6 que cambian este comportamiento. Si continúa corriendo X a una prioridad más alta, hará justo lo que está supuesto de hacer (ejecutar el servidor de pantalla a una prioridad muy alta) con consecuencias negativas como sonido entrecortado y tiempos de carga muy lentos para las aplicaciones, ya que el CPU pasa demasiado tiempo sirviendo X y sólo X.

En Linux 2.6, ya no se requiere hacer un cambio en la prioridad (vía renice) a las aplicaciones de escritorio para obtener una interacción mejor. Por favor, deshágase de sus hacks de "nice".

El archivo de configuración de X11 ahora debe usar /dev/input/mice para los ratones PS/2 y USB

Uno de los cambios introducidos por la configuración por defecto de udev es una organización distinta de los nodos para el ratón. Previamente, habría tenido nodos como /dev/psaux y /dev/mouse. Ahora, tendrá nodos como /dev/input/mouse0, /dev/input/mouse1 y un nodo colectivo /dev/input/mice donde se combinan los movimientos de todos los ratones.

Como las configuraciones viejas de X típicamente hacían referencia a /dev/mouse o /dev/psaux podrá recibir un error al iniciar X, similar al mostrado a continuación:

Listado de Código 4.3: Error común al iniciar X por primera vez en un sistema udev

(EE) xf86OpenSerial: Cannot open device /dev/mouse
  No such file or directory.
(EE) Mouse0: cannot open input device
(EE) PreInit failed for input device "Mouse0"
No core pointer

Para corregir esto, abra su archivo de configuración de X11 en un editor y actualice la sección del ratón en InputDevice para usar el dispositivo /dev/input/mice. A continuación un ejemplo:

Listado de Código 4.4: Abriendo su archivo de configuración X11

# nano -w /etc/X11/xorg.conf

Nota: Si todavía usa XFree86, su archivo de configuración será el /etc/X11/XF86Config.

Listado de Código 4.5: Ejemplo del ratón en la sección InputDevice

Section "InputDevice"
  Identifier  "Mouse0"
  Driver      "mouse"
  Option      "Protocol" "auto"
  Option      "Device" "/dev/input/mice"
EndSection

Nota: Si está usando un ratón serial, el dispositivo nuevo será /dev/tts/0 en vez de /dev/ttyS0.

Los nuevos drivers Serial-ATA (SATA) nombran los dispositivos de manera diferente

Si ha utilizado los drivers Serial ATA originales bajo Linux 2.4, probablemente ha observado que sus dispositivos SATA tienen nombres como /dev/hde.

Linux 2.6 introduce nuevos drivers SATA (libata) basados en el subsistema SCSI. Como estos manejadores están basados en SCSI, ahora sus discos aparecerán como dispositivos SCSI. Su primer disco SATA será el /dev/sda. Habrá que actualizar su archivo /etc/fstab para reflejar este cambio y tendrá que tener esto en cuenta al escoger el parámetro de inicio root/verdadera_raíz más adelante.

Nota: libata ha sido portado a versiones recientes de Linux 2.4, por lo que tal vez este familiarizado con esta nueva manera de nombrar dispositivos.

bootsplash ya no es mantenido

Si usó el núcleo gentoo-sources-2.4, puede que haya ocupado la funcionalidad de bootsplash para proveer una consola framebuffer colorida.

Aparentemente, el desarrollador de bootsplash parece haber perdido el interés en este proyecto, dado algunos problemas de diseño. Sin embargo, el desarrollador Gentoo Michal Januszewski se encuentra en proceso de producir la siguiente generación, gensplash, incluido en el núcleo gentoo-sources 2.6. Puede seguir el enlace al documento Gensplash en 5 pasos fáciles de Michal para familiarizarse con el funcionamiento de gensplash.

Los manejadores de I2C ahora están incluidos en el núcleo

Si usa lm-sensors para monitorear las temperaturas y niveles de potencia de su sistema, habrá instalado previamente el paquete i2c para incorporar el soporte para el hardware.

Los manejadores I2C ahora están incluidos en el núcleo Linux 2.6, por lo que ya no hace falta un paquete externo i2c. Recuerde compilar el soporte para sus dispositivos específicos I2C cuando configure su núcleo de manera que pueda usar lm-sensors de la manera acostumbrada.

5.  Configurando, construyendo e instalando el núcleo

Así como en Linux 2.4, tiene dos opciones para manejar la construcción de su nuevo núcleo.

  1. El método por defecto es la configuración manual. Esto puede parecer desalentador pero es la manera preferida si uno conoce su sistema. Si desea configurar el núcleo manualmente, continúe con el siguiente capítulo.
  2. lLa opción alternativa es usar nuestra herramienta genkernel, que automáticamente configura, compila e instala el núcleo. Si desea usar genkernel, salte el siguiente capítulo y proceda con usando genkernel.

6.  Por defecto: Configuración manual

Configurando el núcleo

Ahora configuraremos el núcleo. Inicie menuconfig de la manera usual:

Listado de Código 6.1: Invocando menuconfig

# cd /usr/src/linux
# make menuconfig

Probablemente estará familiarizado con el uso de menuconfig con la configuración de los núcleo 2.4. Afortunadamente el interfaz casi no ha cambiado, pero observará una organización mejor de las opciones del núcleo además de muchas opciones nuevas que no estaban presentes en 2.4.

Asegúrese de activar las siguientes opciones importantes del núcleo:

Listado de Código 6.2: Opciones requeridas del núcleo

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

(las siguientes son requeridas para udev):
General setup  --->
 [*] Support for hot-pluggable devices

(las siguientes se requieren para ALSA):
Device Drivers  --->
 Sound  --->
  <*> Sound card support
  Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   <M> Sequencer support
   <M> OSS Mixer API
   [*] OSS Sequencer API
(y ¡no se olvide seleccionar su tarjeta de sonido de los submenús!)

(Lo siguiente se necesita si usa LVM para la administración de discos):
Device Drivers  --->
 Multi-device support (RAID and LVM)  --->
  [*] Multiple devices driver support (RAID and LVM)
   <*>   Device mapper support

Aviso: Previamente habrá incluido el soporte para el sistema de archivos /dev (ahora marcado como OBSOLETO). No active el soporte para devfs. Hemos instalado udev, que usaremos en vez de devfs de ahora en adelante.

También acuérdese de activar el soporte para los sistemas de archivo que usa y para el hardware de su sistema. Asegúrese de activas soporte para el controlador IDE de su tarjeta madre si quiere aprovechar acceso rápido a los discos con DMA. Refiérase a la sección Configurando el Núcleo del Manual Gentoo para consejos adicionales.

Construyendo el núcleo

Ahora que hemos configurado el núcleo, podemos comenzar el proceso de compilación:

Listado de Código 6.3: Compilando las fuentes del núcleo

# make && make modules_install

Nota: Tal vez recuerde que tenía que correr make dep con las fuentes de Linux 2.4. Esto ya no es necesario.

Espere que termine la compilación (y observe que es más legible la salida del proceso de compilación).

Instalando el núcleo

El siguiente paso es monta su partición /boot para copiar la imagen del núcleo. Luego debe actualizar manualmente la configuración de su gestor de arranque.

Listado de Código 6.4: Instalando el núcleo

# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4

Note que las instrucciones anteriores son solamente ejemplos, debe seguir su procedimiento usual para actualizar el núcleo, usando como referencia las instrucciones en el Manual Gentoo (vea el capítulo Configurando el Kernel).

Cuando actualice su configuración del gestor de arranque, no elimine la entrada antigua al núcleo 2.4. Así puede cambiar fácilmente entre las dos en caso que algo no funcione.

Ahora continúe con la sección Configuración de Módulos.

7.  Alternativa: Usando genkernel

Si prefiere usar genkernel en vez de configurar su núcleo manualmente, le contentará escuchar que usando genkernel para producir núcleos 2.6 es muy similar al proceso para producir los núcleos 2.4 previos.

Debe invocar genkernel como en el ejemplo:

Listado de Código 7.1: Invocando genkernel con algunos argumentos comunes

# genkernel --udev --menuconfig --bootloader=grub all

En el ejemplo anterior, nos aprovechamos de las características de genkernel para abrir menuconfig y permitirle personalizar la configuración del núcleo (si así lo desea) y para actualizar el gestor de arranque grub luego de la compilación.

Debe escoger los argumentos de genkernel que le convengan, pero ¡no se olvide incluir el argumento --udev! Consulte la Guía Gentoo Linux de Genkernel y el capítulo Configurando el Núcleo del Manual Gentoo para más información.

Si escoje actualizar usted mismo el archivo de configuración de su gestor de arranque, recuérdese incluir el parámetro del núcleo udev. Una sección del archivo de configuración del gestor de arranque grub se muestra a continuación, pero, acuérdese de ajustar el parámetro real_root para su sistema.

Listado de Código 7.2: Configuración ejemplo de GRUB para genkernel + udev

title Gentoo Linux (Núcleo 2.6)
root (hd0,0)
kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r4

8.  Configuración de Módulos

Instalando módulos externos

Muchos usuarios adicionalmente confiarán en módulos del núcleo construidos fuera del árbol de fuentes del núcleo. Algunos ejemplos comunes son los drivers gráficos binarios de ATI y nVidia. Ahora debe instalarlos, porque compilarán contra las fuentes 2.6 apuntados por /usr/src/linux. Este es el caso típico de emerge paquete para todos los módulos externos que acostumbra usar con el 2.4.

De nuevo refiérase a capítulo Configurando el Núcleo del Manual Gentoo para más información.

Cargando los módulos automáticamente

Tal vez haya decidido compilar algunos componentes del núcleo como módulos (en vez de directamente en el núcleo) y le gustaría que se carguen automáticamente al arrancar, tal como lo hizo con 2.4. Si ha instalado algún módulo externo del árbol portage (descrito anteriormente), tal vez quiera cargarlos automáticamente también.

Esto se hace de manera similar a como se hizo con 2.4. Sencillamente abra su archivo /etc/modules.autoload.d/kernel-2.6 en un editor de textos y escriba los nombres de los módulos que desea cargar automáticamente.

Listado de Código 8.1: Abriendo la lista de módulos autocargados en nano

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

Listado de Código 8.2: Ejemplo de lista con módulos autocargados para 3c59x y nvidia

# /etc/modules.autoload.d/kernel-2.6:  kernel modules to load when system boots.
#
# Note that this file is for 2.6 kernels.
#
# Add the names of modules that you'd like to load when the system
# starts into this file, one per line. Comments begin with # and
# are ignored. Read man modules.autoload for additional details.

3c59x
nvidia

9.  Migración de LVM a LVM2

Actualizando a las herramientas LVM2

Nota: Si no utiliza LVM para manejar su almacenamiento en disco, puede saltar este capítulo e ir al siguiente.

Afortunadamente, actualizar las herramientas de LVM1 a LVM2 es muy sencillo:

Listado de Código 9.1: Actualizando las herramientas del usuario de LVM1 a LVM2

# emerge --unmerge lvm-user
# emerge lvm2

Nota: Necesitarás re-emerge lvm-user si quieres volver a arrancar un kernel 2.4, ya que lvm2 por sí solo no es suficiente para los kernels 2.4.

10.  Arrancando a Linux 2.6

Ahora, es hora de arrancar a Linux 2.6. Cierre todas sus aplicaciones y reinice la máquina:

Listado de Código 10.1: Reiniciando

# umount /boot
# reboot

Al reiniciar, si siguió este documento correctamente hasta ahora, podrá optar por cargar Linux 2.4 o Linux 2.6 desde el gestor de arranque. Escoja Linux 2.6.

Una vez arrancado el sistema, revise que todo esté funcionando. Si ha cometido alguna equivocación en la configuración del núcleo, no se preocupe, regrese a Configurando, construyendo e instalando el núcleo, realice su cambio, recompile e instale la nueva imagen del núcleo, reinicie e ¡inténtelo de nuevo!

Configure y haga sonar a ALSA

Ahora completaremos la configuración de ALSA y activaremos los canales audio. Los paquetes ALSA nos proveen una herramienta para que este proceso sea realtivamente sencillo:

Listado de Código 10.2: Invocando la herramienta de configuración automática de ALSA

# alsaconf

El proceso es sencillo: permite que el archivo /etc/modules.d/alsa sea actualizado automáticamente y luego permita que se recargue ALSA. alsaconf luego terminará de ejecutar, aunque habrá que ejecutarla múltiples veces si tiene varios dispositivos de sonido instalados en su sistema.

Ahora debe agregar alsasound a su nivel de ejecución boot, de manera que los niveles de volumen sean guardados al apagar y restaurados al iniciar:

Listado de Código 10.3: Agregando alsasound al nivel de ejecución boot

# rc-update add alsasound boot

Nota: La herramienta alsaconf escoge unos volúmenes iniciales para sus dispositivos de sonido. Si estos no son apropiados, puede modificarlos en cualquier momento con la herramienta alsamixer.

¿Algún problema en este momento?

En esta etapa debería referirse a la sección Problemas conocidos con la migración a Linux 2.6 que puede ser de ayuda en caso de algún problema encontrado en este momento.

11.  Archivos de cabecera y NPTL

Ya debe estar corriendo Linux 2.6 y esperemos que sin mayores problemas. Ahora toca actualizar los archivos de cabecera Linux y hacer emerge otra vez del glibc para que las aplicaciones del userspace puedan aprovechar las nuevas características de Linux 2.6.

Listado de Código 11.1: Actualizando a linux26-headers

# emerge -u linux-headers

Después de actualizar el paquete de archivos de cabecera, debería recompilar el glibc. Hay una nueva característica que tal vez le interese, NPTL. NPTL es un modelo nuevo de hilos de ejecución que presenta tiempos creación y destrucción de hilos mucho más rápidos. Esto tal vez no haga mucha diferencia en la mayoría de los sistemas, pero puede que desee activarlo como parte del proceso de migración. Para hacer esto, modifique el archivo /etc/make.conf y agregue nptl a sus parámetros USE.

Aviso: Le advertimos que con los glibc estables actuales no podrá arrancar un núcleo 2.4 luego de compilar glibc con USE="nptl". ¡Precaución!

Ahora haga emerge glibc (debería hacer esto, aunque no haya activado NPTL).

Listado de Código 11.2: Reinstalando glibc con los nuevos archivos de cabecera

# emerge -a glibc

Si ha activado NPTL. los binarios existentes no lo usarán hasta que sean recompilados. Sin embargo, todos los binarios creados desde este momento usarán NPTL. Tal vez quiera recompilar todos los binarios en este momento, por ejemplo:

Listado de Código 11.3: Recompilando todos los paquetes del sistema

# emerge -e world

Alternativamente, puede dejar que su sistema se convierta "naturalmente" a usar NPTL, a medida que vaya actualizando sus paquetes a sus últimas versiones cuando éstos sean lanzados.

12.  Comentarios al cierre

¿Problemas?

Con la increíble cantidad de trabajo invertido en Linux 2.6, a veces luce inevitable que algunas cosas que funcionaban perfectamente, ahora no lo hacen como antes.

Si tiene algún problema con su núcleo 2.6 y puede confirmar que no existía en Linux 2.4, por favor reporte un bug con nosotros en nuestro Bugzilla. Lo investigaremos y si encontramos que es un problema con las fuentes originales del núcleo, le pediremos que lo reporte al bugzilla central del núcleo.

Conclusión

Tenemos la esperanza que acaba de completar una migración sin sobresaltos y esté disfrutando de los beneficios que Linux 2.6 nos trae, por encima del 2.4.

Nos gustaría agradecer a todos aquellos usuarios que efectivamente 'probaron' este documentos mientras estaba en sus etapas iniciales y que dieron sus comentarios acerca de cómo fue el proceso de migración. Lamentamos no haber contestado todos los correos (¡eran muchos!) pero leímos cada uno de ellos y refinamos este documento donde era apropiado. Disfrute su sistemas potenciados por 2.6. :)

Eliminar Linux 2.4 de su sistema

Luego de correr Linux 2.6 por algún tiempo, quizás decida que ya no le hace falta poder usar Linux 2.4. Los pasos que puede tomar para limpiar su sistema los detallamos a continuación. ¡Sólamente siga las instrucciones de esta sección si no desea volver a usar Linux 2.4!

Las fuentes del núcleo 2.4 puede ser borradas usando la herramienta emerge de la manera usual. Por ejemplo, si asumimos que tiene versiones de las fuentes vanilla-sources y gentoo-sources, versión 2.4, podría usar el siguiente comando para borrarlas, manteniendo las versiones 2.6 intactas:

Listado de Código 12.1: Ejemplo: Borrando las fuentes Linux 2.4

# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*

Portage no limpiará completamente su instalación de fuentes 2.4, ya que se crean archivos temporales durante la compilación. Puede eliminarlos con seguridad usando el siguiente comando:

Listado de Código 12.2: Eliminación de archivos temporales remanentes

# rm -rf /usr/src/linux-2.4.*

Adicionalmente puede borrar los módulos y archivos de información relacionados a las instalaciones antiguas del núcleo 2.4, ya que no harán más falta.

Listado de Código 12.3: Eliminación de módulos 2.4 previamente instalados

# rm -rf /lib/modules/2.4.*

Los binarios del núcleo usados para iniciar, pueden ser borrados con seguridad. Monte su partición /boot y borre esas imágenes. Actualice la configuración de su gestor de arranque para que no haga referencia a las imágenes del núcleo que han sido borradas.

Algunos usuarios de Linux 2.4 haban instalado previamente el paquete alsa-driver para aprovechar las características nuevas de audio incluidas en Linux 2.6. Si es uno de estos usuarios y siguió los consejos dados anteriormente en ese mismo documento acerca de la construcción de ALSA junto con las fuentes del núcleo 2.6 (en contraposición con el uso del paquete alsa-driver), puede borrar este paquete para evitar conflictos futuros.

Adicionalmente, los usuarios de lm-sensors habrán usado anteriormente el paquete i2c para obtener los drivers del hardware. Como ya hemos mencionado, los drivers I2C ahora están incluidos en el núcleo, así que podemos borrar este paquete para prevenir futuros conflictos.

El demonio de administración devfs, devfsd, puede ser borrado sin temores, ahora estamos usando udev para la administración de dispositivos.

Listado de Código 12.4: Eliminación de los paquetes alsa-driver, i2c e devfsd

# emerge --unmerge alsa-driver i2c devfsd

Si es un usuario de LVM2, puede que quiera convertir sus datos al formato de LVM2 para beneficiarse de las ventajas que LVM2 provee. Sin embargo, esta operación tien como efecto que no podrá acceder sus datos LVM desde un núcleo 2.4. Si desea continuar con la conversión (¡esto es totalmente opcional!) entonces debería examinar la página del manual de vgconvert para instrucciones de cómo llevar esto a cabo. Se muestra a continuación un ejemplo, donde main es el nombre del grupo de vólumen.

Listado de Código 12.5: Convirtiendo un volúmen LVM1 al formato LVM2

# vgconvert -M2 main


Imprimir

Actualizado 5 de marzo, 2008

Sumario: Este documento le asistirá en el proceso de migrar del núcleo Linux 2.4 a Linux 2.6, de devfs a udev, de OSS a ALSA y de LVM a LVM2.

Daniel Drake
Autor

Sergey Galkin
Colaborador

Sergey Kuleshov
Colaborador

Xavier Neys
Editor

Benny Chuang
Editor

John Christian Stoddart
Traductor

Andrés Pereira
Traductor

Manuel Peral González
Traductor

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Linux World Expo

Linux World Expo

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