Señal WiFi completa

Solucionar problema de señal débil y desconexiones del wifi Realtek RTL8723BE en Debian

publicado en: Debian, Hardware, Linux, Sist. Operativos, WiFi | 15
 
 

En primer lugar, muchas gracias a lwfinger por su trabajo. Gracias a él, tengo Debian corriendo en mi portátil.

Tras instalar Debian 9 (Stretch) en mi portátil e instalar los drivers privativos de Realtek, mediante el paquete firmware-realtek, ocurre que mi tarjeta WiFi Realtek RTL8723BE tiene señal débil cerca del router o se desconecta cuando me alejo unos metros. Tras comprobar que no es de la tarjeta, ya que con Windows y sus drivers correspondientes, funciona perfectamente, busqué una solución para Debian 9 (Stretch). Buscando por la red, encontré lo siguiente y me funciona a la perfección.

Solo hay que tener en cuenta que, cada vez que actualizamos el kernel, tenemos que volver a recompilar los drivers de la tarjeta WiFi, instalarlos y configurarlos. Pero con un simple script lo haremos en un momento.

A continuación os indico los pasos que seguí para solucionar el problema:

En primer lugar hemos de tener instaladas las herramientas necesarias para la compilación del driver y la descarga del código fuente. Si aún no las tenemos instaladas, ejecutaremos el siguiente comando:

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

Con estos paquetes instalaremos las herramientas para poder descargar el código fuente con git y compilar el driver desde el código fuente.

En segundo lugar, tenemos que descargar el código fuente para la tarjeta WiFi Realtek RTL8723BE. Podréis comprobar que el driver descargado vale para múltiples dispositivos Realtek. Pincha aquí si quieres ver el listado de dispositivos soportados.

Insisto!!!, muchas gracias a lwfinger por su trabajo. Gracias a él, tenemos la solución a este gran problema.

Para descargarlo, ejecutaremos el siguiente comando:

$ git clone https://github.com/lwfinger/rtl8723be
Cloning into 'rtlwifi_new'...
remote: Counting objects: 5770, done.
remote: Total 5770 (delta 0), reused 0 (delta 0), pack-reused 5770
Receiving objects: 100% (5770/5770), 9.54 MiB | 190.00 KiB/s, done.
Resolving deltas: 100% (4765/4765), done.

Una vez descargado el código fuente, nos posicionamos en la carpeta del mismo.

$ cd rtlwifi_new

Comenzamos la compilación con el siguiente comando:

$ make

Instalamos los paquetes compilados con el siguiente comando, eso sí, como root:

$ sudo make install

Terminada la instalación quitamos el módulo antiguo del kernel:

$ sudo modprobe -rv rtl8723be

Inyectamos los módulos compilados en el kernel:

$ sudo modprobe -v rtl8723be ant_sel=2

En mi caso no tuve que reiniciar el equipo, tras ejecutar la última orden, mi tarjeta WiFi comenzó a buscar redes WiFi disponibles. Si no es tu caso, reinicia el equipo.

Hay que tener en cuenta que el parámetro ant_sel aceptará varios valores, que cambiaremos hasta optimizarlo para nuestro sistema:

$ sudo modprobe rtl8723be ant_sel=0
$ sudo modprobe rtl8723be ant_sel=1

Para hacer permanentes los cambios y no se pierdan en el apagado o reinicio, usaremos el siguiente comando:

$ echo "options rtl8723be ant_sel=2" | sudo tee /etc/modprobe.d/rtl8723be.conf

Para comprobar que interfaz WiFi estamos utilizando y la fuerza de la señal de la misma podemos ejecutar el siguiente comando:

$ sudo iwlist scan | egrep -i ‘ssid|quality’

Si no existe el comando iwlist en tu sistema, tendrás que instalar el siguiente paquete:

 $ sudo apt-get install wireless-tools.

Recordad que cada vez que instalemos un nuevo kernel, habrá que recompilar de nuevo el driver. Pero esto se hace en un momento con el siguiente script. Partimos de que no hemos borrado el código fuente del driver.

#!/bin/bash
# Script para compilar y cargar driver tarjeta
# WiFi rtl8723be
 
#Directorio del código fuente
SOURCE="/home/usuario/rtlwifi_new"
 
# Nos posicionamos en el directorio del código fuente
cd $SOURCE
 
# Limpiamos compilaciones anteriores
make clean
 
# Actualizamos el repositorio git
git pull
 
# Compilamos
make
 
# Instalamos
sudo make install
 
# Quitamos el módulo antiguo del kernel
sudo modprobe -rv rtl8723be
 
# Cargamos el módulo en el kernel y seleccionamos el puerto de la antena (valores 0, 1 y 2)
sudo modprobe -v rtl8723be ant_sel=2
 
## Hacemos permanentes los cambios guardando la configuración en
## archivo /etc/modprobe.d/rtl8723be
echo "options rtl8723be ant_sel=2" | sudo tee /etc/modprobe.d/rtl8723be.conf
Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

15 comentarios

  1. Cristhian

    Buenos dias estaba siguiendo los pasos tal como dijiste pero al ejecutar el comando make en la carpeta rtlwifi new me sale este errror:
    root@kali:~/rtlwifi_new# make
    make -C /lib/modules/4.15.0-kali2-amd64/build M=/root/rtlwifi_new modules
    make[1]: *** /lib/modules/4.15.0-kali2-amd64/build: No existe el fichero o el directorio. Alto.
    Makefile:58: fallo en las instrucciones para el objetivo ‘all’
    make: *** [all] Error 2
    root@kali:~/rtlwifi_new#
    Me podrias ayudar te lo agradeceria mucho tengo el sistema operativo kali linux y la misma tarjeta interna rtl8723BE

    • J. Carlos

      Hola Cristhian,
      Comprueba que has descargados los paquetes build-essential, git y linux-headers-$(uname -r) y todas sus dependencias.
      Recuerda que la variable $(uname -r) toma el valor de la versión de tu núcleo. En definitiva, tienes que descargar el paquete linux-headers correspondiente a tu núcleo.

      Prueba y me cuentas.
      Un Saludo

  2. Francisco

    .En ubuntu 18.04 (kernel 4.15-033), al llegar al paso de inyectar el módulo dice

    modprobe: ERROR: could not insert ‘rtl8723be’: Required key not available

    ¿Alguna solución?, Gracias

    • J. Carlos

      Hola Francisco,

      ¿Has deshabilitado el módulo antiguo con sudo modprobe -rv rtl8723be antes de inyectar el módulo nuevo?
      ¿supongo que lo estás ejecutando como root?
      Otra cosa que se me ocurre es que en Ubuntu hay un paquete para las tarjetas de red RealTek, prueba a desinstalar el paquete y luego vuelve a realizar todos los pasos para compilar el módulo.
      Un Saludo.

  3. Francisco

    Gracias por su respuesta.
    Si deshabilité el modulo rtl8723be, lo he vuelto hacer, después de reiniciar, y no aparece listado como módulo en memoria (lsmod).
    Siempre como root (sudo), al inyectar, da el mismo mensaje (modprobe).

    Parece que en el repositorio, no está el firmware firmado digitalmente, dicen que hay que deshabilitar el arranque modo seguro en la BIOS.

    He optado por poner otra tarjeta wifi por usb, en la anterior versión del kernel funcionaba bien, solo había que hacer la selección de antena (la 2), y hacer permanente el cambio.

    Un saludo.

  4. Kinyer Molano

    No se que decir, te amo, sos un genio, DIos bendiga a tu familia!

    Hombre muchas gracias me ha funcionado de maravilla, me he recorrido toda la red, tenia justo ese problema en elementary os freya con el rtl8723be, tras una actualizacion del kernel me habia dejado de funcionar el wifi, lo unico es que en elementary tuve que usar el usuario root desde la clonacion del rtlwifi new, y de resto ando como la seda.

    Muchas gracias.

  5. Kinyer Molano

    Genio!, funciona perfectamente en elementary Os

    Me ha salvado realmente, lo unico es que para que me funcionara make, tuve que hacer todo el proceso como root, desde la clonacion del repositorio.

    de resto de 10.

    sos grande.

  6. Diego

    Muchas gracias!! Me funciono, tengo una pc hp y esta placa de red, en windows siempre me funcionaba bien pero al momento de instalar linux mint empezo a no tener buena señal y bueno, lo pude solucionar, muchas gracias!!

  7. Robert Meyer

    Al principio me emocione porque al hacer todo esto a la primera, mi wifi funcionó por primera vez sin tener que reiniciar. Al reiniciar mi notebook ya quede sin wifi de nuevo y sin poder visualizar las redes disponibles. Hice todos los pasos, guarde para que cada vez que reinicie quede la configuración, ahora ya no se como hacer para solucionar definitivamente esto.

    • J. Carlos

      Hola Rober Meyer,

      En primer lugar, gracias por visitar ZeppelinuX.
      Intenta esto:
      1. Hacer un $ sudo apt-get update seguido de $ sudo apt-get upgrade para actualizar todos los paquetes necesarios. Repite los pasos del post al detalle. Si se ha actualizado la versión de tu kernel, tendrás que volver a instalar el paquete linux-headers-$(uname -r) para tu nueva versión del kernel. Los paquetes build-essential y git no será necesario que los vuelvas a descargar.
      2. Hecho esto fíjate si tienes errores de compilación ($ make) y al instalar ($sudo make install) y tras ejecutar los dos comandos con modprobe, comprueba que se ha creado el archivo /etc/modprobe.d/rtl8723be.conf y dentro están las opciones options rtl8723be ant_sel=2.
      3. Si sigue sin detectar redes, prueba a cambiar el valor de ant_sel por un 0 ó 1, hasta que te funcione con alguno.
      4. Con el comando $ sudo iwlist scan | sudo egrep -i ‘ssid|quality’ podrás comprobar que WiFi estás utilizando y la fuerza de la señal.
      Si no existe el comando iwlist en tu sistema, tendrás que instalar el siguiente paquete: $ sudo apt-get install wireless-tools.

      Espero que te sirva esta ayuda.

      No olvides que si se actualiza el kernel a una nueva versión, habrá que volver a a descargar linux-headers-$(uname -r) y volver a compilar el driver.
      Y sobre todo, fíjate bien en los comandos que deban ejecutarse como root (sudo).

      Un saludo y gracias de nuevo.

  8. Izaskun

    Buenas,

    He seguido todos los pasos pero la señal no mejora, tengo w10 en otra particion y ubuntu 18.04. En windows funciona perfectamente pero en ubuntu me tengo que acercar al router.

    En windows he podido ver que es un RTL8723B.

    ¿Se te ocurre que puede ser?

    Gracias de antemano.

    • J. Carlos

      Hola Izaskun,
      Has probado a cambiar los valores de ant_sel en el comando $ sudo modprobe rtl8723be ant_sel=2 por ant_sel=0 o ant_sel=1 ?
      Cuéntame más.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.