abperiasamy / rtl8812AU_8821AU_linux

rtl8812AU_8821AU linux kernel driver for AC1200 (801.11ac) Wireless Dual-Band USB Adapter
GNU General Public License v2.0
1.23k stars 434 forks source link

Can't install on Arch Linux kernel : (4.20.0-arch1-1-ARCH (x86_64)) #275

Open dorald opened 5 years ago

dorald commented 5 years ago

I got this error message on install : ==> dkms install rtl8812au/4.3.14 -k 4.20.0-arch1-1-ARCH Error! Bad return status for module build on kernel: 4.20.0-arch1-1-ARCH (x86_64)

PhasecoreX commented 5 years ago

Here's the log that end up in /var/lib/dkms/rtl8812au/4.3.14/build/make.log. It looks like it doesn't like IEEE80211_MAX_AMPDU_BUF being redefined over and over:

DKMS make.log for rtl8812au-4.3.14 for kernel 4.20.0-arch1-1-ARCH (x86_64)
Tue Jan  1 18:25:20 EST 2019
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.20.0-arch1-1-ARCH/build M=/var/lib/dkms/rtl8812au/4.3.14/build  modules
make[1]: Entering directory '/usr/lib/modules/4.20.0-arch1-1-ARCH/build'
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_cmd.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_security.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_debug.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_io.o
In file included from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:35,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_security.c:22:
/var/lib/dkms/rtl8812au/4.3.14/build/include/wifi.h:980: error: "IEEE80211_MAX_AMPDU_BUF" redefined [-Werror]
 #define IEEE80211_MAX_AMPDU_BUF 0x40

In file included from ./include/net/cfg80211.h:24,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service_linux.h:88,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service.h:41,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:32,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_security.c:22:
./include/linux/ieee80211.h:1442: note: this is the location of the previous definition
 #define IEEE80211_MAX_AMPDU_BUF  0x100

In file included from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:35,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_io.c:52:
/var/lib/dkms/rtl8812au/4.3.14/build/include/wifi.h:980: error: "IEEE80211_MAX_AMPDU_BUF" redefined [-Werror]
 #define IEEE80211_MAX_AMPDU_BUF 0x40

In file included from ./include/net/cfg80211.h:24,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service_linux.h:88,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service.h:41,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:32,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_io.c:52:
./include/linux/ieee80211.h:1442: note: this is the location of the previous definition
 #define IEEE80211_MAX_AMPDU_BUF  0x100

In file included from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:35,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_debug.c:22:
/var/lib/dkms/rtl8812au/4.3.14/build/include/wifi.h:980: error: "IEEE80211_MAX_AMPDU_BUF" redefined [-Werror]
 #define IEEE80211_MAX_AMPDU_BUF 0x40

In file included from ./include/net/cfg80211.h:24,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service_linux.h:88,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service.h:41,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:32,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_debug.c:22:
./include/linux/ieee80211.h:1442: note: this is the location of the previous definition
 #define IEEE80211_MAX_AMPDU_BUF  0x100

In file included from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:35,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_cmd.c:22:
/var/lib/dkms/rtl8812au/4.3.14/build/include/wifi.h:980: error: "IEEE80211_MAX_AMPDU_BUF" redefined [-Werror]
 #define IEEE80211_MAX_AMPDU_BUF 0x40

In file included from ./include/net/cfg80211.h:24,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service_linux.h:88,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/osdep_service.h:41,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/include/drv_types.h:32,
                 from /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_cmd.c:22:
./include/linux/ieee80211.h:1442: note: this is the location of the previous definition
 #define IEEE80211_MAX_AMPDU_BUF  0x100

