Búsqueda de sitios web

Lanzamiento del Kernel 3.16: compilar e instalar en Debian GNU/Linux


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, el 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 vino con la versión inicial del kernel 0.01. 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 y 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 Linux Foundation, Linux Kernel Development Report.

  1. Sombrero rojo – 10,2%
  2. Intel: 8,8%
  3. Instrumentos de Texas: 4,1%
  4. Linaró – 4,1%
  5. USO – 3,5%
  6. IBM – 3,1%
  7. Samsung – 2,6%
  8. Google – 2,4%
  9. Sistemas de grabado por visión: 2,3%
  10. Microelectrónica Wolfson: 1,6%
  11. Oráculo – 1,3%
  12. Broadcom – 1,3%
  13. Nvidia – 1,3%
  14. Escala libre: 1,2%
  15. Tecnología Ingics – 1,2%
  16. Cisco – 0,9%
  17. Fundación 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. ARM – 0,7%

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

Linux Kernel 3.16 se lanza para individuos y empresas en un entorno de producción, quienes 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 soporte para dispositivos
  4. Mejora de la velocidad de procesamiento
  5. Últimas funciones, etc.

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

Paso 1: Descargar Kernel 3.16

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

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Acerca de las opciones:

  1. -s : Imprimir sistema operativo (‘Linux’, aquí).
  2. -n: Imprimir nombre de host del sistema ('tecmint', aquí).
  3. -r: Imprimir 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 kernel estable más reciente desde el siguiente enlace. No se deje confundir por el enlace de descarga de parches que se encuentra allí. Descargue el que dice claramente: “ÚLTIMO KERNEL ESTABLE”.

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

Alternativamente, puedes usar wget para descargar el kernel, lo cual es más conveniente.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

Paso 2: Verificar la firma del Kernel 3.16

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

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign

La verificación de la firma debe realizarse en un archivo sin comprimir. Esto requiere una firma en varios formatos de compresión, a saber, .gz, .bz2, .xz.

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

avi@tecmint:~/Downloads$ unxz linux-3.16.tar.xz

Verifíquelo con la firma.

avi@tecmint:~/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 debemos descargar la clave pública manualmente desde el servidor PGP.

avi@tecmint:~/Downloads$ gpg --recv-keys  00411886

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

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

¿Has notado dos cosas sobre la verificación de clave gpg?

  1. gpg: Buena firma de “Linus Torvalds <[email >”.
  2. Huella digital de clave principal: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886.

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

Paso 3: instalar los paquetes necesarios

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

Instale libcurse5-dev, fakeroot y kernel-package.

avi@tecmint:~/Downloads$ sudo apt-get install libncurses5-dev
avi@tecmint:~/Downloads$ sudo apt-get install fakeroot
avi@tecmint:~/Downloads$ sudo apt-get install kernel-package

Paso 4: Construyendo el Kernel 3.16

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

avi@tecmint:~/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 del kernel actualmente instalada.

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

ls -al

Hay tres formas de crear un kernel de Linux.

  1. make oldconfig: es una forma interactiva en la que el kernel pregunta, una por una, qué debería admitir y qué no. Es un proceso que requiere 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 que recomendamos lo anterior.
  3. make qconfig/xconfig/gconfig: es el sistema basado en menú gráfico donde el usuario puede habilitar y deshabilitar una opción. Requiere biblioteca QT.

Obviamente usaremos 'make menuconfig'.

¿Tienes miedo de construir kernel? Tú no debes ser. Es divertido, aprenderás muchas cosas. Debes tener en cuenta las siguientes cosas.

  1. Sus necesidades de hardware y controladores adecuados.
  2. Elija nuevas funciones mientras construye el kernel usted mismo, como soporte de alta memoria.
  3. Optimice el kernel: seleccione solo los controladores que necesite. Acelerará su proceso de arranque. Si no está seguro de algún controlador, es mejor incluirlo.

Ahora, ejecute el comando 'make menuconfig'.

make menuconfig

Importante: Debes elegir “SELECCIONAR – HABILITAR SOPORTE DE MÓDULO CARGABLE“, si olvidas hacer esto, tendrás tiempos difíciles. .

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

No existe ningún tutorial que te guíe sobre qué debes seleccionar y qué no. Esto sólo se llega a saber investigando, estudiando cosas en la web, aprendiendo de los tutoriales de tecmint y de todas las demás formas posibles.

Es posible que vea que hay una opción para piratear el 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), que 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

Paso 5: compilar el kernel 3.16

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

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

cat /proc/cpuinfo
Salida de muestra
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

Como ve el resultado anterior, tengo 2 núcleos, por lo que exportaremos 3 núcleos como se muestra a continuación.

export CONCURRENCY_LEVEL=3

Establecer un CONCURRENCY_LEVEL correcto 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 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 compilan y de 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.

Preguntas frecuentes

P1. Mi kernel lleva mucho tiempo compilado. Es normal.
P2. Si interrumpo el kernel mientras se está compilando, ¿tengo que empezar de nuevo?
P3. ¿Los archivos compilados se pueden usar en diferentes sistemas para actualizar el kernel?
P4. ¿Alojarás tu archivo compilado?
P5. ¿Tengo paquetes como fakeroot y ncurses5-dev en mi repositorio?
P6. ¿Podré arrancar con el último kernel después de instalar el último kernel?
P7. Tengo un problema al actualizar el kernel. ¿Me ayudarás? ¿Es imputable?
P8. Mi empresa enfrenta un problema al actualizar el Kernel. ¿Su equipo nos ayudará? ¿Es cobrable?

Este es el final de las preguntas frecuentes, permítanme continuar con el proceso de compilación. Después de una 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 de 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 creado, 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 hubiera.

reboot

Tan pronto como Debian se inicie nuevamente, haga clic en 'Opción avanzada' para ver una lista de kernels disponibles e instalados.

Vea una lista de kernels instalados.

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

Verifique la versión del kernel.

uname -mrns

El último, instalado ahora, está configurado para iniciarse automáticamente y no es necesario elegirlo cada vez entre las opciones de inicio avanzadas.

Paso 6: instale el kernel precompilado 3.16

Para aquellos que no quieran compilar su propio kernel en Debian (x86_64) y quieran utilizar el kernel precompilado que creamos en este tutorial, pueden descargarlo desde el siguiente enlace. Es posible que este kernel no funcione para parte del hardware que tenga.

  1. linux-image-3.16.0-linux-console.net_kernel_1_amd64.deb
  2. linux-headers-3.16.0-linux-console.net_kernel_1_amd64.deb

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

dpkg -i linux-image-3.16.0-linux-console.net_kernel_amd64.deb
dpkg -i linux-headers-3.16.0-linux-console.net_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 kernel más reciente a fondo. No tomes una decisión apresuradamente. Debe continuar sólo si sabe lo que está haciendo.

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

Después de desinstalar un kernel no utilizado, es posible que reciba un mensaje como.

  1. El enlace /vmlinuz es un enlace dañado.
  2. Eliminando enlace simbólico vmlinuz.
  3. Es posible que necesites volver a ejecutar tu gestor 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 necesites volver a ejecutar tu gestor de arranque[grub].

Esto es normal y no debes preocuparte. Simplemente actualice su GRUB usando el siguiente comando.

/usr/sbin/update-grub

Es posible que necesites actualizar tu archivo /etc/kernel-img.conf y desactivar 'do_symlinks' para desactivar 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 brindarnos sus valiosos comentarios en la sección de comentarios a continuación. Cuéntanos también tu experiencia cuando te encuentres con la compilación e instalación del Kernel.

Lea también:

  1. Instalar Kernel 3.16 en Ubuntu
  2. Compile e instale Kernel 3.12 en Debian Linux