InicioLinuxZen Kernel en Ubuntu 12.10

Zen Kernel en Ubuntu 12.10

Linux10/27/2012
Zen Kernel en Ubuntu 12.10


ACTUALIZADO 29-12-12 Kernel 3.7.1


Desde que usaba Archlinux, una de las cosas que siempre me gustaron fue la posibilidad, de manera sumamente sencilla, de poder utilizar diferentes variedades de kernels además del suministrado por los desarrolladores de la distribución. Y es que para aquellos que no lo sabían, dentro del mundo Gnu/Linux existen diversos grupos de hackers que se dedican a optimizar el kernel Linux oficial para diferentes objetivos, que van desde mejorar el rendimiento de servidores de alto nivel, complejos sistemas de virtualización, workstations de producción multimedia o sencillamente para mejorar los sistemas de escritorio comunes y corrientes. Uno de mis favoritos es el proyecto Zen Kernel, el cual está orientado en mejorar el núcleo para los sistemas cotidianos de trabajo.



La descripción oficial del proyecto es: "The Zen Kernel is a the result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for every day systems."

Y su lema: "¿Por qué manejar si puedes volar?"

Desafortunadamente para Ubuntu no existen paquetes oficiales ni cuando menos una PPA (o al menos yo no los he encontrado), así que si queremos tenerlo nos tocará compilarlo a mano. Sí, ya sé que para muchos "compilar el kernel" sea sinónimo de pesadilla pero la verdad es que es algo sumamente fácil de hacer (si bien es cierto que la primera vez sí que impresiona xD).

Paralelamente existe un proyecto alterno, llamado Liquorix , el cual toma como base el Kernel Zen y le agrega unos cuantos parches extras, también con la idea de optimizar un sistema de escritorio. La ventaja es que ofrece paquetes .deb listos para usar (aunque son para Debian Sid pero la gente dice que también funcionan para Ubuntu, lo cual yo no lo he probado así que no sé).

Bueno, entonces, vayamos a la compilación. En este ejemplo compilaremos la última versión estable del kernel, la 3.7.1..

1. PREREQUISITOS

Lo primero que necesitamos es instalar las herramientas necesarias para compilar paquetes y kernels en Ubuntu, así que desde una terminal tecleamos:

sudo apt-get install git-core git wget libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev linux-source libncurses5 libncurses5-dev fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge kernel-package

Toda en una misma línea. Enter y listo.

2. FUENTES Y ARCHIVOS

Lo siguiente es conseguir las fuentes del kernel, junto con los archivos .config base orientados para su compilación.

Creamos un directorio de trabajo, para mantener todo en orden, y luego nos movemos a él:

mkdir build

cd build

De momento la página oficial está caida, pero podemos obtener las fuentes desde su página Git . Para ello le damos al botón de ZIP con el icono de una nubecita (del lado izquierdo, casi arriba) y lo guardamos en la carpeta de trabajo. Lo mismo pero desde la terminal sería:

wget https://github.com/damentz/zen-kernel/zipball/3.7/master

Luego procedemos a descomprimir el paquete, click derecho "Extraer aquí", por ejemplo, y procedemos a cambiarle el nombre a la carpeta creada por algo más entendible, como linux-zen, y nos movemos dentro:

cd linux-zen

Ahora necesitamos los archivos .config, los cuales son los archivos con las opciones del kernel que se usaran para la compilación. Necesitamos sólo uno, el cuál dependerá de la arquitectura que estemos usando: 32 bits o de 64 bits. ¿Y dónde están? Pues teóricamente tenemos varias opciones para conseguirlos:

* Usar los oficiales de Ubuntu: Ésta es la opción recomendada cuando recompilamos el kernel oficial de Ubuntu, tomando como base las fuentes oficiales de la distro. Sin embargo a veces suele fallar la compilación en fuentes diferentes. Si se quiere intentar, desde la terminal tecleamos:

cp -vi /boot/config-`uname -r` .config

* Usar uno básico y de ahí adecuarlo a nuestro interes. Ésta es la opción l337, ya que implica conocer a detalle el hardware de nuestra máquina para ir seleccionando a mano los módulos que nuestro sistema necesita. Para esta opción nada como usar los archivos config ofrecidos por los chicos de Kernel Seeds .

* Recomendado: Usar uno específico para las fuentes del kernel zen pero no tan básico como una semilla de Kernel Seeds. Para ello yo utilizo los ofrecidos para la distribución Archlinux, los cuales funcionan muy bien en Ubuntu. Los archivos los encontramos en la página de Heftig , uno de los contribuidores de dicha distribución. Como veran, existen 2: uno llamado config y otro llamado config.x86_64, sólo hay que bajar el de nuestra arquitectura. Lo bajamos y debemos guardarlo en nuestra carpeta linux-zen con el nombre .config:

32 bits:

wget http://pkgbuild.com/~heftig/linux-zen/config -O .config

64 bits:

wget http://pkgbuild.com/~heftig/linux-zen/config.x86_64 -O .config

Finalmente, bajamos unos parches extras de la página de Heftig, que solventan algunos problemas más:

