# How do I install driver for a RTL8812AU wifi USB adapter?

**URL:** <https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089>\
**Category:** Rocky Linux Help & Support\
**Tags:** rocky-linux-8\
**Created:** [July 12, 2025, 3:15am UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089 "2025-07-12T03:15:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 12, 2025, 3:15am UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/1 "2025-07-12T03:15:35Z")

</div>

I’m running Rocky Linux 8.10 (primarily for use with Davinci Resolve Studio, which is working great.) There’s no other OS on this i7-5820K CPU, 32GB RAM NVIDIA 980Ti 6GB VRAM GPU system.

The WiFi adapter is new and includes a CD containing the driver, but as I’m a Linux newbie, I don’t know how to install the driver. Looking at the CD’s contents, I see it contains 2 directories, one directory named “RTL8812BU\_WiFi\_linux” (containing “RTL88x2BU\_WiFi\_linux\_v5.2.4.4\_25643.20171212\_COEX20171012-5044.zip”) and another directory named “RTL8811CU\_WiFi\_linux” (containing “RTL8811CU\_8821CU\_WiFi\_linux\_v5.2.5.3.zip”).

I’d greatly appreciate step-by-step instructions on how to use the above info to get my wifi working. I searched thru posts in this forum but didn’t find a solution. Thank you in advance.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 12, 2025, 11:05pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/2 "2025-07-12T23:05:00Z")

</div>

The vendor emailed a link which downloaded a file named …

RTL8812BU-AC1200M.rar

… but without instructions explaining what to do with this file.

Meanwhile, I read info on this page …

> **[start \[ELRepo Wiki\]](https://elrepo.org/wiki/doku.php?id=start)**

… and tried following some of the instructions there, but a driver for the rtl8812au WiFi adapter doesn’t seem to be available via the links there – but I could be mistaken, because I don’t know what I’m doing.

Any help will be greatly appreciated!

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 13, 2025, 8:10am UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/3 "2025-07-13T08:10:31Z")

</div>

Hi,

Please provide the out of `lsusb`

If the command fails please issue `sudo dnf install usbutils`

Then re-run the `lsusb`

Regards Tom.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 4:58pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/4 "2025-07-13T16:58:34Z")

</div>

Bus 002 Device 002: ID 8087:8002 Intel Corp. 8 channel internal hub

```auto
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 045b:0210 Hitachi, Ltd 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 006: ID 045b:0209 Hitachi, Ltd 
Bus 003 Device 004: ID 096e:0201 Feitian Technologies, Inc. USB DONGLE
Bus 003 Device 007: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 003 Device 005: ID 062a:0000 MosArt Semiconductor Corp. Optical mouse
Bus 003 Device 003: ID 058f:9254 Alcor Micro Corp. Hub
Bus 003 Device 002: ID 0bda:b812 Realtek Semiconductor Corp. RTL88x2bu [AC1200 Techkey]
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

```

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 5:00pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/5 "2025-07-13T17:00:33Z")

</div>

The wifi adapter is …

Realtek Semiconductor Corp. RTL88x2bu [AC1200 Techkey]

… correct?

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 5:15pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/6 "2025-07-13T17:15:42Z")

</div>

When I unzip the file …  
RTL88x2BU\_WiFi\_linux\_v5.2.4.4\_25643.20171212\_COEX20171012-5044.zip

… I get the following (apologies for posting so much text) …

```auto
Archive: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044.zip
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_JB_4.2/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_JB_4.2/linux-3.0.42_STATION_INFO_ASSOC_REQ_IES.diff  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_JB_4.2/Realtek_Wi-Fi_SDK_for_Android_JB_4.pdf  
 extracting: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_JB_4.2/realtek_wifi_SDK_for_android_JB_4.2_20130208.tar.gz  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_KK_4.4/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_KK_4.4/linux-3.0.42_STATION_INFO_ASSOC_REQ_IES.diff  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_KK_4.4/Realtek_Wi-Fi_SDK_for_Android_KK_4.4.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_KK_4.4/realtek_wifi_SDK_for_android_KK_4.4_20140117.tar.gz  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_L_5.x/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_L_5.x/linux-3.0.42_STATION_INFO_ASSOC_REQ_IES.diff  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_L_5.x/Realtek_Wi-Fi_SDK_for_Android_L_5.pdf  
 extracting: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_L_5.x/realtek_wifi_SDK_for_android_L_5.x_20150811.tgz  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_M_6.x/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_M_6.x/linux-3.0.42_STATION_INFO_ASSOC_REQ_IES.diff  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_M_6.x/Realtek_Wi-Fi_SDK_for_Android_M_6.pdf  
 extracting: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_M_6.x/realtek_wifi_SDK_for_android_L_6.x_20151116.tgz  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_N_7.0/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_N_7.0/linux-3.0.42_STATION_INFO_ASSOC_REQ_IES.diff  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_N_7.0/Realtek_Wi-Fi_SDK_for_Android_N_7.0.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_N_7.0/realtek_wifi_SDK_for_android_N_7.0_20161024.zip  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_O_8.0/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_O_8.0/linux-3.0.42_STATION_INFO_ASSOC_REQ_IES.diff  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_O_8.0/Realtek_Wi-Fi_SDK_for_Android_O_8.0.pdf  
 extracting: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/android_ref_codes_O_8.0/realtek_wifi_SDK_for_android_O_8.0_20170925.tar.gz  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/btcoex/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/btcoex/HowTo_debug_BT_coexistence.pdf  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/btcoex/script/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/btcoex/script/btcoex_lnx.sh  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/btcoex/script/btcoex_win.bat  
 extracting: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/btcoex/script/Coex_Dbg.log  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Driver_Configuration_for_RF_Regulatory_Certification.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/HowTo_enable_and_verify_TDLS_function_in_Wi-Fi_driver.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/HowTo_enable_driver_to_support_80211d.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/HowTo_enable_the_power_saving_functionality.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/HowTo_support_more_VidPids.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/HowTo_support_WIFI_certification_test.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/How_to_append_vendor_specific_ie_to_driver_management_frames.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/How_to_set_driver_debug_log_level.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/linux_dhcp_server_notes.txt  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Miracast_for_Realtek_WiFi.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Quick_Start_Guide_for_Adaptivity_and_Carrier_Sensing_Test.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Quick_Start_Guide_for_Bridge.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Quick_Start_Guide_for_SoftAP.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Quick_Start_Guide_for_Station_Mode.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Quick_Start_Guide_for_WOW.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Realtek_WiFi_concurrent_mode_Introduction.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/RTK_P2P_WFD_Programming_guide.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/SoftAP_Mode_features.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/Wireless_tools_porting_guide.pdf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/document/wpa_cli_with_wpa_supplicant.pdf  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/driver/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/driver/rtl88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/install.sh  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/readme.txt  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/ReleaseNotes.pdf  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/Android.mk  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/install.sh  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/p2p_api_test_linux.c  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/p2p_test.h  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/p2p_ui_test_linux.c  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/WiFi_Direct_User_Interface/Start_Guide_P2P_User_Interface_Linux.pdf  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wireless_tools/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wireless_tools/wireless_tools.30.rtl.tar.gz  
   creating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/p2p_hostapd.conf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/rtl_hostapd_2G.conf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/rtl_hostapd_5G.conf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_0_8.conf  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_8_jb_4.2_rtw_r25670.20171213.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_8_kk_4.4_rtw_r25669.20171213.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_8_L_5.x_rtw_r24600.20171025.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_8_M_6.x_rtw_r24570.20171025.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_8_N_7.x_rtw_r24577.20171025.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_8_O_8.x_rtw_r24597.20171025.tar.gz  
  inflating: RTL88x2BU_WiFi_linux_v5.2.4.4_25643.20171212_COEX20171012-5044/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8_rtw_r24647.20171025.tar.gz

```

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 5:38pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/7 "2025-07-13T17:38:10Z")

</div>

Thanks for your help! What do I do next?

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 13, 2025, 6:49pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/8 "2025-07-13T18:49:02Z")

</div>

Hi,

From a quick google search, it looks likes on rocky linux 10, the dongle is supported by the kernel. For 8 and 9 you’ll need to compile from source. Looks like this should work:-

> **[GitHub - cilynx/rtl88x2bu: rtl88x2bu driver updated for current kernels.](https://github.com/cilynx/rtl88x2bu)**
>
> rtl88x2bu driver updated for current kernels.

Regards Tom.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 8:19pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/9 "2025-07-13T20:19:16Z")

</div>

Thanks for the link, Tom!

I downloaded the .ZIP file from the github page, and unzipped it. The github page instructions say …

In order to make direct use of the driver it should suffice to build the driver with `make` and to load it with `insmod 88x2bu.ko`

… but apparently I’m using the wrong syntax in the terminal, because I get ‘No such command: make’ errors, etc.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 8:25pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/10 "2025-07-13T20:25:06Z")

</div>

For example, I tried …

