Hoy vengo con un tip rápido y bastante específico para mi configuración. Resulta que ahora he configurado un mini PC como servidor (principalmente multimedia, aunque cada vez me gusta más la idea de ponerle otros añadidos para que ayude en casa). El caso es que esta Mini PC, que integra un Celeron J4125, tendría internet mediante WiFi, ya que no deseo cablear tanto (la distancia entre el router y el lugar donde debería estar el servidor no es demasiado larga, pero hay qué meter cable y no es algo que me gustaría por ahora). El router que nos proporciona el proveedor de internet, que es Izzi, ofrece ya WiFi de doble Banda, y por suerte la Mini pc también lo soporta. La idea no podía ser más simple: WiFi en la banda de 5 GHZ para el servidor, y la mayoría de otros aparatos usarían la de 2.4, para intentar evitar interferencias. El servidor correría Debian, docker, y un montón de contenedores para los servicios que quería montar.
Sin embargo, tras instalar Debian, me percaté que no era posible utilizar WiFi en absoluto. El comando iwconfig no mostraba dispositivos detectados, por lo que, al principio, creí que sería problema con los drivers. Instalé los paquetes sugeridos (El Kernel se quejaba de algunos módulos Realtek faltantes), pero la cosa seguía sin mejorar. Así que procedí a revisar por internet si mi dispositivo específico requería algún tipo de configuración o instalar algo desde las fuentes, que se suele pedir en estos casos, y así era. Para comenzar, fue necesario averiguar el modelo exacto del dispositivo con el que contaba. Para eso, por suerte, se puede utilizar un comando como el siguiente:
lspci | grep Network
Lo que en mi caso, devolvió una respuesta como esta:
04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
De esta información podemos extraer que el adaptador de WiFi que tiene esta Mini PC es el modelo RTL8821CE, que parece que no tiene soporte oficial en el Kernel de Linux. Para instalarlo, hace falta tirar de un Repositorio git que contiene el código del Driver liberado por Realtek, y el paquete DKMS, acrónimo de Dynamic Kernel Module Support, que básicamente permitirá instalar el módulo del Driver y se ocupará de recompilarlo cada vez que haya una actualización del Kernel.
Compilando e instalando el Driver
- Para comenzar, es necesario instalar algunas dependencias en el sistema donde se compilará el driver:
sudo apt install bc module-assistant build-essential dkms git
- Después, es momento de clonar el repositorio y acceder al directorio que se generará del mismo.
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
- Prepara su compilación:
sudo m-a prepare
- Instala el controlador en el Kernel:
sudo ./dkms-install.sh
- Para usar el dispositivo sin necesidad de reiniciar, simplemente se puede cargar el módulo recién instalado en el kernel de la siguiente manera:
sudo modprobe 8821ce
- A partir de este momento, el dispositivo ya será visible y todos los comandos que listan los dispositivos también comenzarán a mostrar su información, y podrá establecerse conexión y escanear redes.