brektrou / rtl8821CU

Realtek RTL8811CU/RTL8821CU USB Wi-Fi adapter driver for Linux
GNU General Public License v2.0
1.58k stars 458 forks source link

Multiple compilation errors on linux 6.1.19 #216

Open vitek opened 1 year ago

vitek commented 1 year ago
(master) vitja@vitja-laptop:~/work/rtl8821CU$ LC_ALL=C make -k
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.1.19-gentoo-dist/build M=/home/vitja/work/rtl8821CU  modules
make[1]: Entering directory '/usr/src/linux-6.1.19-gentoo-dist'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-pc-linux-gnu-gcc (Gentoo 12.2.1_p20230121-r1 p10) 12.2.1 20230121
  You are using:           gcc (Gentoo 12.2.1_p20230121-r1 p10) 12.2.1 20230121
  CC [M]  /home/vitja/work/rtl8821CU/os_dep/linux/os_intfs.o
/home/vitja/work/rtl8821CU/os_dep/linux/os_intfs.c: В функции «rtw_os_ndev_register»:
/home/vitja/work/rtl8821CU/os_dep/linux/os_intfs.c:1646:9: ошибка: слишком много аргументов в вызове функции «netif_napi_add»
 1646 |         netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT);
      |         ^~~~~~~~~~~~~~
In file included from /home/vitja/work/rtl8821CU/include/osdep_service_linux.h:30,
                 from /home/vitja/work/rtl8821CU/include/osdep_service.h:50,
                 from /home/vitja/work/rtl8821CU/include/drv_types.h:27,
                 from /home/vitja/work/rtl8821CU/os_dep/linux/os_intfs.c:17:
./include/linux/netdevice.h:2569:1: замечание: объявлено здесь
 2569 | netif_napi_add(struct net_device *dev, struct napi_struct *napi,
      | ^~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:250: /home/vitja/work/rtl8821CU/os_dep/linux/os_intfs.o] Ошибка 1
  CC [M]  /home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.o
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c: В функции «rtw_cfg80211_ch_switch_notify»:
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:420:9: ошибка: слишком мало аргументов в вызове функции «cfg80211_ch_switch_notify»
  420 |         cfg80211_ch_switch_notify(adapter->pnetdev, &chdef);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/vitja/work/rtl8821CU/include/osdep_service_linux.h:93,
                 from /home/vitja/work/rtl8821CU/include/osdep_service.h:50,
                 from /home/vitja/work/rtl8821CU/include/drv_types.h:27,
                 from /home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:17:
