Skip to content

[BUG] Unable to install/build rtl8812eu driver on Nvidia Jetson Orin Nano #421

@jmssa

Description

@jmssa

Describe the bug
Both "sudo ./dkms-install.sh" and "make" finish with errors when attempting to install rtl8812eu driver.

To Reproduce

$ git clone -b v5.15.0.1 https://github.com/svpcom/rtl8812eu.git
$ cd rtl8812eu/
$ sudo ./dkms-install.sh  #or make

Expected behavior
Finishing installation or building and detecting the wifi module the same as my x86 laptop.

Screenshots
Not applicable, I believe.

Your setup (please complete the following information):

Additional context
The make.log results in

DKMS make.log for rtl88x2eu-5.15.0.1 for kernel 5.15.148-tegra (aarch64)
Sun Apr 20 08:02:11 PM WEST 2025
make ARCH=arm64 CROSS_COMPILE= -C /lib/modules/5.15.148-tegra/build M=/var/lib/dkms/rtl88x2eu/5.15.0.1/build  modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.148-tegra-ubuntu22.04_aarch64/3rdparty/canonical/linux-jammy/kernel-source'
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_cmd.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_security.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_debug.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_io.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_ioctl_query.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_ioctl_set.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_ieee80211.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_mlme.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_mlme_ext.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_mi.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_wlan_util.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_vht.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_pwrctrl.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_rf.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_chplan.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_regdb_rtk.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_chset.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_dfs.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_txpwr.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/monitor/rtw_radiotap.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_recv.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_sta_mgt.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_ap.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/wds/rtw_wds.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/mesh/rtw_mesh.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/mesh/rtw_mesh_pathtbl.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/mesh/rtw_mesh_hwmp.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_xmit.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_p2p.o
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_recv.c: In function ‘validate_mp_recv_frame’:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_recv.c:3906:25: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
 3906 |                         for (i = 0; i < precv_frame->u.hdr.len; i = i + 8)
      |                         ^~~
In file included from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/drv_types.h:60,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_recv.c:17:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/rtw_debug.h:52:33: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
   52 |         #define RTW_INFO(x,...) do {} while (0)
      |                                 ^~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_recv.c:3909:33: note: in expansion of macro ‘RTW_INFO’
 3909 |                                 RTW_INFO("#############################\n");
      |                                 ^~~~~~~~
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_rson.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_tdls.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_br_ext.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_iol.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_sreset.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_btcoex_wifionly.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_btcoex.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_beamforming.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_odm.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_rm.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_rm_fsm.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_ft.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_wnm.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_mbo.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_rm_util.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/efuse/rtw_efuse.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_roch.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-internal.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-internal-enc.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-gcm.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-ccm.o
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/efuse/rtw_efuse.c: In function ‘rtw_efuse_analyze’:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/efuse/rtw_efuse.c:1091:17: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
 1091 |                 if (i % 16 == 0)
      |                 ^~
In file included from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/drv_types.h:60,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/efuse/rtw_efuse.c:17:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/rtw_debug.h:261:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
  261 |         do {\
      |         ^~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/efuse/rtw_efuse.c:1093:25: note: in expansion of macro ‘_RTW_PRINT_SEL’
 1093 |                         _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s"
      |                         ^~~~~~~~~~~~~~
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-omac1.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/ccmp.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/gcmp.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-siv.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/aes-ctr.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/sha256-internal.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/sha256.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/sha256-prf.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/crypto/rtw_crypto_wrap.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/core/rtw_swcrypto.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/osdep_service.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/os_intfs.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/usb_intf.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/usb_ops_linux.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_linux.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/xmit_linux.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/mlme_linux.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/recv_linux.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/rtw_cfgvendor.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/wifi_regd.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/rtw_android.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/rtw_proc.o
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/nlrtw.o
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_cfg80211_ch_switch_notify’:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:515:17: error: too many arguments to function ‘cfg80211_ch_switch_started_notify’
  515 |                 cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, 0, false);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/osdep_service_linux.h:98,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/osdep_service.h:59,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/drv_types.h:27,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:17:
./include/net/cfg80211.h:7716:6: note: declared here
 7716 | void cfg80211_ch_switch_started_notify(struct net_device *dev,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:540:9: error: too many arguments to function ‘cfg80211_ch_switch_notify’
  540 |         cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/osdep_service_linux.h:98,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/osdep_service.h:59,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/include/drv_types.h:27,
                 from /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:17:
./include/net/cfg80211.h:7702:6: note: declared here
 7702 | void cfg80211_ch_switch_notify(struct net_device *dev,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_cfg80211_indicate_connect’:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:1222:26: error: ‘struct cfg80211_roam_info’ has no member named ‘links’
 1222 |                 roam_info.links[0].bssid = cur_network->network.MacAddress;
      |                          ^
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/rtw_rhashtable.o
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c: At top level:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10981:20: error: initialization of ‘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 *)’} from incompatible pointer type ‘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 *)’} [-Werror=incompatible-pointer-types]
10981 |         .add_key = cfg80211_rtw_add_key,
      |                    ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10981:20: note: (near initialization for ‘rtw_cfg80211_ops.add_key’)
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10982:20: error: initialization of ‘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 *))’} from incompatible pointer type ‘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 *))’} [-Werror=incompatible-pointer-types]
10982 |         .get_key = cfg80211_rtw_get_key,
      |                    ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10982:20: note: (near initialization for ‘rtw_cfg80211_ops.get_key’)
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10983:20: error: initialization of ‘int (*)(struct wiphy *, struct net_device *, u8,  bool,  const u8 *)’ {aka ‘int (*)(struct wiphy *, struct net_device *, unsigned char,  _Bool,  const unsigned char *)’} from incompatible pointer type ‘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 *)’} [-Werror=incompatible-pointer-types]
10983 |         .del_key = cfg80211_rtw_del_key,
      |                    ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10983:20: note: (near initialization for ‘rtw_cfg80211_ops.del_key’)
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10984:28: error: initialization of ‘int (*)(struct wiphy *, struct net_device *, u8,  bool,  bool)’ {aka ‘int (*)(struct wiphy *, struct net_device *, unsigned char,  _Bool,  _Bool)’} from incompatible pointer type ‘int (*)(struct wiphy *, struct net_device *, int,  u8,  bool,  bool)’ {aka ‘int (*)(struct wiphy *, struct net_device *, int,  unsigned char,  _Bool,  _Bool)’} [-Werror=incompatible-pointer-types]
10984 |         .set_default_key = cfg80211_rtw_set_default_key,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10984:28: note: (near initialization for ‘rtw_cfg80211_ops.set_default_key’)
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10986:33: error: initialization of ‘int (*)(struct wiphy *, struct net_device *, u8)’ {aka ‘int (*)(struct wiphy *, struct net_device *, unsigned char)’} from incompatible pointer type ‘int (*)(struct wiphy *, struct net_device *, int,  u8)’ {aka ‘int (*)(struct wiphy *, struct net_device *, int,  unsigned char)’} [-Werror=incompatible-pointer-types]
10986 |         .set_default_mgmt_key = cfg80211_rtw_set_default_mgmt_key,
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:10986:33: note: (near initialization for ‘rtw_cfg80211_ops.set_default_mgmt_key’)
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:11065:24: error: initialization of ‘int (*)(struct wiphy *, struct wireless_dev *, struct cfg80211_chan_def *)’ from incompatible pointer type ‘int (*)(struct wiphy *, struct wireless_dev *, unsigned int,  struct cfg80211_chan_def *)’ [-Werror=incompatible-pointer-types]
11065 |         .get_channel = cfg80211_rtw_get_channel,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:11065:24: note: (near initialization for ‘rtw_cfg80211_ops.get_channel’)
  CC [M]  /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/rtw_radiotap.o
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_wdev_unregister’:
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:11330:17: error: ‘struct wireless_dev’ has no member named ‘valid_links’
11330 |         if (wdev->valid_links && wdev->links[0].client.current_bss)
      |                 ^~
/var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.c:11330:38: error: ‘struct wireless_dev’ has no member named ‘links’
11330 |         if (wdev->valid_links && wdev->links[0].client.current_bss)
      |                                      ^~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:295: /var/lib/dkms/rtl88x2eu/5.15.0.1/build/os_dep/linux/ioctl_cfg80211.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1912: /var/lib/dkms/rtl88x2eu/5.15.0.1/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.148-tegra-ubuntu22.04_aarch64/3rdparty/canonical/linux-jammy/kernel-source'
make: *** [Makefile:2600: modules] Error 2

Confirm you read

Thanks in advance for any help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions