La guía completa Gentoo de migración al núcleo Linux 2.6
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 --rbind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null
|
Si la orden ls anterior 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 la orden emerge mencionada 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 solo 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. Solo 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 solo
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.
-
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.
-
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)
General setup --->
[*] Support for hot-pluggable devices
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
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 a 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 elige actualizar el archivo de configuración de su gestor de
arranque, recuerde 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/sda3
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.
Para hacer esto, edite /etc/conf.d/modules con su editor
de texto favorito y liste los nombres de los módulos que le gustaría
cargar.
Listado de Código 8.1: Abrir la lista de módulos autocargados usando nano |
# nano -w /etc/conf.d/modules
|
Listado de Código 8.2: Entrada de configuración ejemplo para cargar los módulos 3c59x y nvidia |
modules="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á volver a hacer emerge de lvm-user si quiere volver a
arrancar un núcleo 2.4, ya que lvm2 por sí solo no es suficiente
para los núcleos 2.4.
|
10.
Arrancando a Linux 2.6
Ahora, es hora de arrancar a Linux 2.6. Cierre todas sus aplicaciones
y reinicie 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 relativamente 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 sí 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. ¡Siga las
instrucciones de esta sección únicamente en caso de que no desee 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 la siguiente orden 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 la siguiente orden:
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 tiene 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
volumen.
Listado de Código 12.5: Convirtiendo un volúmen LVM1 al formato LVM2 |
# vgconvert -M2 main
|
|