cc1: all warnings being treated as errors
make[2]: *** [scripts/Makefile.build:291: /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_io.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
make[2]: *** [scripts/Makefile.build:291: /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_cmd.o] Error 1
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
make[2]: *** [scripts/Makefile.build:291: /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_debug.o] Error 1
make[2]: *** [scripts/Makefile.build:291: /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_security.o] Error 1
make[1]: *** [Makefile:1563: _module_/var/lib/dkms/rtl8812au/4.3.14/build] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.20.0-arch1-1-ARCH/build'
make: *** [Makefile:1584: modules] Error 2

Also worth noting that IEEE80211_MAX_AMPDU_BUF is being defined as either 0x40 or 0x100, depending on the location in the code.

PhasecoreX commented 5 years ago

If we use the fix in #265 (I tested using greearb/rtl8812AU_8821AU_linux), 4.19 will work correctly (the above errors are fixed), but we get new errors for 4.20:

DKMS make.log for rtl8812au-4.3.14 for kernel 4.20.0-arch1-1-ARCH (x86_64)
Tue Jan  1 19:04:07 EST 2019
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.20.0-arch1-1-ARCH/build M=/var/lib/dkms/rtl8812au/4.3.14/build  modules
make[1]: Entering directory '/usr/lib/modules/4.20.0-arch1-1-ARCH/build'
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_cmd.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_security.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_debug.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_io.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_ioctl_query.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_ioctl_set.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_ieee80211.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_mlme.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_mlme_ext.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_wlan_util.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_vht.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_pwrctrl.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_rf.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_recv.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_sta_mgt.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_ap.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_xmit.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_p2p.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_tdls.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_br_ext.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_iol.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_sreset.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_btcoex.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_beamforming.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/rtw_odm.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/core/efuse/rtw_efuse.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/osdep_service.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/os_intfs.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/usb_intf.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/usb_ops_linux.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/xmit_linux.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/mlme_linux.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/recv_linux.o
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_write_reg’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10255:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char input[wrqu->length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_read_reg’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10326:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char input[wrqu->length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_write_rf’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10463:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char input[wrqu->length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_read_rf’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10498:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char input[wrqu->length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_rate’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10639:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_channel’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10682:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_txpower_index’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10740:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char input[wrqu->length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_txpower’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10765:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_ant_tx’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10794:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_ant_rx’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:10833:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_disable_bt_coexist’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11078:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8 input[wrqu->data.length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_arx’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11117:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_pwrtrk’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11256:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8   input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_psd’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11292:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8  input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_dump’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11395:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8  input[wrqu->length];
  ^~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_phypara’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11420:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char  input[wrqu->length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_SetRFPath’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11445:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char  input[wrqu->data.length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_QueryDrv’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11471:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  char input[wrqu->data.length];
  ^~~~
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c: In function ‘rtw_mp_PwrCtlDM’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.c:11511:2: error: ISO C90 forbids variable length array ‘input’ [-Werror=vla]
  u8  input[wrqu->length];
  ^~
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_cfg80211.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/rtw_cfgvendor.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/wifi_regd.o
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_get_systime_us’:
/var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_cfg80211.c:354:2: error: implicit declaration of function ‘get_monotonic_boottime’; did you mean ‘getboottime’? [-Werror=implicit-function-declaration]
  get_monotonic_boottime(&ts);
  ^~~~~~~~~~~~~~~~~~~~~~
  getboottime
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/rtw_android.o
  CC [M]  /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/rtw_proc.o
cc1: all warnings being treated as errors
make[2]: *** [scripts/Makefile.build:291: /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_cfg80211.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
make[2]: *** [scripts/Makefile.build:291: /var/lib/dkms/rtl8812au/4.3.14/build/os_dep/linux/ioctl_linux.o] Error 1
make[1]: *** [Makefile:1563: _module_/var/lib/dkms/rtl8812au/4.3.14/build] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.20.0-arch1-1-ARCH/build'
make: *** [Makefile:1608: modules] Error 2
ghost commented 5 years ago

Actually this repository seems to be unmaintained for some time, so I suggest using https://github.com/aircrack-ng/rtl8812au/tree/v5.3.4 , which is actively maintained.

PhasecoreX commented 5 years ago

Manually cloning/installing it from that repo has fixed everything for me. I had initially disregarded it because I was installing it via AUR, which seems to be broken at the moment.

Thank you!

dorald commented 5 years ago

Thank you @gojpdchx you saved my time :)

chaotaklon commented 5 years ago

added support for linux v4.20 https://github.com/chaotaklon/rtl8812AU_8821AU_linux