Cómo compilar tu propio nucleo con solamente los drivers que requiere tu hardware

De esta manera se vuelve un núcleo muy liviano y eficiente. Sin emabrgo, se debe compilar nuevamente cuando incluyas nuevo hardware.

Descarga los últimos fuentes del núcleo libre:

  pacman -S linux-libre-headers

Ingresa al directorio de los fuentes:

  cd /usr/src/linux-libre/dir_que_tiene_el_fuente

Crea un archivo de configuración basado en los módulos cargados y en uso en ese momento.

  cp /proc/config.gz .

  gunzip config.gz

  mv config .config

Configura para que se compile todo embebido en lugar de como módulos:

  make localyesconfig

Añade lo que quieras añadir (opiconal):

  make nconfig

Compila el núcleo:

  make

Instala el núcleo:

  make install

Instala los módulos que escojiste cargar fuera del núcleo:

  make modules_install

Configura el cargador de arranque:

  nano /etc/grub.d/40_custom

Añade lo siguiente al final del archivo:

  menuentry "New Kernel" {

    set root=(hd0,1)

    linux /boot/vmlinuz root=/dev/sda1 rootfstype=ext4

  }

En mi caso es "hd0,1" que es la primera partición (1) del primer disco duro(0) y "sda1" (sd=disco, a=primer disco, 1=primera partición).

Has que GrUB reconozca tu núcleo:

  grub-mkconfig -o /boot/grub/grub.cfg

Cargar módulo nouveau después del arranque para evaluar errores de este

Tengo el problema de que no puedo configurar el driver de mi tarjeta de vídeo. La tarjeta soporta 3D con drivers libres y no requiere firmware no-libre. Estos son los pasos que he dado.

Booted with:

  "linux /boot/vmlinuz root=/dev/sda1 rootfstype=ext4 nouveau.modeset=0 maxcpus=1"

Removed nouveau modules:

  rmmod nouveau

  rmmod drm_kms_helper

  rmmod ttm


  lsmod

does not list any modules now but it listed those three before removing them with the previous commands.

  perf record -g -R modprobe nouveau modeset=1

loaded those three drivers again.

https://gist.github.com/4969281 is the result of

  perf report --stdio | wgetpaste

dmesg gets

  nouveau E[     DRM] GPU lockup - switching to software fbcon" after loading nouveau

https://gist.github.com/4969294