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)

  • Welcome to U&L ; what is the output of uname -a ? – GAD3R Feb 17 '17 at 9:10
  • 1
    Try this : github.com/gnab/rtl8812au – GAD3R Feb 17 '17 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 '17 at 19:46
  • what is the output of sudo modprobe 8812au ? – GAD3R Feb 17 '17 at 20:03
  • 1
    Writing from my wifi connection ... problem solved! (see update in the original question) – Popopom Feb 18 '17 at 8:07
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

  • 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 '17 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. :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.