./include/net/cfg80211.h:8276:6: замечание: объявлено здесь
 8276 | void cfg80211_ch_switch_notify(struct net_device *dev,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c: В функции «rtw_cfg80211_indicate_connect»:
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:1088:26: ошибка: «struct cfg80211_roam_info» не содержит элемента с именем «bssid»
 1088 |                 roam_info.bssid = cur_network->network.MacAddress;
      |                          ^
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c: В функции «cfg80211_rtw_scan»:
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:2867:33: предупреждение: the comparison will always evaluate as «true» for the address of «ssid» will never be NULL [-Waddress]
 2867 |                 if (ssids->ssid != NULL
      |                                 ^~
./include/net/cfg80211.h:2359:12: замечание: «ssid» объявлено здесь
 2359 |         u8 ssid[IEEE80211_MAX_SSID_LEN];
      |            ^~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c: На верхнем уровне:
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9381:20: ошибка: initialization of «int (*)(struct wiphy *, struct net_device *, int,  u8,  bool,  const u8 *, struct key_params *)» {aka «int (*)(struct wiphy *, struct net_device *, int,  unsigned char,  _Bool,  const unsigned char *, struct key_params *)»} from incompatible pointer type «int (*)(struct wiphy *, struct net_device *, u8,  bool,  const u8 *, struct key_params *)» {aka «int (*)(struct wiphy *, struct net_device *, unsigned char,  _Bool,  const unsigned char *, struct key_params *)»} [-Werror=incompatible-pointer-types]
 9381 |         .add_key = cfg80211_rtw_add_key,
      |                    ^~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9381:20: замечание: (где-то рядом с инициализацией для «rtw_cfg80211_ops.add_key»)
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9382:20: ошибка: initialization of «int (*)(struct wiphy *, struct net_device *, int,  u8,  bool,  const u8 *, void *, void (*)(void *, struct key_params *))» {aka «int (*)(struct wiphy *, struct net_device *, int,  unsigned char,  _Bool,  const unsigned char *, void *, void (*)(void *, struct key_params *))»} from incompatible pointer type «int (*)(struct wiphy *, struct net_device *, u8,  bool,  const u8 *, void *, void (*)(void *, struct key_params *))» {aka «int (*)(struct wiphy *, struct net_device *, unsigned char,  _Bool,  const unsigned char *, void *, void (*)(void *, struct key_params *))»} [-Werror=incompatible-pointer-types]
 9382 |         .get_key = cfg80211_rtw_get_key,
      |                    ^~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9382:20: замечание: (где-то рядом с инициализацией для «rtw_cfg80211_ops.get_key»)
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9383:20: ошибка: initialization of «int (*)(struct wiphy *, struct net_device *, int,  u8,  bool,  const u8 *)» {aka «int (*)(struct wiphy *, struct net_device *, int,  unsigned char,  _Bool,  const unsigned char *)»} from incompatible pointer type «int (*)(struct wiphy *, struct net_device *, u8,  bool,  const u8 *)» {aka «int (*)(struct wiphy *, struct net_device *, unsigned char,  _Bool,  const unsigned char *)»} [-Werror=incompatible-pointer-types]
 9383 |         .del_key = cfg80211_rtw_del_key,
      |                    ^~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9383:20: замечание: (где-то рядом с инициализацией для «rtw_cfg80211_ops.del_key»)
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9384:28: ошибка: initialization of «int (*)(struct wiphy *, struct net_device *, int,  u8,  bool,  bool)» {aka «int (*)(struct wiphy *, struct net_device *, int,  unsigned char,  _Bool,  _Bool)»} from incompatible pointer type «int (*)(struct wiphy *, struct net_device *, u8,  bool,  bool)» {aka «int (*)(struct wiphy *, struct net_device *, unsigned char,  _Bool,  _Bool)»} [-Werror=incompatible-pointer-types]
 9384 |         .set_default_key = cfg80211_rtw_set_default_key,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9384:28: замечание: (где-то рядом с инициализацией для «rtw_cfg80211_ops.set_default_key»)
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9386:33: ошибка: initialization of «int (*)(struct wiphy *, struct net_device *, int,  u8)» {aka «int (*)(struct wiphy *, struct net_device *, int,  unsigned char)»} from incompatible pointer type «int (*)(struct wiphy *, struct net_device *, u8)» {aka «int (*)(struct wiphy *, struct net_device *, unsigned char)»} [-Werror=incompatible-pointer-types]
 9386 |         .set_default_mgmt_key = cfg80211_rtw_set_default_mgmt_key,
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9386:33: замечание: (где-то рядом с инициализацией для «rtw_cfg80211_ops.set_default_mgmt_key»)
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9416:20: ошибка: initialization of «int (*)(struct wiphy *, struct net_device *, unsigned int)» from incompatible pointer type «int (*)(struct wiphy *, struct net_device *)» [-Werror=incompatible-pointer-types]
 9416 |         .stop_ap = cfg80211_rtw_stop_ap,
      |                    ^~~~~~~~~~~~~~~~~~~~
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9416:20: замечание: (где-то рядом с инициализацией для «rtw_cfg80211_ops.stop_ap»)
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c: В функции «rtw_wdev_unregister»:
/home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.c:9682:17: ошибка: «struct wireless_dev» не содержит элемента с именем «current_bss»
 9682 |         if (wdev->current_bss) {
      |                 ^~
cc1: некоторые предупреждения считаются ошибками
make[2]: *** [scripts/Makefile.build:250: /home/vitja/work/rtl8821CU/os_dep/linux/ioctl_cfg80211.o] Ошибка 1
make[2]: Цель «/home/vitja/work/rtl8821CU/» не была пересобрана из-за ошибок.
make[1]: *** [Makefile:2012: /home/vitja/work/rtl8821CU] Error 2
make[1]: Target 'modules' not remade because of errors.
make[1]: Leaving directory '/usr/src/linux-6.1.19-gentoo-dist'
make: *** [Makefile:2217: modules] Error 2
make: Target 'module' not remade because of errors.
wiredmatt commented 1 year ago

Getting the same on 6.3.1, completely broke the driver. With & without dkms

With DKMS

DKMS make.log for rtl8821CU-5.4.1 for kernel 6.3.1-arch2-1 (x86_64)
Mon May 15 09:53:05 AM -03 2023
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.3.1-arch2-1/build M=/var/lib/dkms/rtl8821CU/5.4.1/build  modules
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_cmd.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_security.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_debug.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_io.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ioctl_query.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ioctl_set.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ieee80211.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_mlme.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_mlme_ext.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_mi.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_wlan_util.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_vht.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_pwrctrl.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_rf.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_recv.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_sta_mgt.o
/var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_sta_mgt.c: In function ‘rtw_mfree_stainfo’:
/var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_sta_mgt.c:379:25: warning: the comparison will always evaluate as ‘true’ for the address of ‘lock’ will never be NULL [-Waddress]
  379 |         if (&psta->lock != NULL)
      |                         ^~
In file included from /var/lib/dkms/rtl8821CU/5.4.1/build/include/drv_types.h:107,
                 from /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_sta_mgt.c:17:
/var/lib/dkms/rtl8821CU/5.4.1/build/include/sta_info.h:256:17: note: ‘lock’ declared here
  256 |         _lock   lock;
      |                 ^~~~
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ap.o
/var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ap.c: In function ‘rtw_ap_update_chbw_by_ifbmp’:
/var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ap.c:4397:42: warning: the comparison will always evaluate as ‘true’ for the address of ‘padapters’ will never be NULL [-Waddress]
 4397 |                 if (!(ifbmp & BIT(i)) || !dvobj->padapters)
      |                                          ^
In file included from /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ap.c:17:
/var/lib/dkms/rtl8821CU/5.4.1/build/include/drv_types.h:1020:19: note: ‘padapters’ declared here
 1020 |         _adapter *padapters[CONFIG_IFACE_NUMBER];/*IFACE_ID_MAX*/
      |                   ^~~~~~~~~
/var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_ap.c:4417:42: warning: the comparison will always evaluate as ‘true’ for the address of ‘padapters’ will never be NULL [-Waddress]
 4417 |                 if (!(ifbmp & BIT(i)) || !dvobj->padapters)
      |                                          ^
/var/lib/dkms/rtl8821CU/5.4.1/build/include/drv_types.h:1020:19: note: ‘padapters’ declared here
 1020 |         _adapter *padapters[CONFIG_IFACE_NUMBER];/*IFACE_ID_MAX*/
      |                   ^~~~~~~~~
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/mesh/rtw_mesh.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/mesh/rtw_mesh_pathtbl.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/mesh/rtw_mesh_hwmp.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_xmit.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_p2p.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_rson.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_tdls.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_br_ext.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_iol.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_sreset.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_btcoex_wifionly.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_btcoex.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_beamforming.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_odm.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_rm.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/rtw_rm_fsm.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/core/efuse/rtw_efuse.o
  CC [M]  /var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.o
/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.c: In function ‘rtw_change_ifname’:
/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.c:2494:28: warning: passing argument 1 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2494 |         _rtw_memcpy(pnetdev->dev_addr, adapter_mac_addr(padapter), ETH_ALEN);
      |                     ~~~~~~~^~~~~~~~~~
/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.c:925:24: note: expected ‘void *’ but argument is of type ‘const unsigned char *’
  925 | void _rtw_memcpy(void *dst, const void *src, u32 sz)
      |                  ~~~~~~^~~
/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.c: In function ‘rtw_random32’:
/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.c:2618:16: error: implicit declaration of function ‘prandom_u32’; did you mean ‘get_random_u32’? [-Werror=implicit-function-declaration]
 2618 |         return prandom_u32();
      |                ^~~~~~~~~~~
      |                get_random_u32
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:252: /var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.o] Error 1
make[1]: *** [Makefile:2025: /var/lib/dkms/rtl8821CU/5.4.1/build] Error 2
make: *** [Makefile:2217: modules] Error 2

Without

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.3.1-arch2-1/build M=/home/mateo/build/rtl8821CU  modules
  CC [M]  /home/mateo/build/rtl8821CU/os_dep/osdep_service.o
/home/mateo/build/rtl8821CU/os_dep/osdep_service.c: In function ‘rtw_change_ifname’:
/home/mateo/build/rtl8821CU/os_dep/osdep_service.c:2494:28: warning: passing argument 1 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2494 |         _rtw_memcpy(pnetdev->dev_addr, adapter_mac_addr(padapter), ETH_ALEN);
      |                     ~~~~~~~^~~~~~~~~~
/home/mateo/build/rtl8821CU/os_dep/osdep_service.c:925:24: note: expected ‘void *’ but argument is of type ‘const unsigned char *’
  925 | void _rtw_memcpy(void *dst, const void *src, u32 sz)
      |                  ~~~~~~^~~
/home/mateo/build/rtl8821CU/os_dep/osdep_service.c: In function ‘rtw_random32’:
/home/mateo/build/rtl8821CU/os_dep/osdep_service.c:2618:16: error: implicit declaration of function ‘prandom_u32’; did you mean ‘get_random_u32’? [-Werror=implicit-function-declaration]
 2618 |         return prandom_u32();
      |                ^~~~~~~~~~~
      |                get_random_u32
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:252: /home/mateo/build/rtl8821CU/os_dep/osdep_service.o] Error 1
make[1]: *** [Makefile:2025: /home/mateo/build/rtl8821CU] Error 2
make: *** [Makefile:2217: modules] Error 2
[sudo] password for mateo:
mkdir -p /lib/modules/6.3.1-arch2-1/kernel/drivers/net/wireless/realtek/rtl8821cu/
install -p -m 644 8821cu.ko  /lib/modules/6.3.1-arch2-1/kernel/drivers/net/wireless/realtek/rtl8821cu/
install: cannot stat '8821cu.ko': No such file or directory
make: *** [Makefile:2224: install] Error 1
wiredmatt commented 1 year ago

This repo is working fine for me: https://github.com/morrownr/8821cu-20210916, it's up to date

magarto commented 11 months ago

With this repo 5 GHz is not working for me

This repo is working fine for me: https://github.com/morrownr/8821cu-20210916, it's up to date