Saltar al contenido

Subir de Kernel MAX10

A veces nos vemos obligados a instalar MAX10 en equipamiento con hardware más moderno para el cual MAX10 ya queda algo anticuado (recomendamos instalar MAX11 en esos equipos). Entonces nos damos cuenta que MAX10 no detecta todo el hardware de nuestro equipo, sobre todo en portátiles, y no funciona por ejemplo la WIFI, la tarjeta gráfica, el touchpad, etc.

Para solucionarlo aquí explicamos cómo subir la versión de Kernel de MAX10 a una superior(5.4.X.X) fuera de la rama principal de la distribución, de manera que conseguimos un mejor soporte para la detección de hardware haciendo que funcionen todos esos dispositivos que no lo hacen con el kernel por defecto(4.5.X.X). Podemos comprobar la versión del kernel con la orden 'uname -r'.

Esta actualización se puede hacer de dos maneras:

- Instalando manualmente los paquetes '.deb' necesarios.

- Utilizando el repositorio de Ubuntu.

Cada una tiene sus ventajas. Instalando los paquetes '.deb' manualmente podemos decidir la versión concreta del Kernel e instalar versiones superiores a las que el repositorio de Ubuntu ofrece. En primer lugar es preferible utilizar el repositorio de Ubuntu ya que su proceso es más sencillo y te aseguras de utilizar un Kernel compilado por la propia Ubuntu que puede estar más adaptado a la distribución. Si con el kernel de los repositorios seguimos sin resultados satisfactorios es cuando se recomienda probar a instalar kernels mediante los paquetes '.deb' para ver si con versiones todavía más superiores tenemos éxito. A continuación se explican los dos métodos de instalación:

INSTALACIÓN DESDE LOS REPOSITORIOS DE UBUNTU

Lo primero que hay que hacer es actualizar MAX al completo. Ejecuta desde un terminal:

sudo apt update
sudo apt dist-upgrade

Responde por defecto a las preguntas que salgan durante la instalación(pulsa INTRO directamente). Si aparece algún error y no termina la instalación vuelve a ejecutar los dos comandos hasta que finalmente termine la instalación de todos los paquetes, en ningún caso reinicies el equipo con una instalación a medias o te encontrarás que MAX no puede arrancar. Si tienes dudas siempre puedes ejecutar el último comando y te tiene que decir que no hay nada para actualizar:

Una vez instaladas todas las actualizaciones reinicia el equipo para que se apliquen los cambios.

Ahora vamos a instalar el nuevo kernel con la siguiente orden:

sudo apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04

Esa orden instalará un kernel de la rama 5.4.X.X y los drivers gráficos correspondientes(el paquete xserver-xorg). Una vez terminada la instalación reiniciaremos el equipo y comprobaremos que efectivamente tenemos un kernel de la versión '5.4.XX':

Si hemos tenido suerte los dispositivos que no funcionaban ya lo harán. En cualquier caso suele hacer falta copiar ficheros de firmware adicionales para que terminen de funcionar(ver más adelante).

INSTALACIÓN DESDE PAQUETES '.DEB'

Igualmente lo primero que hay que hacer es actualizar la distribución al completo. Ejecutar:

sudo apt update
sudo apt dist-upgrade 

Una vez actualizado y reiniciado el equipo podemos proceder a instalar los paquetes necesarios. Voy a realizar este caso para una versión de kernel concreta, por ejemplo para la 5.4.64. Nos tenemos que descargar los siguientes paquetes e instalarlos en el mismo orden:

https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.64/amd64/linux-headers-5.4.64-050464_5.4.64-050464.202009091835_all.deb
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.64/amd64/linux-headers-5.4.64-050464-generic_5.4.64-050464.202009091835_amd64.deb
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.64/amd64/linux-modules-5.4.64-050464-generic_5.4.64-050464.202009091835_amd64.deb
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.64/amd64/linux-image-unsigned-5.4.64-050464-generic_5.4.64-050464.202009091835_amd64.deb

Para instalarlos podemos hacer clic derecho sobre el fichero y seleccionar abrir con GDebi.

Para utilizar otra versión de Kernel que no sea la del ejemplo podemos acceder al siguiente enlace y meternos en la versión deseada:

https://kernel.ubuntu.com/~kernel-ppa/mainline/

Tendremos que descargar los mismos paquetes que, obviando los números de versión serían:

linux-headers-XXX_all.deb

linux-headers-XXX-generic_XXX_amd64.deb

linux-modules-XXX-generic_XXX_amd64.deb

linux-image-unsigned-XXX-generic_XXX_amd64.deb

Una vez instalados los paquetes reinicia el equipo y comprueba que efectivamente estás utilizando el nuevo kernel(uname -r). Igualmente que pasaba con la instalación desde el repositorio de Ubuntu, se necesitarán ficheros de firmware adicionales que explicamos a continuación.

FICHEROS DE FIRMWARE ADICIONALES

Aunque tu hardware ya haya empezado a funcionar con el nuevo kernel, es conveniente realizar el siguiente paso. En ocasiones será necesario para que finalmente termine de funcionar.

Abre un terminal y ejecuta la siguiente orden:

sudo update-initramfs -u -k all

Verás que aparecen mensajes de advertencia parecidos a estos(estos mensajes variarán según el tipo de hardware que cada uno tenga):

W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125a-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168fp-3.fw for module r8169
W: Possible missing firmware /lib/firmware/i915/tgl_dmc_ver2_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/glk_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_33.0.0.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_guc_33.0.0.bin for module i915

Estos mensajes aparecen por que no existen esos ficheros en las rutas que indica el mensaje y son necesarios para el nuevo Kernel. Para evitar que salgan esos mensajes tenemos que descargar los ficheros de cada línea, por ejemplo 'rtl8125a-3.fw' o 'tgl_dmc_ver2_04.bin', del siguiente enlace:

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/

En esa página hay que buscar el fichero dentro de la carpeta correspondiente. Sólo tenemos que fijarnos en el mensaje para averiguar la carpeta, por ejemplo, el fichero 'rtl8125a-3.fw' está dentro de 'rtl_nic' o el fichero 'tgl_dmc_ver2_04.bin' dentro de 'i915'. Una vez descargado se debe copiar el fichero a la misma ruta que indica el mensaje, por ejemplo:

sudo cp rtl8125a-3.fw /lib/firmware/rtl_nic/

Una vez copiados todos los ficheros comprobar ejecutando de nuevo la orden 'sudo update-initramfs -u -k all' que ya no aparece ninguno de esos mensajes, entonces reiniciar el equipo para que los cambios surjan efecto.