wget http://pkgbuild.com/~heftig/linux-zen/change-default-console-loglevel.patch

wget http://pkgbuild.com/~heftig/linux-zen/fat-3.6.x.patch

wget http://pkgbuild.com/~heftig/linux-zen/fix-watchdog-3.7.patch

3. PARCHEO Y CONFIGURACIÓN

Lo siguiente es aplicar los parches que bajamos y para ello tecleamos:

patch -Np1 -i change-default-console-loglevel.patch

patch -Np1 -i fat-3.6.x.patch

patch -Np1 -i fix-watchdog-3.7.patch

Ahora ya estamos listos para iniciar la compilación del kernel. Sin embargo, ya en este punto podemos optimizarlo un poco antes de compilarlo. Yo personalmente lo único que hago es activar las optimizaciones específicas para mi procesador (y que no use las del genérico 386 de hace más de 10 años). Si no interesa este punto, ya solo hay que pasar al paso 4, pero si sí, entonces tecleamos:

make menuconfig

con ello nos abrirá el todopoderoso menú de configuración del kernel.



y nos movemos (con las flechas, arriba y abajo) hasta donde dice "Processor type and features", le damos enter. Nos abrirá un nuevo menú, ahí nos movemos donde dice "Processor family", y enter y procedemos a buscar nuestro procesador, nos paramos en él y oprimimos la barra espaciadora para seleccionarlo, tras lo cual nos regresará al menú anterior. Ahora bajamos a donde dice "Generic x86 support" y con la barra espaciadora lo desmarcamos e inmediatamente abajo marcamos, igual con la barra espaciadora, donde dice "Use --march=native cflag [Experimetal]". ¡Listo! Ahora, oprimimos 2 veces la tecla Esc y nos regresará al menú principal. Ya sólo con las flechas bajamos hasta donde dice "Save and alternate configuration file", le damos enter y otra vez enter. Finalmente salimos de la configuración con 2 veces Esc.

4. COMPILACIÓN

Existen 2 formas de hacerlo,la típica Gnu/Linux o à la Debian.

* Gnu/Linux:

Iniciamos la compilación con el típico make pero acelerando el proceso con la opción -j seguida del número de núcleos que tenga nuestro procesador + 1, es decir, si tenemos un quad core de 4 núcleos entonces sería 5, si tenemos uno mononúcleo, sería 2:

make -j5

Vamos por un café o a comer ya que el proceso tarda algo (en un Atom a 1.6 Ghz tarda usualmente unas 5 horas). Una vez finalizado procedemos a instalarlo con:

sudo make modules_install

y luego

sudo make install

Y al mismo tiempo ese comando nos configurará el Grub con la opción de nuestro nuevo kernel.

* À la Debian:

Con esta opción creaermos los archivos .deb del kernel y de las cabeceras del kernel, de forma tal que los podemos guardar para no tener que volver a compilar todo en caso de ser necesaria una reinstalación, o de plano para compartirlos con alguien más (ojo que si usaste las optimizaciones específicas para un procesador, en el paso 3, sólo podrás instalar tus .deb en una máquina con el mismo tipo de procesador). Para esto tecleamos:

export CONCURRENCY_LEVEL=5

donde el número sigue la misma regla del número de núcleos + 1 de nuestro sistema. Y finalmente:

fakeroot make-kpkg --initrd --append-to-version=-mi-kernel kernel-image kernel-headers

la parte de --append-to-version=-mi-kernel es opcional, sólo sirve para agregarle algo al nombre del kernel y que de esa forma sepamos que es el nuestro. Puedes no ponerlo, si quieres.

Igual, nos vamos por ahí a pasar el tiempo y al terminar nos habrá creado un par de paquetes deb afuera de nuestra carpeta linux-zen, los cuales procederemos a instalarlos,

sudo dpkg -i linux-image-*.deb

sudo dpkg -i linux-headers-*.deb

Este último paquete, el linux-headers, es el de las famosas cabeceras del kernel, las cuales son usadas para compilar los drivers extras (usualmente los drivers privativas de video).

¡Y listo! Ya con esto procedemos a reiniciar el sistema y ahora por default el Grub cargará primero nuestro nuevo kernel y es momento de ver que todo funcione bien. Probablemente si usas drivers privativos para tu tarjeta de video tendrás que reinstalarlos, no siempre llega a pasar pero a veces sí. En caso de que haya alguna falla, reiniciamos y en el Grub elegimos "Opciones avanzadas de Ubuntu" y ahí el kernel anterior.

Si se llega a requerir, para desinstalarlo simplemente tecleamos:

sudo dpkg --list

y buscamos linux-image-3.7.1- y linux-headers-3.7.1-, copiamos el nombre completo y los eliminamos con:

sudo apt-get remove linux-image-3.7.1-zen-lulz linux-headers-3.7.1-zen-lulz

en este ejemplo yo le puse que le agregara al nombre lulz.

Suena complicado pero la verdad es que no lo és y vale mucho la pena para optimizar nuestros sistemas y sacarles aún más jugo .
Datos archivados del Taringa! original
100puntos
2,268visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

n
niggaplx🇦🇷
Usuario
Puntos0
Posts54
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.