3

Original question

I could not find any specific answer for my question, all driver installation issues I found for the T4U are related to the kernel version and work around can be proposed, mine is different I think ...

I bought an Archer T4U AC1300 from TP Link and I tried to install the open source driver from here.

I use mint 17:

beljs@beljs-Inspiron-580 ~ $ cat /etc/*-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.3
DISTRIB_CODENAME=rosa
DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
cat: /etc/upstream-release: est un dossier

beljs@beljs-Inspiron-580 ~ $ uname -a
Linux beljs-Inspiron-580 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:37:25 UTC 2015 i686 i686 i686 GNU/Linux

but I believe the issue I have while installing the driver is more a compilation issue or a bug in the code itself (?).

I followed the basic driver installation procedure recommended on different websites:

git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
cd rtl8812AU_8821AU_linux/
make
sudo make install

but I always get an error during the make process in ioctl_cfg80211.c (sorry for the French):

beljs@beljs-Inspiron-580 ~ $ git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
Clonage dans 'rtl8812AU_8821AU_linux'...
remote: Counting objects: 1498, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 1498 (delta 1), reused 0 (delta 0), pack-reused 1492
Réception d'objets: 100% (1498/1498), 3.53 MiB | 692.00 KiB/s, done.
Résolution des deltas: 100% (909/909), done.
Vérification de la connectivité... fait.
beljs@beljs-Inspiron-580 ~ $ cd rtl8812AU_8821AU_linux/
beljs@beljs-Inspiron-580 ~/rtl8812AU_8821AU_linux $ make
make ARCH=i386 CROSS_COMPILE= -C /lib/modules/3.19.0-32-generic/build M=/home/beljs/rtl8812AU_8821AU_linux  modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-3.19.0-32-generic »
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_cmd.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_security.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_debug.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_io.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_ioctl_query.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_ioctl_set.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_ieee80211.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_mlme.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_mlme_ext.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_wlan_util.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_vht.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_pwrctrl.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_rf.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_recv.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_sta_mgt.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_ap.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_xmit.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_p2p.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_tdls.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_br_ext.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_iol.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_sreset.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_btcoex.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_beamforming.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/rtw_odm.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/core/efuse/rtw_efuse.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/osdep_service.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/os_intfs.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/usb_intf.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/usb_ops_linux.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_linux.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/xmit_linux.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/mlme_linux.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/recv_linux.o
  CC [M]  /home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.o
/home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5971:2: error: initialization from incompatible pointer type [-Werror]
  .del_station = cfg80211_rtw_del_station,
  ^
/home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5971:2: error: (near initialization for ‘rtw_cfg80211_ops.del_station’) [-Werror]
cc1: all warnings being treated as errors
make[2]: *** [/home/beljs/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.o] Erreur 1
make[1]: *** [_module_/home/beljs/rtl8812AU_8821AU_linux] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-headers-3.19.0-32-generic »
make: *** [modules] Erreur 2

I also tried to install the driver from: github.com/Grief/archer-t4u but also got similar errors (not exactly at the same location, but in the same file)

8
  • Welcome to U&L ; what is the output of uname -a ?
    – GAD3R
    Feb 17, 2017 at 9:10
  • 1
    Try this : github.com/gnab/rtl8812au
    – GAD3R
    Feb 17, 2017 at 17:28
  • 1
    Thank you very much GAD3R, the installation worked succesfully! On the down side, my adapter still does not work, I am investigating further ...
    – Popopom
    Feb 17, 2017 at 19:46
  • what is the output of sudo modprobe 8812au ?
    – GAD3R
    Feb 17, 2017 at 20:03
  • 1
    Writing from my wifi connection ... problem solved! (see update in the original question)
    – Popopom
    Feb 18, 2017 at 8:07

2 Answers 2

3

Solution

In short:

  1. git clone https://github.com/gnab/rtl8812au

  2. update /rtl8812au/os_dep/linux/usb_intf.c-> find the original bus id for the archer T4U AC1200 (2357:0101) and add a line with the bus id for the AC1300 (2357:010d) right after:

    {USB_DEVICE(0x2357, 0x0101),.driver_info = RTL8812},    
    **{USB_DEVICE(0x2357, 0x010d),.driver_info = RTL8812},**
    
  3. follow the instructions in the readme file provided in ./rtl8812au

Voilà!

More explanations:

The problem was two-folded:

  1. Driver

GAD3R gave me a link to a correct version of the driver for my kernel that would compile correctly (many thanks for that!).

  1. Archer T4U AC1200 vs T4U AC1300

The Archer T4U in 99% of the references I found refers to the T4U AC1200, the one I purchased is a T4U AC1300 (also -v2). I am not sure if it is only a regional product name or if it corresponds to an actual hardware change. Maybe the T4u AC1300 is very recent as well: the only reference I could find is on the official website of Tp-Link .

Anyway, what triggered me is the bus id given on wikidevi :

The stick supports USB 3.0 and has the USB ID: 2357:0101

a lsusb gave me 2357:010d

The solution was then obvious: I added a line in /rtl8812au/os_dep/linux/usb_intf.c (see above in short solution)

NB: I checked and the AC1300 usb id is already available in

https://github.com/abperiasamy/rtl8812AU_8821AU_linux

1
  • Saved my day. Worked on Kernel 4.4 i only have to plug the device out and in again everytime i restart.
    – Bernd
    Apr 24, 2017 at 16:36
1

I can confirm the above solution worked for me:

Worked on:
Ubuntu: 16.04.2, 
Kernel: 4.8.0-36-generic, 
gcc   : gcc version 5.4.0 20160609

The only difference I had to do was when I ran the command 'lsusb'. It showed a device named '2357:010e'. When I had to add a new 'line in usb_intf.c' I had to change the reference from 'd' to 'e' instead. :)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .