Compilar kernel [GUÍA]
Volver al foro (Usando Guadalinex V4)-
GUIA SOBRE COMPILACIÓN E INSTALACIÓN DE UN KERNEL DE LINUX EN DEBIAN/UBUNTU/GUADALINEX ELABORADA EN JULIO DE 2007
En esta guía iré explicando poco a poco los pasos a seguir para poder descargar, compilar e instalar un kernel de Linux de la serie 2.6 en Debian, Ubuntu y Guadalinex.
El proceso se hará principalmente por consola, terminal o intérprete de comandos, iré escribiendo qué comandos teneis que ejecutar en la consola y además pondré:
## Comentarios sobre lo que se está haciendo
Mi intención es que esta guía pueda ser seguida por cualquier usuario principiante en el mundo de Debian GNU/Linux.
DESCARGA:
El primer paso es abrir nuestro navegador web preferido e ir a www.kernel.org
Al cargarse la página vereis multitud de enlaces y descargas de parches y demás cosas, nosotros instalaremos un kernel completo, no aplicaremos parches.
Vemos que hay unos enlaces, que estan de los primeros, que pertenecen a diferentes partes del mundo, unos estadounidenses, y otros europeos:
EE.UU: http://www.kernel.org/pub/
Europa: http://www.eu.kernel.org/pub/
Escoged el que más os convenga respecto a vuestra situación geográfica y entrad en él.
A continuación os encontrareis varios enlaces, escoged el que se titula:
Linux Repository, including kernel source
Es decir: /pub/linux/
Después entrad en /kernel
Después en v2.6/
El link completo sería: http://www.eu.kernel.org/pub/linux/kernel/v2.6/
para el servidor europeo.
Ahora tenemos que tener cuidado en descargarnos la última versión estable del kernel de Linux, para ello descargaremos el archivo que tenga este formato: linux-2.6.xx.tar.gz, procurando tener cuidado de descargar el de la versión más alta.
A la fecha actual, el kernel más actual que hay es el linux-2.6.22.1.tar.gz (ocupa algo más de 50 MB), lo descargamos y lo guardamos en nuestro equipo, supongamos que lo guardamos en nuestra carpeta personal, también llamada home.
Cuando haya finalizado la descarga, abrimos un terminal, consola, tty o intérprete de comandos, y ahora procederemos con la siguiente fase:
PREPARAR EL CÓDIGO FUENTE:
## Para asegurarnos que nos situamos en nuestra carpeta home (o carpeta personal), ejecutamos en consola:
cd $HOME
## Ahora necesitamos adquirir privilegios de administrador o root en esa consola, para ello ejecutamos:
# Si estamos en Ubuntu o Guadalinex
sudo su
# Si estamos en Debian
su
## Aunque puede que ambos comandos funcionen en ambas distribuciones.
## Ahora primeramente copiaremos el código fuente al directorio /usr/src. Recordemos que en este ejemplo usaré el archivo fuente linux-2.6.22.1.tar.gz, pero vosotros teneis que sustituir este por el vuestro. Os vendrá bien saber que la tecla TAB autocompleta nombres de archivos.
cp linux-2.6.22.1.tar.gz /usr/src/
## Ahora ingresamos al directorio /usr/src
cd /usr/src
## Lo siguiente que tenemos que hacer es instalar unos cuantos programas necesarios para compilar nuestro kernel:
apt-get install binutils e2fsprogs gcc make module-init-tools procps util-linux kernel-package libncurses-dev build-essential bzip2
## Tras la instalación, deberemos seguir situados en /usr/src, ahora descomprimimos las fuentes del kernel:
tar -xvzf linux-2.6.22.1.tar.gz
## Ahora nos ha quedado la carpeta con las fuentes del kernel, la correspondiente a mi versión se llama linux-2.6.22.1, para verlo ejecutamos:
ls -la
## Ahora creamos un enlace simbólico llamado linux a la carpeta de las fuentes del kernel:
ln -s linux-2.6.22.1 linux
## Ejecutamos de nuevo:
ls -la
## Y deberíamos de ver la carpeta de las fuentes del kernel y el enlace linux apuntando a esta con una flecha.
## Ingresamos al directorio de las fuentes del kernel
cd linux
### El paso que viene ahora hay que explicarlo un poco, si hacemos:
ls -la /boot
## veremos que hay por lo menos un archivo llamado al estilo config-2.6.21-2-686, que corresponde a la versión del kernel que estemos usando ahora.
## Ese archivo es un archivo de texto que contiene la configuración de partida del kernel de vuestra distribución, conviene usarlo como configuración de partida para ahorrarnos luego mucho trabajo añadiendo/quitado módulos. Este archivo se puede obtener de varios sitios, por ejemplo en algún sitio de internet, podríamos encontrar un archivo de configuración preparado para un determinado ordenador. O podríamos obtenerlo de un sistema Linux de un Live CD. El caso es que es necesario copiarlo al directorio /usr/src/linux con el nombre .config, para ello:
cp /boot/config-2.6.21-2-686 $(pwd)/.config
ADVERTENCIA: Es importante que hayais seguido este paso del archivo de configuración al pie de la letra, aunque en otras guías proponen alternativas como usar Load Configuration File directamente en menuconfig, creedme que por algún fallo si no lo haceis exactamente como yo lo digo, luego no se os compilarán los módulos, y os quedará un kernel prácticamente inutil.
## Ahora podemos pasar a la siguiente fase:
CONFIGURACIÓN DE LAS FUENTES:
## Abrimos el programa de configuración de las fuentes:
make menuconfig
## Como veis ahora se abre un programita muy ameno con interfaz de menús en el cual hay varias secciones, una de las más importantes que no debemos olvidar configurar es la de:
Processor type and features -> Processor family
Aquí tenemos que especificar el tipo de procesador que tiene nuestro ordenador, se selecciona con la barra espaceadora, y se regresa al menú anterior pulsando doblemente Esc.
La otra sección que suele interesar mucho a la gente es la de:
Device drivers
Aquí es donde podemos dar o quitar soporte para distintos dispositivos, tenemos cientos de dispositivos, ordenados por tecnologías y familias, los drivers se pueden usar como módulo o integrados e el kernel:
Para seleccionar un driver como módulo usaremos la tecla 'M', para seleccionarlo integrado lo haremos con la tecla 'Y', y para desmarcarlo, lo haremos con la tecla 'N'.
Ahora cada uno que dé soporte a los dispositivos extra que le interesen, es recomendable, en general, añadirlos como módulos.
Quien tenga un disco duro IDE, sobretodo si su sistema operativo arranca desde él, tiene que hacer obligadamente lo siguiente:
Vamos a:
Device drivers
y buscamos ATA/ATAPI/MFM/RLL support y lo marcamos como integrado.
Ahora entramos en esta sección y marcamos Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support como integrado.
Los que tengan disco duro SATA probablemente tengan que hacer esto otro:
Marcar la sección:
Device drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers
como integrada, sobretodo si su sistema operativo arranca desde un disco SATA.
Tened también en cuenta que dentro de esa sección hay multiples drivers experimentales para discos SATA que por defecto no vienen marcados, si estais compilando el kernel para dar soporte a vuestro disco SATA, entrad ahí y mirad si vuestro modelo figura en la lista.
Bueno ya hemos hecho lo más importante, quedan muchas secciones que se ocupan de otras tecnologías que soporta el kernel Linux: funciones de red, sistemas de archivos etc etc, cada uno que se meta a donde le interese.
Una vez hayamos acabado de añadir o quitar soporte para los dispositivos o funcionalidades del kernel que nos interese, es hora de volver al menú del principio, y al salir nos preguntará que si queremos guardar la configuración que hemos cambiado, a no ser que la hayamos cagado y queramos volver a empezar, elegiremos que sí. Se genera así un .config nuevo y el viejo pasa a ser .config.old.
Y podremos pasar a la siguiente fase:
COMPILACIÓN DEL KERNEL:
## Ahora usaremos kernel package de Debian para compilar las fuentes del kernel.
## Debemos asegurarnos que seguimos en /usr/src/linux, antes de que ejecuteis el siguiente comando, explicaros que las XXXX es cualquier palabra o número que vosotros querais poner para distinguir ese kernel de otro que tuvierais compilado o que quizá compileis en el futuro.
## Ejecutamos pues:
make-kpkg --append-to-version=.XXXX --initrd binary
## Este ultimo comando comienza la compilación, llevará mucho tiempo, así que mientras, podemos dedicarnos a otra cosa, cuantas menos tareas esté realizando el ordenador durante este tiempo, menos tardará en compilarse el kernel. Cuando este proceso acabe, tendremos listos los paquetes Debian del Kernel, listos para instalarlos.
## Tras el proceso de compilación, encontramos en /usr/src un monton de paquetes Debian para nuestro kernel: Fuentes, documentación, manual, cabeceras (headers), la imagen (linux-image). Solo es necesario instalar la imagen, los demás paquetes no sirven para nada, a no ser que queramos instalar ese kernel en otro ordenador, con lo cual serían convenientes instalar también los archivos de cabeceras, no obstante, eso tendría el inconveniente de que en aquel ordenador no se podrían compilar múdulos o drivers posteriormente para ese kernel, y esto es algo que aun no sé como solucionarlo, sé que es porque falta un paquete necesario.
En nuestro ordenador solo necesitamos pues, la imagen, ya que tenemos la carpeta con las fuentes, y esta carpeta no se debe borrar porque si no estaríamos en las mismas, no podríamos compilar futuros módulos para este kernel.
## Nos movemos al directorio /usr/src
cd ..
## Instalamos pues la imagen del kernel ejecutando:
dpkg -i linux-image-2.6.22.1.debian_2.6.22.1.debian-10.00.Custom_i386.deb
Tras esto ya podemos reiniciar y arrancar nuestro nuevo kernel, que deberá figurar en la lista de sistemas operativos que sale en el arranque (el GRUB).
## Bueno pues yo, que he ido también comprobando los pasos ya he reiniciado y tengo mi nuevo kernel ejecutándose, podemos comprobarlo con el comando:
uname -sr
Espero que os haya sido de utilidad esta guía. Saludos de EagleScreen.
EagleScreen
Adepto Ancestral
Envíos: 232