Instalando el controlador RTL8168 de Realtek en Debian

A quien no le pasó que instaló Debian en un equipos que tiene una tarjeta de red Realtek RTL8168 y el sistema carga por defecto el módulo RTL8169.
En la mayor parte de los casos no habrá problemas, pero podemos tener ciertos inconvenientes, por ejemplo, nuestra tarjeta de red no transmitirá a mas de 200 Kbps, o por ejemplo, estará transmitiendo normalmente, y de repente se cortará la transmisión por cerca de un minuto, y volverá a transmitir.

Nuestra tarjeta de red y nuestro módulo

Veamos primero cuál es el modelo de nuestra tarjeta de red:

diego@sol:~$ lspci|grep Ethernet
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)


Como se ve, es una tarjeta Realtek RTL8111/8168/8411... veamos qué módulo de red realtek ha cargado Linux al inicio:

diego@sol:~$ lsmod|grep r81
r8169                 428515  0


Como vemos, es el módulo equivocado para nuestra tarjeta.

Compilando el nuevo módulo

Descarguemos entonces el módulo correcto para nuestra tarjeta:

http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

Luego instalemos algunas utilidades necesarias para poder compilar y construir nuestro módulo:

sudo apt-get install build-essentials

El archivo descargado será, por ejemplo: 0001-r8168-8.039.00.tar.bz2

Lo descomprimimos y desempaquetamos:

bunzip 0001-r8168-8.039.00.tar.bz2
tar -xvf 0001-r8168-8.039.00.tar


Esto, por ejemplo, nos creará el directorio del código fuente del controlador, entraremos a él:

cd r8168-8.039.00/

y compilamos:

sudo ./autorun.sh

Luego verificamos que el nuevo controlador haya sido cargado con éxito:

diego@sol:~/opt/realtek$ lsmod|grep r81
r8168                 428515  0


Como vemos, es el módulo correcto.
En el caso de que no se haya levantado el módulo, podremos bajar manualmente el módulo anterior, y levantar el nuevo con los siguientes comandos, respectivamente:

sudo rmmod r8169
sudo modprobe r8168


Ahora, deberemos cargar en la lista negra de módulo al viejo r8169 para que no sea montado al inicio del sistema (como superusuario):

echo “blacklist r8169″ >> /etc/modprobe.d/blacklist.conf

Conclusiones:

Si ahora verificamos el modelo de nuestra controladora de red y el módulo que está en uso para la misma, deberíamos tener una salida como la siguiente:

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
    Subsystem: ASRock Incorporation Motherboard (one of many)
    Flags: bus master, fast devsel, latency 0, IRQ 42
    I/O ports at e000 [size=256]
    Memory at f0404000 (64-bit, non-prefetchable) [size=4K]
    Memory at f0400000 (64-bit, prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Endpoint, MSI 01
    Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
    Capabilities: [d0] Vital Product Data
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Virtual Channel
    Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
    Capabilities: [170] Latency Tolerance Reporting
    Kernel driver in use: r8168


Espero que les sirva como a mi! :-)

Entradas populares de este blog