morrownr / 8821au-20210708

Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets - v5.12.5.2
Other
745 stars 111 forks source link

[6.5.3] Pointer type issue. #108

Closed userwiths closed 1 year ago

userwiths commented 1 year ago

Had postponed system update of my PC for a few weeks (maybe months) did:

> pacman -Syu (updated linux kernel to 6.5.3). > reboot > ./install-driver.sh (install this driver) > Get error about Initialization of ... from incompatible pointer type ...

After downgrading to 6.3.5 the driver installed without any issues.

Exact line throwing the error: https://github.com/morrownr/8821au-20210708/blob/19660ee3f67125d2ef31b626f9fff946bd3e8d01/os_dep/linux/ioctl_cfg80211.c#L10545

Exact Output Error:

: ---------------------------
: install-driver.sh v20230227
: x86_64 (architecture)
: 16/16 (in-use/total processing units)
: 31956684 (total system memory)
: 6.5.3-arch1-1 (kernel version)
: gcc (GCC) 13.2.1 20230801
: ---------------------------

Checking for previously installed drivers.
: ---------------------------

Starting installation.
Installing 8821au.conf to /etc/modprobe.d
The non-dkms installation routines are in use.
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.5.3-arch1-1/build M=/root/driver/8821au-20210708  modules
make[1]: Entering directory '/usr/lib/modules/6.5.3-arch1-1/build'
  CC [M]  /root/driver/8821au-20210708/core/rtw_cmd.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_security.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_debug.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_io.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_ioctl_query.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_ioctl_set.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_ieee80211.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_mlme.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_mlme_ext.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_mi.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_wlan_util.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_vht.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_pwrctrl.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_rf.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_chplan.o
  CC [M]  /root/driver/8821au-20210708/core/monitor/rtw_radiotap.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_recv.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_ap.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_sta_mgt.o
  CC [M]  /root/driver/8821au-20210708/core/wds/rtw_wds.o
  CC [M]  /root/driver/8821au-20210708/core/mesh/rtw_mesh.o
  CC [M]  /root/driver/8821au-20210708/core/mesh/rtw_mesh_pathtbl.o
  CC [M]  /root/driver/8821au-20210708/core/mesh/rtw_mesh_hwmp.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_xmit.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_p2p.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_rson.o
In file included from ./include/linux/kernel.h:30,
                 from ./arch/x86/include/asm/percpu.h:27,
                 from ./arch/x86/include/asm/nospec-branch.h:14,
                 from ./arch/x86/include/asm/paravirt_types.h:27,
                 from ./arch/x86/include/asm/ptrace.h:97,
                 from ./arch/x86/include/asm/math_emu.h:5,
                 from ./arch/x86/include/asm/processor.h:13,
                 from ./arch/x86/include/asm/timex.h:5,
                 from ./include/linux/timex.h:67,
                 from ./include/linux/time32.h:13,
                 from ./include/linux/time.h:60,
                 from ./include/linux/stat.h:19,
                 from ./include/linux/module.h:13,
                 from /root/driver/8821au-20210708/include/basic_types.h:76,
                 from /root/driver/8821au-20210708/include/drv_types.h:26,
                 from /root/driver/8821au-20210708/core/rtw_rf.c:17:
/root/driver/8821au-20210708/core/rtw_rf.c: In function 'dump_txpwr_lmt':
/root/driver/8821au-20210708/core/rtw_rf.c:2003:67: warning: 'strcmp' reading 1 or more bytes from a region of size 0 [-Wstringop-overread]
 2003 |                                                                 , strcmp(ent->regd_name, rfctl->regd_name) == 0 ? rf_path_char(path) : ' ');
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/printk.h:427:33: note: in definition of macro 'printk_index_wrap'
  427 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
      |                                 ^~~~~~~~~~~
/root/driver/8821au-20210708/include/rtw_debug.h:85:26: note: in expansion of macro 'printk'
   85 |         #define _dbgdump printk
      |                          ^~~~~~
/root/driver/8821au-20210708/include/rtw_debug.h:263:25: note: in expansion of macro '_RTW_PRINT'
  263 |                         _RTW_PRINT(fmt, ##arg); \
      |                         ^~~~~~~~~~
/root/driver/8821au-20210708/core/rtw_rf.c:2002:57: note: in expansion of macro '_RTW_PRINT_SEL'
 2002 |                                                         _RTW_PRINT_SEL(sel, "%3c "
      |                                                         ^~~~~~~~~~~~~~
In file included from /root/driver/8821au-20210708/core/rtw_rf.c:18:
/root/driver/8821au-20210708/include/hal_data.h:345:14: note: source object 'regd_name' of size 0
  345 |         char regd_name[0];
      |              ^~~~~~~~~
In file included from /root/driver/8821au-20210708/include/drv_types.h:60:
/root/driver/8821au-20210708/core/rtw_rf.c:2003:67: warning: 'strcmp' reading 1 or more bytes from a region of size 0 [-Wstringop-overread]
 2003 |                                                                 , strcmp(ent->regd_name, rfctl->regd_name) == 0 ? rf_path_char(path) : ' ');
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/driver/8821au-20210708/include/rtw_debug.h:265:46: note: in definition of macro '_RTW_PRINT_SEL'
  265 |                         _seqdump(sel, fmt, ##arg) /*rtw_warn_on(1)*/; \
      |                                              ^~~
/root/driver/8821au-20210708/include/hal_data.h:345:14: note: source object 'regd_name' of size 0
  345 |         char regd_name[0];
      |              ^~~~~~~~~
  CC [M]  /root/driver/8821au-20210708/core/rtw_tdls.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_br_ext.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_iol.o
/root/driver/8821au-20210708/core/rtw_rf.c: In function '_rtw_txpwr_lmt_get_by_name':
/root/driver/8821au-20210708/core/rtw_rf.c:2215:21: warning: 'strcmp' reading 1 or more bytes from a region of size 0 [-Wstringop-overread]
 2215 |                 if (strcmp(ent->regd_name, regd_name) == 0) {
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/driver/8821au-20210708/include/hal_data.h:345:14: note: source object 'regd_name' of size 0
  345 |         char regd_name[0];
      |              ^~~~~~~~~
  CC [M]  /root/driver/8821au-20210708/core/rtw_sreset.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_btcoex_wifionly.o
/root/driver/8821au-20210708/core/rtw_mlme_ext.c: In function 'rtw_txpwr_init_regd':
/root/driver/8821au-20210708/core/rtw_mlme_ext.c:201:21: warning: 'strcmp' reading 1 or more bytes from a region of size 0 [-Wstringop-overread]
  201 |                 if (strcmp(exc->regd_name, regd_str(TXPWR_LMT_NONE)) == 0)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /root/driver/8821au-20210708/include/drv_types.h:62,
                 from /root/driver/8821au-20210708/core/rtw_mlme_ext.c:17:
/root/driver/8821au-20210708/include/rtw_rf.h:267:14: note: source object 'regd_name' of size 0
  267 |         char regd_name[0];
      |              ^~~~~~~~~
/root/driver/8821au-20210708/core/rtw_mlme_ext.c:203:26: warning: 'strcmp' reading 1 or more bytes from a region of size 0 [-Wstringop-overread]
  203 |                 else if (strcmp(exc->regd_name, regd_str(TXPWR_LMT_WW)) == 0)
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/driver/8821au-20210708/include/rtw_rf.h:267:14: note: source object 'regd_name' of size 0
  267 |         char regd_name[0];
      |              ^~~~~~~~~
  CC [M]  /root/driver/8821au-20210708/core/rtw_btcoex.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_beamforming.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_odm.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_rm.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_rm_fsm.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_ft.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_wnm.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_mbo.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_rm_util.o
  CC [M]  /root/driver/8821au-20210708/core/efuse/rtw_efuse.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_roch.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-internal.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-internal-enc.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-gcm.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-ccm.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-omac1.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/ccmp.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/gcmp.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-siv.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/aes-ctr.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/sha256-internal.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/sha256.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/sha256-prf.o
  CC [M]  /root/driver/8821au-20210708/core/crypto/rtw_crypto_wrap.o
  CC [M]  /root/driver/8821au-20210708/core/rtw_swcrypto.o
  CC [M]  /root/driver/8821au-20210708/os_dep/osdep_service.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/os_intfs.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/usb_intf.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/ioctl_linux.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/usb_ops_linux.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/xmit_linux.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/mlme_linux.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/recv_linux.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/ioctl_cfg80211.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/rtw_cfgvendor.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/wifi_regd.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/rtw_android.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/rtw_proc.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/nlrtw.o
  CC [M]  /root/driver/8821au-20210708/os_dep/linux/rtw_rhashtable.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_intf.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_com.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_com_phycfg.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_phy.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_dm.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_dm_acs.o
/root/driver/8821au-20210708/os_dep/linux/ioctl_cfg80211.c:10542:22: error: initialization of 'int (*)(struct wiphy *, struct net_device *, const u8 *, int,  u8,  u8,  u16,  u32,  bool,  const u8 *, size_t)' {aka 'int (*)(struct wiphy *, struct net_device *, const unsigned char *, int,  unsigned char,  unsigned char,  short unsigned int,  unsigned int,  _Bool,  const unsigned char *, long unsigned int)'} from incompatible pointer type 'int (*)(struct wiphy *, struct net_device *, const u8 *, u8,  u8,  u16,  u32,  bool,  const u8 *, size_t)' {aka 'int (*)(struct wiphy *, struct net_device *, const unsigned char *, unsigned char,  unsigned char,  short unsigned int,  unsigned int,  _Bool,  const unsigned char *, long unsigned int)'} [-Werror=incompatible-pointer-types]
10542 |         .tdls_mgmt = cfg80211_rtw_tdls_mgmt,
      |                      ^~~~~~~~~~~~~~~~~~~~~~
/root/driver/8821au-20210708/os_dep/linux/ioctl_cfg80211.c:10542:22: note: (near initialization for 'rtw_cfg80211_ops.tdls_mgmt')
  CC [M]  /root/driver/8821au-20210708/hal/hal_btcoex_wifionly.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_btcoex.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_mp.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_mcc.o
  CC [M]  /root/driver/8821au-20210708/hal/hal_hci/hal_usb.o
  CC [M]  /root/driver/8821au-20210708/hal/led/hal_led.o
  CC [M]  /root/driver/8821au-20210708/hal/led/hal_usb_led.o
  CC [M]  /root/driver/8821au-20210708/hal/HalPwrSeqCmd.o
  CC [M]  /root/driver/8821au-20210708/hal/rtl8812a/Hal8812PwrSeq.o
  CC [M]  /root/driver/8821au-20210708/hal/rtl8812a/Hal8821APwrSeq.o
  CC [M]  /root/driver/8821au-20210708/hal/rtl8812a/rtl8812a_xmit.o
  CC [M]  /root/driver/8821au-20210708/hal/rtl8812a/rtl8812a_sreset.o
  CC [M]  /root/driver/8821au-20210708/hal/rtl8812a/rtl8812a_hal_init.o
  CC [M]  /root/driver/8821au-20210708/hal/rtl8812a/rtl8812a_phycfg.o
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:243: /root/driver/8821au-20210708/os_dep/linux/ioctl_cfg80211.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [/usr/lib/modules/6.5.3-arch1-1/build/Makefile:2032: /root/driver/8821au-20210708] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.5.3-arch1-1/build'
make: *** [Makefile:2501: modules] Error 2
An error occurred:  2
Please report this error.
Please copy all screen output and paste it into the problem report.
You will need to run the following before reattempting installation.
$ sudo ./remove-driver.sh
userwiths commented 1 year ago

iw dev output:

hy#0
    Interface wlan0
        ifindex 8
        wdev 0x1
        addr 28:87:ba:cc:fd:39
        ssid Space
        type managed
        channel 8 (2447 MHz), width: 20 MHz, center1: 2447 MHz
        txpower 16.00 dBm

iw reg get:

global
country 00: DFS-UNSET
    (2402 - 2472 @ 40), (6, 20), (N/A)
    (2457 - 2482 @ 20), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
    (2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
    (5170 - 5250 @ 80), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
    (5250 - 5330 @ 80), (6, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
    (5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
    (5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN
    (57240 - 63720 @ 2160), (N/A, 0), (N/A)

lsusb output:

Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 002: ID 26ce:01a2 ASRock LED Controller
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 3434:0331 Keychron Keychron V3
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver
Bus 001 Device 003: ID 2357:0120 TP-Link Archer T2U PLUS [RTL8821AU]
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
morrownr commented 1 year ago

Hi @userwiths

This is happening because the driver has not been updated on your computer for quite a while. I have been working on install-driver.sh to add some new features and to provide information that would prevent this. I'll update this driver as able but for now, let me post what I am adding about updating the driver:


Info: Update this driver with the following commands as needed:

$ git pull $ sudo sh install-driver.sh

Note: Updates to this driver SHOULD be performed before distro upgrades such as Ubuntu 23.10 to 24.04. Note: Updates can be performed as often as you like. It is recommended to update at least every 2 months. Note: Work on this driver, like the Linux kernel, is continuous.


Go ahead and try the above commands and see if you are back in business.

userwiths commented 1 year ago

Oh, damn. I feel a little stupid now.

You are correct, sorry for the inconvenience and thanks for the assistance, will make sure to update the driver regularly from now on.

morrownr commented 1 year ago

Hi @userwiths

Don't worry. These Realtek out-of-kernel drivers are not made for us regular users. They seem to be made for programmers working on embedded projects. I've done the best I can to help and I continue that work but there is an alternative that you may want to know about going into the future:

The Main Menu for this site is:

https://github.com/morrownr/USB-WiFi

Recommend you read menu items 1 and 2 to understand the current state of the Linux usb wifi market and see many adapters that use in-kernel drivers. AXE3000 usb wifi adapters are available and the WiFi 7 usb driver for the Mediatek mt7925 is going into the kernel at this time.