Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

55
Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea

Transcript of Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Page 1: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalación y Configuración del Kernel

Realizado por Kepa Bengoetxea

Page 2: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Referencias

Compilar Ubuntu:

https://help.ubuntu.com/community/Kernel/Compile

Construir un nuevo kernel:

http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html

Leer kernel-COMO:

http://www.ubuntu-es.org/node/431

http://www.ubuntulinux.org/wiki/KernelHowto

Page 3: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalar Kernel/Núcleo

A)Instalar desde un Kernel Precompilado

B)Instalar desde las Fuentes del Kernel configurando (personalizando) y compilando.

Page 4: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Núcleos Precompilados.Modo gráfico

Por defecto, Ubuntu GNU/Linux viene con un núcleo estándar compilado para i386 ó genérico para los x86/x86_64 .Para ver si tenemos instalado el adecuado o si podemos actualizar a uno nuevo, podemos seguir los siguientes pasos:

menú Sistema de GNOME, abrimos Administración e iniciamos el Gestor de Paquetes Synaptic.

Una vez dentro de Synaptic, si disponemos de conexión a Internet, pulsamos en Recargar para obtener los últimos paquetes.

Page 5: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Núcleos Precompilados.Modo gráfico

Panel izquierdo, escogemos la sección Sistema Base. OJO!!: para evitar problemas con núcleos no oficiales, marcamos Sistema base, no Sistema base(universe)

Bajamos hasta la zona dónde tenemos paquetes que se llaman: linux-image-X.X.X-nombre_de_nuestro_procesador y marcamos la versión más actual. Por ejemplo, en este momento, para mi ordenador sería: linux-image-2.6.24-23-generic

Page 6: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Núcleos Precompilados.Modo gráfico

Si tenemos algún hardware que requiera módulos del núcleo especiales (véase tarjetas Nvidia), debemos marcar también los linux-restricted-modules correspondientes al núcleo seleccionado desde panel izquierdo seleccionando en la sección: Sistema Base (restricted) ó Varios Basados en Texto (restricted)

Aplicamos los cambios. Al reiniciar la próxima vez, se cargará el núcleo seleccionado.

Page 7: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Núcleos Precompilados.Modo Texto

#La versión actual es:

uname -r ->2.6.24-22-generic

#instalar uno de los kernel precompilados

sudo aptitude search linux-image

sudo aptitude install linux-image-2.6.24-23-generic

...

p->i linux-image-2.6.24-23-generic (x86-x86_64)

...

Page 8: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Núcleos Precompilados

#Si tenemos algún hardware que requiera módulos del núcleo especiales (véase tarjetas Nvidia) del tipo restringido

sudo aptitude search linux-restricted-modules

sudo aptitude install linux-restricted-modules-2.6.24-23-generic

i linux-restricted-modules-2.6.24-23-generic - Non-free Linux 2.6.20 modules on x86/x86_64

Page 9: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del Kernel

Cuando SI compilar kernel Cuando quieras probar las características experimentales

deshabilitadas por defecto.

Si estás resolviendo un bug del kernel

Si tienes hardware, que no tiene activado su soporte por defecto en

el kernel o viene en otra versión del kernel superior.

Optimizar tu kernel

Nota : No necesitas compilar el kernel para compilar un driver

especial. Sólo necesitas instalar el paquete linux-headers .

Page 10: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del KernelAntes de empezar a Compilar

Tener permisos de administrador.

A la hora de configurar nuestro nuevo kernel debemos seleccionar que componentes HW queremos que soporte, por lo que recogeremos la información del HW de nuestro PC: Processor, Drive type and Controller (SCSI, IDE), Ethernet devices, Graphics and Sound Cards, USB HUB...

Page 11: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del KernelAntes de empezar a Compilar

Conozca tu hw con:

lspci

lsusb

lshw

cat /proc/cpuinfo

cat /proc/net/dev

Page 12: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del KernelAntes de empezar a Compilar

A la hora de bajar el kernel de linux tengo 2 opciones:

Bajar las fuentes del kernel modificadas por mi distribución, e

instalarlas utilizando las herramientas propias de mi

distribución: Ubuntu-Debian (apt, make-kpkg, dpkg) ó Fedora-

Redhat(yum, rpm, rpmbuild)...

Bajar las fuentes del kernel oficial www.kernel.org liderado por

el grupo de Linus Torvalds

Page 13: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del KernelAntes de empezar a Compilar

¿Cuál de ellas es la mejor opción?

Si las modificaciones que vas a realizar en la configuración son pocas

lo más seguro es instalar la versión de la distribución, ya que estas

incluyen estabilidad y parches de características que no vienen en en

núcleo oficial. Por ejm: Parches de Seguridad (Selinux), ...

Normalmente pasa bastante tiempo desde que sale el kernel de la

distribución frente al kernel oficial, es por ello, que si nos urge

probar alguna característica del kernel oficial de linux la tendremos

que bajar, NO pudiendo usar el de la distribución.

Page 14: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del KernelMétodo Universal. Download

Bajar la última versión:

http://www.kernel.org/ o http://www.kernel.org/mirrors/ The latest stable version of the Linux kernel is: 2.6.29.1

Mi Ubuntu esta actualizado a: uname -r ->2.6.24-23-generic

Bajamos .tar.gz o tar.bz (pulsando en F)

The latest stable version of the Linux kernel is: 2.6.29.1 2009-04-02 00:39 UTC F V VI C Changelog

Page 15: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Fuentes del KernelM. Universal.Descomprimir

$ sudo cp linux-XYZ.tar.bz2 /usr/src/ && cd /usr/src && tar -jxvf linux-XYZ.tar.bz2

Los contenidos del fichero se expandirán en /usr/src/linux-XYZ. Vaya ahora a ese directorio y lea el fichero README. Encontrará una sección “INSTALLING the kernel”'. Siga las instrucciones

que allí se digan.

Page 16: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación

Pasos:

1.-Posiciónate: cd /usr/src/linux-X.Y.Z

2.-Ejecuta make mrproper (Si ya habíamos compilado anteriormente un núcleo con estas fuentes, elimina todos los binarios .o que puedan quedar,...)

Page 17: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación

3.-Elige las características del núcleo. Utilizando diferentes aplicaciones:

$sudo make config :(modo texto)Un programa shell-script de configuración que le preguntará bastantes cosas.

$sudo make menuconfig: (modo texto con menus) $sudo make xconfig: (basado en X-windows en la versión

2.4 pero en la versión 2.6 se basa en las librerías QT de desarrollo “qt-devel”)

$sudo make gconfig <-- New in 2.6.x, based on GTK and not TCL-TK

Page 18: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación

Se procede de la siguiente manera: make xconfig

Cargar la configuración del fichero de configuración obtenido en el proceso de instalación que esta en “/boot/config-version”

Selecciona los controladores de los dispositivos detectados con lspci y añade las características del kernel que desees.

Existen 3 posibilidades de selección: 'y' incluirá en la parte monolítica del kernel. 'm' que lo hará como módulo. 'n' que no será seleccionado.

Ejm:cargar el módulo PPP sólo cuando vayamos a usar el módem.

Page 19: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración Code madurity level options: 'y/n' /*poder usar drivers

inestables*/

Loadable module support:

Enable loadable module support:'y'

Set version information on all module symbols :'n' (Guardar los modulos, al cambiar de kernel, utilizar 'y' si tenemos modulos externos al núcleo)

Automatic kernel module loading (KMOD):'y' Procesor type and features:

High Memory support:off(x)->Menos 960MB

Math emulation:'n'

MTRR(Memory Type Range Register) support:'n'(PCI/AGP)

Page 20: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración

Soporte para los Sistemas de ficheros (Filesystems):

Second extended (ojo no como módulo,unica_ y); msdos (acceder desde Linux a sus particiones de MS-DOS o

quiere montar disquetes de ese sistema.) umsdos (Sirve para quienes quieran instalar Linux en la

partición DOS, pero nada más) /proc (interfaz por medio de ficheros con la tabla de procesos

del núcleo, usada por programas como `ps'. Pruebe a teclear `cat /proc/meminfo' o `cat /proc/devices'. Muchas utilidades de Linux lo necesitan.

Page 21: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración

Soporte para los Sistemas de ficheros (Filesystems):

ISO9660 - Si tiene un CD-ROM. NTFS (Soporta Sistema de Ficheros de NT,XP,2000) quota support - Selecciónelo si quiere administrar el espacio

que consumen en disco los usuarios del sistema mandatory lock support- Selecciónelo si utiliza como servidor

de Bases de Datos o Ficheros. Vfat: Soporta fat y fat32

Page 22: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración

Soporte para los Sistemas de ficheros (Filesystems):

NFS :Si su máquina está en red y quiere acceder a sistemas de ficheros remotos con NFS.

SMB filesystem support: nos permitirá montar volúmenes compartidos por clientes de red NetBios.

UFS Soporte para el Unix FileSystem, empleado por *nixes BSD, como SunOS, FreeBSD, NetBSD, NeXTstep)

Sys V and Coherent filesystem support permitirá montar particiones de otros *nixes System V, como SCO Unix, Xenix y Coherent.

Page 23: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración

¡Pero no sé qué sistemas de ficheros necesito!

cat /etc/fstab o mount

/dev/hda3 on / type ext3 (rw)

none on /proc type proc (rw)

usbdevfs on /proc/bus/usb type usbdevfs (rw)

/dev/hda5 on /boot type ext3 (rw)

none on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/hda8 on /home type ext3 (rw)

none on /dev/shm type tmpfs (rw)

Page 24: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración/dev/hda11 on /tmp type ext3 (rw)

/dev/hda6 on /usr type ext3 (rw)

/dev/hda9 on /usr/local type ext3 (rw)

/dev/hda7 on /var type ext3 (rw)

/dev/hda2 on /dos type vfat (rw)

/dev/cdrom on /mnt/cdrom type iso9660 (ro,nosuid,nodev,user=kepa)

/dev/fd0 on /mnt/floppy type msdos (rw)

Para saber qué sistemas de ficheros usa en el núcleo actual puede teclear 'cat /proc/filesystems'

Page 25: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Opciones de Configuración

Manejadores de tipo carácter (Character devices)

Tarjeta de sonido (Sound card)

Kernel hacking: n (para versiones de producción)

...

Page 26: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación Núcleo

4.-El GRAN MOMENTO: COMPILAMOS !!!

Compilación comprimida del nucleo: make Crea el fichero bzImage en la carpeta /usr/src/linux-

XYZ/arch/i386/boot/ que es la imagen comprimida del núcleo.

También crea el fichero system.map en la carpeta /usr/src/linux-XYZ/System.map

Page 27: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación Núcleo¿Que es System.map?

Un símbolo representa un bloque de programa: un nombre de función o un nombre de variable

El kernel no usa nombres simbólicos como BytesRead() para llamar a una función sino que usa direcciones de funciones del tipo c0343f20

Existe un fichero llamado system.map donde se guarda la tabla de símbolos con los nombres de los símbolos y su dirección.Ejm:

c03441a0 B dmi_broken

c03441a4 B is_sony_vaio_laptop

...

Page 28: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación Núcleo¿Que es System.map?

Hay 2 ficheros son usados como la tabla de símbolos del kernel: /proc/kallsyms y System.map

/proc/kallsyms es un fichero del tipo proc que se crea al arrancar el kernel con el contenido del system.map. Cuando compilas el nuevo kernel se genera un nuevo system.map.

Page 29: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Compilación e Instalación de Módulos

5.-Compilar los módulos seleccionados e instalará los módulos compilados como root:

$sudo make modules_install

make modules //Compilar los módulos

copia módulos a "/lib/modules/`uname -r`custom")

NOTA: ejecutar depmod -a en el primer arranque de dicho núcleo, para registrar las dependencias entre módulos.

Page 30: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalación Núcleo

6.-Instala la entrada del nuevo kernel

#copia el núcleo compilado en /boot

cp /usr/src/linux-XYZ/arch/i386/boot/bzImage /boot/vmlinuz-X.Y.Z

#Tabla de símbolos:http://www.dirac.org/linux/system.map/

cp /usr/src/linux-XYZ/system.map /boot/system.map-X.Y.Z

#Salva el fichero de configuración en /boot

cp /usr/src/linux-XYZ/.config /boot/config-X.Y.Z

Page 31: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalación Núcleo

6.-Instala la entrada del nuevo kernel

#si hemos elegido los drivers IDE y ext3 por ejemplo como módulos cuando el kernel intenta cargar el sistema de ficheros root no puede ya que para cargarlos necesita de los drivers que están en el sistema de ficheros root (/lib/modules...). Para solventar este problema se crea un fichero con dichos drivers, que se cargan junto al kernel en memoria. Este fichero se crea con el siguiente comando:

mkinitrd initrd.img-2.6.24 2.6.24

En ubuntu se usa:

mkinitramfs -o /boot/initrd.img-2.6.24 2.6.24

Page 32: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalación Núcleo

#Modificar el cargador GRUB con la nueva entrada.

El archivo de configuración:/boot/grub/menu.lstdefault=1

timeout=10

title Ubuntu 8.04.2, kernel 2.6.24-23-generic

root (hd0,5)

kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=dda38e2b-9a90-4085-88ea-6cbb368f7e9f ro quiet splash

initrd /boot/initrd.img-2.6.24-23-generic

quiet

savedefault

Page 33: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalación Núcleo

7.-Al arrancar depmod -a y comprobar que todo a

arrancado correctamente examinando dmesg

Page 34: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Parchear el kernel Un parche para el núcleo es un fichero que sólamente contiene

información, sobre las líneas de código que han cambiado desde la versión precedente del núcleo.

Ventajas:

Ejm1:Un núcleo 2.2.0 y vamos a actualizarlo al 2.2.1. Tendrías que bajarte el fichero patch-2.2.1.gz [70Kb] en vez, del núcleo 2.2.1 al completo [12.5Mb].

Desventajas:

Ejm2:Un núcleo 2.2.0 y vamos a actualizar al 2.2.4.Tendrías que bajarte el 2.2.1, 2.2.2, 2.2.3 y 2.2.4. Los patch sólamente contienen los cambios de versión a versión.

Page 35: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Parchear el kernel

Antes de empezar: guardar una copia del núcleo.

Bajar y copiar el parche: patch-2.4.22 (donde esta el linux-2.4.21.tar.gz)

Descomprimir: bunzip2 patch-2.4.22.bz2

Ejecuta:patch -s -p0 < patch-2.4.22

Para ver qué partes no se han modificado correctamente, busque los ficheros .rej en el directorio de las fuentes.

find . -name '*.rej' -print

Page 36: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Parchear el kernel

Kernel 2.6:

make xconfig make make modules_install make install

Page 37: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Usando el kernel de la distribución Usando Ubuntu:

http://www.ubuntu-es.org/node/431

https://help.ubuntu.com/community/Kernel/Compile

Usando Debian:

http://www.debian.org/releases/stable/i386/ch08s06.html.es

Usando Fedora:

http://fedora.redhat.com/docs/release-notes/fc4/#sn-kernel-flavors

http://oak.cats.ohiou.edu/~hobbsk/kernel-compilation-tutorial-en/steps.html

Page 38: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Ubuntu 8.04 Hardy

Ubuntu 8.04 Hardy :el lanzamiento incluye el kernel genérico

2.6.24-16.30 basado en 2.6.24.3 de vanilla. Ubuntu incluye parches

adicionales para mejoras, arreglar errores, o añadir nuevas

características. Es por esta razón que el kernel de ubuntu no es

totalmente equivalente al llamado vanilla kernel o kernel vainilla

que está en sitio web www.kernel.org.

Page 39: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Obtener las fuentes del Kernel

En los repositorios de Ubuntu os vais a encontrar con paquetes llamados

kernel-source y con paquetes llamados linux-source. Ambos son las

fuentes del kernel. ¿Cuál es la diferencia?, pues que los kernel-source

vienen de Debian, y los linux-source vienen de Ubuntu. Por lo tanto para

obtener las fuentes del kernel que tenemos instalado y corriendo en

nuestro sistema, sólo tendremos que hacer:

$ sudo apt-get install linux-source

Con esto se descargará el archivo linux-source-nº_de_version.tar.bz2

en /usr/src

Page 40: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Obtener las fuentes del Kernel

Nos movemos a ese directorio:$ cd /usr/src

Si existe un enlace llamado linux a un kernel antiguo, lo borramos:

$ sudo rm linux

Ahora vamos a descomprimir el archivo de las fuentes:

$ sudo tar jxvf linux-source-2.6.24.tar.bz2

Creamos un enlace simbólico (llamado linux) a ese directorio:

$ sudo ln -s linux-source-2.6.24 linux

Page 41: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instala Herramientas Necesarias para compilar

Instala los siguientes paquetes:

sudo apt-get install build-essential kernel-package

kernel-package: A utility for building Linux kernel related Debian

packages.

build-essential: informational list of build-essential packages

Page 42: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Hay varias formas de configurar el kernel. La mayoría de la gente

utiliza una de estas dos: make menuconfig o make xconfig. La

diferencia es que con make menuconfig no hace falta tener las

Xwindow corriendo, y con make xconfig sí.

Nota: para utilizar make menuconfig necesitaremos el paquete

libncurses5-dev (con todas sus dependencias) y para utilizar make

xconfig necesitaremos los paquetes libqt3-headers y libqt3-mt-dev

(con todas sus dependencias).

Page 43: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Así que según lo que queramos utilizar, tendremos que hacer:

$ sudo apt-get install libncurses5-dev

o bien:

$ sudo apt-get install libqt3-headers libqt3-mt-dev

Page 44: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Para configurar el kernel, ¿puedo partir de una configuración conocida?.

Si. Podemos partir de dos puntos de referencia:

A)Las fuentes del kernel traen también diferentes configuraciones

predefinidas para las diferentes arquitecturas en:

/usr/src/linux/debian/Config

B)Una vez instalado Ubuntu,viene por defecto /boot/config-2.6.XX-XX-

