Hay una serie de alternativas al kernel de stock que maneja ArchLinux (parchado también) para cumplir ciertas necesidades muy especificas o que prometen características no aceptadas oficialmente por el desarrollo principal del kernel o mantenedores del paquete oficial del kernel, o que pueden ser altamente experimentales.

Estos kernels no suponen una amenaza para el sistema, siempre y cuando no se elimine el paquete del kernel oficial de arch (Linux)

Uno de esos kernels no oficiales, el primero de los que voy a hablar (por que hay muchos) es el linux-ck

Esta versión del kernel viene con los parches desarrollados por Con Kolivas (un anestesiologo australiano, programador aficionado). Incluye una serie de parches (ck1) y un administrador de tareas (BFS de Brain Fuck Scheduler), ha sido ampliamente popular por su responsividad y alto rendimiento en tareas de alto procesamiento y por su increíble desempeño en aplicaciones y equipos de escritorio.

No profundizare en lo que es BFS o el patchset CK (o que es un patch), eso seria materia de otro post, aquí tratare la instalación de linux-ck en ArchLinux

Para que o para quien serviría este kernel personalizado

En equipos donde haya mucho procesamiento: mucha compilación de programas, programación, edición de audio/video, video juegos; y se quiera tener un escritorio que sea responsivo en estados de estres.

NOTA: este kernel no hace milagros, así que si consumes toda tu memoria RAM, toda tu swap y tienes el CPU al 100% este kernel no te ayudara de mucho.

Instalar Linux-ck

Para instalar este kernel el usuario tiene 2 opciones

Instalarlo desde AUR

EN AUR hay un PKGBUILD con este kernel con el que podemos compilarlo local e instalarlo, las ventajas de hacer esto son:

  • Utilizar el logo azul de Arch al arrancar el sistema.
  • Configuración especifica del usuario
  • Configurar la carga de un numero limitado de módulos vía make localmodconfig.
  • Sobrepasar las opciones default de configuración de ArchLinux y utilizar el .config del kernel-ck
  • Poner el Scheduler BFQ I/O como default

Desventajas? Posiblemente dejar el sistema inarrancable si editamos mal las opciones de compilación 😛 (nah no es para tanto) y mucho tiempo de compilación y procesamiento para hacer el paquete.

Instalarlo desde paquetes pre compilados

Simplemente agregamos el repositorio del usuario graysky quien mantiene una serie de kernels y drivers pre compilados y pre configurados para comodidad del usuario

AL final del /etc/pacman.conf

[repo-ck]
Server = http://repo-ck.com/$arch

No hay que olvidar importar la llave publica del usuario graysky (si siguieron la guía de pacman de este blog, ya tienen su firma por ser trusted user).

Que paquetes puedo instalar de este repositorio?

linux-ck y headers Grupo x86_64 i686 Familia de procesadores para la que esta optimizado/Descripción
linux-ck ck-generic Si Si Compilado con opciones genéricas acomodables para cualquier CPU compatible justo como el paquete oficial de ArchLinux.
linux-ck-atom ck-atom Si Si Optimizaciones especificas para procesadores Intel Atom (netbooks)
linux-ck-corex ck-corex Si Si Para la familia Intel Core 2-family incluyendo Dual y Quads (Core 2/Newer Xeon/Mobile Celeron basados en Core2) así como Intel Core i3/i5/i7.
linux-ck-kx ck-kx Si Si AMD K7 (Athlon/Athlon XP), K8 (Athlon 64, Athlon 64 X2, 23xx Quad-Core Barcelona, Sempron, Sempron 64), y K10-family (Athlon X2 7×50, Phenom X3/X4, Phenom II, Athlon II X2/X3/X4, Sempron 64 (Socket AM3), 61xx Eight-Core Magny-Cours)
linux-ck-p4 ck-p4 No Si Optimizaciones especificas para Intel Pentium-4 (P4/Celeron basado en P4/Pentium-4 M/Xeon viejo).
linux-ck-pentm ck-pentm N/A Si Intel Pentium-M (Pentium-M notebook chips/not Pentium-4 M).
Nvidia-ck Module Grupo x86_64 i686 Descripcion
nvidia-ck ck-generic Si Si El modulo nVidia del kernel basados en la serie 290.xx de los drivers oficiales de nVidia
nvidia-ck-atom ck-atom Si Si
nvidia-ck-corex ck-corex Si Si
nvidia-ck-kx ck-kx Si Si
nvidia-ck-p4 ck-p4 No Si
nvidia-ck-pentm ck-pentm N/A Si
Broadcom-wl-ck Module Grupo x86_64 i686 Descripcion
broadcom-wl-ck ck-generic Si Si El driver para inalambricas Broadcom conpatibles con Linux-ck
broadcom-wl-ck-atom ck-atom Si Si
broadcom-wl-ck-corex ck-corex Si Si
broadcom-wl-ck-kx ck-kx Si Si
broadcom-wl-ck-p4 ck-p4 No Si
broadcom-wl-ck-pentm ck-pentm N/A Si

 

Dependiendo de nuestra arquitectura de procesador y de nuestro hardware (nvidia/broadcom) instalaremos los paquetes necesarios, basados en esta tabla. De otra forma para ser mas genéricos podemos instruir a pacman que instale los paquetes globales así:

# pacman -S linux-ck linux-ck-headers

Habilitar el BFQ I/O Scheduler

Para habilitar el gran Scheduler BFS de manera global para todo el sistema solo agregamos al final de la linea de inicio del kernel en el /boot/grub/menu.lst (si tenemos grub1):

elevator=bfq

Si tenemos grub2 abrimos el archivo /etc/default/grub y dentro del parentesis de la linea GRUB_CMDLINE_LINUX_DEFAULT=”quiet” agregamos el elevator=bfq despues reconstruimos el kernel con

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

Al reiniciar tendremos la nueva entrada para linux-ck en nuestro grub y podemos iniciar nuestro sistema con este kernel personalizado, si tenemos problemas solo reiniciamos con el krenel de stock y desinstalamos este linux-ck. Por el contrario si nos gusta el desempeño de este paquete personalizado simplemente desintalamos el kernel “de fabrica” con un <

pacman -R linux linux-headers

(esto fue escrito en un sistema con linux-ck 😉 )

Detalles con virtualbox

Virtualbox por lo general funciona bien con pawuetes del kernel personalizados, aqui no debera haber ningun problema, pero si se quiere evitar que el paquete virtualbox trate de descargar los paquetes oficiales linux y linux-headers cada vez que se actualiza, reinstalamos virtualbox con sus fuentes:

# pacman -S virtualbox virtualbox-source

y despues de ello reconstruimos el driver de virtualbox:

# /usr/bin/vboxbuild

Algunos otros paquetes que se requieran recompilar o reinstalar son vmware-server/worstation y compat-wireless-patched, pero nada que no sea recompilar y funcionan perfecto

Saludos, y suerte probando linux-ck

wiki de linux-ck