Compilar un kernel en debian a la manera clàsica.

Llevaba yo un año mosca con la tarjeta de red pcmcia de mi portátil ya que solo funcionaba sin errores en mandrake 8.1 y linex 2.0, funcionaba con errores en mandrake 8.2 y 9.0 y 9.1, y senzillamente no funcionaba en debian.

Bien, debido a que en el sobremesa hace 2 meses que me he pasado a debian decidi poner tambien debian en el portátil aunque no tubiera red ( y por tanto internet), pensando que en un futuro lejano me pondria a leer miles de manuales para intentar solucionar el problema.

Pero he aquí que el otro día digo, voy a mirar de compilar el kernel ese de las narices y si algo sale mal pos no pasa na porque acabo de instalarlo y no tengo nada importante.

Y he aquí que funcionó a la primera y ya tengo internet en el portátil con debian!!!!

Así que os voy a decir los pasos que he seguido desde la perspectiva de un principiante (osease yo).

$ apt-get install devhelp modutils kernel-package libncurses5-dev kernel-source-2.4.18

Lo de kernel-package no lo usaremos, es para compilar el kernel a la manera debian que hace muchos pasos el solo y te deja el kernel en un paquete deb.

Pero vamos, yo lo pongo porque es eso lo que instale, no se si algo sobra o no.

$ cd /usr/src
$ gzip -d kernel-source-2.4.18.tar.gz (o como se llame)
$ tar -xf kernel-source-2.4.18.tar

Esto es solo para descomprimir las fuentes del kernel.

Ahora nos metemos dentro del directorio de las fuentes.

$ cd kernel-source-2.4.18

Y desde aquí se hará todo.

$ make menuconfig

Aquí estan las opciones del kernel, va por menues y hay ayuda en linea de cada opción. Si marcais una vez cargareis “la cosa” dentro del mismo kernel (saldrá un *), si dais dos veces saldrá una M y la cargareis com módulo.

Si cargais como modulo significa que luego haceis modconfig y elegis mediante menues lo que habeis compilado como modulo, y podeis cargarlo o no cargarlo.

Bien salis y os dira si quereis guardar la configuración, respondeis que si.

$ make dep
$ make clean
$ make bzImage

Ahora se compila el kernel y tardará un ratillo. A mi me tardo unos 8 minutos en un Pentium Celeron 650 Mhz.

$ make bzlilo

Esto lo que os hará es instalar el nuevo kernel compilado en el gestor de arranque lilo. Arrancará el nuevo kernel por defecto, si teneis algún problema y el sistema no arranca solo teneis que dejar apretada la tecla TAB cuando salga la palabra lilo y os saldrá el menu de lilo, elegis el kernel que teniais antes y ya está.

$ make modules
$ make modules_install

Y ya está, reiniciais y ya teneis vuestro nuevo kernel recompilado.

$ depmod -a

¿Hay que hacer eso despues de reiniciar la primera vez? no se donde lo lei ni porque ni si es necesario, pero vamos, yo lo he añadido a mi libreta de apuntes.

Bien, esta no es una guia para recompilar el kernel, solo es una especie de diario mostrando los pasos que hice sin saber que coño estaba haciendo ni porque.

Pero el caso es que funciona 🙂
Autor: davidcg

This entry was posted in Debian. Bookmark the permalink.

4 Responses to Compilar un kernel en debian a la manera clàsica.

  1. sergi says:

    Después de bajarnos los fuentes vía apt o directamente de http://kernel.org y de parchearlo al gusto, lo descomprimimos como se indica arriba en nuestro /usr/src y creamos un enlace simbolico linux tal que así: “ln -s kernel-source-2.x.y linux”, donde 2.x.y es nuestra versión del kernel.
    Después hechamos mano del “make [config|menuconfig|xconfig]” y bueno, que decir, esta es la parte que personalmente me gusta más de linux, nos ponemos en faena a intentar dejar el mínimo posible de opciones. El kernel como la ropa interior, ni muy grande ni muy pequeña.
    Salimos y guardamos los cambios.

    Ahora viene lo diferente. Gracias al equipo de Debian podemos compilar el kernel de una forma mucho más sencilla y portable. Para ello se necesita en principio el paquete kernel-package (apt-get install kernel-pakage).
    Pues bien, desde el mismo directorio /usr/src/linux (que recordemos es un enlace al directorio de las fuentes que vamos a compilar), hacemos un “make-kpkg –revision=manolo kernel_image”, por supuesto cambiando lo de manolo por lo que nos guste más.
    Este comando hará todo él solito, y cuando acabe nos encontraremos en el directorio /usr/src con un fichero .deb tal que kernel-image-2.4.20-manolo.deb o parecido, que solo tendremos que instalar con un sencillo “dpkg -i nombrepaquete.deb”.

    Éste método, además de sencillo és muy útil cuando queremos que la misma compilación sea portable entre un grupo de máquinas de una forma muy sencilla a la par que potente, así como nos permitirá compilar el kernel de nuestro pobre 386 con 4MB de RAM en una máquina un poco más rápida y sin problemas.

  2. sergi says:

    Se me ha pasado en el comentario. En alguna ocasion nos bajamos algún paquete en Debian que sólo trae un .tar.gz que mete en el directorio /usr/src (como es el caso del fichero drm-trunk.tar.gz para el tema de las ATI y la aceleración).
    Lo descomprimimos rutinariamente (tar zxvf blablabla.tar.gz) y veremos que normalmente se crea un directorio /usr/src/modules con todo dentro.
    Nada más sencillo, nos vamos al directorio /usr/src/linux (ha de apuntar a nuestras fuentes como explico en el comentario anterior) y hacemos un “make-kpkg modules_image” y nos creará un .deb en /usr/src con el modulito preparado para depakagear (dpkg -i).

    Para más información sobre el tema: “man make-kpkg” desde vuestra shell preferida.

  3. Anonymous says:

    Yo he instalado muchas veces esa forma de instalación del kernel, pero no sé si habría que tocar algo en Lilo luego…

    jurl!

  4. sergi says:

    Creo recordar que no lo hace, y creo que es por las normas de debian, que ejecutarlo desde un script post-install puede que no sea muy correcto. No sé, desde luego, en la plataforma ppc, donde el gestor de arranque único es el yaboot (copia del lilo), hay que lanzarlo a mano, aunque no hace falta ni edtar el fichero de /etc, ya que al instalar el paquete te crea el enlace simbólico /vmlinuz, por lo que simplemente has de hacer “yaconf” (lilo para x86centristas). En todo caso, si usas grub en vez de lilo te ahorras esos problemas. Grub, además de ser más “moderno” es mucho más elegante para mi gusto, y hasta tiene una shell propia en el arranque que te puede servir para conseguir arrancar la imagen deseada manualmente en caso de desastre.


    bow before me, for I’m root
    si el programari lliure no és la resposta, la pregunta és errònia

Leave a Reply