Lanzamiento del kernel 3.16: compile e instale en Debian GNU / Linux


El kernel es el núcleo de cualquier sistema operativo. La función principal del kernel es actuar como mediador entre Aplicación - CPU, Aplicación - Memoria y Aplicación - Dispositivos (E/S). Funciona como administrador de memoria, administrador de dispositivos y atiende llamadas del sistema además de realizar otras tareas.

Para Linux, Kernel es su corazón. El kernel de Linux se publica bajo la licencia pública general GNU. Linus Torvalds desarrolló el kernel de Linux en el año 1991 y llegó con la versión 0.01 de lanzamiento del kernel inicial. El 3 de agosto de 2014 (este año) se lanzó Kernel 3.16. En estos 22 años, el kernel de Linux ha experimentado un gran desarrollo. Ahora hay miles de empresas, millones de desarrolladores independientes que contribuyen al Kernel de Linux.

Una estimación aproximada de las grandes marcas y su contribución al actual Kernel de Linux, que se espera que tenga 17 millones de líneas de código según la Fundación Linux, Informe de desarrollo del kernel de Linux.

  1. RedHat – 10.2%
  2. Intel – 8.8%
  3. Texas Instruments – 4.1%
  4. Linaro – 4.1%
  5. SUSE – 3.5%
  6. IBM – 3.1%
  7. Samsung – 2.6%
  8. Google – 2.4%
  9. Vision Engraving Systems – 2.3%
  10. Wolfson Microelectronics – 1.6%
  11. Oracle – 1.3%
  12. Broadcom – 1.3%
  13. Nvidia – 1.3%
  14. Freescale – 1.2%
  15. Ingics Technology – 1.2%
  16. Cisco – 0.9%
  17. Linux Foundation – 0.9%
  18. AMD – 0.9%
  19. Academics – 0.9%
  20. NetAPP – 0.8%
  21. Fujitsu – 0.7%
  22. parallels – 0.7%
  23. ARM – 0.7%

El setenta por ciento del desarrollo del kernel lo realizan desarrolladores, que trabajan en empresas y se les paga por eso, ¿suena interesante?

Linux Kernel 3.16 está disponible tanto para personas individuales como para empresas en el entorno de producción, que actualizarán su kernel por varias razones, algunas de las cuales incluyen.

  1. Security Patches
  2. Stability Enhancement
  3. Updated Drivers – Better device Support
  4. Processing speed improvement
  5. Latest Functions, etc

Este artículo tiene como objetivo actualizar el kernel de Debian, al modo Debian, lo que significa menos trabajo manual, menos riesgos pero con perfección. También actualizaremos Ubuntu Kernel en la parte posterior de este artículo.

Antes de continuar, debemos conocer nuestro kernel actual, que está instalado.

[email protected]:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Acerca de las opciones:

  1. -s : Print Operating System (‘Linux’, Here).
  2. -n : Print System Hostname (‘tecmint’, Here).
  3. -r : Print Kernel Version (‘tecmint 3.14-1-amd64’, Here).
  4. -m : Print Hardware Instruction Set (‘x86_64’, Here).

Descargue el último kernel estable desde el siguiente enlace. No se confunda con el enlace de descarga de parches allí. Descargue el que dice claramente: "ÚLTIMO NÚCLEO ESTABLE".

  1. https://www.kernel.org/

Alternativamente, puede usar wget para descargar el kernel que sea más conveniente.

[email protected]:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

Una vez finalizada la descarga y antes de seguir adelante, se recomienda encarecidamente verificar la firma del kernel.

[email protected]:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign

La verificación de la firma debe realizarse con un archivo sin comprimir. Esto es para requerir una firma contra varios formatos de compresión, a saber, .gz, .bz2, .xz.

A continuación, descomprima la imagen del kernel de Linux.

[email protected]:~/Downloads$ unxz linux-3.16.tar.xz

Verifíquelo con la firma.

[email protected]:~/Downloads$ gpg --verify linux-3.16.tar.sign

Nota: Si el comando anterior arroja gpg: No se puede verificar la firma: error de clave pública no encontrada. Eso significa que necesitamos descargar la clave pública manualmente desde PGP Server.

[email protected]:~/Downloads$ gpg --recv-keys  00411886

Después de descargar la clave, verifique la clave nuevamente.

[email protected]:~/Downloads$ gpg --verify linux-3.16.tar.sign

¿Ha notado dos cosas sobre la verificación de claves gpg?

  1. gpg: Good signature from “Linus Torvalds <[email protected]>”.
  2. Primary key fingerprint: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 .

Nada de qué preocuparse por la huella digital de la clave, ahora estamos seguros de que el archivo está bien y firmado. ¡Sigamos adelante!

Antes de continuar y comenzar a compilar el kernel, necesitamos instalar ciertos paquetes para facilitar el proceso de construcción e instalación del kernel y hacerlo de forma Debian sin riesgos.

Instale libcurse5-dev, fakeroot y kernel-package.

[email protected]:~/Downloads$ sudo apt-get install libncurses5-dev
[email protected]:~/Downloads$ sudo apt-get install fakeroot
[email protected]:~/Downloads$ sudo apt-get install kernel-package

Después de la instalación exitosa de los paquetes anteriores, estamos listos para construir el kernel. Vaya a la imagen del kernel de Linux extraída (extrajimos arriba, mientras verificamos la firma).

[email protected]:~/Downloads$ cd linux-3.16/

Ahora es importante copiar la configuración actual del kernel para presentar el directorio de trabajo como usuario root.

# cp /boot/config-'uname -r' .config

Está copiando /boot/config-'uname -r ' para presentar el directorio de trabajo “ /home/avi/Downloads/linux-3.16 ” y guardándolo como' .config '.

Aquí, " uname -r " se reemplazará y procesará automáticamente con la versión de kernel instalada actualmente.

Dado que un archivo de puntos no se puede ver de la forma normal, debe usar la opción " -a " con ls para ver esto, en su directorio de trabajo actual ".

$ ls -al

Hay tres formas de construir un kernel de Linux.

  1. make oldconfig : It is an interactive way in which kernel ask question one by one what it should support and what not. It is a Very time consuming Process.
  2. make menuconfig : It is a Command-Line Menu based system where user can enable and disable an option. It requires ncurses library hence we Apt that above.
  3. make qconfig/xconfig/gconfig : It is the Graphical Menu based system where user can enable and disable an option. It requires QT Library.

Obviamente, usaremos " make menuconfig ".

¿Tiene miedo de construir el kernel? Tú no debes ser. Es divertido, hay muchas cosas que aprenderás. Debe tener en cuenta las siguientes cosas.

  1. Your hardware needs and appropriate drivers.
  2. Choose new features while you are building kernel yourself like – high memory support.
  3. Optimize kernel – select only those drivers which you need. It will speed up your boot process. If you are not sure of any driver, better include that.

Ahora, ejecute el comando " make menuconfig ".

# make menuconfig

Importante: Debe elegir "SELECCIONAR - HABILITAR SOPORTE DE MÓDULO CARGABLE", si se olvida de hacer esto, lo pasará mal.

Nota: En las ventanas de configuración abiertas puede configurar varias opciones para su tarjeta de red, bluetooth, panel táctil, tarjeta gráfica, soporte de sistema de archivos como NTFS y muchas otras opciones.

No hay un tutorial que le oriente sobre lo que debe seleccionar y lo que no. Llegas a saber esto solo investigando, estudiando cosas en la web, aprendiendo de tutoriales de tecmint y de todas las demás formas posibles.

Puede ver que hay una opción de pirateo del kernel. ¿Hackear? ¡Sip! Aquí significa exploración. Puede agregar varias opciones en la piratería del kernel y utilizar muchas funciones.

A continuación, seleccione Opciones de controlador genérico .

Soporte de dispositivos de red.

Soporte de dispositivo de entrada.

Cargue el archivo de configuración ( .config ), lo guardamos desde/boot/config- "uname –r" .config.

Haga clic en Aceptar, guarde y salga. Ahora limpie el árbol de fuentes y restablezca los parámetros del paquete del kernel.

# make-kpkg clean

Antes de comenzar a compilar el kernel, necesitamos exportar CONCURRENCY_LEVEL . El NIVEL DE CONCURRENCIA tiene una regla para agregar Numérico 1 a los núcleos del kernel. Si tiene 2 núcleos, exporte CONCURRENCY_LEVEL u003d 3. Si tiene 4 núcleos, exporte CONCURRENCY_LEVEL u003d 5.

Para verificar los núcleos del procesador, puede usar el comando cat como se muestra a continuación.

# cat /proc/cpuinfo
Sample Output
processor	: 0 
vendor_id	: GenuineIntel 
cpu family	: 6 
model		: 69 
model name	: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 
stepping	: 1 
microcode	: 0x17 
cpu MHz		: 799.996 
cache size	: 3072 KB 
physical id	: 0 
siblings	: 4 
core id		: 0 
cpu cores	: 2 
apicid		: 0 
initial apicid	: 0 
fpu		: yes 
fpu_exception	: yes 
cpuid level	: 13 
wp		: yes

Verá la salida anterior, tengo 2 núcleos, por lo que exportaremos 3 núcleos como se muestra a continuación.

# export CONCURRENCY_LEVEL=3

La configuración correcta de CONCURRENCY_LEVEL acelerará el tiempo de compilación del kernel.

# fakeroot make-kpkg --append-to-version "-tecmintkernel" --revision "1" --initrd kernel_image kernel_headers

Aquí " tecminkernel " es el nombre de la compilación del kernel, puede ser cualquier cosa, desde su nombre, su nombre de host, su nombre de mascota o cualquier otra cosa.

La compilación del kernel lleva mucho tiempo dependiendo de los módulos que se compilen y la potencia de procesamiento de la máquina. Hasta el momento en que se esté compilando, consulte algunas de las preguntas frecuentes sobre la compilación del kernel.

Ese es el final de las preguntas frecuentes, permítanme continuar con el proceso de compilación. Después de la compilación exitosa del kernel, crea dos archivos (paquete Debian), un directorio "arriba" de nuestro directorio de trabajo actual.

Nuestro directorio de trabajo actual es.

/home/avi/Downloads/linux-3.16/

Los paquetes Debian se crean en.

/home/avi/Downloads

Para verificarlo, ejecute los siguientes comandos.

# cd ..
# ls -l linux-*.deb

A continuación, ejecute el archivo de imagen de Linux así creado.

# dpkg -i linux-image-3.16.0-tecmintkernel_1_amd64.deb

Ejecute el archivo de encabezado de Linux así creado.

# dpkg -i linux-headers-3.16.0-tecmintkernel_1_amd64.deb

¡Todo listo! Hemos construido, compilado e instalado con éxito el último kernel de Linux 3.16 en Debian con todas las demás dependencias. Además, el paquete Debian logró actualizar el gestor de arranque (GRUB/LILO), automáticamente. Es hora de reiniciar y probar el último kernel.

Asegúrese de notar cualquier mensaje de error que pueda recibir durante el arranque. Es importante entender ese error para solucionarlos, si los hay.

# reboot

Tan pronto como Debian se inicie de nuevo, haga clic en " Opción avanzada " para ver una lista de los núcleos disponibles e instalados.

Consulte una lista de núcleos instalados.

Seleccione el último kernel compilado (es decir, 3.16) para arrancar.

Verifique la versión del kernel.

# uname -mrns

El último, instalado ahora, está configurado para arrancar automáticamente y no es necesario que lo elija cada vez entre las opciones de arranque avanzadas.

Para aquellos que no quieran compilar su propio kernel en Debian (x86_64) y quieran usar el kernel precompilado que creamos en este tutorial, pueden descargarlo desde el enlace a continuación. Es posible que este kernel no funcione para algunos de los hardware que tenga.

  1. linux-image-3.16.0-tecmint.com_kernel_1_amd64.deb
  2. linux-headers-3.16.0-tecmint.com_kernel_1_amd64.deb

A continuación, instale el kernel precompilado con el siguiente comando.

# dpkg -i linux-image-3.16.0-tecmint.com_kernel_amd64.deb
# dpkg -i linux-headers-3.16.0-tecmint.com_kernel_amd64.deb

El kernel no utilizado se puede eliminar del sistema mediante el comando.

# apt-get remove linux-image-(unused_version_number)

Precaución: debe eliminar el kernel antiguo después de probar el último kernel a fondo. No tome una decisión apresuradamente. Debe continuar solo si sabe lo que está haciendo.

Si hizo algo mal al eliminar el kernel que desea, o eliminó el kernel que se suponía que debía hacer, su sistema se encontrará en una etapa en la que no podrá trabajar.

Después de desinstalar un kernel no utilizado, puede recibir un mensaje como.

  1. The link /vmlinuz is a damaged link.
  2. Removing symbolic link vmlinuz.
  3. You may need to re-run your boot loader[grub].
  4. The link /initrd.img is a damaged link.
  5. Removing symbolic link initrd.img .
  6. You may need to re-run your boot loader[grub].

Esto es normal y no debe preocuparse. Simplemente actualice su GRUB usando el siguiente comando.

# /usr/sbin/update-grub

Es posible que deba actualizar su archivo /etc/kernel-img.conf y deshabilitar " do_symlinks " para deshabilitar estos mensajes. Si puede reiniciar e iniciar sesión nuevamente, no hay problema.

Eso es todo por ahora. Estaré aquí nuevamente con otro artículo interesante. Hasta entonces, estad atentos y conectados a Tecmint. No olvide enviarnos sus valiosos comentarios en la sección de comentarios a continuación. También cuéntenos su experiencia cuando encuentre la compilación e instalación de Kernel.

Leer también :

  1. Install Kernel 3.16 in Ubuntu
  2. Compile and Install Kernel 3.12 in Debian Linux