3 comentarios

Compilar el kernel en SliTaz

Si eres entusiaste usuario de GNU/Linux, tarde o temprano vas a tener que compilar el kernel, ya sea por necesidad o por curiosidad. Y tal vez pase mucho tiempo antes de que debas hacerlo, gracias al acelerado avance del software libre, compilar el kernel ya casi no es tan necesario.
En esta ocación, compilaremos el kernel linux para la distro SliTaz. Está distro pone a disposición en sus repositorios las herramientas necesarias, por eso debes contar con una conexión de internet y si no es así, no te preocupes, visita la entrada donde se explica cómo instalar aplicaciones en SliTaz sin conexión de internet.

Me fue posible compilar facilmente gracias a la guía de TUXONOMY la cual es muy completa y me resultó realmente útil.

Antes de comenzar debes tener bien claro el motivo por el cual vas a compilar, si es por aprender tambien es valido, pero si es por algún modulo firmware debes tomar las medidas necesarias. En este caso la compilación es para agregar los modulos para hacer funcionar el adaptador USB Belkin N150. El cual utiliza el driver r8712u.ko.

REUNIENDO LO NECESARIO.

Lo primero es conseguirse la fuente, visita www.linux.org y baja el codigo fuente del kernel que vas a compilar en este caso yo me decidí por el kernel linux-3.0.17.

Debes instalarte las siguientes aplicaciones en sliTaz, son necesarias no puedes omitirlas. Abre un terminaly ejecuta:

# tazpkg get-install slitaz-toolchain

# tazpkg get-install ncurses-dev

# tazpkg get-install perl

Debes crear una carpeta donde alojaras el kernel, es muy importante que tengas un espacio como de 1 GB libre al menos en el disco, ya que aunque la fuente pesa 70 MB al descomprimirlo y compilarlo necesitaras mucho más espacio. Ejecuta en el terminal el comando para crear una carpeta llamada kernel dentro de tu carpeta de usuario, no es necesario ser root para crearla:

$ mkdir /home/sef/kernel

Donde sef es el nombre de usuario. Y aloja ahí el archivo de la fuente que descargaste de la pagina. Ahora ya que lo guardaste en esa carpeta es momento de descomprimir. Ingresa a la carpeta y descomprime con:

$ cd /home/sef/kernel

/kernel$ tar xjf linux-3.0.17.tar.bz2

Recuerda que esa fue la versión que yo bajé no presisamente es la que vas a usar.

NOTA: Recuerda que los comandos comienzan después de los símbolos $ o # todo lo que esté antes de estos símbolos es la carpeta donde estamos trabajando.

ES HORA DE CONSTRUIR

Ya que se descomprimió el archivo ingresamos a la carpeta y comenzamos con los comandos make:

/kernel$ cd linux-3.0.17

/kernel/linux-3.0.17$ make clean

/kernel/linux-3.0.17$ make mrproper

Ahora utilizaremos la configuración del kernel que tenemos instalado para facilitarnos la configuración de este nuevo kernel:

/kernel/linux-3.0.17$ zcat /proc/config.gz > .config

/kernel/linux-3.0.17$ make oldconfig

Te hará una serie de preguntas, como la arquitectura de tu equipo, si no sabes que responder el sistema te ofrece una respuesta por defecto simplemente oprime enter, en caso de que sepas lo que te preguntan ingresa la reespuesta dependiendo las opciones. Ahora es momento de ingresar al menu de configuración, es zquí donde debes agregar las caracteristicas que vas a implementar en este nuevo kernel, ejecuta:

/kernel/linux-3.0.17$ make menuconfig

Se abrirá un menú azul.

Imagen de referencia, no corresponde al kernel utilizado

Navega a traves de las opciones, en este caso buscamos el driver RTL8712 entramos a:

Device drivers …..>

Staging drivers ….>

Buscamos la linea que dice:

< > realtek RTL8712 driver wifi

[ ] realtek RTL8712 

Le tecleamos una una “m” y se carcará así: <M> después en la opción de abajo le oprimimos “y” y dara como resultado [*]

<M> realtek RTL8712 driver wifi

[*] realtek RTL8712 

Salimos oprimiedo la tecla Esc, hasta que salgamos y nos pregunte si deseamos guardar, le damos que sí y nos regresa a linea de comandos. Es momento de generar la bzImage

/kernel/linux-3.0.17$ make bzImage

Pasará bastante tiempo dependiendo tu equipo, en las ultimas lineas te indica donde se guardo la bzimage, depende del tipo de arquitectura, la mia por ejemplo se guarda n x86. Si no tienes ningún error al terminar te saldrá una linea parecida a está:

