Está en la página 1de 4

Kernel Compilation (Espaol)

From ArchWiki Arch Linux provee varios metodos para compilar el kernel. Usar Arch Build System es el recomendado.

Contents
1 Usando Arch Build System 1.1 Instalando Arch Build System 1.2 Consiguiendo los ingredientes 1.3 Modificando el PKGBUILD 1.3.1 Cambiendo pkgname 1.3.2 Modificando build() 1.3.3 Cambiando la funcin package_kernel26() 1.4 Compilando con varios ncleos 1.5 Compilacion 1.6 Instalacin 1.7 Boot Loader 1.8 Drivers propietarios de Nvidia 2 Usando AUR 3 Tradicional 4 Revisa tambin

Usando Arch Build System


Siempre, se han propuesto varios mtodos para construir fcilmente un kernel personalizado partiendo del de Arch. En la wiki se pueden encontrar varios ejemplos. Todos ellos son bastante buenos, pero sufren algunos inconvenientes (https://bugs.archlinux.org/task/12384) que hacen que no estn oficialmente respaldados por los desarrolladores. Contrariamente, el mtodo descrito en este articulo es mas slido y seguro, y se construye usando el paquete oficial del linux (https://www.archlinux.org/packages/?name=linux) .

Instalando Arch Build System


Instala los paquetes abs (https://www.archlinux.org/packages/?name=abs) y base-devel (https://www.archlinux.org/packages/? name=base-devel) . Para obtener todo el rbol de ABS, ejecuta:
# abs

Revisa Arch Build System (Espaol) para mas informacin.

Consiguiendo los ingredientes


Antes que nada, necesitamos un kernel limpio para empezar a personalizarlo. En este articulo asumir que usaras el linux (https://www.archlinux.org/packages/?name=linux) oficial de Arch. Entonces creamos una carpeta para trabajar, y obtenemos los archivos del kernel desde ABS (luego de la sincronizacin):
cp /var/abs/core/linux/* <directorio_de_trabajo>/

Luego, pongan aqu cualquier paquete que se necesite (ej. archivos de configuracin personalizada, parches, etc.)

Modificando el PKGBUILD
Modifica el PKGBUILD del paquete oficial del linux (https://www.archlinux.org/packages/?name=linux) .

Cambiendo pkgname Las primeras lineas se pareceran a estas:


PKGBUILD # $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $ # Maintainer: Tobias Pow alow ski <tpow a@archlinux.org> # Maintainer: Thomas Baechler <thomas@archlinux.org> pkgbase=linux pkgname=('linux' 'linux-headers' 'linux-docs') # Build stock -ARCH kernel # pkgname=linux-custom # Build kernel w ith a different name _kernelname=${pkgname#linux} ...

Como ves, hay un comentario para construir un kernel con diferente nombre (# Build kernel with a different name), todo lo que debemos hacer es descomentar esa linea, cambie el sufijo '-custom' por el nombre que quieras, y comentar la linea anterior ( osea el primer pkgname):
PKGBUILD build() ... #pkgname=('linux' 'linux-headers' 'linux-docs') # Build stock -ARCH kernel pkgname=linux-test # Build kernel w ith a different name ...

Note: Esto asume que no vas a recompilar los linux-headers (https://www.archlinux.org/packages/?name=linux-headers) , manpages or -docs. Si los queres recompilar, agregalos. Ahora, todas las variables de tu paquete sern cambiadas de acuerdo al nuevo nombre. Por ejemplo, luego de instalar el paquete, los mdulos seran alojados en /lib/modules/<kernel_release>-test/ . Modificando build() Probablemente necesites un archivo ".config" personalizado para tu kernel. Podes descomentar una de las posibilidades mostradas en la funcin build() del PKGBUILD, por ejemplo:
PKGBUILD ... # load configuration # Configure the kernel. Replace the line below w ith one of your choice. #make menuconfig # CLI menu for configuration make nconfig # new CLI menu for configuration #make xconfig # X-based configuration #make oldconfig # using old config from previous kernel version # ... or manually edit .config ...

Si ya tenias un archivo de configuracin para el kernel. Te sugiero descomentar una de las herramientas de configuracin interactiva, como nconfig, y cargar tu configuracin desde all. Eso evitar problemas con el nombre del kernel. Note: Si descomentas return 1, podes cambiar el directoria principal del kernel luego de que makepkg termine las extracciones y luego hacer la configuracin con nconfig. Esto te permitir configurar tu kernel en varias sesiones. Cuando ests listo para compilar, copia el archivo .config sobre el .config que se haya generado automticamente, o sobre el config.x86_64 (esto depender de la arquitectura del procesador), comenta return 1 y usa makepkg -i. Cambiando la funcin package_kernel26() Debemos escribir una funcin personalizada para decirle al sistema como instalar el paquete. Esto es muy simple de hacer, solo debemos cambiarle el nombre a la funcin package_kernel26() por el de package_kernel26-test(),(test, recordemos es el nombre del kernel personalizado) y adaptar las instrucciones a tus necesidades. Si no quieres cambiar nada, la funcin debera quedar as:

PKGBUILD package_kernel26-test() ... package_linux-test() { pkgdesc="The Linux Kernel and modules" ... }

Compilando con varios ncleos


Para decirle al compilador que use todos los ncleos al momento de compilar, usamos el flag -j<numero_de_nucleos>. El numero debe ser de n+1, donde n es la cantidad de ncleos de tu procesador. Por ejemplo un procesador de 2 ncleos (2+1=3):
/etc/makepkg.conf ... #-- Make Flags: change this for DistCC/SMP systems MAKEFLAGS="-j3" ...

Compilacion
Ahora podemos compilar el kernel, con los comandos usuales: makepkg Si usaste un programa interactivo para configurar los parmetros del kernel (como menuconfig), debers estar all durante la compilacin. Note: El kernel necesita un tiempo para compilar, una hora no es inusual.

Instalacin
Luego de makepkg , podes revisar el archivo linux.install . Veras que algunas variables han cambiado. Ahora, solo debemos instalar con pacman:
#pacman -U <paquete_del_kernel>

Boot Loader
Las carpetas y archivos de nuestro kernel personalizado han sido creadas, ej. /boot/kernel26-test-img . Para testear el kernel, debemos actualizar el bootloader ( /boot/grub/menu.lst para GRUB (Espaol)) y agregar las nuevas entradas ('default' y 'fallback') para nuestro kernel. De esta manera, podes tener ambos kernels el ya instalado y el de personalizado en paralelo.

Drivers propietarios de Nvidia


Revisar Instalacion alternativa: kernel personalizado.

Usando AUR
En el AUR hay algunos paquetes de los kernels mas conocidos. Podes instalarlos como estn, o usarlos como base para tu kernel personalizado. Kernels en el AUR

Tradicional
La manera tradicional es simple y directa. Este mtodo requiere de la descarga manual del tarbal, y la contruccin en tu directorio home como usuario normal. Una vez configurado, se explican dos mtodos de compilacin/instalacin, el mtodo manual y el de makepkg/pacman.

Si sos nuevo en este proceso, la manera tradicional para nuevos usuarios es la apropiada.

Revisa tambin
Kernels O'Reilly - El kernel de linux en una cascara de nuez (http://www.kroah.com/lkn/) (ebook gratuito) Retrieved from "https://wiki.archlinux.org/index.php?title=Kernel_Compilation_(Espaol)&oldid=239857" Category: Kernel (Espaol) This page was last modified on 11 December 2012, at 04:14. Content is available under GNU Free Documentation License 1.3 or later.

También podría gustarte