Linux y los drivers Wi-Fi

Linux y los drivers que problema este. Generalmente para que tu, como usuario, uses un dispositivo, cualquiera que sea debes tener el driver que generalmente viene en el repositorio o el código fuente, pero… ¿Qué código fuente? El del driver del dispositivo, obviamente, que se encuentra en la página del fabricante.

Ahi viene el primer problema la página web del fabricante, que esté actualizado y que sea compatible con la versión de kernel que estás usando en el momento en que lo necesites. Ahora hagamos una lista de detalles:

1- Sistema operativo
2- Kernel que lo soporta
3- Driver a descargar en la página del fabricante[código fuente o binario]
4- Instalar el driver
5- Configurar el driver para optimizarlos de acuerdo a nuestras necesidades.

Ahora sabiendo eso debo explicarte que hay generalmente 2 tipos de drivers, libres y privativos.

Driver libre: Driver el cual el fabricante expone sus especificaciones libre de restricciones, copyright, etc.

Driver privativo: Driver el cual el fabricante no expone sus especificaciones y es, casi siempre, producto de ingeniería inversa por parte de un desarrollador o equipo de desarrolladores. Cuando se incluye en los repositorios está en la rama ‘non-free’, para distribuciones Debian y ‘restricted’ por parte de Ubuntu. También en este apartado existen drivers que son liberados por los fabricantes de dispositivos pero que no son completamente libres o que el fabricante no expone el código de su total funcionalidad de forma libre. Generalmente vienen en formato binario.

Entonces, necesitamos un driver, en este caso Wi-Fi, pero no conocemos para nada el dispositivo, sólo sabemos que es un dongle WiFi USB. El cual conectaremos para empezar a instalarlo.En este post usaré un USBNovel Wifi AC.

O localmente como:

En linux contamos con la herramienta ‘lsusb’, que lista todos los dipositivos conectados por USB así como sus detalles más significativos si el kernel conoce estos detalles.

# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:07dc Intel Corp.
Bus 001 Device 006: ID 0bda:a811 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 0bda:5775 Realtek Semiconductor Corp. HP "Truevision HD" laptop camera
Bus 001 Device 002: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

De esta lista lo único que nos interesa es el “Realtek Semiconductor Corp.” que tiene como ID “0bda:a811”, porque todo lo demás, obviamente no tiene ni por asomo que ver con WiFi.

Ahora sabiendo el ID de nuestro dongle WiFi, iremos con el oráculo, digo, con Google a ver que nos dice acerca de esto. A alguien le debe hacer pasado, o alguien debe hacer preguntado acerca de este colega.

Haciendo una ligera búsqueda descubrimos que tengo en mis manos un RTL88xxAU, donde las ‘xx’ significan 11/12/21, es decir:

RTL8811AU
RTL8812AU
RTL8821AU

Las cuales son las diversas variantes del dispositivo. Ahora sólo debemos buscar el driver que necesitamos. Vayamos la página del fabricante, es decir a Realtek a ver si disponen de un driver que pueda funcionar con el kernel de nuestro sistema.

Dispositivo [1]

[1] https://www.realtek.com/en/products/communications-network-ics/item/rtl8812au

Drivers [2]

[2] https://www.realtek.com/en/component/zoo/category/rtl8812au-software

Datasheet [3]

[3] https://datasheetspdf.com/pdf-file/964063/RealtekMicroelectronics/RTL8812AU-CG/1

Y para linux?

Y ahora que hacemos? No hay driver para linux???
Volvamos a Google, e intentemos buscar nuevamente. Daremos con varios resultados, los cuales exploraremos. Casi siempre los drivers están de fácil acceso en Github. Personalmente me quedaré con:

https://github.com/gordboy/rtl8812au

Por qué? Porque está bastante actualizado, se puede usar hasta el kernel 4.19, está depurado y optimizado, corre en GNU/Linux y modificándolo un tilín compila en otros dispositivos como RaspberryPi, por ejemplo.

Y sí! Debes revisar todos los enlaces que te salen de github, hasta lograr hallar uno que se acomode a tus necesidades, las listadas del 1 al 5 debajo del 3er párrafo al inicio del post.

De ahí en adelante es sólo seguir las instrucciones, para lo cual espero que no necesites ayuda. Por lo demás anota mentalmente lo siguiente:

1- Necesitas herramientas de desarrollo para compilar drivers…

apt install bc build-essential git libelf-dev dkms linux-headers-`uname -r`

2- Debes tener paciencia, si un driver no compila, busca en Google el código de error haciendo hincapié en las posibles soluciones, o workarounds.

3- Lee, relée y vuelve a leer. Nunca te canses. A veces la solución está delante de tus narices, pero por estar ofuscado[cabrón] ante fallos anteriores no logras resolver tu problema.

Por lo demás, ojalá encuentren en este post un primer acercamiento a la solución de problemas similares y espero les sirva.

Nota: Todo esta basado en mi entera y total experiencia, de noches estudiando, de códigos revisados, de inventos, de fallidas compilaciones, etc.

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

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*