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. Sistemas de grabado de visión: 2,3%
  10. Wolfson Microelectronics - 1.6%
  11. Oracle - 1.3%
  12. Broadcom: 1,3%
  13. Nvidia - 1.3%
  14. Freescale: 1,2%
  15. Tecnología Ingics - 1.2%
  16. Cisco: 0,9%
  17. Base Linux: 0,9%
  18. AMD: 0,9%
  19. Académicos: 0,9%
  20. NetAPP: 0,8%
  21. Fujitsu: 0,7%
  22. paralelos: 0,7%
  23. BRAZO: 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 individuos como para empresas en el entorno de producción, que actualizarán su kernel por varias razones, algunas de las cuales incluyen.

  1. Parches de seguridad
  2. Mejora de la estabilidad
  3. Controladores actualizados: mejor compatibilidad con dispositivos
  4. Mejora de la velocidad de procesamiento
  5. Funciones más recientes, etc.

Este artículo tiene como objetivo actualizar el kernel de Debian, al estilo Debian, lo que significa menos trabajo manual, menos riesgos pero con perfección. También actualizaremos el kernel de Ubuntu 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 : sistema operativo de impresión ("Linux", aquí).
  2. -n : Nombre de host del sistema de impresión ("tecmint", aquí).
  3. -r : Imprime la versión del kernel ("tecmint 3.14-1-amd64", aquí).
  4. -m : conjunto de instrucciones de hardware de impresión ("x86_64", aquí).

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 : buena firma de "Linus Torvalds <[email protected]>".
  2. Huella digital de clave principal : ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886.

No hay 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 sin riesgos en Debian.

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 compilar 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 : Es una forma interactiva en la que el kernel pregunta una por una qué debe admitir y qué no. Es un proceso que consume mucho tiempo.
  2. make menuconfig : es un sistema basado en menú de línea de comandos donde el usuario puede habilitar y deshabilitar una opción. Requiere la biblioteca ncurses, por lo tanto, aprobamos la anterior.
  3. make qconfig/xconfig/gconfig : es el sistema basado en menús gráficos donde el usuario puede habilitar y deshabilitar una opción. Requiere biblioteca QT.

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. Sus necesidades de hardware y controladores adecuados.
  2. Elija nuevas funciones mientras crea el kernel usted mismo, como: soporte de alta memoria.
  3. Optimizar el kernel: seleccione solo los controladores que necesite. Acelerará su proceso de arranque. Si no está seguro de algún controlador, mejor inclúyalo.

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 los tutoriales de tecmint y de todas las demás formas posibles.

Puede ver que hay una opción de pirateo del kernel. ¿Hackear? ¡Sí! 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 cargador 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 comprender 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 estará en una etapa en la que no podrá trabajar.

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

  1. El enlace/vmlinuz es un enlace dañado.
  2. Eliminando el enlace simbólico vmlinuz.
  3. Es posible que deba volver a ejecutar su cargador de arranque [grub].
  4. El enlace /initrd.img es un enlace dañado.
  5. Eliminando el enlace simbólico initrd.img.
  6. Es posible que deba volver a ejecutar su cargador de arranque [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. Instale Kernel 3.16 en Ubuntu
  2. Compile e instale Kernel 3.12 en Debian Linux