[pjd@localhost Downloads]$ sudo dnf make rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777  
[sudo] password for pjd:  
No such command: make. Please use /bin/dnf --help  
It could be a DNF plugin command, try: “dnf install ‘dnf-command(make)’”

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 13, 2025, 8:41pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/11 "2025-07-13T20:41:50Z")

</div>

Hi,

dnf is not involved, as you are trying to install from source not a pre-compiled package.

I’m not in a position test but I think this should work:-

```auto
sudo dnf install kernel-devel kernel-headers gcc make dkms`
make

```

If it fails here, which it may do as there probably dependencies missing; please post the full error message.

If the make succeeds then continue you with:-

```auto
sudo ./deploy.sh
sudo modprobe cfg80211

```

Regards Tom.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 8:48pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/12 "2025-07-13T20:48:24Z")

</div>

Cool. When I type the following in terminal and press enter …

sudo dnf install kernel-devel kernel-headers gcc make dkms`

… all I see is “\>” and nothing else seems to happen. If I then type “make” and press return, again I just see “\>”. No errors, nothing.

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 13, 2025, 9:13pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/13 "2025-07-13T21:13:40Z")

</div>

Hi,

> [@pjd](#):
>
> sudo dnf install kernel-devel kernel-headers gcc make dkms`
> 
> … all I see is “\>” and nothing else seems to happen.

Can you provide a screenshot of this, please?

Regards Tom.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 9:20pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/14 "2025-07-13T21:20:45Z")

</div>

![Screenshot from 2025-07-13 14-19-21](https://us1.discourse-cdn.com/flex020/uploads/rockylinux/original/2X/a/ac00b2ec7538cacd0430781c8c5deb951f77933a.png)

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 13, 2025, 9:28pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/15 "2025-07-13T21:28:53Z")

</div>

Sorry typo. remove the `'` after `dkms`.

Tom.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 9:46pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/16 "2025-07-13T21:46:36Z")

</div>

No worries about the typo. Some progress here, but then errors …

[pjd@localhost ~]$ cd Downloads  
[pjd@localhost Downloads]$ cd rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777  
[pjd@localhost rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777]$ sudo dnf install kernel-devel kernel-headers gcc make dkms  
[sudo] password for pjd:  
Last metadata expiration check: 4:08:26 ago on Sun 13 Jul 2025 10:35:36 AM PDT.  
Package kernel-devel-4.18.0-372.9.1.el8.x86\_64 is already installed.  
Package kernel-devel-4.18.0-553.58.1.el8\_10.x86\_64 is already installed.  
Package kernel-headers-4.18.0-553.58.1.el8\_10.x86\_64 is already installed.  
Package gcc-8.5.0-26.el8\_10.x86\_64 is already installed.  
Package make-1:4.2.1-11.el8.x86\_64 is already installed.  
Package dkms-3.2.1-1.el8.noarch is already installed.  
Dependencies resolved.  
Nothing to do.  
Complete!  
[pjd@localhost rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777]$ make  
make ARCH=x86\_64 CROSS\_COMPILE= -C /lib/modules/4.18.0-553.58.1.el8\_10.x86\_64/build M=/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777 modules  
make[1]: Entering directory ‘/usr/src/kernels/4.18.0-553.58.1.el8\_10.x86\_64’  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_cmd.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_security.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_debug.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_io.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_ioctl\_query.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_ioctl\_set.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_ieee80211.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_mlme.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_mlme\_ext.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_mi.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_wlan\_util.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_vht.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_pwrctrl.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_rf.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_chplan.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_recv.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_sta\_mgt.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_ap.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/mesh/rtw\_mesh.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/mesh/rtw\_mesh\_pathtbl.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/mesh/rtw\_mesh\_hwmp.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_xmit.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_p2p.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_rson.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_tdls.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_br\_ext.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_iol.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_sreset.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_btcoex\_wifionly.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_btcoex.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_beamforming.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_odm.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_rm.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_rm\_fsm.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/rtw\_rm\_util.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/core/efuse/rtw\_efuse.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/osdep\_service.o  
CC [M] /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.o  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c:1719:22: error: initialization of ‘u16 (\*)(struct net\_device \*, struct sk\_buff \*, struct net\_device _, u16 (_)(struct net\_device \*, struct sk\_buff \*, struct net\_device _))’ {aka ‘short unsigned int (_)(struct net\_device \*, struct sk\_buff \*, struct net\_device _, short unsigned int (_)(struct net\_device \*, struct sk\_buff \*, struct net\_device _))’} from incompatible pointer type ‘u16 (_)(struct net\_device \*, struct sk\_buff \*, void _, u16 (_)(struct net\_device \*, struct sk\_buff \*, struct net\_device _))’ {aka ‘short unsigned int (_)(struct net\_device \*, struct sk\_buff \*, void _, short unsigned int (_)(struct net\_device \*, struct sk\_buff \*, struct net\_device \*))’} [-Werror=incompatible-pointer-types]  
.ndo\_select\_queue = rtw\_select\_queue,  
^ ~~~~~~~~~~~~~~~  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c:1719:22: note: (near initialization for ‘rtw\_netdev\_ops.ndo\_select\_queue’)  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c: In function ‘rtw\_os\_ndev\_register’:  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c:1910:13: error: macro “netif\_napi\_add” passed 4 arguments, but takes just 3  
);  
^  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c:1906:2: error: ‘netif\_napi\_add’ undeclared (first use in this function); did you mean ‘netif\_napi\_del’?  
netif\_napi\_add(ndev, &adapter-\>napi, rtw\_recv\_napi\_poll  
^ ~~~~~~~~~~~~~  
netif\_napi\_del  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c:1906:2: note: each undeclared identifier is reported only once for each function it appears in  
/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.c: At top level:  
cc1: warning: unrecognized command line option ‘-Wno-stringop-overread’  
cc1: some warnings being treated as errors  
make[2]: \*\*\* [scripts/Makefile.build:318: /home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777/os\_dep/linux/os\_intfs.o] Error 1  
make[1]: \*\*\* [Makefile:1619: _module_/home/pjd/Downloads/rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777] Error 2  
make[1]: Leaving directory ‘/usr/src/kernels/4.18.0-553.58.1.el8\_10.x86\_64’  
make: \*\*\* [Makefile:2395: modules] Error 2  
[pjd@localhost rtl88x2bu-5.8.7.1\_35809.20191129\_COEX20191120-7777]$

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 13, 2025, 10:32pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/17 "2025-07-13T22:32:40Z")

</div>

Hi,

Not sure whats going on. A google search suggests the driver won’t compile for a kernel versions older than 6, but repo reports support for older versions. You could raise an issue with the developer but they have marked driver as deprecate, so I’m not sure what response you will get.

Alternatively I have found this driver:-

> **[GitHub - RinCat/RTL88x2BU-Linux-Driver: Realtek RTL88x2BU WiFi USB Driver for Linux](https://github.com/RinCat/RTL88x2BU-Linux-Driver)**
>
> Realtek RTL88x2BU WiFi USB Driver for Linux

If its going to work the instructions under “Using DKMS” should suffice.

Regards Tom.

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 10:41pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/18 "2025-07-13T22:41:11Z")

</div>

Thanks Tom. Much appreciated. I’ll try that other driver and report results.

- Peter

---

<div class="post-metadata">

**Author:** ![pjd](https://avatars.discourse-cdn.com/v4/letter/p/da6949/32.png) [@pjd](https://forums.rockylinux.org/u/pjd)\
**Post date:** [July 13, 2025, 10:56pm UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/19 "2025-07-13T22:56:08Z")

</div>

No joy. I get the following results …

========================================

[pjd@localhost ~]$ sudo git clone “[GitHub - RinCat/RTL88x2BU-Linux-Driver: Realtek RTL88x2BU WiFi USB Driver for Linux](https://github.com/RinCat/RTL88x2BU-Linux-Driver.git)” /usr/src/rtl88x2bu-git  
[sudo] password for pjd:  
Cloning into ‘/usr/src/rtl88x2bu-git’…  
remote: Enumerating objects: 2904, done.  
remote: Counting objects: 100% (491/491), done.  
remote: Compressing objects: 100% (127/127), done.  
remote: Total 2904 (delta 426), reused 367 (delta 364), pack-reused 2413 (from 3)  
Receiving objects: 100% (2904/2904), 8.78 MiB | 34.18 MiB/s, done.  
Resolving deltas: 100% (2059/2059), done.  
[pjd@localhost ~]$ sudo sed -i ‘s/PACKAGE\_VERSION=“@PKGVER@”/PACKAGE\_VERSION=“git”/g’ /usr/src/rtl88x2bu-git/dkms.conf  
[pjd@localhost ~]$ sudo dkms add -m rtl88x2bu -v git  
Creating symlink /var/lib/dkms/rtl88x2bu/git/source → /usr/src/rtl88x2bu-git  
[pjd@localhost ~]$ sudo dkms autoinstall  
Sign command: /lib/modules/4.18.0-553.58.1.el8\_10.x86\_64/build/scripts/sign-file  
Signing key: /var/lib/dkms/mok.key  
Public certificate (MOK): /var/lib/dkms/mok.pub

Autoinstall of module rtl88x2bu/git for kernel 4.18.0-553.58.1.el8\_10.x86\_64 (x86\_64)  
Building module(s)…(bad exit status: 2)  
Failed command:  
‘make’ -j12 KVER=4.18.0-553.58.1.el8\_10.x86\_64 KSRC=/lib/modules/4.18.0-553.58.1.el8\_10.x86\_64/build

Error! Bad return status for module build on kernel: 4.18.0-553.58.1.el8\_10.x86\_64 (x86\_64)  
Consult /var/lib/dkms/rtl88x2bu/git/build/make.log for more information.

Autoinstall on 4.18.0-553.58.1.el8\_10.x86\_64 succeeded for module(s) blackmagic nvidia.  
Autoinstall on 4.18.0-553.58.1.el8\_10.x86\_64 failed for module(s) rtl88x2bu(10).

Error! One or more modules failed to install during autoinstall.  
Refer to previous errors for more information.  
[pjd@localhost ~]$

==========================================

---

<div class="post-metadata">

**Author:** ![tjdoyle](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/tjdoyle/32/500_2.png) [@tjdoyle](https://forums.rockylinux.org/u/tjdoyle)\
**Post date:** [July 14, 2025, 9:49am UTC](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089/20 "2025-07-14T09:49:37Z")

</div>

Hi,

It looks to be failing in the same place as the other driver. I’ve tried applying the patch from the this issue:-

> <https://github.com/RinCat/RTL88x2BU-Linux-Driver/issues/207>
>
> Hi, 
> 
> I am trying to compile the driver on Rocky Linux with 4.18 kernel. 
> 
> B…ased on suggestion at #66, I changed to macro to 
> \`\`\`
> \#if LINUX\_VERSION\_CODE \>= KERNEL\_VERSION(4, 18, 0)
> \`\`\`
> Compilation then proceeds with the following error instead: 
> \`\`\`
> /opt/RTL88x2BU-Linux-Driver/os\_dep/linux/os\_intfs.c:2153:74: error: 
> macro "netif\_napi\_add" passed 4 arguments, but takes just 3 
> netif\_napi\_add(ndev, &adapter-\>napi, rtw\_recv\_napi\_poll, RTL\_NAPI\_WEIGHT); 
> 
> /opt/RTL88x2BU-Linux-Driver/os\_dep/linux/os\_intfs.c:2153:2: error: 
> "netif\_napi\_add" undeclared (first use in this situation); did you men 'netif\_napi\_del' ?  
> netif\_napi\_add(ndev, &adapter-\>napi, rtw\_recv\_napi\_poll, RTL\_NAPI\_WEIGHT); 
> \`\`\`
> 
> I understand that upgrading to 5.16 will likely fix the issue, but I am constrained with a clone of RHEL 8. 
> 
> Thanks.

Which gets further but still fails. I’d raise an issue with the developer, they seem quite active.

I’d include the link to the previous issue and your os and the kernel (uname -r), lsusb and the error:-

```auto
 CC [M] /home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/ioctl_linux.o
/home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.c:1862:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *, struct net_device *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *, struct net_device *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *))’} [-Werror=incompatible-pointer-types]
  .ndo_select_queue = rtw_select_queue,
                      ^ ~~~~~~~~~~~~~~~
/home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.c:1862:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
/home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.c: In function ‘rtw_os_ndev_register’:
/home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.c:2153:74: error: macro "netif_napi_add" passed 4 arguments, but takes just 3
  netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT);
                                                                          ^
/home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.c:2153:2: error: ‘netif_napi_add’ undeclared (first use in this function); did you mean ‘netif_napi_del’?
  netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT);
  ^ ~~~~~~~~~~~~~
  netif_napi_del
/home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.c:2153:2: note: each undeclared identifier is reported only once for each function it appears in
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:317: /home/rosmc/RTL88x2BU-Linux-Driver/os_dep/linux/os_intfs.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1619: _module_/home/rosmc/RTL88x2BU-Linux-Driver] Error 2
make[1]: Leaving directory '/usr/src/kernels/4.18.0-553.58.1.el8_10.x86_64'
make: *** [Makefile:2470: modules] Error 2

```

good luck with getting this resolved. I’m sorry I couldn’t be of any further assistance.

Regards Tom.

[Next page](https://forums.rockylinux.org/t/how-do-i-install-driver-for-a-rtl8812au-wifi-usb-adapter/19089.md?page=2)
