Herramientas Personales
Usted está aquí: Inicio ¡Participa! Foros
Acciones de Documento
Hilo abierto

Compilar kernel [GUÍA]

Volver al foro (Usando Guadalinex V4)
Orden:   
  • Escrito por EagleScreen el 27/07/2007 15:07

    EagleScreen

    Adepto Ancestral

    Envíos: 232

    GUIA SOBRE COMPILACIÓN E INSTALACIÓN DE UN KERNEL DE LINUX EN DEBIAN/UBUNTU/GUADALINEX ELABORADA EN JULIO DE 2007
    En esta guía iré explicando poco a poco los pasos a seguir para poder descargar, compilar e instalar un kernel de Linux de la serie 2.6 en Debian, Ubuntu y Guadalinex.
    El proceso se hará principalmente por consola, terminal o intérprete de comandos, iré escribiendo qué comandos teneis que ejecutar en la consola y además pondré:
    ## Comentarios sobre lo que se está haciendo
    Mi intención es que esta guía pueda ser seguida por cualquier usuario principiante en el mundo de Debian GNU/Linux.



    DESCARGA:

    El primer paso es abrir nuestro navegador web preferido e ir a www.kernel.org
    Al cargarse la página vereis multitud de enlaces y descargas de parches y demás cosas, nosotros instalaremos un kernel completo, no aplicaremos parches.
    Vemos que hay unos enlaces, que estan de los primeros, que pertenecen a diferentes partes del mundo, unos estadounidenses, y otros europeos:
    EE.UU: http://www.kernel.org/pub/
    Europa: http://www.eu.kernel.org/pub/
    Escoged el que más os convenga respecto a vuestra situación geográfica y entrad en él.
    A continuación os encontrareis varios enlaces, escoged el que se titula:
    Linux Repository, including kernel source
    Es decir: /pub/linux/
    Después entrad en /kernel
    Después en v2.6/
    El link completo sería: http://www.eu.kernel.org/pub/linux/kernel/v2.6/
    para el servidor europeo.
    Ahora tenemos que tener cuidado en descargarnos la última versión estable del kernel de Linux, para ello descargaremos el archivo que tenga este formato: linux-2.6.xx.tar.gz, procurando tener cuidado de descargar el de la versión más alta.
    A la fecha actual, el kernel más actual que hay es el linux-2.6.22.1.tar.gz (ocupa algo más de 50 MB), lo descargamos y lo guardamos en nuestro equipo, supongamos que lo guardamos en nuestra carpeta personal, también llamada home.
    Cuando haya finalizado la descarga, abrimos un terminal, consola, tty o intérprete de comandos, y ahora procederemos con la siguiente fase:



    PREPARAR EL CÓDIGO FUENTE:

    ## Para asegurarnos que nos situamos en nuestra carpeta home (o carpeta personal), ejecutamos en consola:
    cd $HOME

    ## Ahora necesitamos adquirir privilegios de administrador o root en esa consola, para ello ejecutamos:
    # Si estamos en Ubuntu o Guadalinex
    sudo su

    # Si estamos en Debian
    su
    ## Aunque puede que ambos comandos funcionen en ambas distribuciones.

    ## Ahora primeramente copiaremos el código fuente al directorio /usr/src. Recordemos que en este ejemplo usaré el archivo fuente linux-2.6.22.1.tar.gz, pero vosotros teneis que sustituir este por el vuestro. Os vendrá bien saber que la tecla TAB autocompleta nombres de archivos.
    cp linux-2.6.22.1.tar.gz /usr/src/

    ## Ahora ingresamos al directorio /usr/src
    cd /usr/src

    ## Lo siguiente que tenemos que hacer es instalar unos cuantos programas necesarios para compilar nuestro kernel:
    apt-get install binutils e2fsprogs gcc make module-init-tools procps util-linux kernel-package libncurses-dev build-essential bzip2

    ## Tras la instalación, deberemos seguir situados en /usr/src, ahora descomprimimos las fuentes del kernel:
    tar -xvzf linux-2.6.22.1.tar.gz

    ## Ahora nos ha quedado la carpeta con las fuentes del kernel, la correspondiente a mi versión se llama linux-2.6.22.1, para verlo ejecutamos:
    ls -la

    ## Ahora creamos un enlace simbólico llamado linux a la carpeta de las fuentes del kernel:
    ln -s linux-2.6.22.1 linux

    ## Ejecutamos de nuevo:
    ls -la
    ## Y deberíamos de ver la carpeta de las fuentes del kernel y el enlace linux apuntando a esta con una flecha.

    ## Ingresamos al directorio de las fuentes del kernel
    cd linux

    ### El paso que viene ahora hay que explicarlo un poco, si hacemos:
    ls -la /boot
    ## veremos que hay por lo menos un archivo llamado al estilo config-2.6.21-2-686, que corresponde a la versión del kernel que estemos usando ahora.
    ## Ese archivo es un archivo de texto que contiene la configuración de partida del kernel de vuestra distribución, conviene usarlo como configuración de partida para ahorrarnos luego mucho trabajo añadiendo/quitado módulos. Este archivo se puede obtener de varios sitios, por ejemplo en algún sitio de internet, podríamos encontrar un archivo de configuración preparado para un determinado ordenador. O podríamos obtenerlo de un sistema Linux de un Live CD. El caso es que es necesario copiarlo al directorio /usr/src/linux con el nombre .config, para ello:

    cp /boot/config-2.6.21-2-686 $(pwd)/.config

    ADVERTENCIA: Es importante que hayais seguido este paso del archivo de configuración al pie de la letra, aunque en otras guías proponen alternativas como usar Load Configuration File directamente en menuconfig, creedme que por algún fallo si no lo haceis exactamente como yo lo digo, luego no se os compilarán los módulos, y os quedará un kernel prácticamente inutil.
    ## Ahora podemos pasar a la siguiente fase:



    CONFIGURACIÓN DE LAS FUENTES:

    ## Abrimos el programa de configuración de las fuentes:
    make menuconfig

    ## Como veis ahora se abre un programita muy ameno con interfaz de menús en el cual hay varias secciones, una de las más importantes que no debemos olvidar configurar es la de:
    Processor type and features -> Processor family
    Aquí tenemos que especificar el tipo de procesador que tiene nuestro ordenador, se selecciona con la barra espaceadora, y se regresa al menú anterior pulsando doblemente Esc.

    La otra sección que suele interesar mucho a la gente es la de:
    Device drivers
    Aquí es donde podemos dar o quitar soporte para distintos dispositivos, tenemos cientos de dispositivos, ordenados por tecnologías y familias, los drivers se pueden usar como módulo o integrados e el kernel:
    Para seleccionar un driver como módulo usaremos la tecla 'M', para seleccionarlo integrado lo haremos con la tecla 'Y', y para desmarcarlo, lo haremos con la tecla 'N'.
    Ahora cada uno que dé soporte a los dispositivos extra que le interesen, es recomendable, en general, añadirlos como módulos.

    Quien tenga un disco duro IDE, sobretodo si su sistema operativo arranca desde él, tiene que hacer obligadamente lo siguiente:
    Vamos a:
    Device drivers
    y buscamos ATA/ATAPI/MFM/RLL support y lo marcamos como integrado.
    Ahora entramos en esta sección y marcamos Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support como integrado.

    Los que tengan disco duro SATA probablemente tengan que hacer esto otro:
    Marcar la sección:
    Device drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers
    como integrada, sobretodo si su sistema operativo arranca desde un disco SATA.
    Tened también en cuenta que dentro de esa sección hay multiples drivers experimentales para discos SATA que por defecto no vienen marcados, si estais compilando el kernel para dar soporte a vuestro disco SATA, entrad ahí y mirad si vuestro modelo figura en la lista.

    Bueno ya hemos hecho lo más importante, quedan muchas secciones que se ocupan de otras tecnologías que soporta el kernel Linux: funciones de red, sistemas de archivos etc etc, cada uno que se meta a donde le interese.

    Una vez hayamos acabado de añadir o quitar soporte para los dispositivos o funcionalidades del kernel que nos interese, es hora de volver al menú del principio, y al salir nos preguntará que si queremos guardar la configuración que hemos cambiado, a no ser que la hayamos cagado y queramos volver a empezar, elegiremos que sí. Se genera así un .config nuevo y el viejo pasa a ser .config.old.

    Y podremos pasar a la siguiente fase:



    COMPILACIÓN DEL KERNEL:

    ## Ahora usaremos kernel package de Debian para compilar las fuentes del kernel.
    ## Debemos asegurarnos que seguimos en /usr/src/linux, antes de que ejecuteis el siguiente comando, explicaros que las XXXX es cualquier palabra o número que vosotros querais poner para distinguir ese kernel de otro que tuvierais compilado o que quizá compileis en el futuro.
    ## Ejecutamos pues:
    make-kpkg --append-to-version=.XXXX --initrd binary

    ## Este ultimo comando comienza la compilación, llevará mucho tiempo, así que mientras, podemos dedicarnos a otra cosa, cuantas menos tareas esté realizando el ordenador durante este tiempo, menos tardará en compilarse el kernel. Cuando este proceso acabe, tendremos listos los paquetes Debian del Kernel, listos para instalarlos.

    ## Tras el proceso de compilación, encontramos en /usr/src un monton de paquetes Debian para nuestro kernel: Fuentes, documentación, manual, cabeceras (headers), la imagen (linux-image). Solo es necesario instalar la imagen, los demás paquetes no sirven para nada, a no ser que queramos instalar ese kernel en otro ordenador, con lo cual serían convenientes instalar también los archivos de cabeceras, no obstante, eso tendría el inconveniente de que en aquel ordenador no se podrían compilar múdulos o drivers posteriormente para ese kernel, y esto es algo que aun no sé como solucionarlo, sé que es porque falta un paquete necesario.
    En nuestro ordenador solo necesitamos pues, la imagen, ya que tenemos la carpeta con las fuentes, y esta carpeta no se debe borrar porque si no estaríamos en las mismas, no podríamos compilar futuros módulos para este kernel.

    ## Nos movemos al directorio /usr/src
    cd ..

    ## Instalamos pues la imagen del kernel ejecutando:
    dpkg -i linux-image-2.6.22.1.debian_2.6.22.1.debian-10.00.Custom_i386.deb

    Tras esto ya podemos reiniciar y arrancar nuestro nuevo kernel, que deberá figurar en la lista de sistemas operativos que sale en el arranque (el GRUB).

    ## Bueno pues yo, que he ido también comprobando los pasos ya he reiniciado y tengo mi nuevo kernel ejecutándose, podemos comprobarlo con el comando:
    uname -sr

    Espero que os haya sido de utilidad esta guía. Saludos de EagleScreen.

    • Re: Compilar kernel [GUÍA]

      Escrito por guadafan el 27/07/2007 18:57

      guadafan

      Maestro Ancestral

      Envíos: 2266

      Está mu bien EagleScreen. Sólo echo en falta cómo se hace si se quiere parchear el kernel, por ejemplo, con squashfs, unionfs, etc...

      Antes de hacer make menuconfig:

      - Copiamos el parche a /usr/src
      - Nos vamos a /usr/src/linux
      - Ejecutamos:

      patch -p1 < /usr/src/nombre_del_parche.patch

      Saludos.
      ......
Buscador
Menú
Los que más escribieron en el último año
1

guadafan

399
2

indiocabreao

342
3

hatteras

288
4

miancatri

225
5

sanatas

149
6

vendrell

123
7

cpcero

98
8

daniel2503

71
9

cmjmmrp

69
10

priest

64
11

fjsrey

62
12

chrysaor

56
13

acorantf

48
14

ghasthelm

46
15

espartaco

45
16

frjlara

42
17

dlobatod

41
 

Hecho con Plone CMS, el Sistema de Gestión de Contenidos de Fuentes Abiertos

Este sitio cumple con los siguientes estándares: