DKMS, qué es y como se usa

Retomando el tema de los drivers Wi-Fi. Compilaste el driver wifi para el kernel, OK. Funciona, OK. Te has preguntado que pasaría si actualizas el kernel???

Actualizando el kernel, deja de funcionar el driver o los drivers que hayas compilado, pero… Y si quisiera instalar el driver de alguna manera que, aún actualizando, se mantenga activo y funcionando.

Ahí es donde entra DKMS

Investigando un poco, casi todos los drivers actuales, vienen con DKMS, sólo hay que leerse las instrucciones y seguirlas al pie de la letra, para que todo funcione como se espera.

Antes de proseguir debemos instalar dkms:

apt install dkms

Tomando como ejemplo el post anterior seguimos adelante. Descargándonos el código fuente del controlador RTL8812AU:

# cd /home/koratsuki/Downloads/
# git clone https://github.com/gordboy/rtl8812au.git
# mv rtl8812au-master /home/koratsuki/Temp/compile
# cd /home/koratsuki/Temp/compile/rtl8812au-master
# cat README.md

Debemos leer las instrucciones que hay en el archivo README.md. Y siguiendo esas líneas:

root@happyharry:/home/koratsuki/Temp/compile/rtl8812au-master# mkdir -p /usr/src/rtl8812au-5.2.20
root@happyharry:/home/koratsuki/Temp/compile/rtl8812au-master# cp * /usr/src/rtl8812au-5.2.20
root@happyharry:/home/koratsuki/Temp/compile/rtl8812au-master# dkms add -m rtl8812au -v 5.2.20

Creating symlink /var/lib/dkms/rtl8812au/5.2.20/source ->
                 /usr/src/rtl8812au-5.2.20

DKMS: add completed.
root@happyharry:/home/koratsuki/Temp/compile/rtl8812au-master# dkms build -m rtl8812au -v 5.2.20

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' -j4 KVER=4.15.0-29deepin-generic KSRC=/lib/modules/4.15.0-29deepin-generic/build..................
cleaning build area...

DKMS: build completed.
root@happyharry:/home/koratsuki/Temp/compile/rtl8812au-master# dkms install -m rtl8812au -v 5.2.20

8812au:
Running module version sanity check.

Good news! Module version v5.2.20.2_28373.20180619 for 8812au.ko
exactly matches what is already found in kernel 4.15.0-29deepin-generic.
DKMS will not replace this module.
You may override by specifying --force.

depmod.....

DKMS: install completed.

Como podemos ver, DKMS crea una estructura con la cual, guardando el driver en /usr/src, compila el driver y prepara el sistema para que ante actualizaciones, sólo compile automaticamente el driver sin necesidad de intervencion por parte del usuario.

Nada difícil, como podemos ver… Y buscando en /lib/modules/4.15.0-29deepin-generic/kernel/drivers/net/wireless, vemos nuestro driver recién compilado.

Ahora con:

# modinfo 8812au

Podemos ver todas las propiedades del driver.

Hasta aquí el post. Espero les haya sido de ayuda.

¿De cuánta utilidad te ha parecido este contenido?

Leslie León Sinclair

Compartir
Publicado por
Leslie León Sinclair

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

8 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace