Esta pagina se ve mejor con JavaScript habilitado

Compilación del kernel

 ·  🎃 kr0m

La mayoría de gente piensa que la compilación del kernel es un proceso complicado y duro de llevar a cabo, pero si tenemos ciertos conceptos claros nos resultará mucho mas fácil, el kernel no es más que un recopilatorio de drivers para nuestro hardware. Con su compilación conseguiremos un menor footprint en cuanto a consumo de RAM ya que no cargaremos drivers de hardware del que no disponemos.

Después de estas aclaraciones ya estamos en condiciones de continuar, lo primero será averiguar que HW tenemos instalado en nuestra máquina, comandos útiles para este fin pueden ser:

  • dmesg –> imprime por pantalla todos los mensaje de arranque del sistema.
  • lspci –> nos muestra información referente a los dispositivos conectados a los puertos PCI.

Las fuente del kernel se pueden obtener de diferentes modos:

Descomprimimos las fuentes y generamos un enlace simbólico a estas:

bzip2 -dc KERNEL.tar.bz2 | tar -xv
ln -s /usr/src/KERNEL linux

Procedemos con la configuración:

cd /usr/src/linux
make menuconfig

Habrá opciones que no sepamos para que sirven, podemos leernos el help pero yo recomiendo meter en una primera compilación todo lo que no se sepa y luego ir depurándolo.

Las opciones se pueden compilar de dos formas distintas :

  • En el propio kernel –> Drivers necesarios para el arranque del SO
  • Como módulo –> Drivers que utilicemos sólo de forma esporádica

NOTA: Si sufres de paranoia extrema puedes decidir compilarlo todo dentro del kernel y deshabilitar la posibilidad de carga de módulos, de este modo ya no será posible la utilización de la mayoría de rootkis en nuestro sistema.

IMPORTANTE: Nunca, pero nunca poner como módulo drivers que le hagan falta al sistema para arrancar como por ejemplo el sistema de ficheros de la partición raíz del sistema o el driver IDE, SATA………….

Cuando se tenga todo listo se procederá a salir y guardar los cambios.

Compilamos e instalamos la imagen del kernel y los módulos:

make && make modules && make install && make modules_install

Configuramos GRUB para poder arrancar el kernel nuevo:

Si es grub 1.97:

vi /boot/grub/grub.conf

default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 3.4.9
root (hd0,0)
kernel /boot/kernel-3.4.9-gentoo root=/dev/sda3

Cambiando las líneas:

  • root() –> Partición donde se tenga boot
  • root= –> Partición donde se tenga raíz
grep -v rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/sda

Si es grub2:

grub2-install /dev/sda
grub2-mkconfig -o /boot/grub/grub.cfg

NOTA: Si es una máquina virtual con disco virtio:

vi /boot/grub/device.map

(fd0) /dev/fd0
(hd0) /dev/vda
grub-install --no-floppy /dev/vda

Reiniciamos y nos aparecerá una entrada nueva en el menú de arranque, seleccionamos esta y ya lo tenemos.

PD: El conocimienro humano pertenece al mundo ;)

Si te ha gustado el artículo puedes invitarme a un RedBull aquí