Escolar Documentos
Profissional Documentos
Cultura Documentos
en CentOS.
Autor: Joel Barrios Dueas
Correo electrnico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
1999-2008 Joel Barrios Dueas. Usted es libre de copiar, distribuir y comunicar pblicamente la
obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor
original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicacin, a travs
de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o
genera una obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta. Al
reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la licencia de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos
de autor. Los derechos derivados de usos legtimos u otras limitaciones no se ven afectados por lo
anterior. Licencia completa en castellano. La informacin contenida en este documento y los
derivados de ste se proporcionan tal cual son y los autores no asumirn responsabilidad alguna si
el usuario o lector hace mal uso de stos.
Introduccin.
Una de las grandes ventajas de que el ncleo (kernel) GNU/Linux sea equipamiento lgico libre
(Software Libre) es el poder descargar el cdigo fuente del ncleo, configurar ste para compilar
especficamente con opciones adecuadas a necesidades particulares o con controladores
especficos para un sustento fsico (hardware) en particular, compilarlo y obtener como resultado
mejoras en el desempeo.
La gran variedad de distribuciones de GNU/Linux instalan un ncleo (kernel) que fue configurado y
compilado con opciones genricas y que permiten utilizar ste en una gran variedad de dispositivos
y computadoras. Esto facilita la vida a los desarrolladores y empaquetadores que trabajan para cada
distribucin pues de esta forma con cuatro o cinco versiones del paquete de ncleo abarcan la
mayora de los sustentos fsicos en el mercado. sto elimina la necesidad de los usuarios por
compilar el ncleo.
Por mencionar un ejemplo, el paquete del ncleo de CentOS 5 y Red Hat Enteprise Linux 5 que se
distribuye para arquitecturas i686 incluye opciones y optimizaciones genricas que permiten utilizar
un mismo paquete RPM del ncleo para una amplia variedad de sistemas. ste incluye el soporte
para ser utilizado con microprocesadores como Pentium Pro, Pentium II,Pentium III, Pentium
4, Pentium M, Celeron, Athlon, Duron, Cyrix i686, etc. Evidentemente este soporte genrico
impide poder explotar todo el potencial e instrucciones de un modelo de microprocesador en
particular.
Si, por ejemplo, se dispone una computadora porttil (Laptop) Compaq Armada M300 con
microprocesador Pentium III(Coppermine) de 500 MHz, con 320 MB RAM, circuitos
integrados Intel PIIX4, tarjeta de audio ESS Technology ES1978, tarjeta de red Ethernet Pro 100 y
otros ciertos dispositivos en particular, el ncleo genrico incluido en la instalacin funcionar bien,
pero se tendr un desempeo inferior. Configurar y compilar el ncleo especficamente para las
caractersticas de este modelo de computadora porttil, excluyendo de la configuracin funciones
que jams se utilizarn en este sistema, mejorar su desempeo significativamente.
En sistemas caseros y computadoras porttiles con cierta antigedad, pueden excluirse funciones
como el soporte para ms de 4 GB de RAM, soporte genrico para arquitectura ix86, soporte para
otros modelos de computadoras porttiles, soporte para ms de un microprocesador, soporte
para IPv6 y otras opciones que solo seran tiles en otro tipo de sistemas como servidores.
Puede agregarse soporte para ms perifricos, como por ejemplo ms dispositivos USB y compilar
algunos controladores (cmo el soporte para LVM) dentro del ncleo en lugar de hacerlo como
mdulos a fin de mejorar el desempeo durante el arranque del sistema.
En un servidor se puede mejorar mucho el desempeo configurando y compilando exclusivamente
las opciones y mdulos especficos para la configuracin de sustento fsico (hardware) y funciones
requeridas para los servicios a brindar.
Procedimientos.
Determinar el sustento fsico y controladores.
Este procedimiento es complicado e implica contar con un cierta experiencia y conocimientos
generales acerca del sustento fsico (hardware).
/sbin/lsmod
Lo anterior puede devolver una salida similar a la siguiente, que depender del sustento fsico del
sistema:
Module
Size
Used by
nls_utf8
1888
vfat
12768
fat
50268
1 vfat
sg
35536
sd_mod
28112
usb_storage
46848
scsi_mod
148044
sg,sd_mod,usb_storage
i2c_dev
7492
18856
5220
snd_es1968
28192
gameport
13608
1 snd_es1968
snd_ac97_codec
97760
1 snd_es1968
dm_multipath
backlight
ac97_bus
1728
1 snd_ac97_codec
snd_seq_dummy
3556
30976
snd_seq_oss
snd_seq_midi_event
7008
1 snd_seq_oss
snd_seq
47856 5
snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_pcm_oss
41184
snd_mixer_oss
16192
1 snd_pcm_oss
battery
12932
5796
ac
snd_pcm
72168 3
snd_es1968,snd_ac97_codec,snd_pcm_oss
button
7984
parport_pc
27524
snd_timer
22148
2 snd_seq,snd_pcm
snd_page_alloc
10216
2 snd_es1968,snd_pcm
parport
35400
1 parport_pc
7872
1 snd_es1968
snd_mpu401_uart
snd_rawmidi
23392
1 snd_mpu401_uart
joydev
11232
snd_seq_device
8044 4
snd_seq_dummy,snd_seq_oss,snd_seq,snd_rawmidi
snd
52068 13
snd_es1968,snd_ac97_codec,snd_seq_oss,snd_seq,
snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,
snd_mpu401_uart,snd_rawmidi,snd_seq_device
e100
34220
soundcore
7264
1 snd
mii
5440
1 e100
i2c_piix4
8780
pcspkr
2624
i2c_core
serio_raw
24432
2 i2c_dev,i2c_piix4
6500
floppy
55652
dm_snapshot
17472
1920
25568
132488
dm_zero
dm_mirror
ext3
jbd
42100
1 ext3
uhci_hcd
23696
ohci_hcd
22916
ehci_hcd
33740
Tipo de microprocesador.
La informacin del microprocesador se puede consultar leyendo el contenido del archivo
virtual /proc/cpuinfo utilizando el mandato less del siguiente modo:
less /proc/cpuinfo
Lo anterior puede devolver una salida similar a la siguiente, que depender del tipo de
microprocesador del que se disponga:
processor
: 0
vendor_id
: GenuineIntel
cpu family
: 6
model
: 8
model name
: Pentium III (Coppermine)
stepping
: 3
cpu MHz
: 498.164
cache size
: 256 KB
fdiv_bug
: no
hlt_bug
: no
f00f_bug
: no
coma_bug
: no
fpu
: yes
fpu_exception
: yes
cpuid level : 2
wp
: yes
flags
: fpu vme de pse tsc msr pae mce cx8
sep
mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips
: 996.86
clflush size : 32
Dispositivos PCI.
El mandato lspci permite determinar los dispositivos PCI (Peripheral Component Interconnect o
Interconexin de Componentes Perifricos) presentes en el sistema.
/sbin/lspci
Lo anterior puede devolver una salida similar a la siguiente, que depender de los
dispositivos PCI de los que que se disponga:
/sbin/lsusb
Lo anterior puede devolver una salida similar a la siguiente, que depender del tipo de
dispositivos USB de los que se disponga:
#source packages
[sources]
name=CentOS-$releasever - Sources
baseurl=http://mirror.centos.org/centos/
$releasever/os/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPGKEY-CentOS-5
#source packages
[sources-updates]
name=CentOS-$releasever - Sources Updates
baseurl=http://mirror.centos.org/centos/5/updates/
SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-
KEY-CentOS-5
Al terminar se contina con la instalacin de los paquetes RPM binarios de el compilador gcc,
cabeceras de desarrollo para el lenguaje de programacin C, paquete de desarrollo de ncurses,
para construir la herramienta de configuracin del ncleo y el paquete para creacin de
paquetera RPM:
cd /usr/src/redhat/SPECS/
Posteriormente se procede a descomprimir fuentes y aplicar parches. La opcin --target=i686 se
utilizar en ejemplo a continuacin para que se instale un archivo previamente configurado
con opciones genricas para la arquitectura i686.
cd ../BUILD/kernel-2.6.18/linux-2.6.18.i686/
Dentro del paquete RPM se incluyen varios archivos con configuraciones genricas de acuerdo a la
arquitectura, los cuales se instalan dentro del directorio /usr/src/redhat/SOURCES/. Uno de estos
archivos se selecciona y copia automticamente dentro del directorio /usr/src/redhat/BUILD/kernel2.6.18/linux-2.6.18.i686/ cuando se define la arquitectura con la opcin --target del
mandato rpmbuild.
ppc64.config
kernel-2.6.18ppc64debug.config
(G5).
Configuracin genrica para arquitectura PPC de 64 bit,
con opciones de depuracin. Solo recomendado para
desarrolladores y escenarios donde se requiere
diagnstico.
Configuracin genrica para arquitectura PPC de 32 bit
(G3 y G4).
Configuracin genrica para arquitectura PPC de 32 bit,
con soporte de Multi-Procesamiento Simtrico (SMP).
kernel-2.6.18ppc.config
kernel-2.6.18ppc-smp.config
kernel-2.6.18Configuracin genrica para arquitectura s390.
s390.config
kernel-2.6.18Configuracin genrica para arquitectura s390x.
s390x.config
Configuracin genrica para arquitectura s390, con
kernel-2.6.18opciones de depuracin. Solo recomendado para
s390xdesarrolladores y escenarios donde se requiere
debug.config
diagnstico.
kernel-2.6.18- Configuracin genrica para arquitectura x86_64 (AMD
x86_64.config K8, AMD Athlon 64, AMD Opteron).
Configuracin genrica para arquitectura x86_64, con
kernel-2.6.18opciones de depuracin. Solo recomendado para
x86_64desarrolladores y escenarios donde se requiere
debug.config
diagnstico.
kernel-2.6.18- Configuracin genrica para arquitectura x86_64, con
x86_64soporte para Xen. Permite utilizar paravirtualizacin a
xen.config
travs de Xen.
Descargar desde kernel.org
La principal ventaja de descargar el ncleo desde kernel.org es que se contar con la ms reciente
versin, mejoras y ms dispositivos soportados. El inconveniente es que puede perderse la
estandarizacin con la distribucin utilizada o bien la compatibilidad con algunas aplicaciones de
terceros que dependen directa o indirectamente de una versin en particular del ncleo o
un API incluido en alguna versin en particular del ncleo.
Se accede hacia http://www.kernel.org/ y se descarga, desde la parte inferior de la portada del
sitio, la versin ms reciente del ncleo.
wget \
http://www.kernel.org/pub/linux/kernel/v2.6/linux2.6.25.10.tar.bz2
Lo anterior descargar el paquete linux-2.6.25.10.tar.bz2.
Se procede a descomprimir linux-2.6.25.10.tar.bz2 utilizando lo siguiente:
cd linux-2.6.25.10
Configuracin del ncleo.
Se puede utilizar el mandato make con la opcin config de la siguiente forma:
make config
El inconveniente de sto es que se tendr que responder una a una cada una de las opciones del
ncleo. Solo se recomienda para usuario muy experimentados.
Se puede utilizar el mandato make con la opcin menuconfig de la siguiente forma:
make menuconfig
Lo anterior compilar y ejecutar una interfaz hecha en ncurses que permitir examinar el rbol de
opciones y habilitar y deshabilitar de una forma ms amistosa, pues cada opcin incluye una ayuda
que explica para que sirve y si es seguro incluirla, compilarla como mdulo o excluirla.
En general, se puede empezar excluyendo las optimizaciones genricas y funciones que nunca se
utilizarn en el sistema como el multiprocesamiento simtrico y soporte para ms de 4 GB de RAM.
Controladores para dispositivos integrados en la tarjeta madre que sean de uso continuo.
En general se debe evitar incluir dentro del kernel y solo compilar como mdulo lo siguiente:
Controladores para cualquier dispositivo que se pueda remover del sistema (es decir
dispositivos USB, Firewire,Bluetotooth, etc.).
La regla general es mantener el ncleo lo ms pequeo posible y evitar incluir dentro de ste
demasiados controladores. Si se compila un controlador dentro del ncleo y el dispositivo es retirado
del sistema o ste sufre algn tipo de dao que afecte su funcionamiento, el ncleo puede sufrir
conflictos con el resto de los controladores o bien sufrir un fallo. Es preferible compilar como
mdulos los controladores de todo aquello que se pueda remover del sistema, incluyendo los
dispositivos que utilicen ranuras PCI.
Al terminar de configurar lo anterior, simplemente se sale de menuconfig para guardar los cambios.
make
Instalacin del ncleo.
Despus de varios minutos, dependiendo de la capacidad del sistema, se procede a instalar primero
los mdulos:
make modules_install
Al concluir el procedimiento, se instala el ncleo.
make install
This means
#
all kernel and initrd paths are
relative to /boot/, eg.
#
root (hd0,0)
#
kernel /vmlinuz-version ro
root=/dev/VolGroup00/LogVol00
#
initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.25.10)
root (hd0,0)
kernel /vmlinuz-2.6.25.10 ro
root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.25.10.img
title CentOS (2.6.18-92.1.6.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.6.el5 ro
root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-92.1.6.el5.img
NOTA: Es muy importante siempre conservar una copia del ncleo que viene con la distribucin
utilizada en caso de presentarse problemas.
make binrpm-pkg
Si desea crear un paquete RPM compilando todo de nuevo, puede utilizar el mandato make con la
opcin rpm-pkg de la siguiente forma:
make rpm-pkg
La instalacin del paquete resultante se realiza utilizando el mandato rpm con las opciones ivh (instalar, descriptivo y mostrar barra de progreso), a fin de que se mantengan instalados los
paquetes del ncleo existentes en el sistema y estos coexistan, permitiendo elegir con cual iniciar el
sistema desde el arranque con Grub.
and the