Antena USB AC 1200 mbps (chip realtek 8812bu) en Ubuntu 18.04 (Linux kernel >= 4.12)

Hola :), hace poco me compré por amazon una antena wifi usb para aprovechar mejor los 600mb de fibra que tengo contratado. Como podeis ver en la imagen de abajo, antes me llegaban unos 50 mbps (a 2.4 ghz) de descarga al pc y con la nueva me llegan unos 180-200 mbps (a 5 ghz, una mejora sustancial, antes una imagen torrent de ubuntu me descargaba a unos 5 mb/s y ahora a unos 18-20 mb/s 😁) y eso que la tengo conectada a un usb 2.0, está a unos 9 metros del router y hay de por medio 2 muros gruesos.

  • Los drivers que vienen en el CD no valen para linux, ya que no compilan bien en los últimos kernels

Instalación:

Lo primero es comprobar el tipo de chipset que trae vuestra antena, lo conectais al usb y en una terminal escribid
  • lsusb
Debes fijaros que salga lo siguiente:



Si nos aparece ID 0bda:b812 significa que el driver a instalar es el de este tutorial, el "rtl8812bu".


Prerequisitos:

  • sudo apt-get install linux-headers-$(uname -r) build-essential git
  • sudo apt install dpkg-dev
  • sudo apt install -y libelf-dev
  • sudo apt install dkms
Para instalarlo usaremos DKMS (método automático) para que así cada vez que se actualice el kernel el driver se reinstale también, así no tendríamos que repetir el tutorial cada vez que actualicemos el sistema:

  • sudo git clone https://github.com/FomalhautWeisszwerg/rtl8822bu /usr/src/rtl8822bu-4.15
  • sudo dkms add rtl8822bu/4.15
  • sudo dkms build rtl8822bu/4.15
  • sudo dkms install rtl8822bu/4.15
Listo, ahora solo nos queda reniciar y tendremos la tarjeta wifi funcionando.



Agradecimiento a:


  1. https://github.com/brandon-bailey (primero en hacer un github del driver para nuevos kernels)
  2. https://github.com/FomalhautWeisszwerg (dueño del github que usamos en el tutorial, fork del primero)
  3. https://github.com/alecdotninja (contribuyente)
  4. https://github.com/meshr-net (contribuyente)
  5. https://github.com/yujinshin90 (contribuyente)

Comentarios

  1. ¡¡¡Hola...!!! Muy bien explicado y el mejor blog hasta el momento que he encontrado...
    Pero tengo un problema...
    Al poner:
    sudo dkms build rtl8822bu/4.15
    me pone en la terminal...:
    make -j4 KERNELRELEASE=4.9.0-8-amd64 -C /lib/modules/4.9.0-8-amd64/build M=/var/lib/dkms/rtl8822bu/4.15/build...(bad exit status: 2)
    Error! Bad return status for module build on kernel: 4.9.0-8-amd64 (x86_64)
    ¿Hay alguna solución para este problema?
    ¡Gracias por su atención!

    ResponderEliminar
    Respuestas
    1. Hola! gracias por tu comentario :D. Por el mensaje que has copiado, veo que el error parece ser de la versión del kernel que usas (tienes la 4.9.0), si visitas el segundo enlace que dejo en los agradecimientos puedes ver que el driver solo funciona (compila) en versiones KERNEL >= 4.12, te recomiendo que o bien busques el driver correspondiente para tu versión, o actualices el kernel a una versión igual o superior a la 4.12 (hoy día es muy fácil, pues se puede hacer gráficamente desde algunos programas como Ukuu o synaptic). Prueba y me comentas qué tal :)

      Eliminar
    2. Buenas de nuevo...
      Me he actualizado el kernel y no parece tener resultado... es cierto que al hacer este comando me ha tardado mas en acabarse y darme error:

      sudo dkms build rtl8822bu/4.15


      me aparece esto:

      Kernel preparation unnecessary for this kernel. Skipping...

      Building module:
      cleaning build area...
      make -j4 KERNELRELEASE=4.20.4 -C /lib/modules/4.20.4/build M=/var/lib/dkms/rtl8822bu/4.15/build.....(bad exit status: 2)
      Error! Bad return status for module build on kernel: 4.20.4 (x86_64)
      Consult /var/lib/dkms/rtl8822bu/4.15/build/make.log for more information.

      Tengo que confesar que trabajo con Debian 9.6, pero no se si influye en el proceso.
      Gracias por tu respuesta y si sabes cual es el problema te agradecería mucho que me lo comentaras...!

      Eliminar
    3. Podrías copiar o subir a un servidor como dropbox o google drive el archivo make.log? El que está en la carpeta /var/lib/dkms/rtl8822bu/4.15/build/

      Una vez actualizaste el kernel, actualizaste los paquetes del sistema?, prueba a hacer un sudo apt update && apt upgrade y a repetir los pasos uno por uno de los prerequisitos, a ver si por casualidad funciona.

      Eliminar
  2. Hola, muchas gracias por los enlaces, me ayudó mucho con la instalación.
    Desde un par de semanas hice el upgrade hacia Ubuntu 18.04.3 que lleva el kernel 5.0
    Tuve que buscar un driver alternativo y lo encontré. Dejo aqui el enlace por si acaso:
    https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959

    ResponderEliminar
    Respuestas
    1. 26/11/2019: Compré en Amazon esta semana el artículo 'USB Wifi 1200Mpbs SUMGOTT Antera Adaptador Wifi USB 3.0 Inalámbrico Dual Band Soporte de 5Ghz 867Mbps para PC con Windows XP / Vista / 7/8/10, Max OSX', que usa el chipset 'rtl8822bu' y de todos los blogs que he consultado el enlace que ha puesto pstein es el que me ha funcionado. Saludos y suerte!

      Eliminar
  3. Ya se que ha pasado bastante tiempo pero te agradecería que me echaras una mano. En primer lugar darte las gracias por tan excelente tutorial, el cual me ha funcionado perfectamente en una Lubuntu con kernel 4.15 pero no me funciona con un kernel 5.3.0.46 que es lo que lleva Mint ahora. Te adjunto el final del make log, que es donde se ven los errores, y es donde no veo clara la solución. Gracias de antemano por tu atención.


    In file included from /var/lib/dkms/rtl8822bu/4.15/build/include/osdep_service_linux.h:84:0,
    from /var/lib/dkms/rtl8822bu/4.15/build/include/osdep_service.h:41,
    from /var/lib/dkms/rtl8822bu/4.15/build/include/drv_types.h:32,
    from /var/lib/dkms/rtl8822bu/4.15/build/os_dep/linux/usb_intf.c:22:
    ./include/linux/ieee80211.h:1441:0: note: this is the location of the previous definition
    #define IEEE80211_MAX_AMPDU_BUF 0x100

    /var/lib/dkms/rtl8822bu/4.15/build/os_dep/linux/os_intfs.c:1170:22: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    .ndo_select_queue = rtw_select_queue,
    ^~~~~~~~~~~~~~~~
    /var/lib/dkms/rtl8822bu/4.15/build/os_dep/linux/os_intfs.c:1170:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
    cc1: some warnings being treated as errors
    scripts/Makefile.build:288: recipe for target '/var/lib/dkms/rtl8822bu/4.15/build/os_dep/linux/os_intfs.o' failed
    make[1]: *** [/var/lib/dkms/rtl8822bu/4.15/build/os_dep/linux/os_intfs.o] Error 1
    Makefile:1655: recipe for target '_module_/var/lib/dkms/rtl8822bu/4.15/build' failed
    make: *** [_module_/var/lib/dkms/rtl8822bu/4.15/build] Error 2
    make: se sale del directorio '/usr/src/linux-headers-5.3.0-46-generic'

    ResponderEliminar
  4. Muchas gracias por este magnifico tutorial.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Restore BQ Aquaris X / X PRO using BQ firmware flash tool 3.0.4 from Ubuntu 16.04/18.04 (only if mobile phone turns on and without .json file to unlock the bootloader)

DNIe UBUNTU 18.04 y 16.04 tutorial para Firefox y Chrome

Programar ESP8266 con PyFlasher en Ubuntu