generic, que es un archivo de texto con la configuración actual del kernel

Page 45: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Por ejemplo, para partir de esa base y comenzar la configuración

del nuevo kernel desde la actual, lo que tenemos que hacer es

copiar dicho archivo al directorio /usr/src/linux, pero

llamándolo .config, es decir:

sudo cp /boot/config-2.6.XX-XX-generic /usr/src/linux/.config

Page 46: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Ejecute el comando “make oldconfig” que intenta configurar mi

kernel nuevo usando los parámetros de mi configuración vieja es

decir del fichero .config.old o .config de mi versión de kernel

anterior. Genera preguntas sobre las nuevas caracteristicas

(drivers) que se han añadido desde el fichero .config viejo que

estamos usando.

Page 47: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

“make oldconfig” sólo se usa si los cambios de la fuente del

núcleo son pequeños (De kernel 2.6.2 a kernel 2.6.5) .Nota:

oldconfig no trabaja con ficheros de configuración cuyo major es

DISTINTO. No trabaja por ejemplo con: 2.4.x .config respecto un

kernel 2.6.x

$sudo make oldconfig

Page 48: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Ahora ya podemos hacer un sudo make menuconfig o un sudo

make xconfig y modificar las opciones que queramos del kernel, es

decir, configurarlo a nuestro gusto. Con mucho cuidado, eso sí,

porque este es el paso crítico. Aquí es donde lo podemos arruinar

todo si, por ejemplo, no incluimos algún módulo necesario para

nuestro sistema.

sudo make xconfig

Page 49: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Configurar el kernel

Page 50: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Construir el paquete

Para construir el paquete con el que instalaremos el nuevo kernel

vamos a usar la orden make-kpkg. Esta orden lo que hace

básicamente es sustituir a las clásicas make y make modules.

Admite numerosas opciones y modificadores (ya sabeis: man

make-kpkg), pero para lo que nos ocupa ahora sólo necesitaremos

hacer lo siguiente:

#limpiamos las posibles compilaciones previas

$ sudo make-kpkg clean

Page 51: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Construir el paquete

$ sudo make-kpkg --append-to-version=.XXXX --initrd

kernel_image

#modificar XXXX, que representa una secuencia alfanumérica que

tendréis que decidir vosotros, y que se añadirá al número de

versión del kernel para diferenciar el kernel que estáis compilando

de cualquier otro. No utilizar el guión de subrayado bajo (_) ni

expresiones como "-386", "-606", "-K7", "-sparc", etc., porque

expresiones similares son las usadas por los kernel precompilados

de Debian y podrían inducir a error.

Page 52: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Construir el paquete

La opción –initrd crea una imagen initrd en el directorio /boot.

Realmente no es imprescindible utilizarla siempre que a la hora de

configurar el kernel hayamos incluido de forma estática (y no

como módulos) los controladores para al menos nuestro bus, disco

y sistema de archivos de nuestro directorio raiz. Pero (y esto es

sólo una experiencia personal) siempre que he intentado compilar

un kernel sin esa opción, me he encontrado con un sistema que no

arrancaba, así que yo la uso siempre.

Page 53: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Construir el paquete

La opción –initrd ¿Qué problema tiene?, pues que para que funcione

correctamente, hay que aplicar a las fuentes del kernel el parche

cramfs. Tranquilos, porque todos los kernel de Debian (y por

supuesto también los de Ubuntu) tienen ese parche ya aplicado.

Pero es algo que tendréis que tener en cuenta si habeis obtenido las

fuentes del kernel en algún otro sitio (por ejemplo en

www.kernel.org).

Page 54: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalar el nuevo kernel

Si todo lo anterior ha ido bien, se crea el archivo de nombre

/usr/src/kernel-image-2.6.20.1.XXXX_10.00.Custom_i386.deb,

este archivo contiene nuestro kernel compilado:

$ sudo dpkg -i kernel-image-

2.6.20.1.XXXX_10.00.Custom_i386.deb

#Esta orden es equivalente a las clásicas make modules_install y

make install, además de colocar en su sitio la imagen initrd

generada y actualizar el grub.

Page 55: Instalación y Configuración del Kernel Realizado por Kepa Bengoetxea.

Instalar el nuevo kernel

Ahora, y por seguridad, borramos el enlace que habíamos creado:

$ sudo rm linux

Y ya está. Sólo nos queda arrancar con nuestro nuevo kernel

Ejecutar depmod -a

Genera en /lib/mudules/`uname -r`/modules.dep con las dependencias

entre los módulos seleccionados, para poder usar modprobe.