Kernel: arch/x86/boot/bzImage is ready (#1)

Ahora construiremos los modulos:

/kernel/linux-3.0.17$ make modules

Otra vez pasará bastante tiempo dependiendo tu equipo. Al terminar veras una linea semejante a esta:

IHEX firmware/tigon/tg3_tso5.bin
IHEX firmware/3com/typhoon.bin

INSTALAMOS

Debes ingresar en modo root, e instalas los modulos (recuerda debes trasladarte a la carpeta donde esta descomprimido el kernel):

$ su
# cd /home/sef/kernel/linux-3.0.17
/home/sef/kernel/linux-3.0.17# make modules_install

Ahora copiaremos la bzImage en nuestra carpeta /boot del sistema. La bzImage que se ha generado se úbica dentro de la carpeta arch y luego en la carpeta de la arquitectura de tu equipo (generalmente es i386 o x86) en mi caso está en x86.

/home/sef/kernel/linux-3.0.17# cp arch/x86/boot/bzImage /boot/bzImage-3.0.17

Por ultimo copiamos el archivo System.map

/home/sef/kernel/linux-3.0.17# cp System.map /boot/System.map

.

MODIFICAMOS EL GRUB

Ahora sólo resta agregar el nuevo kernel al GRUB.

/home/sef/kernel/linux-3.0.17# leafpad /boot/grub/menu.lst

Y agrega las siguientes lineas al GRUB justo debajo del otro kernel:

title SliTaz GNU/Linux (cooking) (Kernel bzImage-3.0.17-slitaz)
root (hd0,0)
kernel /boot/bzImage-3.0.17 root=/dev/hda1

Obviamente el /dev/hda1 depende de tu equipo, ve la otra entrada que tiene el GRUB y comparala con la que estás ingresando. Guarda y cierra. Ahora sólo resta reiniciar. Con el terminal aun abierto teclea:

/home/sef/kernel/linux-3.0.17# reboot

Listo y espero te sirva.

.

ERRORES EN LA COMPILACIÓN

Debido a la naturaleza de los equipos donde instalamos SliTaz es posible que te enfrentes a ciertos errores derivados del hardware (equipos antiguos).

1. WARNING: CLOCK SKEW DETECTED (Error en fecha, problemas con la pila de la motherboard).

Es posible que a tu equipo ya se la haya agotado la pila que está en la motherboard, te darás cuenta porque el reloj de tu escritorio esta por la luna. Te preguntaras el porque esto causa problemas; es muy sencillo, si quieres compilar un kernel que se creó en enero de 2012 y tu equipo tiene fecha del 2002, producirá un error, como si quisieras compilar un software  del futuro. Este error se marca desde los primeros comandos (make clean), y sí se ignora puede que caigas en un bucle infinito. Es fácil solucionarlo,  si no tienes la pila a la mano igual funciona, ingresa a la BIOS y coloca la fecha correcta al sistema reinicia. Procura no desconectar el equipo de la toma de corriente en todo el tiempo que te lleves compilando, para que la fecha no se pierda nuevamente.

2. ERROR NO SPACE ON DEVICE  (Falta de espacio).

Puede que tengas muy poco espacio en disco duro y no te es suficiente para compilar,  si tu disco duro ya no tiene espacio ni borrando cosas, no te preocupes, puedes llevar acabo la compilación dentro de una carpeta en una memoria USB, haciendo exactamente lo mismo. Sólo monta la memoria y crea la carpeta kernel dentro de ella.
Este error te puede surgir cuando estás generando la bzImage.

3. ERROR CANNOT ALLOCATE MEMORY (No se puede asignar memoria).

Falta de memoria RAM, yo tenía una memoria RAM de 216 sin tener SWAP y no fue suficiente, si tienes otra memoria RAM colocala o activa una memoria SWAP  con unos 200 MB y será suficiente.

Este error se te presenta cuando generas la bzImage ya que LZMA utiliza mucha memoria, si te sale este error  solucionalo y genera de nuevo la bzImage y ya no se tardará todo el tiempo.

Anuncios

3 comentarios el “Compilar el kernel en SliTaz

  1. hola amigo, todo me salio perfecto pero al iniciar desde el nuevo kernel me sale este error:
    failed to execute login command

    y se reinicia la pantalla de login

  2. El tutorial funcionó perfecto. Quería agregar los módulos para una tarjeta de red que está soportada a partir del kernel 3.13. Siguiendo estos pasos lo logré!!!

    muchas gracias!

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 )

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 )

Google+ photo

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

Conectando a %s

A %d blogueros les gusta esto: