miércoles, 25 de mayo de 2016

¿Cómo instalo controladores alternativos para chipsets Wifi Realtek en Ubuntu?

¡Mis descamisados!

Un día Patrio como el de hoy es buena excusa para hacer un desfile que nos haga presente en nuestra Argentinidad y refleje el destino grande que nos aguarda por justo derecho.

En estas ocasiones, aunque nos ofrezcan un coche, debemos montar en el pintado. Esto es así pues el noble bruto nos quiere y a veces se siente solo.
Todo sistema informatizado que se precie humano tendrá por respuesta las mismas condiciones que enfrentamos en la vida. Por ejemplo, si bien nuestro sistema operativo suele ofrecernos controladores adecuados para nuestros dispositivos Wifi, en ocasiones podremos encontrar ventajas en reemplazar dichos controladores provistos por algunos otros de uso más conveniente.


En muchos casos podremos instalar un mejor controlador para los chipsets de comunicación WiFi de marca Realtek, especialmente para los chipsets más comunes: los RTL8188CUS, RTL8192CU, RTL8723BE, RTL8192EU y RTL8812AU.

Determinar el chipset de nuestro adaptador Wifi:

En primer lugar y como requisito ineludible, habremos de determinar con exactitud cuál es el chipset con el cual está munido nuestro adaptador Wifi. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

lsusb

El sistema nos listará todos los dispositivos USB y sus identificadores (ID). Debemos buscar por alguno de estos:

Bus xxx Device yyy: ID 0bda:8176 Realtek Semiconductor Corp.
Bus xxx Device yyy: ID 0bda:8178 Realtek Semiconductor Corp.

Bus xxx Device yyy: ID 0bda:8179 Realtek Semiconductor Corp.

Bus xxx Device yyy: ID 0bda:b720 Realtek Semiconductor Corp.

Bus xxx Device yyy: ID 0bda:818b Realtek Semiconductor Corp.
Bus xxx Device yyy: ID 0bda:8812 Realtek Semiconductor Corp.

Para cada uno de estos chipsets, os daré una solución específica para operar en Ubuntu y Linux Mint.

  • Chipset Realtek RTL8188CUS y RTL8192CU (identificados como ID 0bda:8176 e ID 0bda:8178 respectivamente)

Este tipo de chipsets son muy comunes con adaptadores de red tanto USB como incorporados en equipos portátiles. Normalmente en Ubuntu utilizarán por defecto el controlador rtl8192cu que viene incluido en el sistema operativo. Sin embargo, en ciertos receptores específicos a veces se corta la conexión wifi o esta funciona con menos potencia de la requerida. Ello se debe a un error el el controlador rtl8192cu.

Por ejemplo, el chipset incorporado en el adaptador USB Medion MD 86498. Los chipsets problemáticos son el RTL8192CU y el RTL8188CUS.

Para corregir los problemas debemos utilizar un mejor controlador en lugar del suministrado por defecto. Para ello:

a) Revisamos si estamos usando el controlador rtl8192cu defectuoso. En la terminal ingresamos:

lsmod | grep rtl8

...y si podemos ver una o más instancias del controlador rtl8192cu en la salida de la terminal, entonces lo estamos utilizando. En tal caso procedemos al paso

b) Desconectamos nuestra conexión Wifi (desenchufamos el adaptador USB que contiene el puerto Realtek), y temporalmente nos conectamos a internet por medio de un cable Ethernet.

c) Instalamos las dependencias necesarias para compilar los controladores. Ingresamos en la terminal:

sudo apt-get install linux-headers-$(uname -r) build-essential dkms git




Al presionar Enter e ingresar a ciegas nuestra contreaseña de descargará la paquetería necesaria.


d) Descargamos el código fuente del controlador correcto ingresando el siguiente comando en la Terminal:

git clone https://github.com/pvaret/rtl8192cu-fixes.git

e) Lo configuramos como un módulo DKMS ingresando en la terminal:


sudo dkms add ./rtl8192cu-fixes

f) Compilamos e instalamos el nuevo controlador corregido ingresando el siguiente comando en la terminal y presionando Enter:

sudo dkms install 8192cu/1.10

g) Refrescamos nuestra lista de módulos instalados con el siguiente comando en la terminal y presionando Enter.

sudo depmod -a
h) Enviamos el controlador fallado a la lista negra para que el sistema operativo no lo emplee más. Para ello introducimos el siguiente comando en la terminal y presionamos Enter:

sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/
i) Desactivamos la función de ahorro de energía para el chipset Wifi (y para este chipset únicamente):

sudo cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/

j) Reiniciamos el equipo.

k) El problema debería ahora estar resuelto. Desconectamos el cable Ethernet temporal, e insertamos nuevamente el dispositivo Wifi USB con chipset Realtek. Revisamos si tenemos el controlador correcto en nuestro sistema abriendo una terminal e ingresando el siguiente Comando de Organización:

lsmod | grep 8192

...el sistema debería devolvernos que el controlador nuevo 8192cu está activo. No deberían encontrarse ya menciones del viejo controlador rtl8192cu.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio con el código fuente del controlador a mano.

  • Chipset Realtek RTL8188EU (Identificado como ID 0bda:8179)

Los adaptadores Wifi USB munidos con chipset Realtek RTL8188EU funcionan perfectamente en Ubuntu 14.04.x y Linux Mint 17. Pero tiene un problema cosmético: la potencia indicada por las redes wifi cercanas siempre se muestra al 0%.

Aún así, deberíamos poder conectarnos al wifi sin problemas, tras lo cual se mostrará la potencia Wifi con un porcentaje muy bajo (y erróneo, pues la conexión debería funcionar adecuadamente si las condiciones son las de siempre).

Aunque este problema cosmético no parecería impactar en el desempeño del controlador, aún así podríamos instalar otro controlador creado por Larry Finger (lwfinger), que nos debería mostrar la potencia de las redes adecuadamente.

a) Establecemos una conexión a internet mediante un cable Ethernet.

b) Abrimos una terminal con Ctrl+Alt+T).

c) Revisamos cuál controlador se está ejecutando actualmente en nuestro sistema mediante el siguiente comando en la Terminal:

lsmod | grep 8188

...el sistema debería devolvernos el nombre de nuestro controlador cargado actualmente: rtl8188eu.

d) Instalamos las dependencias necesarias para compilar en nuestro sistema mediante el siguiente Comando de Organización en nuestra Terminal:

sudo apt-get install linux-headers-$(uname -r) build-essential dkms git
e) Descargamos el paquete con el controlador, con el siguiente comando en la terminal:

git clone https://github.com/lwfinger/rtl8188eu

f) Compilamos el módulo del núcleo del sistema operativo requerido a partir del paquete del controlador que hemos descargado. Lo hacemos introduciendo los siguientes Comandos de Organización en la Terminal.

cd ~/rtl8188eu ;
make ;


g) Instalamos el módulo ya compilado ingresando en la terminal el siguiente comando:

sudo make install

h) Acto seguido enviamos el controlador fallado a la lista negra. Para ello usamos el editor GNU Nano con el siguiente comando en la terminal:

sudo nano /etc/modprobe.d/blacklist.conf

...se abrirá el editor peronista Nano, con un archivo de configuración. Al final del archivo, le pegamos el siguiente código:

# Desactivar el controlador que indica mal la potencia wifi
# para que se cargue el controlador 8188eu.
blacklist rtl8188eu

Guardamos las modificaciones en el archivo con Ctrl+o y salimos del editor Nano con Ctrl+x.

i) Reiniciamos el equipo.

j) Revisamos tener en ejecución el controlador para nuestro chipset wifi. Para ello ingresamos el siguiente comando en una Terminal:

lsmod | grep 8188

...el sistema debería ahora devolvernos el nombre del nuevo controlador cargado: 8188eu.

k) Hacemos clic en el ícono del Administrador de Redes en el panel superior, para revisar la potencia de las redes Wifi.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio con el código fuente del controlador a mano.
  • Chipset Realtek RTL8723AU (identificado como ID 0bda:b720)

Atención: Los chipsets RTL8723AU y RTL8723BU a pesar de ser distintos, comparten el mismo identificador ID 0bda:b720. La explicación siguiente es específicamente para corregir los problemas del chipset RTL8723AU; si desea usar el chipset RTL8723BU deberá ver la sección sobre el mismo más adelante.

Para utilizar adecuadamente los adaptadores Wifi USB con el chipset Realtek RTL8723AU, debemos contar con un Kernel de versión 3.15 o superior, que incluye el módulo necesario. De lo contrario, habremos de instalar un controlador específico. En vista de ello:

a) Establecemos un enlace a internet a través de un cable Ethernet conectado a nuestro router/cablemódem.

b) Abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get install git build-essential linux-headers-$(uname -r)

c) Descargamos el paquete de controlador con el siguiente comando en la Terminal seguido de Enter:

git clone https://github.com/lwfinger/rtl8723au.git

d) Ahora compilaremos el módulo del kernel requerido a partir del paquete de controlador que hemos descargado. Para ello en la terminal ingresamos:

cd ~/rtl8723au ;
make ;


e) finalmente, instalamos el módulo compilado con el siguiente comando:

sudo make install

f) Ahora ponemos el controlador fallado en la lista negra con:

sudo nano /etc/modprobe.d/blacklist.conf

...se abrirá el editor peronista GNU Nano. Le pegamos el siguiente texto:

# Los controladores rtl8723au y rtl8723bu están fallados,
# de modo que debe impedirse su carga automática

# Esto debería darles a los controladores 8723au o 8723bu
# la oportunidad de cargarse en su lugar.
blacklist rtl8723au
blacklist r8723au
blacklist rtl8723bu
blacklist r8723bu


g) guardamos los cambios con Ctrl+o y salimos del editor con Ctrl+x.

h) Reiniciamos la computadora

Ahora su Wifi debería funcionar correctamente. Haga clic en el Administrador de Redes en el panel superior para ver las redes disponibles.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio con el código fuente del controlador a mano.

Si también deseamos emplear Bluetooth, ejecutamos de a uno los siguientes Comandos en la Terminal:

git clone https://github.com/lwfinger/rtl8723au_bt.git
cd rtl8723au_bt
make
sudo make install
sudo modprobe -v 8723au_bt


  • Chipset Realtek RTL8723BU (Identificado como ID 0bda:b720)

Atención: Los chipsets RTL8723BU y RTL8723AU a pesar de ser distintos, comparten el mismo Identificador ID 0bda:b720. Estas indicaciones por lo tanto son específicas para el chipset RTL8723BU. Si desea instrucciones para el chipset RTL8723AU busque la sección correspondiente arriba en este artículo).

Para utilizar adecuadamente los adaptadores Wifi USB con chipset Realtek RTL8723BU debemos instalar un controlador específico. Podremos proceder de la siguiente manera:

a) Establecemos una conexión estable a internet por medio de un cable Ethernet conectado al Router/Módem.

b) Abrimos una terminal con Ctrl+Alt+T.

c) Instalamos las dependencias necesarias por medio del siguiente comando de organización en la Terminal, seguido de Enter.

sudo apt-get install git build-essential linux-headers-$(uname -r)
 
d) Descargamos el paquete de controlador desde la terminal, por medio del siguiente Comando de Organización:

git clone https://github.com/lwfinger/rtl8723bu
e) Ahora compilaremos el módulo de núcleo de sistema operativo requerido a partir del controlador que hemos descargado. Pegamos los siguientes comandos en la Terminal, cada uno de ellos seguido de Enter:

cd ~/rtl8723bu ;
make ;


f) Finalmente, instalamos el módulo recién compilado con este comando:

sudo make install

g) Acto seguido, pondremos el controlador fallado en la lista negra. Para ello ingresamos el siguiente comando:

sudo nano /etc/modprobe.d/blacklist.conf

...se abrirá el editor GNU Nano con un archivo de configuración que podría ya contener texto. Al final de todo el texto contenido le pegamos el siguiente bloque de texto:

# Los controladores rtl8723au y rtl8723bu están mal,
# de modo que se debe impedir su carga.
# Esto debería dar lugar a los controladores 8723au o 8723bu

# para cargarse correctamente
blacklist rtl8723au
blacklist r8723au
blacklist rtl8723bu
blacklist r8723bu

Guardamos los cambios con Ctrl+o y salimos del editor Nano con Ctrl+x.

h) Reinicamos el sistema.

i) Ahora nuestro adaptador Wifi USB debería funcionar correctamente cuando lo conectemos a un puerto USB de nuestro sistema. Debemos hacer clic en el Administrador de Redes para ver las posibles redes a las cuales conectarnos.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.

: Desafortunadamente, los chipsets RTL8723BU y RTL8723AU comparten el mismo Identificador ID 0bda:b720. Estas indicaciones por lo tanto son específicas para el chipset RTL8723BU. Si desea instrucciones para el chipset RTL8723AU busque la sección de arriba en este artículo).
 


  • Chipset Realtek RTL8192EU (Identificado como ID 0bda:818b)
El chipset Realtek RTL8192EU suele venir en miniadaptadores USB de hasta 300 mbps UBS 2 serie N que suelen comercializarse en dispositivos diseñados para el mercado europeo.
Si no funciona en nuestro Ubuntu, necesitaremos compilar el controlador a partir de un paquete especial. Para ello establecemos una conexión a internet a través de un cable Ethernet y:

a) Descargamos el paquete controlador Realtek RTL8192EU para Ubuntu

 ...movemos el puntero hacia la parte superior de la pantalla y hacemos click el el botón "Downloaden", como se ve a continuación:


https://sites.google.com/site/easylinuxtipsproject/reserve-7/Screenshot-Realtek-driver.jpg?attredirects=0

No debemos abrir el paquete con ningún descompresor u otra aplicación, simplemente descargarlo y dejarlo sin cambios.

Este paquete de controlador consta de una versión mejorada del paquete que la compañía Maxxter provee para sus adaptadores Wifi USB. El controlador original sólo funciona adecuadamente en las viejas versiones de Ubuntu y Mint, pero la versión mejorada funciona en Ubuntu 14.04 y Linux Mint 17.3.

b) El paquete debería haberse descargado a la carpeta /Descargas. Si este fue el caso, debemos descomprimirlo abriendo una terminal con Ctrl+Alt+T e ingresando los siguientes comandos:

cd ~/Descargas
tar xvzf ~/Descargas/Realtek*.tar.gz

c) Ahora debemos ingresar el siguiente comando en la Terminal.

cd install_folder

d) Y finalmente, comenzamos la instalación con el comando:

sudo ./install.sh
Tras ingresar nuestra contraseña de Conductor, se iniciará la instalación efectiva. Esta puede llevar unos segundos o minutos.

e) Conectamos nuestro adaptador Wifi USB con chipset Realtek en un puerto USB del sistema. Ahora debería operar.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.



f) Completada la instalación, podremos borrar la carpeta install_folder/, pues será innecesaria. Podremos hacerlo desde la terminal con el siguiente comando:

sudo rm -r -v ~/Descargas/install_folder
  • Chipset Realtek RTL8723BE

Para el chipset Realtek RTL8723BE es un chipset que normalmente encontramos en ciertas tarjetas Wifi mini PCI-e incorporadas en ciertas notebooks, aunque a veces lo encontramos también en ciertos adaptadores USB.

Normalmente su controlador incorporado funciona adecuadamente, pero en ciertos dispositivos particulares puede tener problemas de estabilidad y alcance de conexión wifi. Deberíamos poder mejorar la estabilidad y calidad de la misma desactivando el ahorro de energía del chipset en cuestión. No existe en este caso la necesidad de instalar otro controlador. Para poder dar con esta solución debemos:

a) Ingresamos en la terminal con Ctrl+Alt+T e indicar el siguiente comando de organización:

sudo nano /etc/modprobe.d/rtl8723be.conf

Tras ingresar nuestra contraseña de Conductor, se abrirá el editor peronista GNU Nano con un archivo de configuración vacío.

b) Le agregamos la siguientes líneas de configuración, que desactivarán la gestión de energía:

# Desactivar gestión de energía del Wifi rtl81623be
options rtl8723be fwlps=0
Guardamos los cambios realizados con Ctrl+o y salimos del editor con Ctrl+x.

c) Reiniciamos el equipo.

La conexión a través del Wifi debería ser estable ahora.

En el caso de que esto no mejore las condiciones de la conexión, se podrá probnar instalar el nuevo controlador de lwfinger, como se describe en la sección pertinente.
  • Chipset Realtek RTL8812AU (identificado como ID 0bda:8812)

Este chipset Realtek RTL8812AU suele encontrarse en dispositivos wifi USB de alta potencia y velocidad, hasta 300mbps serie N, y es identificado por el sistema como ID 0bda:8812.

Si éstos no operan en Ubuntu o lo hacen mal, deberíamos instalar un nuevo controlador.

a) Primero logramos una conexión a través de un cable Ethernet conectado al modem/router.

b) Desconectamos el adaptador Wifi con este chipset de la computadora.

c) Abrimos una Terminal con Ctrl+Alt+T.

d) Instalamos las dependencias necesarias con los siguientes Comandos de Organización, seguidos de Enter:

sudo apt-get install linux-headers-$(uname -r) build-essential git
e) Descargamos el paquete de controlador desde la terminal con el siguiente comando:

git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux
f) Ahora compilaremos el módulo de núcleo del sistema operativo requerido desde el paquete de controlador que acabamos de descargar. Para ello ingresamos los siguientes Comandos de Organización en la Terminal, seguido cada uno de ellos por Enter.

cd ~/rtl8812AU_8821AU_linux ;
make ;


g) finalmente instalamos el módulo ya compilado con este comando:

sudo make install

h) Reiniciamos nuestro equipo.

i) Conectamos nuestro adaptador Wifi a uno de los puertos USB del sistema. Debería operar correctamente ahora.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.
  • Controlador rtlwifi_new de lwfinger

Podremos instalar el paquete controlador rtlwifi_new de lwfinger para los siguientes Chipsets Realtek: RTL8192CE, RTL8192SE, RTL8192DE, RTL8188EE, RTL8192EE, RTL8723AE, RTL8723BE y RTL8821AE.

Nota: Para el chipset RTL8723BE, normalmente no es necesario reemplazar el controladr, ya que el mismo puede ser corregido como se indica en su apartado en este artículo.


a) Primero establecemos un vínculo estable a internet por medio de un cable Ethernet conectado al router/cablemódem.

b) Lanzamos una Terminal Linux presionando Ctrl+Alt+T.

c) Instalamos la paquetería necesaria para compilar ingresando en la Terminal el siguiente Comando de Organización, seguido de Enter:

sudo apt-get install git build-essential linux-headers-$(uname -r)
d) Descargamos el paquete de controladores desde la Terminal, por medio del siguiente Comando de Organización:

git clone https://github.com/lwfinger/rtlwifi_new.git
e) Ahora compilaremos el módulo de núcleo de sistema operativo requerido a partir del paquete de controlador descargado. Para ello pegamos los siguientes comandos en la terminal, cada uno de ellos seguido de Enter:

cd ~/rtlwifi_new
make


f) Finalmente, instalamos el módulo ya compilado pegando este comando en la terminal y presionando Enter:

sudo make install
g. Reiniciamos el equipo.

h) Nuestro Wifi debería funcionar mejor ahora. Podremos hacer clic en nuestro Administrador de Redes para ver las redes Wifi a las cuales podremos enlazarnos.

Nota: Lamentablemente habremos de repetir este proceso toda vez que se actualice el núcleo del sistema operativo (Kernel). De manera que conviene dejar el directorio install_folder con el código fuente del controlador a mano.

2 comentarios:

  1. Con respecto a instalacion de Controlador rtlwifi_new de lwfinger, me parece qde que es demasiado complicado. Eso es mas simple y anda mejor:

    sudo add-apt-repository -y ppa:hanipouspilot/rtlwifi
    sudo apt-get update
    sudo apt-get install -y dkms ppa-purge
    sudo apt-get install -y rtlwifi-new-dkms

    todo el resto se hace automatico.

    ResponderEliminar
  2. Mi General, con un modem TL-WN8200ND V1.1 usando ubuntu 16.04 y siguiendo los pasos, al conectar el modem, el sistema colapsa (se cuelga), y si se reinicia sucede un panic kernel, hay que desenchufar el aparato y desinstalar el controlador, conviene usar el ndisgtk.
    Algo debe haber cambiado desde la version 14 de linux ya que en esa fue con la que pude usar el modem.
    Una duda existencial, si ejecuto lusub me devuelve del modem:
    Bus 006 Device 002: ID 2357:0100 y nada mas y ni siquiera son los Id que nombras en la pagina.
    Si realizo un dmesg habiendolo desenchufado y reconectado sale:
    [ 780.979449] usb 6-2: USB disconnect, device number 2
    [ 798.176481] usb 6-2: new high-speed USB device number 3 using xhci_hcd
    [ 798.307830] usb 6-2: New USB device found, idVendor=2357, idProduct=0100
    [ 798.307837] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 798.307840] usb 6-2: Product: 802.11n WLAN Adapter
    [ 798.307843] usb 6-2: Manufacturer: Realtek
    [ 798.307845] usb 6-2: SerialNumber: 00e04c000001


    La verdad no se por donde encararlo

    ResponderEliminar