Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Instalar The Regex Coach con WineOptimización RAM - RAMDefrag

Instalar un Kernel en GNU/Linux




Instalar un Kernel en GNU/Linux




Copyright

Copyright © José Luis Lara Carrascal  2007-2017   http://manualinux.eu



Sumario

Introducción
Instalación
Configuración del Kernel
Los módulos
Enlaces




Introducción  

Hacer un manual genérico de la instalación de un kernel en GNU/Linux resulta bastante complicado, con lo que en este documento voy a explicar de forma clara y concisa cómo actualizo las versiones del kernel en mi sistema. Salvando las distancias posibles con el mundo Debian mucha de la información aquí expuesta debería de resultar válida para todos los usuarios de todas las distribuciones. En ningún momento pretendo crear un manual genérico, sino más bien una radiografía documentada de un proceso que suelo acometer cuando salen las nuevas versiones enteras (sin punto) del kernel de GNU/Linux.

En este manual trataremos la compilación de un kernel con el sistema de archivos xfs, las dependencias irán en función del sistema de archivos principal del sistema que es xfs, por lo tanto, se omite el uso de las utilidades referidas en la documentación del kernel para los sistemas de archivos reiserfs y jfs, además de todo esto no se incluyen dependencias relacionadas con los dispositivos pcmcia. Para más información sobre las dependencias leer el archivo del kernel: /Documentation/Changes.



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado el Kernel para la elaboración de este documento.

* GCC - (7.1.0)
* Make - (4.2.1)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.19.3)
* Freetype2 - (2.8)
* GTK+ - (2.24.31) - (si vamos a usar la interfaz gráfica GTK+ con make gconfig)
* Qt - (3.3.8b) - (si vamos a usar la interfaz gráfica Qt con make xconfig)
* Ncurses - (6.0) - (si vamos a usar la interfaz gráfica Ncurses (en consola) con make menuconfig)

Aplicaciones

* E2fsprog - (1.43.4)
* Xfsprogs - (4.11.0)
* Mkinitrd - (6.0.37)
* Procps - (3.2.7)
* Udev - (173)
* Binutils - (2.28)
* Util-linux - (2.30)
* Module-init-tools - (3.8)
* XZ Utils - (5.2.3)



Descarga

linux-4.12.tar.xz

Los que tengan las fuentes de la versión anterior sólo tienen que bajarse el parche correspondiente.

patch-4.12.xz

Para aplicarlo sólo hay que descomprimirlo y desde el directorio de las fuentes de la versión anterior, ejecutar el comando correspondiente.

$ su
# cp patch-4.12.xz /usr/src
# cd /usr/src
# tar Jxvf linux-4.11.tar.xz
# cd linux-4.11
# xzcat ../patch-4.12.xz | patch -Np1
# cd ..
# rm -f patch-4.12.xz

Hacemos una copia de seguridad comprimida en tar.xz de las fuentes del kernel parcheado y actualizado renombrando el directorio al número de la nueva versión.

# mv linux-4.11 linux-4.12
# tar Jcvf linux-4.12.tar.xz linux-4.12

Como usuario abro otra terminal y copio el archivo comprimido al directorio predefinido de ubicación de los paquetes de código fuente que me descargo desde internet, el archivo original, si se quiere se puede borrar, en el caso de que no nos sobre el espacio en disco, si nos sobra mejor dejarlo.

$ cp /usr/src/linux-4.12.tar.xz /mnt/win_m/Descargas/Linux/Kernel



Configuración del Kernel

1) Interfaz Gráfica - Qt


# tar Jxvf linux-4.12.tar.xz
# cd linux-4.12
# make xconfig

Interfaz Gráfica - Qt


2) Interfaz Gráfica - GTK+

# tar Jxvf linux-4.12.tar.xz
# cd linux-4.12
# make gconfig


Interfaz Gráfica - GTK2+


3) Interfaz Ncurses - Consola

# tar Jxvf linux-4.12.tar.xz
# cd linux-4.12
# make menuconfig


Interfaz Gráfica - Ncurses



Siempre utilizo la interfaz GTK+, en cuanto a la configuración del kernel la cosa ha mejorado mucho respecto a los de la serie 2.4, por la sencilla razón que cuando ejecutamos la configuración éste carga por defecto la que tengamos del kernel que estemos usando en nuestro directorio /boot/config-4.x.x, lo que tendremos que hacer en primer lugar y quizá en último para muchos usuarios nóveles que no quieran complicarse la vida es seleccionar nuestro procesador en Processor type and features >> Processor family (NEW)


Tipo de Procesador



Los módulos  

Los kernel que traen las distribuciones de serie vienen atestados de infinidad de módulos que nunca vamos a usar, así que lo primero que deberíamos de hacer es tomar nota de los dispositivos que tenemos en nuestro sistema (si no lo tenemos claro dejarlo todo como está y sólo configurar lo antes comentado respecto al tipo de procesador) y conocer de antemano qué módulos están relacionados con los mismos, bastaría ejecutar un lsmod como root para comprobar esto, pero posiblemente a los usuarios nóveles este tema les asuste un poco y para no complicar el manual cualquier consulta respecto a este tema mejor plantearla en Manualinux - Foro.

Indicar para finalizar lo referente a la configuración que el sistema de archivos que vayamos a usar por defecto debe de estar siempre soportado directamente por el kernel y que en la interfaz GTK+ los módulos se activan con el guión en el cuadrado y el soporte directo del kernel con el otro símbolo como se puede ver en la imagen de abajo, donde xfs está soportado directamente por el kernel y reiserfs está configurado para ser compilado como módulo.


Módulos

Una vez lo tenemos claro respecto a la configuración pulsamos en File >> Save y esta quedará guardada, ya sólo nos queda salirnos de la interfaz gráfica de configuración y compilar el kernel.



Compilación

# make

Parámetros de compilación opcionales

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel que estamos utilizando actualmente, está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del nuevo kernel de forma considerable.

-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación de los módulos

# make modules_install

Instalación del Kernel  Bloc de Notas Información general sobre el uso de los comandos

# cp arch/x86/boot/bzImage /boot/vmlinuz-4.12.0
# cp .config /boot/config-4.12.0
# cp System.map /boot/System.map-4.12.0
# mkinitrd /boot/initrd-4.12.0.img 4.12.0

Explicación de los comandos

cp arch/x86/boot/bzImage /boot/vmlinuz-4.12.0 : Copiamos la imagen del kernel comprimida al directorio /boot, y la renombramos a vmlinuz-4.12.0.

cp .config /boot/config-4.12.0
: Copiamos el archivo de configuración del kernel que hemos compilado al directorio /boot, renombrándolo a config-4.12.0, y que servirá de referencia para futuras compilaciones del kernel.

cp System.map /boot/System.map-4.12.0
: Copiamos el archivo System.map al directorio /boot, renombrándolo a System.map-4.12.0, este archivo contiene toda la información requerida para la carga de los módulos.

mkinitrd /boot/initrd-4.12.0.img 4.12.0
: Creamos la imagen de carga del kernel tomando como referencia el directorio de los módulos instalados (no es necesario indicar la ruta completa del mismo).



Configuración e Instalación de Lilo

Abrimos el archivo /etc/lilo.conf con un editor de texto y añadimos el kernel nuevo (con y sin el framebuffer activado) dejando el actual como segunda opción de arranque, un ejemplo,

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="Linux"
boot=/dev/hda2
map=/boot/map
keytable=/boot/es-latin1.klt
menu-scheme=wb:bw:wb:bw
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-4.12.0
    label="Linux"
    root=/dev/hda1
    initrd=/boot/initrd-4.12.0.img
    append="quiet noapic acpi=off splash=verbose"
    vga=791
    read-only
other=/dev/hda1
    label="Windows"
    table=/dev/hda
image=/boot/vmlinuz-4.12.0
    label="Linux-nofb"
    root=/dev/hda2
    initrd=/boot/initrd-4.12.0.img
    append="noapic acpi=off splash=verbose"
    read-only
image=/boot/vmlinuz-4.10.0
    label="Linux-4.10.0"
    root=/dev/hda2
    initrd=/boot/initrd-4.10.0.img
    append="quiet noapic acpi=off splash=verbose"
    vga=791
other=/dev/fd0
    label="Disquete"
    unsafe

Lo guardamos y ejecutamos la instalación del cargador de arranque,

# lilo

Para terminar, es recomendable tener siempre las fuentes completas del kernel con éste compilado, aunque esto en sistemas con poco espacio en disco resulte complicado, pues hagan lo que hacía yo antes de comprarme el nuevo disco duro, comprimir el directorio y guardarlo en un cd, cuando haga falta su uso volver a descomprimirlo en su sitio correspondiente.

Desinstalación del Kernel  

Siguiendo el mismo sistema que he instaurado en los manuales de la web, incluyo los scripts de desinstalación, copia de respaldo y restauración de copia de los binarios creados del kernel (módulos incluidos) y los archivos de configuración ubicados en el directorio /boot. Queda excluido de estos el directorio de las fuentes.

kernel-4.12-scripts.tar.gz

$ su
# tar zxvf kernel-4.12-scripts.tar.gz
# cd kernel-4.12-scripts
# ./Desinstalar_kernel-4.12

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf kernel-4.12-scripts.tar.gz
# cd kernel-4.12-scripts
# ./Respaldar_kernel-4.12

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_kernel-4.12



Enlaces  


http://www.kernel.org >> La web del Kernel.


Foro Galería Blog


Actualizado el 03-07-2017

Instalar un Kernel en GNU/Linux

Instalar The Regex Coach con WineOptimización RAM - RAMDefrag