compilar kernel en debian (raid0)

nota aclaratoria: 

version actual de nucleo: 2.6.30.2

actualizar a : 2.6.32.7

procesador : intel core2 quad 9500 a 2,5 Ghz

ram: 2gb a 1333 Mhz

discos raptor raid 0

tiempo: 90 min




Primero miramos la versión del kernel que tenemos instalada:

uname -a

Ahora vamos a la pagina http://kernel.org/ y buscamos la última versón estable:

<!--break-->

una vez descargado vemos que es un tar.bz2 lo movemos a /usr/src

mv linux-2.6.32.7.tar.bz2 /usr/src/

lo descomprimimos y nos metemos dentro:

tar -xvjf linux-2.6.32.7.tar.bz2

cd linux-2.6.32.7

Necesitamos instalar estos paquetes:

aptitude install kernel-package binutils libncurses5-dev libc6-dev build-essential zlib1g-dev

parece ser que en las versiones testing de el paquete kernel-package no nos genera bien el initrd, asi que hace falta cambiar algunas cosas,

con este comando se solucionan los problemas (solo en las testing!!!):

cp /usr/share/doc/kernel-package/examples/etc/kernel/postinst.d/initramfs /etc/kernel/postinst.d/initramfs-tools

una vez instalados procederemos a la configuración del nucleo, para ello hay tres formas, yo lo hago con la mas común (menuconfig), hay gente que prefiere con xconfig, la cual tiene un aspecto más grafico, para hacerlo ponemos:

make menuconfig

para ir entre los menus con las flechas y para entrar con Enter, para salir dos veces a la tecla Esc y para activar y desactivar con la barra espaciadora

cuando activamos algo su estado aparece entre corchetes [] con una m o con un *:

[*] built-in

[m] como modulo

GENERAL SETUP

nos metemos en General Setup ---> y dentro hay una opciÓn llamada enable deprecated sysfs features which may confuse old userspace tools

la desactivamos, a mi por lo menos no ha hecho nada mas que darme problemas con el raid y su función viene a ser algo como:

Esta opción crea enlaces simbólicos obsoletos como el "dispositivo" de enlace, el <subsystem>: <nombre>-Link, y el "bus"-Link. También puede
añadir una clave obsoleta en el medio "uevent".
Ninguna de estas características o valores deben ser utilizados en la actualidad, como controlador de exportación
de detalles básicos de aplicación al espacio de usuario o de la exportación de propiedades que no pueden mantenerse estables en todas las versiones del kernel.

Si está activada, esta opción también se moverá cualquier dispositivo de estructuras que pertenecen a una clase,
de nuevo en el directorio / sys / jerarquía de clases, a fin de apoyar las versiones más antiguas de udev y algunos programas de espacio de usuario.
Si usted está usando una distribución con los paquetes de espacio de usuario más reciente, debe ser seguro decir N aquí.

PROCESSOR TYPE AND FEATURES

Ahora toca configurar Processor type and features  ---> y dentro Paravirtualized guest support  --->

para configurar la virtualizacion de otros sistemas operativos ya sea con xen o kvm

Ahora sin salir de processor type and features nos metemos en el submenu Processor family (Core 2/newer Xeon)  --->

En este caso yo marco core2 pero si por ejemplo teneis un netbook que seguramente lleve atom lo marcais, si es un amd pues la otra opción...

salimos de nuevo a processor type and features y marcamos estas dos opciones si tenemos Hyperthreading y si tenemos mas de un procesador :

[*] SMT (Hyperthreading) scheduler support                                                                   
[*] Multi-core scheduler support

unas opciones mas abajo nos metemos en Preemption Model (Voluntary Kernel Preemption (Desktop))  --->

(Basicamente decidimos que tiene prioridad) donde tenemos para elegir tres opciones:

No Forced Preemption (server): El kernel da prioridad a la acción actual y luego cunado acaba al siguiente proceso. (no nos interesa).

Voluntary Kernel Preemption (desktop): Permitimos al kernel parar el proceso actual para atender en determinados momentos otos procesos.

Preemptible Kernel (low latency desktop): El kernel para sus procesos para atender a otros, excepto en situaciones críticas. (la recomendada), es el que menos tiempos de respuesta dá.

En el apartado Timer frequency (1000 HZ)  ---> elegimos 1000 mhz (para un servidor mejor 100 mhz)

salimos al menu principal y escogemos :