Entorno de compilación para el kernel

METODO 1

Debemos asignar al menos 2 nucleos de cpu y la mitad de la RAM del sistema (todo dentro de los parametros en verde)

sudo apt-get build-dep linux-image-$(uname -r)
sudo apt-get install libncurses5-dev bc

A continuación vamos a construir e instalar el kernel de linux

mkdir kernel
cd kernel
wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.2.tar.xz
tar xf linux-3.13.2.tar.xz
cd linux-3.13.2
cp /boot/config-$(uname -r) .config
make menuconfig # Do these activities in sequence (load -> exit -> save) for the .config file
# present in current directory using the ncurses buttons.
make -j5 # It will create arch//boot/bzImage
sudo make modules_install
sudo make install
sudo reboot

Si grub no reconoce el nuevo kernel, tendremos que ejecutar:
sudo update-grub

O en ocasiones que grub se corrompe el siguiente:
sudo grub-install /dev/sda

Modulo Hola Mundo

#include
#include

int init_module(void)
{
printk(KERN_INFO “init_module() called\n”);
return 0;
}

void cleanup_module(void)
{
printk(KERN_INFO “cleanup_module() called\n”);
}

kernel_code
Crear El siguiente Makefile

obj-m += hello.o
all:
make -C ~/kernel/linux-3.13.2/ M=$(PWD) modules
clean:
make -C ~/kernel/linux-3.13.2/ M=$(PWD) clean

Y a continuacion insertar y descargar el modulo:
sudo insmod hello.ko
lsmod | grep hello
dmesg | tail
sudo rmmod hello
lsmod | grep hello
dmesg | tail
testing

En dmesg podremos ver las salidas del módulo.

METODO 2
Instalar los siguientes paquetes:
sudo apt-get install fakeroot build-essential libncurses5 libncurses5-dev kernel-package

Obtener el codigo fuente (Se guarda en /usr/src):
sudo apt-get install linux-source

Descomprimirlo en nuestro home
tar xjvf /usr/src/linux-source-.tar.bz2
cd linux-source-

Usar la configuracion inicial como punto de partida:
cp -vi /boot/config-`uname -r` .config

Fijar la configuracion:
make menuconfig
Compilar el kernel:
fakeroot make-kpkg –initrd –append-to-version=-mykernv1 kernel-image kernel-headers
(Usa “make-kpkg clean” antes de construir el kernel para limpiar)

Instala el kernel:

sudo dpkg -i linux-image-.deb
sudo dpkg -i linux-headers-.deb

Crea el systema de archivos inicial en ram (initramfs) y actualiza grub
sudo update-initramfs -c -k
sudo grub-install /dev/sda
sudo update-grub
Reinicia el kernel:
sudo reboot now

Comprueba el kernel que se esta ejecutando.
uname -r

Anuncios
  1. Deja un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

A %d blogueros les gusta esto: