[h]Linux kernel utilities: Un conjunto de scripts que automatizan el paso a otro kernel[/h]
https://www.wifi-libre.com/img/members/3/kernel_utilities_3.jpg
Antes de presentar los scripts; dos palabras sobre lo de “Actualizar su kernel a la última versión”
El kernel Linux es la base de todo, es le núcleo central de una distribución GNU-Linux (y cualquier sistema basado en Linux) .
Está mantenido bajo la supervisión de Linus TORVALDS, el creador de Linux.
Son aproximadamente 20 millones de lineas de código en una distribución GNU-Linux (unos 30MB en debian, más o menos).
Podemos tener un kernel mucho más reducido si lo hacemos sin otros controladores que los que necesitamos en nuestro sistema.
El problema es que tendremos un sistema muy restringido: No podremos emplear hardwares extra y el sistema valdrá solo para nuestra computadora o una computadora que lleva exactamente los mimos componentes .
El kernel linux es “autónomo”: Tiene su propio ritmo de desarrollo, con una nueva versión “estable” cada dos-tres meses (más o menos).
Y dentro de estos “stable releases” unos tienen soporte a largo plazo (uno sobre cuatro; más o menos)
https://www.wifi-libre.com/img/members/3/kernel_utilities_1.jpg
(ve: The Linux Kernel Archives: Active kernel releases)
La última versión estable con soporte a largo plazo es la versión 4.9 y estará mantenida hasta enero 2019.
La última versión estable en corso es la versión **4.12 ** y estamos en su revisión (“inestable”) rc6
https://www.wifi-libre.com/img/members/3/kernel_utilities_2.jpg
Para saber que kernel estás empleando puedes hacer en consola uname-r
uname -r
4.9.0-kali4-amd64
En mi caso tengo el último kernel estable con soporte a largo plazo (es logicamente el kernel “de moda” hoy en día)
Podría actualizar mi kernel hasta la versión **4.12 **
¿Cuál sería la ventaja?
- Podría tener soporte para un dispositivo que no está soportado por el kernel 4.9
¿Cuál sería la desventaja?
- Podría tener unos problemas con el nuevo *kernel *y no tendrían soporte desatendido y facíl ya que mi distribución trabaja con un kernel mas antiguo.
Además
- Notad que no me aportaría nada a nivel de seguridad ya que mi kernel actual está mantenido hasta 2019
- Notad también que los menús GRUB permiten tener entradas para cada kernel y que podemos emplear un kernel u otro, borrar un kernel y sus entradas
Nada es definitivo cuando instalamos un nuevo kernel y siempre podemos volver atrás si el resultado no es convincente.
[h]Linux kernel utilities[/h]
Es una pequeña “suite” de scripts bash para debian pensados para automatizar el proceso
“Para debian” significa que la podemos emplear en Ubuntu, Linux Mint, Kali o cualquier distribución que emplea paquetes *.deb.
No es una suite para profesionales y desarrolladores: La encontrarán limitada y al final contraproducente para su trabajo.
La herramienta es para la gente como nosotr@s, lo usuarios “normales” de distribuciones GNU-Linux.
La idea de retocar su kernel, el corazón de nuestro sistema, impone respecto.
¡Normal! Podemos liarla parda.
La realidad es que si se hace siguiendo las instrucciones no pasará nada (podemos arrancar con el kernel viejo si no sale bien) pero hay que atreverse.
Estos scripts están hecho para acompañarnos “la primera vez”.
La suite se compone de 3 scripts:
[list=1]
]compile_linux_kernel.sh: Para compilar y instalar el ultimo codigo fuente del kernel linux en sistemas debian/]
]update_ubuntu_kernel.sh: Para instalar el kernel precompilado por Canonical en Ubuntu y derivados/]
]remove_old_kernels.sh: /]
[/list]
La idea es que, mientras los ejecutemos, echemos un ojo al script para ver los comandos empleados y para darnos cuenta que es una operación muchísima más fácil de lo que suena.
[h]Puesta en marcha de Linux kernel Utilities[/h]
El kernel de linux está alojada en Git Hub.
Adivinen dónde están alojados las “kernel utilities”…
[list=1]
*]Clonar la rama Git Hub
git clone https://github.com/mtompkins/linux-kernel-utilities.git
*]Situar la consola en la rama descargada
cd linux-kernel-utilities
*]Ejecutamos uno de los tres scripts con bash. Ejemplo:
(sudo) bash compile_linux_kernel.sh
[/list]
Y es lo que vamos a hacer: Compilar un kernel más actual que el **kernel 4.9 **
No hace falta ejecutar compile_linux_kernel.sh con sudo: Se nos pedirá de todo modo la contraseña más adelante.
Al arrancar el script de este modo caeremos primero en esta ventana:
https://www.wifi-libre.com/img/members/3/kernel_utilities_4.jpg
Cuando le damos a “acceptar” llegamos a otro mensaje de información y luego se instalan las dependencias
https://www.wifi-libre.com/img/members/3/kernel_utilities_5.jpg
Ahora podemos elegir uno de los kerneles propuestos:
https://www.wifi-libre.com/img/members/3/kernel_utilities_6.jpg
Puedo ir a por el 4.11.
¿Pero si quiero el último último (4.12)?
[h]Paréntesis: instalar el último kernel [/h]
Debemos descargar el ultimo kernel manualmente: Linux 4.12-rc6
Lo copiamos en la carpeta linux-kernel-utilities y ejecutamos el script así:
bash compile_linux_kernel.sh --archive=linux-4.12-rc6.tar.gz
[h]Fin parentesís[/h]
Una vez el kernel elegido desde la inetrfaz (o al momento de ejecutar el script), el script descomprime el kernel y prepara los directorios de trabajo
https://www.wifi-libre.com/img/members/3/kernel_utilities_8.jpg
Luego se ejecuta “make GUI” para personalizar la compilación:
https://www.wifi-libre.com/img/members/3/kernel_utilities_7.jpg
Podemos quitar elementos (viene por defecto con casi todo habilitado)
Para seguir adelante hacemos clic en el disquete y cerramos la ventana (o hacemos exit)
Volvemos a la consola madre y se nos pide confirmación para lanzar la compilación:
https://www.wifi-libre.com/img/members/3/kernel_utilities_9.jpg
La compilación se lanza y tardará un buen rato si vuestro ordenador va corto de recursos CPU… Además lo hago con kali que tiene una imagen base de 2.5G, mas grande que lo usual para una distribución GNU-Linux.
https://www.wifi-libre.com/img/members/3/kernel_utilities_12.jpg
Podemos ver que se ha poblado la carpeta “Build_”
https://www.wifi-libre.com/img/members/3/kernel_utilities_13.jpg
Es hora de responder “yes” y instalar el kernel
https://www.wifi-libre.com/img/members/3/kernel_utilities_14.jpg
La instalación es inmediata (sobre todo si lo comparamos con la compilación con una CPU de mierda)
https://www.wifi-libre.com/img/members/3/kernel_utilities_15.jpg
Tenemos ahora a una carpeta para el nuevo kernel.
Es hora de hacer un reboot para probar le nuevo kernel…
…Hello otra vez buena gente.
Veamos las entradas en el menú GRUB:
Seleccionamos “Opciones avanzadas para <nombre_distribución>” (segunda entrada)
https://www.wifi-libre.com/img/members/3/kernel_utilities_16.jpg
Y podemos ver que tenemos unas nueva entradas (las dos primeras) para el nuevo kernel
https://www.wifi-libre.com/img/members/3/kernel_utilities_17.jpg
Podemos elegir con kernel arrancar. Insisto en ello por lo de “Sí luego no funciona voy a joder todo el sistema”
Sobre el kernel 4.12… Pues… Va bien.
He mirrado si había soporte nativo para rtl8812au y rtl8814au.
No será para esta vez y seguiremos usando los drivers astsam un buen rato; me parece…
Es la única cosa que se me ocurre mirar… No tengo historias con el soporte de mis otros hardwares.
[h]Conclusión[/h]
Linux Kernel Utilities es una bendición para aquell@s usuari@s (me incluyo en ell@s) que no compilan kerneles cada dos por tres. (Dios que aburrimiento, mejor dejar esto en mano de los debian )
Está claro que no es la forma la más “profesional” de proceder y que hay unas pequeñitas cosas que se podrían optimizar en el script.
Por ejemplo en mi casi se ha ejecutado la compilación con -j 4 (4 procesos) y tengo solo dos procesadores.
Total que uno de los proceso no parraba de iniciarse y parrarse y al final he tenido 3 procesos a 30% de CPU en lugar de dos a 50% (y he tardado un 10% de tiempo más para compilar)
Pero son unos puntos de detalle y el script es especialmente “robusto” y fiable.
Está muy bien escrito, permite reanudar una compilación dejada a mitad, no hay salidas raras o descontroladas y es super sencillo a emplear.
Cumple perfectamente sus objetivos: Acompañar el usuario para realizar una tarea técnica sin que haya malas sorpresas y “desmitificar” dicha tarea.
Sí echéis un ojp a los scripts cuando los ejecutéis veréis que son muy cortos y que corresponden a algunas lineas ejecutadas en consola.
Muy recomendable.
Fuentes
[list=*]
]Linux Kernel Utilities – Scripts To Compile And Update Latest Linux Kernel For Debian And Derivatives by SK @ OSTechNIX/]
]mtompkins/linux-kernel-utilities by mtompkins @ Git Hub/]
[/list]