Coder Social home page Coder Social logo

morrownr / 8821cu-20210916 Goto Github PK

View Code? Open in Web Editor NEW
564.0 23.0 123.0 13.88 MB

Linux Driver for USB WiFi Adapters that are based on the RTL8811CU, RTL8821CU, RTL8821CUH and RTL8731AU Chipsets - v5.12.0.4

License: Other

Shell 0.07% Makefile 0.37% C 99.56%
linux raspberry-pi usb debian 8811cu 8821cu kali-linux linux-driver linux-mint realtek

8821cu-20210916's Introduction

8821cu ( 8821cu.ko ) ๐Ÿš€

Linux Driver for USB WiFi Adapters that are based on the RTL8811CU, RTL8821CU, RTL8821CUH and RTL8731AU Chipsets

  • v5.12.0.4 (Realtek) (20210916) plus updates from the Linux community

Note: Please read the file "supported-device-IDs" for information about how to confirm that this is the correct driver for your adapter.

Supported Features

  • IEEE 802.11 b/g/n/ac WiFi compliant
  • 802.1x, WEP, WPA TKIP and WPA2 AES/Mixed mode for PSK and TLS (Radius)
  • WPA3-SAE (Personal) (see FAQ)
  • WPA3-Enterprise (Suite-B 192-bit)
  • WAPI 1.0 station mode
  • WPS - PIN and PBC Methods
  • IEEE 802.11b/g/n/ac Client mode
    • Supports wireless security for WEP, WPA TKIP and WPA2 AES PSK
    • Supports site survey scan and manual connect
    • Supports WPA/WPA2 TLS client
  • Power saving modes
  • Miracast
  • WiFi-Direct
  • MU-MIMO
  • Mesh
  • Wake on WLAN
  • Wireshark compatible
  • Aircrack-ng compatible
  • Packet injection
  • hostapd compatible
  • AP mode DFS channel support
  • Supported interface modes
  • Log level control
  • LED control
  • Power saving control
  • VHT control (allows 80 MHz channel width in AP mode)
  • AP mode DFS channel control

A FAQ is available in this repo with the name FAQ.md

  • Please read the FAQ and this document before posting issues.

Additional documentation is in the file 8821cu.conf

Compatible CPU Architectures

  • x86, i386, i686
  • x86-64, amd64
  • armv6l, armv7l (arm)
  • aarch64 (arm64)

Note: Additional CPU architectures may work but I currently only have the hardware to test the above.

Compatible Kernels

  • Kernels: 5.4 - 5.11 (Realtek)
  • Kernels: 5.12 - 6.11 (community support)

Note: Kernels earlier than 5.4 may work but are not tested or supported.

Tested Compilers

  • gcc 11, 12 and 13

Tested Linux Distributions

Note: The information in this section depends largely on user reports which can be provided via PR or message in Issues.

Note: Red Hat Enterprise Linux (RHEL) and distros based on RHEL are supported by Red Hat devs due to the way kernel patches are handled in Red Hat. I support knowledgable RHEL developers if they want to merge the required support and keep it current. I reserve the right to delete this support without notice if it causes any problems.

Current RHEL maintainer: none

Note: Android is supported in the driver according to Realtek. I will support knowledgable Android developers if they want to merge and keep current the required support (most likely just instructions about how to compile and maybe a modification or two to the Makefile).

Current Android maintainer: none

Note: OpenWRT is not supported. OpenWRT provides drivers for USB WiFi adapters. OpenWRT provided drivers include support for the MT7921au (AXE3000), MT7612u (AC1200), MT7610u (AC600) chipsets. It is a challenge to use Realtek based adapters that use out-of-kernel drivers with OpenWRT so it is strongly advised to use the already supported chipsets.

Compatible Devices

  • EDUP EP-AC1651 (nano) (single-state, single-function)
  • EDUP EP-AC1635 (single-state, single-function)
  • Numerous adapters that are based on the supported chipsets

Note: If you are looking for information about what adapter to buy, click here and look for Main Menu item 2 which will show information about and links to recommended adapters.

Note: If you decide to buy an adapter that is supported by this driver, I recommend you search for an adapter that is single-state and single-function. Multi-function adapters, wifi and bluetooth, can be problematic. For advice about single-state and multi-state adapters, click here and look for Main Menu item 1.

Installation Information

Warning: It is recommended that you follow the installation instructions in the Installation Steps section. Avoid installation by downloading the zip file if at all possible. Support can only be provided, on a best effort basis, if the Installation Steps in the next section are followed.

Warning: Installing multiple out-of-kernel drivers for the same hardware usually does not end well. The install-driver.sh script has the capability to detect and remove most conflicting drivers but not all. If this driver does not work well after installation and you have previously installed a driver that you did not remove, it is suggested that you run the following command in an effort to determine if you need to take action to manually remove conflicting drivers:

sudo dkms status

Warning: If you decide to do a distro upgrade, which will likely install a new version of kernel such as 5.15 to 6.1, you need to update this driver with the newest available code and then run the removal script before performing the disto upgrade. Use the following commands in the driver directory:

git pull

Note: Do not reboot before running the below command so that the driver stays active until after your distro upgrade is complete.

sudo sh remove-driver.sh

Note: The following command will reinstall the updated driver after you are finished with the distro upgrade and reboot.

sudo sh install-driver.sh

Internet access is required for initial installation. There are numerous ways to enable temporary internet access depending on your hardware and situation. One method is to use tethering from a phone.. Another method is to keep a WiFi adapter that uses an in-kernel driver in your toolkit.

You will need to use the terminal interface. The quick way to open a terminal: Ctrl+Alt+T (hold down on the Ctrl and Alt keys then press the T key).

An alternative terminal is to use SSH (Secure Shell) from the same or from another computer, in which case you will be in a suitable terminal after logging in, but this step requires that an SSH daemon/server has already been configured. (There are lots of SSH guides available, e.g., for the Raspberry Pi and for Ubuntu. Do not forget to secure the SSH server.)

You will need to have sufficient access rights to use sudo so that commands can be executed as the root user. (If the command sudo echo Yes returns "Yes", with or without having to enter your password, you do have sufficient access rights.)

DKMS is used for the installation, if available. DKMS is a system utility which will automatically recompile and reinstall this driver when a new kernel is installed. DKMS is provided by and maintained by Dell.

It is recommended that you do not delete the driver directory after installation as the directory contains information and scripts that you may need in the future.

Secure Boot: see FAQ.

Installation Steps

Note: The installation instructions are for the novice user. Experienced users are welcome to alter the installation to meet their needs. Support will be provided, on a best effort basis, based on the steps below. Another way to word this paragraph is that if you do not follow the below steps for installation, you are your own tech support.

Step 1: Open a terminal (e.g. Ctrl+Alt+T)

Step 2: Update and upgrade system packages (select the option for the distro you are using)

Note: If your Linux distro does not fall into one of options listed below, you will need to research how to update and upgrade your system packages.

  • Option for Debian based distributions such as Ubuntu, Kali, Armbian and Raspberry Pi OS
sudo apt update && sudo apt upgrade
  • Option for Arch based distributions such as Manjaro
sudo pacman -Syu
  • Option for Fedora based distributions
sudo dnf upgrade
  • Option for openSUSE based distributions
sudo zypper update
  • Option for Void Linux
sudo xbps-install -Syu

Note: It is recommended that you reboot your system at this point. The rest of the installation will appreciate having a fully up-to-date system to work with. The installation can then be continued with Step 3.

sudo reboot

Step 3: Install the required packages (select the option for the distro you are using)

Note: If your Linux distro does not fall into one of options listed below, you will need to research how to properly setup up the development environment for your system. General guidance follows.

Development Environment Requirements: (package names may vary by distro)

  • Mandatory packages: gcc make bc kernel-headers build-essential git
  • Highly recommended packages: dkms rfkill iw ip
  • Mandatory packages if Secure Boot is active: openssl sign-file mokutil

Note: The below options should take care of the mandatory and highly recommended requirements. If Secure Boot is active on your system, please also install the mandatory packages for Secure Boot as shown above.

  • Option for Armbian (arm64)
sudo apt install -y build-essential
  • Option for Raspberry Pi OS (arm/arm64)
sudo apt install -y raspberrypi-kernel-headers build-essential bc dkms git
  • Option for Debian, Kali, and Raspberry Pi Desktop (x86)
sudo apt install -y linux-headers-$(uname -r) build-essential bc dkms git libelf-dev rfkill iw
  • Option for Ubuntu (all official flavors) and the numerous Ubuntu based distros
sudo apt install -y build-essential dkms git iw
  • Option for Fedora

Note: Fedora users should also install openssl if secure boot is active.

sudo dnf -y install git dkms kernel-devel
  • Option for openSUSE
sudo zypper install -t pattern devel_kernel dkms
  • Option for Alpine
sudo apk add linux-lts-dev make gcc
  • Option for Void Linux
sudo xbps-install linux-headers dkms git make
  • Options for Arch and Manjaro (if using Manjaro for RasPi4B, see note)

If using pacman

sudo pacman -S --noconfirm linux-headers dkms git bc iw

Note: The following is needed if using Manjaro for RasPi4B.

sudo pacman -S --noconfirm linux-rpi4-headers dkms git bc

Note: If you are asked to choose a provider, make sure to choose the one that corresponds to your version of the linux kernel (for example, "linux510-headers" for Linux kernel version 5.10). If you install the incorrect version, you'll have to uninstall it and install the correct version.

If using other methods, please follow the instructions provided by those methods.

Step 4: Create a directory to hold the downloaded driver

mkdir -p ~/src

Step 5: Move to the newly created directory

cd ~/src

Step 6: Download the driver

git clone https://github.com/morrownr/8821cu-20210916.git

Step 7: Move to the newly created driver directory

cd ~/src/8821cu-20210916

Step 8: Run the installation script (install-driver.sh)

Important: The compilation may fail if the major version of gcc that is in use is not the same as the major version of the gcc that was used to compile the kernel that is in use:

Example of bad situation:

gcc 12.1 (used to compile the kernel)
gcc 10.3 (version of gcc in use)

Example of good situation:

gcc 12.2 (used to compile the kernel)
gcc 12.1 (version of gcc in use)

To determine the values:

cat /proc/version
gcc --version

If you find your system in a bad situation, it is recommended that you install a version of gcc that matches the major version of gcc that was used to compile your kernel. Here is an example for Ubuntu:

sudo apt install gcc-12

Note: If your system is a low memory system, it is recommended that you terminate running apps so as to provide the maximum amount of RAM to the compilation process.

Note: For automated builds (non-interactive), use NoPrompt as an option.

sudo ./install-driver.sh

or

sudo sh install-driver.sh

Note: If you elect to skip the reboot at the end of the installation script, the driver may not load immediately and the driver options will not be applied. Rebooting is strongly recommended.

Note: Fedora users that have secure boot turned on may need to run the following to enroll the key:

sudo mokutil --import /var/lib/dkms/mok.pub

Manual Installation Instructions

Note: The installation script, install-driver.sh, automates the installation process, however, if you want to or need to do a basic command line installation, use the following:

make clean
make -j$(nproc)

If secure boot is off:

sudo make install
sudo reboot

If secure boot is on:

Note: Please read to the end of this section before coming back here to enter commands.

sudo make sign-install

Note: You will be promted for a password, please remember the password as it will be used in some of the following steps.

sudo reboot

The MOK managerment screen will appear during boot:

Shim UEFI Key Management

Press any key...

Select "Enroll key"

Select "Continue"

Select "Yes"

When promted, enter the password you entered earlier.

Warning: If you enter the wrong password, your computer will not be bootable. In this case, use the BOOT menu from your BIOS to boot then as follows:

sudo mokutil --reset

Restart your computer. Use the BOOT menu from BIOS to boot. In the MOK managerment screen, select reset MOK list, then reboot and retry from the above step sudo make sign-install.

Note: If you use the Manual Installation Instructions, you will need to repeat the installation process each time a new kernel is installed in your distro.


Manual Removal Instructions

To remove the driver if installed by the Manual Installation Instructions:

sudo make uninstall
sudo reboot

Note: If you use the manual installation instructions, or if dkms is not installed, you will need to repeat the process each time a new kernel is installed in your distro.


Driver Options (edit-options.sh)

Note: In Linux, driver options are called module parameters.

A file called 88x2bu.conf will be installed in /etc/modprobe.d by default if you use the installation script, install-driver.sh. If you are following the Manual Installation Instructions, you can use the edit-options.sh script to install and/or edit the file.

Note: The installation script, install-driver.sh. will prompt you to edit the options.

88x2bu.conf will be read and applied to the driver on each system boot.

To edit the driver options file, run the edit-options.sh script

sudo ./edit-options.sh

Note: Documentation for Driver Options is included in the file 8821cu.conf.


Upgrading the Driver

Note: Linux development is continuous therefore work on this driver is continuous.

Note: Upgrading the driver is advised in the following situations:

  • if a new or updated version of the driver needs to be installed
  • if a distro version upgrade is going to be installed (i.e. going from kernel 5.10 to kernel 5.15)

Step 1: Move to the driver directory

cd ~/src/8821cu-20210916

Step 2: Remove the currently installed driver

sudo ./remove-driver.sh

Step 3: Pull updated code from this repo

git pull

Step 4: Install the driver

sudo ./install-driver.sh

Removal of the Driver (remove-driver.sh)

Note: Removing the driver is advised in the following situations:

  • if driver installation fails
  • if the driver is no longer needed

Note: The following removes everything that has been installed, with the exception of the packages installed in Step 3 and the driver directory. The driver directory can be deleted after running this script.

Step 1: Open a terminal (e.g. Ctrl+Alt+T)

Step 2: Move to the driver directory

cd ~/src/8821cu-20210916

Step 3: Run the removal script

Note: For automated builds (non-interactive), use NoPrompt as an option.

sudo ./remove-driver.sh

Recommended WiFi Router/ Access Point Settings

Note: These are general recommendations, some of which may not apply to your specific situation.

  • Security: Set WPA2-AES or WPA2/WPA3 mixed or WPA3. Do not set WPA2 mixed mode or WPA or TKIP.

  • Channel width for 2.4 GHz: Set 20 MHz fixed width. Do not use 40 MHz or 20/40 automatic.

  • Channels for 2.4 GHz: Set channel 1 or 6 or 11 depending on the congestion at your location. Do not set automatic channel selection. As time passes, if you notice poor performance, recheck congestion and set channel appropriately. The environment around you can and does change over time.

  • Mode for 2.4 GHz: For best performance, set "N only" if you no longer use B or G capable devices.

  • Network names: Do not set the 2.4 GHz Network and the 5 GHz Network to the same name. Note: Unfortunately many routers come with both networks set to the same name. You need to be able to control which network that is in use so changing the name of one of the networks is recommended. Since many IoT devices use the 2.4 GHz network, it may be better to change the name of the 5 GHz network.

  • Channels for 5 GHz: Not all devices are capable of using DFS channels (I'm looking at you Roku.) It may be necessary to set a fixed channel in the range of 36 to 48 or 149 to 165 in order for all of your devices to work on 5 GHz. (For US, other countries may vary.)

  • Best location for the WiFi router/access point: Near center of apartment or house, at least a couple of feet away from walls, in an elevated location. You may have to test to see what the best location is in your environment.

  • Check congestion: There are apps available for smart phones that allow you to get an idea of the congestion levels on WiFi channels. The apps generally go by the name of WiFi Analyzer or something similar.

After making and saving changes, reboot the router.


Recommendations regarding USB

  • Moving your USB WiFi adapter to a different USB port has been known to fix a variety of problems.

  • If connecting your USB WiFi adapter to a desktop computer, use the USB ports on the rear of the computer. Why? The ports on the rear are directly connected to the motherboard which will reduce problems with interference and disconnection.

  • If your USB WiFi adapter is USB 3 capable and you want it to operate in USB3 mode, plug it into a USB 3 port.

  • Avoid USB 3.1 Gen 2 ports if possible as almost all currently available adapters have been tested with USB 3.1 Gen 1 (aka USB 3) and not with USB 3.1 Gen 2.

  • If you use an extension cable and your adapter is USB 3 capable, the cable needs to be USB 3 capable (if not, you will be limited to USB 2 speeds).

  • Extention cables can be problematic. A way to check if the extension cable is the problem is to plug the adapter temporarily into a USB port on the computer.

  • Some USB WiFi adapters require considerable electrical current and push the capabilities of the power available via USB port. One example is adapters that use the Realtek 8814au chipset. Using a powered multiport USB extension can be a good idea in cases like this.


Contributors:

@Jibun-no-Kage
@alkisg
@M0les
@mendel5
@colincdean
@jeff-hiner
@paralin
@tamojitray
@amisix
@henkv1
@SubZero5

Without the above contributors, this driver would not be nearly as good as it.


To Contribute:

Fork this repository. Make your edits. TEST THEM! Create a pull request.



8821cu-20210916's People

Contributors

5kft avatar alkisg avatar giuliobenetti avatar how2flow avatar jeff-hiner avatar m0les avatar mendel5 avatar morrownr avatar radxayuntian avatar seanmollet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

8821cu-20210916's Issues

prevent RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode) from loading at boot

So I have this USB dongle that identifies as RTL8188GU which looks to have an inbuilt driver.

I've installed 8821cu-20210916 and it's works well with the device apart from the driver isn't loading on boot and requires unplugging and re-inserting to load.

I believe this could be overcome with a modprobe blacklist but my attemps so far haven't been successful. Would any one know the answer?

lsusb

on boot:
RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode)

After resinserting the device:
Realtek Semiconductor Corp. 802.11ac NIC

Driver sometimes doesn't load on boot, warning rtw_os_ndevs_register+0xc9/0x156

I have installed the driver and it works, but only sometimes after boot. If I rmmod 8821cu and then modprobe 8821cu the device comes back up.

dmesg error after boot

[    5.342009] ------------[ cut here ]------------
[    5.342012] WARNING: CPU: 5 PID: 506 at /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/os_intfs.c:3745 rtw_os_ndevs_register+0xc9/0x156 [8821cu]
[    5.342173] Modules linked in: snd_sof_pci_intel_tgl snd_sof_intel_hda_common soundwire_intel soundwire_generic_allocation soundwire_cadence snd_sof_intel_hda snd_sof_pci intel_rapl_msr snd_sof_xtensa_dsp snd_sof snd_soc_hdac_hda mei_hdcp snd_hda_ext_core snd_soc_acpi_intel_match snd_soc_acpi soundwire_bus ledtrig_audio snd_soc_core snd_hda_codec_hdmi snd_compress intel_rapl_common ac97_bus snd_pcm_dmaengine intel_tcc_cooling x86_pkg_temp_thermal intel_powerclamp snd_hda_intel coretemp snd_usb_audio snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec kvm_intel snd_hda_core iwlmvm snd_usbmidi_lib snd_hwdep kvm binfmt_misc snd_seq_midi input_leds snd_seq_midi_event rapl snd_rawmidi mac80211 mc btusb intel_cstate btrtl serio_raw btbcm 8821cu(OE+) usblp snd_pcm libarc4 snd_seq btintel ftdi_sio bluetooth snd_seq_device snd_timer ecdh_generic iwlwifi usbserial ee1004 ecc snd mei_me cfg80211 soundcore mei igen6_edac mac_hid intel_hid acpi_tad acpi_pad sparse_keymap sch_fq_codel msr parport_pc
[    5.342246]  ppdev lp parport ramoops pstore_blk reed_solomon pstore_zone efi_pstore ip_tables x_tables autofs4 btrfs blake2b_generic zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear hid_cmedia hid_generic usbhid hid i915 i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cec ahci rc_core i2c_i801 intel_lpss_pci crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd e1000e thunderbolt drm i2c_smbus igc intel_lpss libahci idma64 nvme xhci_pci xhci_pci_renesas nvme_core video pinctrl_tigerlake
[    5.342306] CPU: 5 PID: 506 Comm: systemd-udevd Tainted: G           OE     5.15.0-78-generic #85~20.04.1-Ubuntu
[    5.342311] Hardware name: Simply NUC NUC11EMi5/Rev PB01-TGL-V10, BIOS PB01 V3.2 02/18/2022
[    5.342313] RIP: 0010:rtw_os_ndevs_register+0xc9/0x156 [8821cu]
[    5.342442] Code: 87 cc 48 00 00 49 8d b6 b7 3b 00 00 84 c0 74 0d 49 8d b6 c7 3b 00 00 3c 01 49 0f 45 f7 e8 27 ec ff ff 41 89 c5 83 f8 01 74 aa <0f> 0b 48 63 c3 4d 8d 34 c4 85 db 74 6e 4c 89 e7 e8 2e 3f 02 00 e9
[    5.342445] RSP: 0018:ffffaba8c0c579c8 EFLAGS: 00010297
[    5.342449] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000048
[    5.342451] RDX: ffffaba8c0c57888 RSI: ffffaba8c0c57880 RDI: ffffaba8c0c57948
[    5.342453] RBP: ffffaba8c0c579f8 R08: 0000000000000001 R09: 0000000000000000
[    5.342455] R10: 0000000000000000 R11: 0000000000000001 R12: ffff9190177d8000
[    5.342458] R13: 0000000000000000 R14: ffffaba8c0811000 R15: ffffffffc1059314
[    5.342461] FS:  00007f50a77fe880(0000) GS:ffff919087b40000(0000) knlGS:0000000000000000
[    5.342465] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    5.342468] CR2: 0000559073883078 CR3: 00000001032d0002 CR4: 0000000000770ee0
[    5.342470] PKRU: 55555554
[    5.342471] Call Trace:
[    5.342473]  <TASK>
[    5.342477]  rtw_os_ndevs_init+0x2d/0x41 [8821cu]
[    5.342615]  rtw_drv_init+0x644/0x7aa [8821cu]
[    5.342742]  usb_probe_interface+0xea/0x290
[    5.342748]  really_probe.part.0+0xc8/0x380
[    5.342753]  really_probe+0x40/0x80
[    5.342755]  __driver_probe_device+0x119/0x190
[    5.342759]  driver_probe_device+0x23/0xb0
[    5.342762]  __driver_attach+0xc5/0x180
[    5.342765]  ? __device_attach_driver+0x140/0x140
[    5.342768]  bus_for_each_dev+0x7c/0xd0
[    5.342774]  driver_attach+0x1e/0x30
[    5.342776]  bus_add_driver+0x178/0x220
[    5.342779]  driver_register+0x74/0xe0
[    5.342782]  usb_register_driver+0x89/0x130
[    5.342787]  ? 0xffffffffc0e05000
[    5.342791]  rtw_drv_entry+0xed/0x1000 [8821cu]
[    5.342849]  do_one_initcall+0x46/0x1e0
[    5.342855]  ? __cond_resched+0x19/0x40
[    5.342861]  ? kmem_cache_alloc_trace+0x15a/0x420
[    5.342865]  do_init_module+0x52/0x230
[    5.342871]  load_module+0x1294/0x1500
[    5.342877]  __do_sys_finit_module+0xbf/0x120
[    5.342881]  ? __do_sys_finit_module+0xbf/0x120
[    5.342886]  __x64_sys_finit_module+0x1a/0x20
[    5.342890]  do_syscall_64+0x59/0xc0
[    5.342895]  entry_SYSCALL_64_after_hwframe+0x61/0xcb
[    5.342899] RIP: 0033:0x7f50a7e2973d
[    5.342902] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 23 37 0d 00 f7 d8 64 89 01 48
[    5.342905] RSP: 002b:00007ffe973179a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    5.342908] RAX: ffffffffffffffda RBX: 0000557a91774450 RCX: 00007f50a7e2973d
[    5.342910] RDX: 0000000000000000 RSI: 0000557a917873e0 RDI: 0000000000000006
[    5.342912] RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000000
[    5.342914] R10: 0000000000000006 R11: 0000000000000246 R12: 0000557a917873e0
[    5.342915] R13: 0000000000000000 R14: 0000557a9177c0d0 R15: 0000557a91774450
[    5.342918]  </TASK>
[    5.342920] ---[ end trace 20b6202c98a7e79c ]---

Log files from both occasions

rtw_successfull_load.log
rtw_failed_to_load.log

make[1]: *** /lib/modules/6.2.0-23-generic/build: No such file or directory. Stop.

ubuntu: 23.04

root@lm-OptiPlex-3000:/home/lm/Downloads/rtl8812AU_8821AU_linux# make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.2.0-23-generic/build M=/home/lm/Downloads/rtl8812AU_8821AU_linux  modules
make[1]: *** /lib/modules/6.2.0-23-generic/build: No such file or directory.  Stop.
make: *** [Makefile:1622: modules] Error 2
root@lm-OptiPlex-3000:/home/lm/Downloads/rtl8812AU_8821AU_linux# sudo sh install-driver.sh
sh: 0: cannot open install-driver.sh: No such file

(Info) Problem Reporting Guidelines - Please Read.

When reporting problems, remember that the people that will attempt to help you do not know what Linux distro you are using and that can be very important to know. Painting a picture that includes the distro you are using and a brief description of the problem is important.

  • If you are installing to a VM, see the note at the end.

Checklist regarding what to include in your report:

  • The name and version of the Linux distro you are using.
  • A brief description of the problem.
  • Paste the screen output provided by the install-driver.sh script.
  • The information obtained with the below command.
sudo lsusb; rfkill list all; dkms status; iw dev; iw reg get

Note: With the previous version of this driver and with the other Realtek drivers maintained at this site, many of the reported problems have to do with installations in VM's. If you are installing to a VM, and you have a problem, the chances are extremely high that the problem is with the setup in the VM, not this driver. Please investigate the problem first with the maker of the VM. Our time is valuable. Please help us maintain this driver by directing VM problems to the VM makers. I have maintained this driver for a few years and I have yet to see a problem reported for a VM installation that turns out to be a problem with this driver.

Thank you and enjoy

Convert shell scripts to not be Bash-specific

Precis

In #54 we got a bit off-topic talking about handling the case where the Bash-specific scripts were run through sudo sh script-name.sh (and in that case sh was not a symlink to Bash). I put forward some methods to detect and handle non-Bash shell environments for Bash-specific shells. However if we want to support running in non-Bash shells, is to just convert them to not use Bash-specific features (i.e. /bin/sh Bourne-shell compatibility), then converting to non-bash form would be better and more maintainable. So that's what this issue seeks to resolve.

Which alternate to Bash

The Dash shell is very small and minimally featured. It should be available in most distributions (and it's probably the default /bin/sh shell on Debian derivatives - I think?)

RTW: rtw_suspend_normal: ### ERROR #### driver in IPS ####ERROR###!!!

Recently started to get this message in the logs.

Arch Linux acer 6.2.2-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 03 Mar 2023 15:58:31 +0000 x86_64 GNU/Linux
Name : rtl8821cu-morrownr-dkms-git
Installed : 5.12.0.4.129.8c45ce6-1
Install Date : Fri 24 Feb 2023 08:32:15 CET

Bluetooth/Wireless:
0bda:c820 Realtek Semiconductor Corp. 802.11ac NIC
Realtek 8821cu Wireless LAN 802.11ac USB NIC

Is this due to the driver?

Your kernel header files aren't properly installed. Raspi4 using Raspian OS Lite Feb 2023

Getting the below error, installation via script or manual compile
Only shows on the Raspi4 (3 works fine)
Using Raspian OS Lite Feb 2023


pi@1db291:~/8821cu-20210916 $ uname -a
Linux 10000000255db291 5.15.84-v7l+ #1613 SMP Thu Jan 5 12:01:26 GMT 2023 armv7l GNU/Linux

pi@10b291:~/8821cu-20210916 $ uname -r
5.15.84-v7l+
pi@100291:~/8821cu-20210916 $ sudo apt-get install raspberrypi-kernel-headers 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
raspberrypi-kernel-headers is already the newest version (1:1.20230405-1).
The following packages were automatically installed and are no longer required:
  dc libgnutls-dane0 libunbound8
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 49 not upgraded.

pi@100291:~/8821cu-20210916 $ sudo ./install-driver.sh 
Your kernel header files aren't properly installed.
Please consult your distro documentation or user support forums.
Once the header files are properly installed, please run "sudo ./install-driver.sh"


pi@10291:~/8821cu-20210916 $ make clean
#make -C  M=/home/pi/8821cu-20210916 clean
cd hal ; rm -fr */*/*/*.mod.c */*/*/*.mod */*/*/*.o */*/*/.*.cmd */*/*/*.ko
cd hal ; rm -fr */*/*.mod.c */*/*.mod */*/*.o */*/.*.cmd */*/*.ko
cd hal ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
cd hal ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd core ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
cd core ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd os_dep/linux ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd platform ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order
rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
rm -fr .tmp_versions
rm -fr MOK.der MOK.priv

pi@1b291:~/8821cu-20210916 $ make
make ARCH= CROSS_COMPILE= -C  M=/home/pi/8821cu-20210916  modules
make[1]: *** M=/home/pi/8821cu-20210916: No such file or directory.  Stop.
make: *** [Makefile:2501: modules] Error 2

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
phy#0
	Interface wlan0
		ifindex 3
		wdev 0x1
		addr dc:a6:32:3d:6b:37
		type managed
		channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
		txpower 31.00 dBm
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)

phy#0
country 99: DFS-UNSET
	(2402 - 2482 @ 40), (6, 20), (N/A)
	(2474 - 2494 @ 20), (6, 20), (N/A)
	(5140 - 5360 @ 160), (6, 20), (N/A)
	(5460 - 5860 @ 160), (6, 20), (N/A)

Ubuntu 22.04 every shutdown/restart lasts forever because of hang wpa_suplicant and NetworkManager

With driver installed every shutdown or restart lasts forever and eventually (waited for an hour once) laptop has to be powered off with power button. Following logs are stored on the console during shutdown and in journalctl:

mar 15 08:02:22 blackhole systemd[1]: NetworkManager.service: State 'stop-sigterm' timed out. Killing.
mar 15 08:02:22 blackhole systemd[1]: NetworkManager.service: Killing process 736 (NetworkManager) with signal SIGKILL.
mar 15 08:02:22 blackhole systemd[1]: wpa_supplicant.service: State 'stop-sigterm' timed out. Killing.
mar 15 08:02:22 blackhole systemd[1]: wpa_supplicant.service: Killing process 770 (wpa_supplicant) with signal SIGKILL.
mar 15 08:03:53 blackhole systemd[1]: NetworkManager.service: Processes still around after SIGKILL. Ignoring.
mar 15 08:03:53 blackhole systemd[1]: wpa_supplicant.service: Processes still around after SIGKILL. Ignoring.
mar 15 08:04:27 blackhole kernel: INFO: task NetworkManager:736 blocked for more than 120 seconds.
mar 15 08:04:27 blackhole kernel:       Tainted: P           OE     5.19.0-35-generic #36~22.04.1-Ubuntu
mar 15 08:04:27 blackhole kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
mar 15 08:05:23 blackhole systemd[1]: NetworkManager.service: State 'final-sigterm' timed out. Killing.
mar 15 08:05:23 blackhole systemd[1]: NetworkManager.service: Killing process 736 (NetworkManager) with signal SIGKILL.
mar 15 08:05:23 blackhole systemd[1]: wpa_supplicant.service: State 'final-sigterm' timed out. Killing.
mar 15 08:05:23 blackhole systemd[1]: wpa_supplicant.service: Killing process 770 (wpa_supplicant) with signal SIGKILL.
mar 15 08:06:53 blackhole systemd[1]: NetworkManager.service: Processes still around after final SIGKILL. Entering failed mode.
mar 15 08:06:53 blackhole systemd[1]: NetworkManager.service: Failed with result 'timeout'.
mar 15 08:06:53 blackhole systemd[1]: NetworkManager.service: Unit process 736 (NetworkManager) remains running after unit stopped.
mar 15 08:06:53 blackhole systemd[1]: Stopped Network Manager.
mar 15 08:06:53 blackhole systemd[1]: wpa_supplicant.service: Processes still around after final SIGKILL. Entering failed mode.
mar 15 08:06:53 blackhole systemd[1]: wpa_supplicant.service: Failed with result 'timeout'.
mar 15 08:06:53 blackhole systemd[1]: wpa_supplicant.service: Unit process 770 (wpa_supplicant) remains running after unit stopped.

Issue does not occur with driver uninstalled using removal script. Tried with power saving off, set both from driver options as well as from NetworkManager conf.d file with no luck.

Ubuntu 22.04
kernel 5.19.0-35-generic

not work. os: fedora 37

OS: Fedora Linux 37 (Workstation Edition) x86_64
Kernel: 6.2.9-200.fc37.x86_64
chipset: Bus 003 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC

dmesg:
dmesg.txt

Speed tests

Hi Nick and all!

I have 8812au, 88x2bu, 8821cu and 8852bu based adapters. I think the best speed that I ever managed to achieve with any of them was a bit over 200 Mbps.
But in many cases you report speeds over 500 Mbps.

What are your Wi-Fi settings when you get these speeds? Band, encryption?
What are the best speeds that you've managed to get with 8821cu?
How are you testing? I've been testing with a wired iperf server and a wireless iperf client, like this:

# Wired server
iperf -s -xS
# Wireless client, test both directions
iperf -c server-ip -r

I would like to configure my test environment in ideal conditions first, so that in subsequent tests or driver updates, I can notice speed regressions more easily. Thanks!

WiFi Country Code has turned into a nightmare

@alkisg @paralin @RyanScott96 @AstroDrabb @ashah7 @Jibun-no-Kage @knightfall-cs @tamojitray @thjderjktyrjkt

There is one thing that is not on the list in #1 . As most of you know, we maintain 5 Realtek drivers here. Over the last year I have seen a big increase in country code related problems. I have been researching the issue and I still have no idea what can be done to improve the situation.

We see issues such as:

  • My 5 GHz wifi is not working, please fix it.

A suggestion to set the country code with $ iw reg set US or whatever the country code happens to be results in one of the following:

  • It does not fix the problem
  • It fixes the problem until a reboot and then the setting is gone
  • It fixes the problem

5 GHz is problematic because, unlike 2.4 Ghz and channels 1-11, there is not universal allowable channels so the default without the country code set is for 5 GHz to be shut down. From my perspective, it seems that we have a lot of distro maintainers that may not understand what they are doing. I could was poetic about this topic for a long time but I will spare you. In the end, it is one of the major issues that is reported.

What is the fix? I don't know. It could be that documenting how things should work is the best answer. It could also be that a check in the installation script could help.

I am asking all of you to think about this issue and if you have suggestions, please post. If you have friends that have suggestion, get the information and post. If you can find links to go articles or documents that we can use as a source, please post.

One last thing: it has been unusually quiet. Anyone having any problems or suggestions to report?

Nick

install-driver.sh

root@armbian:/8821cu-20210916# ./install-driver.sh
: ---------------------------
: install-driver.sh v20230227
: aarch64 (architecture)
: 4/4 (in-use/total processing units)
: 2000832 (total system memory)
: 5.15.110-ophub (kernel version)
: gcc (Ubuntu 11.3.0-1ubuntu1
22.04) 11.3.0
: dkms-2.8.7
: ---------------------------

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

Starting installation.
Installing 8821cu.conf to /etc/modprobe.d
The dkms installation routines are in use.
Copying source files to /usr/src/rtl8821cu-5.12.0.4
Creating symlink /var/lib/dkms/rtl8821cu/5.12.0.4/source -> /usr/src/rtl8821cu-5.12.0.4
The driver was added to dkms successfully.
: ---------------------------

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
./dkms-make.sh.....(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.15.110-ophub (aarch64)
Consult /var/lib/dkms/rtl8821cu/5.12.0.4/build/make.log for more information.
An error occurred. dkms build error: 10
Please report this error.
Please copy all screen output and paste it into the problem report.
Run the following before reattempting installation.
$ sudo ./remove-driver.sh

(can't fix) Hangs on `iw dev wlan0 del`

Deletion of the wireless interface results in endless hang of iw process which could not be killed even with kill -9 and makes the device unable to operate normally due to hangs on any operations related to the network interface enumeration.

The kernel would also unable to reboot properly.

How to reproduce (do not do that on a production system):

  1. Insert the rtl8811cu card to USB port
  2. Execute iw dev wlan0 del, where wlan0 is the card's interface name

I suppose there's a lock which is not getting released somewhere.

(info) OpenWrt Driver Install

Hi, may I know how to install driver for 8811cu on OpenWrt? I am not sure which version of linux version should I follow for OpenWrt. Great if there is help on this.

Thank you!

Project: Improve rtl8821/11cu rtw88 in-kernel driver. Need help...

Greetings to anyone that reads this message.

It was reported that the rtw88 in-kernel driver for the rtl8821cu/rtl8811cu chipsets was broken. So... we decided to make it better. Five patches have now gone into the Linux kernel (6.9) so things are better. While things are better, it is good to continue testing and make things very good.

If you are willing to help, here is a basic plan:

  • uninstall the driver in this repo using sudo sh remove-driver.sh.
  • install the driver at: https://github.com/lwfinger/rtw88 (follow the installation at that site)
  • try to use your adapter and report results... applicable lines in the log file may help.

The rtw88 repo shown above is a downstream repo from the Linux kernel. It focuses on the rtw88 driver series. If you have test results or questions, post in this issue.

Regards,

@morrownr

Slow connection and unpredictable behavior with a "Dual Band + Bluetooth USB adapter"

Hello, I'm the user who reported issues in the previous/older driver page ( https://github.com/morrownr/8821cu-20210118/issues/89 )... Yesterday, I finally had a moment to uninstall the old driver and install this one. I had the small hope of fixing my issues with this new driver, but I'm having the same exact issues as before.

The main thing I'd love to solve is the slow connection. Let me know anything and thank you in advance!

problems after installing nvidia-driver

I'm using Ubuntu 22.04.1, and the linux kernel is 5.19.0.46-generic.
my wireless device information is 0bda : c811 Realtek Semiconductor Corp.

At first , I follow this repo and install the driver manually, and it worked , the wifi connection showed up.
Then I install the nvidia-driver (through the setting -> Additional drivers), and I reboot the computer.

Two problems occurred ( at least, maybe there are other problems I don't notice):

  1. The network was gone , even including the wired connection, I mean disappeared in the setting
  2. I tried to install the driver again, but I couldn't "make" , it said :
make[1]: *** /lib/modules/5.19.0-46-generic/build: No such file or directory.

After googling, I found a blog said maybe because I change the gpu driver from the default nouveau to nvidia , I run sudo lshw -c network ,it showed

*-network UNCLAIMED

Then I run sudo dpkg -s linux-modules-extra-$(uname -r) | grep Status, and it said the system didn't install the package. So I downloaded the linux-modules-extra package and installed it , and the wired connection was back. But I don't really know what is the function of linux-modules-extra, and why the wired network can come back after installing it.

As for the second question , I go to the path of /lib/modules/$(uname -r)/ , there is no folder "build" , So I tried to reinstall the kernel by sudo apt-get install linux-headers-$(uname -r) , but it said it is already the latest and didn't download. I fixed it by
sudo apt-get --reinstall install linux-headers-$(uname -r) eventually , and can install the driver manually by "make" again. I am a new user of linux , and I don't know if there exist conflict problems between linux kernel and nvidia-driver.

I have tried to reinstall the driver for many times , and the "8821cu.ko" exist in the
/lib/modules/$(uname -r)/kernel/drivers/net/wireless/ , but the wifi just never shows up. And I run sudo modprobe 8821cu , it said

modprobe ERROR: could not insert '8821cu': Invalid  argument

I try another way sudo insmod 8821cu.ko, it gives

insmod: ERROR: could not insert module 8821cu.ko: Invalid parameters

Another thing is when I "make" , the information is

warning: the compiler differs from the one used to build the kernel`
The kernel was built by: x86_64-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
You are using: gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0

I really need some help , thanks!

Android clients

I am using it as an access point in the Linux box to serve Android clients. Android 13 works well, but Android 5 and 9 doesn't. They both see the AP but couldn't connect. Android 9 says "couldn't find", and Android 5 says nothing. There are no any of their footprints in AP logs. So I have no points to where to seek the reason.

This is not issue!!! this is many thx

This my raspi 2 model B info., many thx, rtl8811cu works will!

 Raspberry Pi 2 Model B Rev 1.1
Linux kali-raspberry-pi 5.15.44-Re4son-v7+ #1 SMP Debian kali-pi (2022-07-03) armv7l GNU/Linux
dmesg -T

[Fri Jul  7 23:33:07 2023] usb 1-1.4: new high-speed USB device number 9 using dwc_otg
[Fri Jul  7 23:33:07 2023] usb 1-1.4: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
[Fri Jul  7 23:33:07 2023] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[Fri Jul  7 23:33:07 2023] usb 1-1.4: Product: 802.11ac NIC
[Fri Jul  7 23:33:07 2023] usb 1-1.4: Manufacturer: Realtek
[Fri Jul  7 23:33:07 2023] usb 1-1.4: SerialNumber: 123456
: ---------------------------
: install-driver.sh v20230227
: armv7l (architecture)
: 2/4 (in-use/total processing units)
: 892892 (total system memory)
: 5.15.44-Re4son-v7+ (kernel version)
: gcc (Debian 12.2.0-14) 12.2.0
: dkms-3.0.10
: ---------------------------
ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.112  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f252:f89a:6ee4:335  prefixlen 64  scopeid 0x20<link>
        ether e8:4e:06:99:16:59  txqueuelen 1000  (Ethernet)
        RX packets 564  bytes 123025 (120.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37  bytes 3573 (3.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

many many many many thx ๐Ÿ˜Š ๐Ÿ˜Š ๐Ÿ˜Š

User reporting problems on 1 gb ram system...

Below is a report I pulled over from the driver that is currently public. I am kind of thinking we should rewrite the installer code to check total ram and if it is < 1.5 gb, use 1 core instead of nproc. Ideas?

Struggle to build on Pi 4 B (1GB)

When running install-driver on Raspberry Pi 4 model B with 1GB RAM running 64-bit Raspberry Pi OS 11, compilation is incredibly slow and may fail (with a SIGKILL). This is reproducible. When used previously with same hardware running 32-bit Raspberry Pi OS 10, the problem didn't occur.

Appears to be because the "-j5" make flag causes all available RAM to be used and the device to start swapping. A simple workaround is to edit dkms.conf, replacing -j$(nproc) by -j1 (which actually makes it faster and complete successfully).

Is there some way the install script could automatically reduce the number of simultaneous jobs in this scenario?

P.S. Thanks for supporting these adapters. I have 8821cu (as client with BrosTrend AC650 AC5L) and 88x2bu (as AP with BrosTrend AC1200 AC3L) working well on the same Pi 4, used as firewall/gateway.

Do you have specific 8811cu based adapters that you can recommend?

Since the 8811cu has a in-kernel driver these days, even if performance is not good yet, I thought I would go ahead and add a 8811cu section to the in-kernel list. Main Menu item 2.

So far I have only added the section and made some comments that adapters would be coming in the future. I have 2 adapters I can add to the list. Do you gents have any adapters you can recommend? With links to a place where it can be purchased?

I am limiting the adapters for the list to ONLY single-state / single-function adapters. I'm not interested in mutli-state adapters or multi-function (wifi plus bt) adapters as I have seen too many people have problems with them. On the other hand things are mostly quiet when it comes to users with single-state / single-function 8811cu adapters.

Let me know what good adapters are out there.

Nick

Driver error logging. Crashing app when trying to activate pcap inactivehandle with interface

Is there any sort of readable log file for the drivers?
I have a program that uses gopacket, which calls https://pkg.go.dev/github.com/google/gopacket/pcap#InactiveHandle.Activate.

The program errros out with a '-1' which is a unknown error to gopacket/pcap. And im trying to figure out why, I suspected the drivers are failing or not doing something properly and wanted to see if i could find out why .Activate() errors with -1.

I saw ./save-log.sh, but i dont understand any of it.

Linux PiZero2 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Adpt: rtl8821cu

FYI: Install on IndieDroid Nova, OS Ubuntu 22.04 LTS Jammy Jellyfish, Not Quite

This is NOT at this point, a driver/package issue, just started an issue to track progress, and so others will see the current status of my efforts to install my USB dongle on the IndieDroid recommended OS image. The IndieDroid Nova is pretty new, so not surprised that there is/or will be some bumps to smooth out.

# apt install -y build-essential dkms git iw

In my case only iw was not already present.

# git clone https://github.com/morrownr/8821cu-20210916.git

Worked as expected.

# ./install-driver.sh
Your kernel header files aren't properly installed.
Please consult your distro documentation or user support forums.
Once the header files are properly installed, please run "sudo ./install-driver.sh"

This was done as validation, since I did not as yet have headers in place.

# cat /etc/os-release
PRETTY_NAME="Armbian 23.05.0-trunk jammy"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

# uname -a
Linux indiedroid-nova 5.10.110-rockchip-rk3588-indiedroid #1 SMP PREEMPT Thu Mar 9 02:22:35 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

# uname -r
5.10.110-rockchip-rk3588-indiedroid

# apt search linux-headers-$(uname -r)
Sorting... Done
Full Text Search... Done

# ls -l /usr/src/linux-headers-$(uname -r)
ls: cannot access '/usr/src/linux-headers-5.10.110-rockchip-rk3588-indiedroid': No such file or directory

# apt install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package linux-headers-5.10.110-rockchip-rk3588-indiedroid
E: Couldn't find any package by glob 'linux-headers-5.10.110-rockchip-rk3588-indiedroid'

I fired off a message to the AmeriDroid, reseller for the IndieDroid Nova, asking for details on why the headers package appears to be M.I.A. Looks like the classic way to pull down the headers for Ubuntu is not going to work.

Now... I did find 'linux-headers-legacy-rockchip-rk3588' but? The package installation failed, has a python2 dependency, and that is just not going to fly, or is it?

# apt install python2
# apt install linux-headers-legacy-rockchip-rk3588

A few warnings, but actually compiled? Ah, ok, lets see what happens!

# ./install-driver.sh
Your kernel header files aren't properly installed.
Please consult your distro documentation or user support forums.
Once the header files are properly installed, please run "sudo ./install-driver.sh"

Like I said above... No way that was going to fly.

Works on kernel 6.4 on Ubuntu

Confirmed to work on 6.4.11-060411-generic

`

                   Device details (wlx90916400e0c7)

===============================================================================
GENERAL.DEVICE: wlx90916400e0c7
GENERAL.TYPE: wifi
GENERAL.NM-TYPE: NMDeviceWifi
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3
GENERAL.VENDOR: Realtek Semiconductor Corp.
GENERAL.PRODUCT: 802.11ac NIC
GENERAL.DRIVER: rtl8821cu
GENERAL.DRIVER-VERSION: v5.12.0.4-1-g9241a6516.20210916
GENERAL.FIRMWARE-VERSION: 24.8
GENERAL.HWADDR: 90:91:64:00:E0:C7
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.REASON: 0 (No reason given)
GENERAL.IP4-CONNECTIVITY: 4 (full)
GENERAL.IP6-CONNECTIVITY: 3 (limited)
GENERAL.UDI: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.2/net/wlx90916400e0c7
GENERAL.PATH: pci-0000:00:14.0-usb-0:12:1.2
GENERAL.IP-IFACE: wlx90916400e0c7
GENERAL.IS-SOFTWARE: no
GENERAL.NM-MANAGED: yes
GENERAL.AUTOCONNECT: yes
GENERAL.FIRMWARE-MISSING: no
GENERAL.NM-PLUGIN-MISSING: no
GENERAL.PHYS-PORT-ID: --
GENERAL.CONNECTION: DEFAULT CONNECTION
GENERAL.CON-UUID: 15e17caa-64e0-43e5-b509-8c7c57232277
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/5
GENERAL.METERED: no (guessed)

`

(solved) `rtw_acs_info_dump()` flooding kernel log

Hi,

The rtw_acs_info_dump() floods the kernel log with:

...
[56768.132025] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56768.139754] ========== ACS (VER-3) ==========
[56768.139762] Best 24G Channel:4
[56768.139766] Best 5G Channel:40
[56768.139769] ==================================
[56772.484590] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56772.492430] ========== ACS (VER-3) ==========
[56772.492432] Best 24G Channel:4
[56772.492433] Best 5G Channel:40
[56772.492434] ==================================
[56779.388062] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56779.396155] ========== ACS (VER-3) ==========
[56779.396158] Best 24G Channel:4
[56779.396159] Best 5G Channel:40
[56779.396160] ==================================
[56789.388269] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56789.396108] ========== ACS (VER-3) ==========
[56789.396111] Best 24G Channel:4
[56789.396112] Best 5G Channel:40
[56789.396113] ==================================
[56803.396043] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56803.405948] ========== ACS (VER-3) ==========
[56803.405956] Best 24G Channel:1
[56803.405960] Best 5G Channel:40
[56803.405963] ==================================
[56823.388166] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56823.396374] ========== ACS (VER-3) ==========
[56823.396377] Best 24G Channel:4
[56823.396379] Best 5G Channel:40
[56823.396380] ==================================
[56852.387975] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56852.396062] ========== ACS (VER-3) ==========
[56852.396071] Best 24G Channel:5
[56852.396075] Best 5G Channel:40
[56852.396079] ==================================
[56895.389173] RTW: wlp0s20f0u9- hw port(0) mac_addr =06:76:b7:4b:c3:ff
[56895.397378] ========== ACS (VER-3) ==========
[56895.397387] Best 24G Channel:3
[56895.397401] Best 5G Channel:40
...

I wonder if there is any specific purpose to show these logs for user? Would it be possible to suppress these logs?

dhcp fails on reboot with ubuntu 22.04 LTS on raspberry pi 4

After a recent apt upgrade the wifi adapter no longer gets an IP address after reboot. This has been working fine for about a year, and only started failing now.

Interestingly after reboot, if I run a "sudo netplan apply", the adapter does get an IP address and it works fine until the next reboot.

Here's the diagnostic info after reboot:

sudo lsusb; rfkill list all; dkms status; iw dev; iw reg get

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0825:0001 GC Protronics X825 V1.2
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
rtl8821cu/5.12.0.4, 5.15.0-1037-raspi, aarch64: installed (WARNING! Diff between built and installed module!)
zfs/2.1.11, 5.15.0-1037-raspi, aarch64: installed
phy#0
	Interface wlan0
		ifindex 3
		wdev 0x1
		addr 00:13:25:b1:4f:2d
		type managed
		txpower -100.00 dBm
global
country 00: DFS-UNSET
	(755 - 928 @ 2), (N/A, 20), (N/A), PASSIVE-SCAN
	(2402 - 2472 @ 40), (N/A, 20), (N/A)
	(2457 - 2482 @ 20), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
	(2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, PASSIVE-SCAN
	(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
	(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
	(5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, PASSIVE-SCAN
	(5735 - 5835 @ 80), (N/A, 20), (N/A), PASSIVE-SCAN
	(57240 - 63720 @ 2160), (N/A, 0), (N/A)

Serious packet loss

root@miny1233-EZpad:~# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.59 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=45.7 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=2.87 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=2.81 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=2.89 ms
64 bytes from 192.168.1.1: icmp_seq=7 ttl=64 time=127 ms
64 bytes from 192.168.1.1: icmp_seq=8 ttl=64 time=85.3 ms
64 bytes from 192.168.1.1: icmp_seq=9 ttl=64 time=89.9 ms
64 bytes from 192.168.1.1: icmp_seq=10 ttl=64 time=179 ms
64 bytes from 192.168.1.1: icmp_seq=11 ttl=64 time=227 ms
64 bytes from 192.168.1.1: icmp_seq=15 ttl=64 time=180 ms
64 bytes from 192.168.1.1: icmp_seq=16 ttl=64 time=102 ms
64 bytes from 192.168.1.1: icmp_seq=21 ttl=64 time=127 ms
64 bytes from 192.168.1.1: icmp_seq=25 ttl=64 time=233 ms
64 bytes from 192.168.1.1: icmp_seq=29 ttl=64 time=117 ms
64 bytes from 192.168.1.1: icmp_seq=31 ttl=64 time=3.69 ms
64 bytes from 192.168.1.1: icmp_seq=32 ttl=64 time=2.66 ms
64 bytes from 192.168.1.1: icmp_seq=33 ttl=64 time=2.79 ms
64 bytes from 192.168.1.1: icmp_seq=36 ttl=64 time=102 ms
64 bytes from 192.168.1.1: icmp_seq=41 ttl=64 time=3.09 ms
64 bytes from 192.168.1.1: icmp_seq=42 ttl=64 time=1.90 ms
64 bytes from 192.168.1.1: icmp_seq=43 ttl=64 time=2.46 ms
64 bytes from 192.168.1.1: icmp_seq=44 ttl=64 time=2.72 ms
64 bytes from 192.168.1.1: icmp_seq=45 ttl=64 time=2.35 ms
64 bytes from 192.168.1.1: icmp_seq=46 ttl=64 time=2.81 ms
64 bytes from 192.168.1.1: icmp_seq=47 ttl=64 time=5.99 ms
64 bytes from 192.168.1.1: icmp_seq=48 ttl=64 time=2.28 ms
64 bytes from 192.168.1.1: icmp_seq=49 ttl=64 time=2.33 ms
64 bytes from 192.168.1.1: icmp_seq=50 ttl=64 time=2.52 ms
64 bytes from 192.168.1.1: icmp_seq=51 ttl=64 time=2.49 ms
64 bytes from 192.168.1.1: icmp_seq=52 ttl=64 time=2.44 ms
64 bytes from 192.168.1.1: icmp_seq=53 ttl=64 time=2.34 ms
64 bytes from 192.168.1.1: icmp_seq=54 ttl=64 time=3.65 ms
64 bytes from 192.168.1.1: icmp_seq=55 ttl=64 time=2.36 ms
64 bytes from 192.168.1.1: icmp_seq=56 ttl=64 time=2.51 ms
64 bytes from 192.168.1.1: icmp_seq=57 ttl=64 time=2.54 ms
64 bytes from 192.168.1.1: icmp_seq=58 ttl=64 time=2.29 ms
64 bytes from 192.168.1.1: icmp_seq=59 ttl=64 time=2.47 ms
64 bytes from 192.168.1.1: icmp_seq=60 ttl=64 time=2.38 ms
64 bytes from 192.168.1.1: icmp_seq=61 ttl=64 time=2.85 ms
64 bytes from 192.168.1.1: icmp_seq=62 ttl=64 time=1.52 ms
64 bytes from 192.168.1.1: icmp_seq=63 ttl=64 time=1.52 ms
64 bytes from 192.168.1.1: icmp_seq=64 ttl=64 time=2.26 ms
64 bytes from 192.168.1.1: icmp_seq=66 ttl=64 time=198 ms
64 bytes from 192.168.1.1: icmp_seq=69 ttl=64 time=1.42 ms
64 bytes from 192.168.1.1: icmp_seq=70 ttl=64 time=162 ms
64 bytes from 192.168.1.1: icmp_seq=71 ttl=64 time=3.80 ms
64 bytes from 192.168.1.1: icmp_seq=72 ttl=64 time=2.70 ms
^C
--- 192.168.1.1 ping statistics ---
72 packets transmitted, 48 received, 33.3333% packet loss, time 71552ms
rtt min/avg/max/mdev = 1.421/43.008/232.642/69.386 ms

Authentication issues on RTL8811CU

Hello, I am experiencing difficulties connecting to wifi networks on my Linux Mint 21.1 system running Linux kernel version 6.1.18 xanmod v3. I have also attempted to use other kernel versions in the 6 range, but they all seem to exhibit the same issue. I am using the UGREEN AC650 wifi adapter (https://www.amazon.com/UGREEN-Adapter-Desktop-Wireless-Computer/dp/B08M9FX4G3), which features the rtl8811CU chipset. I have confirmed the SSID and WPA2 authentication password, but have been unable to establish a connection. I have attempted to enable usb_modeswitch and also tried with it disabled, but this did not resolve the issue. While my adapter can detect all available networks, it remains unable to connect.

(solved) Loading of unsigned module is rejected, secureboot is disabled

hi mate, thanks for your awesome driver, was using from the past 5 months,
today after updating my pop os installation, wifi stopped working, and this is the dmesg output i am getting,
[ +0.000006] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000002] usb 1-1: Product: 802.11ac NIC [ +0.000002] usb 1-1: Manufacturer: Realtek [ +0.000001] usb 1-1: SerialNumber: 123456 [ +0.032954] Loading of unsigned module is rejected

this is the device i am currently having
Bus 001 Device 013: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC

did i screw anything?
secureboot is currently disabled.

Armbian

CC [M] /root/src/8821cu-20210916/hal/btc/halbtc8821c2ant.o
CC [M] /root/src/8821cu-20210916/platform/platform_ops.o
LD [M] /root/src/8821cu-20210916/8821cu.o
Building modules, stage 2.
MODPOST 1 modules
CC [M] /root/src/8821cu-20210916/8821cu.mod.o
make[3]: *** No rule to make target 'arch/arm64/kernel/module.lds', needed by '/root/src/8821cu-20210916/8821cu.ko'. Stop.
make[2]: *** [scripts/Makefile.modpost:94: __modpost] Error 2
make[1]: *** [Makefile:1659: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.240-ophub'
make: *** [Makefile:2501: modules] Error 2

(info) MU-MIMO in action - pics

Idle:

idle

iperf3 running:

iperf3

MU-MIMO is cool to see in action. In medium distance situations, it can improve throughput.

Has anyone else tested?

Nick

Alma Linux 9.2 make not work | 9.1 make work

Hello,
try to build on AlmaLinux 9.2 but make fail: ( the system did a upgrade from 9.1 to 9.2 by dnf )

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.14.0-284.11.1.el9_2.x86_64/build M=/root/8821cu-20210916  modules
make[1]: Entering directory '/usr/src/kernels/5.14.0-284.11.1.el9_2.x86_64'
  CC [M]  /root/8821cu-20210916/os_dep/osdep_service.o
/root/8821cu-20210916/os_dep/osdep_service.c: In function โ€˜thread_exitโ€™:
/root/8821cu-20210916/os_dep/osdep_service.c:1315:9: error: implicit declaration of function โ€˜complete_and_exitโ€™ [-Werror=implicit-function-declaration]
 1315 |         complete_and_exit(comp, 0);
      |         ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:321: /root/8821cu-20210916/os_dep/osdep_service.o] Error 1
make[1]: *** [Makefile:1923: /root/8821cu-20210916] Error 2
make[1]: Leaving directory '/usr/src/kernels/5.14.0-284.11.1.el9_2.x86_64'
make: *** [Makefile:2501: modules] Error 2

Screenshot_select-area_20230515080123

Kernel Version: 5.14.0-284.11.1.el9_2.x86_64

How to fix this ?

Did this in the paste on AlmaLinux 9.1 there it worked.

Workaround to get Internet connection: choose at boot the kernel from 9.1

Screenshot_select-area_20230515074637

Any chance for Kernel 4.9 support?

HI there,

i've a Banana PI M4 which has the 8821cu installed. Sadly the only supported Kernel from them is 4.9 - any chance to add compat to the 4.9 kernel?

Greets,
Stefan

Packet injection doesn't work

Packet injection is claimed to work

However a simple test fails:
where wlan0 is an intel wifi module
and wlan1 is a realtek 8821cu module

iw dev set wlan0 monitor none
iw dev set wlan1 monitor none
iw dev wlan0 set channel 5
iw dev wlan1 set channel 5
aireplay-ng -9 -i wlan0 wlan1

Returns something like this:

0/30 0% beacons heard
...

testing card to card injection
-0 failed
-1 failed
-2 failed
...

and so on

Software:

  • uname -a:
Linux kali 6.3.0-kali1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.3.7-1kali1 (2023-06-29) x86_64 GNU/Linu
  • modinfo 8821cu:
filename:       /lib/modules/6.3.0-kali1-amd64/kernel/drivers/net/wireless/realtek/rtl8821cu/8821cu.ko
version:        v5.4.1_28754.20180921_COEX20180712-3232

Hardware in question:

adapter is a usb dongle called AC600
supposed to be based on RTL8811CU
managed and monitor mode work fine

  • lsusb:
Bus 001 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 idVendor           0x0bda Realtek Semiconductor Corp.
 idProduct          0xc811 
 bcdDevice            2.00
 iManufacturer           1 Realtek
 iProduct                2 802.11ac NIC
 iSerial                 3 123456
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength       0x0035
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0xa0
     (Bus Powered)
     Remote Wakeup
   MaxPower              500mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           5
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              2 802.11ac NIC
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x05  EP 5 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x06  EP 6 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x87  EP 7 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               3
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x08  EP 8 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               0
Device Qualifier (for other device speed):
 bLength                10
 bDescriptorType         6
 bcdUSB               2.00
 bDeviceClass            0 
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 bNumConfigurations      1
Device Status:     0x0000
 (Bus Powered)
  • iw:
Wiphy phy1
        wiphy index: 1
        max # scan SSIDs: 9
        max scan IEs length: 2304 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP-128 (00-0f-ac:4)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * monitor
                 * P2P-client
                 * P2P-GO
        Band 1:
                Capabilities: 0x1962
                        HT20/HT40
                        Static SM Power Save
                        RX HT20 SGI
                        RX HT40 SGI
                        RX STBC 1-stream
                        Max AMSDU length: 7935 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 16 usec (0x07)
                HT Max RX data rate: 150 Mbps
                HT TX/RX MCS rate indexes supported: 0-7
                Bitrates (non-HT):
                        * 1.0 Mbps
                        * 2.0 Mbps
                        * 5.5 Mbps
                        * 11.0 Mbps
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm) (no IR)
                        * 2472 MHz [13] (20.0 dBm)
                        * 2484 MHz [14] (disabled)
        Band 2:
                Capabilities: 0x1862
                        HT20/HT40
                        Static SM Power Save
                        RX HT20 SGI
                        RX HT40 SGI
                        No RX STBC
                        Max AMSDU length: 7935 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 16 usec (0x07)
                HT Max RX data rate: 150 Mbps
                HT TX/RX MCS rate indexes supported: 0-7
                VHT Capabilities (0x03c00122):
                        Max MPDU length: 11454
                        Supported Channel Width: neither 160 nor 80+80
                        short GI (80 MHz)
                        +HTC-VHT
                VHT RX MCS set:
                        1 streams: MCS 0-9
                        2 streams: not supported
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT RX highest supported: 434 Mbps
                VHT TX MCS set:
                        1 streams: MCS 0-9
                        2 streams: not supported
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT TX highest supported: 434 Mbps
                VHT extended NSS: not supported
                Bitrates (non-HT):
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 5180 MHz [36] (30.0 dBm)
                        * 5200 MHz [40] (30.0 dBm)
                        * 5220 MHz [44] (30.0 dBm)
                        * 5240 MHz [48] (30.0 dBm)
                        * 5260 MHz [52] (30.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (30.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (30.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (30.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (30.0 dBm) (no IR, radar detection)
                        * 5520 MHz [104] (30.0 dBm) (no IR, radar detection)
                        * 5540 MHz [108] (30.0 dBm) (no IR, radar detection)
                        * 5560 MHz [112] (30.0 dBm) (no IR, radar detection)
                        * 5580 MHz [116] (30.0 dBm) (no IR, radar detection)
                        * 5600 MHz [120] (30.0 dBm) (no IR, radar detection)
                        * 5620 MHz [124] (30.0 dBm) (no IR, radar detection)
                        * 5640 MHz [128] (30.0 dBm) (no IR, radar detection)
                        * 5660 MHz [132] (30.0 dBm) (no IR, radar detection)
                        * 5680 MHz [136] (30.0 dBm) (no IR, radar detection)
                        * 5700 MHz [140] (30.0 dBm) (no IR, radar detection)
                        * 5720 MHz [144] (disabled)
                        * 5745 MHz [149] (30.0 dBm)
                        * 5765 MHz [153] (30.0 dBm)
                        * 5785 MHz [157] (30.0 dBm)
                        * 5805 MHz [161] (30.0 dBm)
                        * 5825 MHz [165] (30.0 dBm)
                        * 5845 MHz [169] (disabled)
                        * 5865 MHz [173] (disabled)
                        * 5885 MHz [177] (disabled)
        Supported commands:
                 * new_interface
                 * set_interface
                 * new_key
                 * start_ap
                 * new_station
                 * set_bss
                 * join_ibss
                 * set_pmksa
                 * del_pmksa
                 * flush_pmksa
                 * remain_on_channel
                 * frame
                 * set_channel
                 * connect
                 * disconnect
        WoWLAN support:
                 * wake up on anything (device continues operating normally)
        software interface modes (can always be added):
                 * monitor
        interface combinations are not supported
        Device supports scan flush.
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Supported TX frame types:
                 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
        Supported RX frame types:
                 * IBSS: 0xd0
                 * managed: 0x40 0xd0
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * P2P-client: 0x40 0xd0
                 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
        Supported extended features:

Build Error (fatal error: asm/bitsperlong.h: No such file or directory)

I'm running into the same build error with multiple custom driver installs. When trying to build, I get the following:

root@sama5d2-xplained:/usr/test/8821cu-20210916# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/arm-poky-linux-gnueabi/11.3.0/lto-wrapper
Target: arm-poky-linux-gnueabi
Configured with: ../../../../../work-shared/gcc-11.3.0-r0/gcc-11.3.0/configure --build=x86_64-linux --host=arm-poky-linux-gnueabi --target=arm-poky-linux-gnueabi --prefix=/usr --exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share --sysconfdir=/etc --sharedstatedir=/com --localstatedir=/var --libdir=/usr/lib --includedir=/usr/include --oldincludedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/ --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --enable-multilib --enable-default-pie --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix --disable-install-libiberty --disable-libssp --enable-libitm --enable-lto --disable-bootstrap --with-system-zlib --with-linker-hash-style=gnu --enable-linker-build-id --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --without-isl --with-float=hard --with-build-sysroot=/ --enable-standard-branch-protection --enable-nls --with-glibc-version=2.28 --enable-initfini-array --with-arch=armv7-a+fp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.3.0 (GCC)
root@sama5d2-xplained:/usr/test/8821cu-20210916# git pull
Already up to date.
root@sama5d2-xplained:/usr/test/8821cu-20210916# sudo ./install-driver.sh
: ---------------------------
: install-driver.sh v20230227
: armv7l (architecture)
: 1/1 (in-use/total processing units)
: 508216 (total system memory)
: 5.15.68-linux4microchip-2022.10 (kernel version)
: gcc (GCC) 11.3.0
: ---------------------------

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

Starting installation.
Installing 8821cu.conf to /etc/modprobe.d
The non-dkms installation routines are in use.
make ARCH=arm CROSS_COMPILE= -C /lib/modules/5.15.68-linux4microchip-2022.10/build M=/usr/test/8821cu-20210916  modules
make[1]: Entering directory '/lib/modules/5.15.68-linux4microchip-2022.10/build'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: arm-poky-linux-gnueabi-gcc (GCC) 11.3.0
  You are using:           gcc (GCC) 11.3.0
  CC [M]  /usr/test/8821cu-20210916/core/rtw_cmd.o
In file included from ./include/asm-generic/int-ll64.h:11,
                 from ./arch/arm/include/uapi/asm/types.h:5,
                 from ./include/uapi/linux/types.h:5,
                 from ./include/linux/types.h:6,
                 from /usr/test/8821cu-20210916/include/basic_types.h:75,
                 from /usr/test/8821cu-20210916/include/drv_types.h:26,
                 from /usr/test/8821cu-20210916/core/rtw_cmd.c:17:
./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory
   12 | #include <asm/bitsperlong.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:289: /usr/test/8821cu-20210916/core/rtw_cmd.o] Error 1
make[1]: *** [Makefile:1898: /usr/test/8821cu-20210916] Error 2
make[1]: Leaving directory '/lib/modules/5.15.68-linux4microchip-2022.10/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

Does anyone have insight on how to resolve this?

Should not assume use of nano as editor

Both install-driver.sh and edit-options.sh hard-wire use of nano as editor for /etc/modprobe.d/8821cu.conf.

On Debian-based systems at least, it would be preferable to honor the user's choice of editor, by invoking sensible-editor if found, or editor if not, instead of nano. If not familiar with this idea, see sensible-editor(1) and update-alternatives(1) man pages.

I'm not a nano user (preferring emacs or vi), and other Linux tools (such as crontab) will let me use what I want.

To avoid code duplication, maybe install-driver.sh should employ edit-options.sh?

Arm64 cross-compiling

Hi! I'm trying to cross-compile your drivers for my Jetson NX (arm64). I cannot directly use neither the install script nor the manual compilation on-board, since I'm testing the RealTime kernel.

On my host (x64 - Ubuntu 20.04.5 - gcc 9.4.0) I downloaded Nvidia's kernel sources and I compiled them.
The jetson NX has Ubuntu 20.04 (Jetpack 5.1) and I used toolchain 2020.08 (9.3.0) to compile the kernel sources in /media/gorgo/PopOS/home/gorgo/NX_5_1_HYAI/Linux_for_Tegra/source/public/kernel_out.

According to the Nvidia's documentation I shall be able to cross compile with

$ cd <path_to_module_source>
$ make ARCH=arm64 โ€“C <kernel_directory> M=$(pwd)

after setting CROSS_COMPILE accordingly.

I tried:

gorgo@razer:~/8821cu-20210118$ make ARCH=arm64 CROSS_COMPILE=~/Downloads/l4t-gcc/bin/aarch64-buildroot-linux-gnu- -C /media/gorgo/PopOS/home/gorgo/NX_5_1_HYAI/Linux_for_Tegra/source/public/kernel_out M=$(pwd)
make: Entering directory '/media/gorgo/PopOS/home/gorgo/NX_5_1_HYAI/Linux_for_Tegra/source/public/kernel_out'
  MODPOST /home/gorgo/8821cu-20210118/Module.symvers
make: Leaving directory '/media/gorgo/PopOS/home/gorgo/NX_5_1_HYAI/Linux_for_Tegra/source/public/kernel_out'

Make stops after creating 4 files only (two are 0B):

-rw-rw-r--   1 gorgo gorgo    0 mar 29 10:07 modules.order
-rw-rw-r--   1 gorgo gorgo  121 mar 29 10:07 .modules.order.cmd
-rw-rw-r--   1 gorgo gorgo  212 mar 29 10:07 .Module.symvers.cmd
-rw-rw-r--   1 gorgo gorgo    0 mar 29 10:07 Module.symvers

In this log I retried the command with -d.
makefile.log

Thank you

UBSAN: array-index-out-of-bounds in halrf.c

I've got a PopOS system (x86_64) that wasn't able to suspend with the Wifi dongle plugged in, both on the current 6.0.6 kernel and on earlier 5.x ones. The chipset otherwise seems to function correctly-- it connects to an AP and traffic works. But suspend causes the system to hang and requires a power cycle to fix.

Output from dmesg indicated an out of bounds deref bug. Fixing it fixes suspend.

[   62.049215] usb 1-2: new high-speed USB device number 10 using xhci_hcd
[   62.197930] usb 1-2: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
[   62.197948] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   62.197953] usb 1-2: Product: 802.11ac NIC
[   62.197958] usb 1-2: Manufacturer: Realtek
[   62.197962] usb 1-2: SerialNumber: 123456
[   62.246736] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   62.246982] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   62.452600] usbcore: registered new interface driver rtl8821cu
[   62.460134] rtl8821cu 1-2:1.0 wlx0ccf896fc3d4: renamed from wlan0
[   63.159843] IPv6: ADDRCONF(NETDEV_CHANGE): wlx0ccf896fc3d4: link becomes ready
[   67.973711] ================================================================================
[   67.973723] UBSAN: array-index-out-of-bounds in /var/lib/dkms/rtl8821cu/5.12.0/build/hal/phydm/halrf/halrf.c:445:17
[   67.973732] index 1 is out of range for type 'bool [1][2]'
[   67.973738] CPU: 10 PID: 3997 Comm: RTW_CMD_THREAD Tainted: P           OE      6.0.6-76060006-generic #202210290932~1669062050~22.04~d94609a
[   67.973746] Hardware name: Gigabyte Technology Co., Ltd. H610M S2H DDR4/H610M S2H DDR4, BIOS FC 12/17/2021
[   67.973750] Call Trace:
[   67.973754]  <TASK>
[   67.973760]  show_stack+0x52/0x69
[   67.973773]  dump_stack_lvl+0x49/0x6d
[   67.973787]  dump_stack+0x10/0x18
[   67.973791]  ubsan_epilogue+0x9/0x43
[   67.973796]  __ubsan_handle_out_of_bounds.cold+0x44/0x49
[   67.973802]  ? hal_mpt_CCKTxPowerAdjust+0xee0/0x102e [8821cu]
[   67.974050]  halrf_iqk_dbg+0x99/0x95c [8821cu]
[   67.974230]  phy_iq_calibrate_8821c+0x124/0x19d [8821cu]
[   67.974371]  halrf_segment_iqk_trigger+0x213/0x25a [8821cu]
[   67.974530]  rtw_phydm_iqk_trigger+0x4e/0x5e [8821cu]
[   67.974749]  rtl8821c_switch_chnl_and_set_bw+0x14f/0x34d [8821cu]
[   67.974956]  rtl8821c_handle_sw_chnl_and_set_bw+0x1ce/0x1d3 [8821cu]
[   67.975145]  rtl8821c_set_channel_bw+0x2d/0x45 [8821cu]
[   67.975327]  rtw_hal_set_chnl_bw+0xca/0x15d [8821cu]
[   67.975554]  set_channel_bwmode+0x288/0x2de [8821cu]
[   67.975715]  ? sethwreg+0x187/0x18c [8821cu]
[   67.975929]  join_cmd_hdl+0x2eb/0x379 [8821cu]
[   67.976076]  ? rtw_chk_start_clnt_join+0x1ba/0x1ba [8821cu]
[   67.976209]  rtw_cmd_thread+0x4b9/0x6b4 [8821cu]
[   67.976292]  ? rtw_stop_cmd_thread+0x51/0x51 [8821cu]
[   67.976373]  kthread+0xeb/0x120
[   67.976384]  ? kthread_complete_and_exit+0x20/0x20
[   67.976393]  ret_from_fork+0x1f/0x30
[   67.976404]  </TASK>
[   67.976407] ================================================================================
[   67.976410] ================================================================================
[   67.976413] UBSAN: array-index-out-of-bounds in /var/lib/dkms/rtl8821cu/5.12.0/build/hal/phydm/halrf/halrf.c:445:17
[   67.976418] index 1 is out of range for type 'bool [1][2]'
[   67.976421] CPU: 10 PID: 3997 Comm: RTW_CMD_THREAD Tainted: P           OE      6.0.6-76060006-generic #202210290932~1669062050~22.04~d94609a
[   67.976427] Hardware name: Gigabyte Technology Co., Ltd. H610M S2H DDR4/H610M S2H DDR4, BIOS FC 12/17/2021
[   67.976429] Call Trace:
[   67.976430]  <TASK>
[   67.976432]  show_stack+0x52/0x69
[   67.976438]  dump_stack_lvl+0x49/0x6d
[   67.976444]  dump_stack+0x10/0x18
[   67.976448]  ubsan_epilogue+0x9/0x43
[   67.976453]  __ubsan_handle_out_of_bounds.cold+0x44/0x49
[   67.976458]  ? hal_mpt_CCKTxPowerAdjust+0xee0/0x102e [8821cu]
[   67.976674]  halrf_iqk_dbg+0xaa/0x95c [8821cu]
[   67.976850]  phy_iq_calibrate_8821c+0x124/0x19d [8821cu]
[   67.976996]  halrf_segment_iqk_trigger+0x213/0x25a [8821cu]
[   67.977160]  rtw_phydm_iqk_trigger+0x4e/0x5e [8821cu]
[   67.977379]  rtl8821c_switch_chnl_and_set_bw+0x14f/0x34d [8821cu]
[   67.977586]  rtl8821c_handle_sw_chnl_and_set_bw+0x1ce/0x1d3 [8821cu]
[   67.977778]  rtl8821c_set_channel_bw+0x2d/0x45 [8821cu]
[   67.977956]  rtw_hal_set_chnl_bw+0xca/0x15d [8821cu]
[   67.978186]  set_channel_bwmode+0x288/0x2de [8821cu]
[   67.978348]  ? sethwreg+0x187/0x18c [8821cu]
[   67.978562]  join_cmd_hdl+0x2eb/0x379 [8821cu]
[   67.978715]  ? rtw_chk_start_clnt_join+0x1ba/0x1ba [8821cu]
[   67.978858]  rtw_cmd_thread+0x4b9/0x6b4 [8821cu]
[   67.978969]  ? rtw_stop_cmd_thread+0x51/0x51 [8821cu]
[   67.979079]  kthread+0xeb/0x120
[   67.979087]  ? kthread_complete_and_exit+0x20/0x20
[   67.979096]  ret_from_fork+0x1f/0x30
[   67.979106]  </TASK>
[   67.979124] ================================================================================

~$ sudo uname -mr
6.0.6-76060006-generic x86_64
~$ mokutil --sb-state
SecureBoot disabled
Platform is in Setup Mode
~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 007: ID 2109:8817 VIA Labs, Inc. PD3.0 USB-C Device     
Bus 001 Device 009: ID 0d8c:0014 C-Media Electronics, Inc. Audio Adapter (Unitek Y-247A)
Bus 001 Device 008: ID 05ac:024f Apple, Inc. Aluminium Keyboard (ANSI)
Bus 001 Device 006: ID 2109:4817 VIA Labs, Inc. USB2.0 Hub             
Bus 001 Device 005: ID 062a:5918 MosArt Semiconductor Corp. 2.4G Keyboard Mouse
Bus 001 Device 003: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub             
Bus 001 Device 002: ID 0b05:190e ASUSTek Computer, Inc. ASUS USB-BT500
Bus 001 Device 010: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
~$ rfkill list all
0: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
~$ dkms status
nvidia/515.65.01, 6.0.2-76060002-generic, x86_64: installed
nvidia/515.65.01, 6.0.3-76060003-generic, x86_64: installed
nvidia/515.65.01, 6.0.6-76060006-generic, x86_64: installed
rtl8821cu/5.12.0, 6.0.6-76060006-generic, x86_64: installed
system76/1.0.14~1643391291~22.04~78ede46, 6.0.2-76060002-generic, x86_64: installed
system76/1.0.14~1643391291~22.04~78ede46, 6.0.3-76060003-generic, x86_64: installed
system76/1.0.14~1643391291~22.04~78ede46, 6.0.6-76060006-generic, x86_64: installed
system76_acpi/1.0.2~1659568831~22.04~a88dcce, 6.0.2-76060002-generic, x86_64: installed (original_module exists)
system76_acpi/1.0.2~1659568831~22.04~a88dcce, 6.0.3-76060003-generic, x86_64: installed (original_module exists)
system76_acpi/1.0.2~1659568831~22.04~a88dcce, 6.0.6-76060006-generic, x86_64: installed (original_module exists)
system76-io/1.0.2~1655490480~22.04~0217576, 6.0.2-76060002-generic, x86_64: installed
system76-io/1.0.2~1655490480~22.04~0217576, 6.0.3-76060003-generic, x86_64: installed
system76-io/1.0.2~1655490480~22.04~0217576, 6.0.6-76060006-generic, x86_64: installed
~$ iw dev
phy#0
	Interface wlx0ccf896fc3d4
		ifindex 3
		wdev 0x1
		addr <redacted>
		ssid <redacted>
		type managed
		channel 149 (5745 MHz), width: 80 MHz, center1: 5775 MHz
		txpower 17.00 dBm
~$ iw reg get
global
country US: DFS-FCC
	(902 - 904 @ 2), (N/A, 30), (N/A)
	(904 - 920 @ 16), (N/A, 30), (N/A)
	(920 - 928 @ 8), (N/A, 30), (N/A)
	(2400 - 2472 @ 40), (N/A, 30), (N/A)
	(5150 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
	(5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
	(5470 - 5730 @ 160), (N/A, 24), (0 ms), DFS
	(5730 - 5850 @ 80), (N/A, 30), (N/A), AUTO-BW
	(5850 - 5895 @ 40), (N/A, 27), (N/A), NO-OUTDOOR, AUTO-BW, PASSIVE-SCAN
	(5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR, PASSIVE-SCAN
	(57240 - 71000 @ 2160), (N/A, 40), (N/A)

(Question) Mesh Point Mode?

The readme states that it supports mesh, but mesh point mode is not listed in the Supported interface modes. Is this a clerical error, or am I misunderstanding something?

I'd like to build this driver into a Linux 5.15.68 version with yocto for mesh support. Should this work for me?

Armbian(23.02.2) install

neofetch
root@armbian 
------------ 
OS: Armbian (23.02.2) aarch64 
Host: CM311-1a-YST 
Kernel: 5.15.98-flippy-82+o 
Uptime: 14 days, 1 hour, 56 mins 
Packages: 583 (dpkg) 
Shell: zsh 5.8 
Resolution: 720x576i 
Terminal: /dev/pts/0 
CPU: ARMv8 rev 4 (v8l) (4) @ 1.908GHz 
Memory: 813MiB / 1953MiB 
armbian:8821cu-20210916:# ./install-driver.sh                            <main>
: ---------------------------
: install-driver.sh v20230227
: aarch64 (architecture)
: 4/4 (in-use/total processing units)
: 2000832 (total system memory)
: 5.15.98-flippy-82+o (kernel version)
: gcc (Debian 10.2.1-6) 10.2.1 20210110
: dkms:2.8
: ---------------------------

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

Starting installation.
Installing 8821cu.conf to /etc/modprobe.d
The dkms installation routines are in use.
Copying source files to /usr/src/rtl8821cu-5.12.0.4

Creating symlink /var/lib/dkms/rtl8821cu/5.12.0.4/source ->
                 /usr/src/rtl8821cu-5.12.0.4

DKMS: add completed.
The driver was added to dkms successfully.
: ---------------------------

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
./dkms-make.sh...(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.15.98-flippy-82+o (aarch64)
Consult /var/lib/dkms/rtl8821cu/5.12.0.4/build/make.log for more information.
An error occurred. dkms build error:  10
Please report this error.
Please copy all screen output and paste it into the problem report.
Run the following before reattempting installation.
$ sudo ./remove-driver.sh

Fun with Manjaro x86_64? First kernel header mismatch but real issue is appears to hang up session when trying to delete wireless interface?

This was a bit of a surprise...

# sudo ./install-driver.sh
Your kernel header files aren't properly installed.
Please consult your distro documentation or user support forums.
Once the header files are properly installed, please run "sudo ./install-driver.sh"

So tried manual...

# make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.1.1-1-MANJARO/build M=/root/src/8821cu-20210916 modules
make[1]: Entering directory '/root/src/8821cu-20210916'
make[1]: *** /lib/modules/6.1.1-1-MANJARO/build: No such file or directory. Stop.
make[1]: Leaving directory '/root/src/8821cu-20210916'
make: *** [Makefile:2501: modules] Error 2

Headers are installed...

# pacman -Q | grep headers
linux-api-headers 5.18.15-1
linux419-headers 4.19.271-1
linux61-headers 6.1.9-1
vulkan-headers 1:1.3.240-1

# uname -r
6.1.1-1-MANJARO

# ls -l /lib/modules/
total 12
drwxr-xr-x 3 root root 4096 Feb 6 21:21 4.19.271-1-MANJARO
drwxr-xr-x 4 root root 4096 Feb 6 21:39 6.1.9-1-MANJARO
drwxr-xr-x 2 root root 4096 Feb 6 21:28 extramodules-6.1-MANJARO

So something is not quite right, got a odd kernel version versus headers mismatch some how, wonder why the correct headers were not pulled only the very latest. Did a reboot. Now, the system is running 6.1.9-1... And that is latest headers.

image

# uname -r
6.1.9-1-MANJARO

Now installing as expected. Odd the system did not tell me of the pending kernel change, the UI never stated the kernel was out of sync. Guess Manjaro does not have a checkrestart like command or does it?

Install fails on Raspberry Pi OS with kernel 6.1.42-v8+ (aarch64)

Hi, can you please advise me on this?

sudo ./install-driver.sh
: ---------------------------
: install-driver.sh v20230227
: aarch64 (architecture)
: 4/4 (in-use/total processing units)
: 3884804 (total system memory)
: 6.1.42-v8+ (kernel version)
: gcc (Debian 10.2.1-6) 10.2.1 20210110
: dkms:2.8
: ---------------------------

Checking for previously installed drivers.
rtl8821cu, 5.12.0.4: added
rtl8821CU, 5.4.1, 5.10.0-24-arm64, aarch64: installed
: ---------------------------

Removing a dkms installation.


Deleting module version: 5.12.0.4
completely from the DKMS tree.

Done.
Removing 8821cu.conf from /etc/modprobe.d
Removing source files from /usr/src/rtl8821cu-5.12.0.4
Removal complete.
: ---------------------------

Starting installation.
Installing 8821cu.conf to /etc/modprobe.d
The dkms installation routines are in use.
Copying source files to /usr/src/rtl8821cu-5.12.0.4

Creating symlink /var/lib/dkms/rtl8821cu/5.12.0.4/source ->
/usr/src/rtl8821cu-5.12.0.4

DKMS: add completed.
The driver was added to dkms successfully.
: ---------------------------

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
./dkms-make.sh..........................................................................(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.1.42-v8+ (aarch64)
Consult /var/lib/dkms/rtl8821cu/5.12.0.4/build/make.log for more information.
An error occurred. dkms build error: 10
Please report this error.
Please copy all screen output and paste it into the problem report.
Run the following before reattempting installation.
$ sudo ./remove-driver.sh

cat /var/lib/dkms/rtl8821cu/5.12.0.4/build/make.log
DKMS make.log for rtl8821cu-5.12.0.4 for kernel 6.1.42-v8+ (aarch64)
Mon 14 Aug 2023 05:38:10 PM PDT
make ARCH=arm64 CROSS_COMPILE= -C /lib/modules/6.1.42-v8+/build M=/var/lib/dkms/rtl8821cu/5.12.0.4/build modules
make[1]: Entering directory '/home/killbot/linux-431319d91b8584c9f28b195ab9a97d7e78905aeb'
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_cmd.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_security.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_debug.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_io.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_ioctl_query.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_ioctl_set.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_ieee80211.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_mlme.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_mlme_ext.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_mi.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_wlan_util.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_vht.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_pwrctrl.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_rf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_chplan.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/monitor/rtw_radiotap.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_recv.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_sta_mgt.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_ap.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/wds/rtw_wds.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/mesh/rtw_mesh.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/mesh/rtw_mesh_pathtbl.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/mesh/rtw_mesh_hwmp.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_xmit.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_p2p.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_rson.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_tdls.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_br_ext.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_iol.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_sreset.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_btcoex_wifionly.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_btcoex.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_beamforming.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_odm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_rm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_rm_fsm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_ft.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_wnm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_mbo.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_rm_util.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/efuse/rtw_efuse.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_roch.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-internal.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-internal-enc.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-gcm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-ccm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-omac1.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/ccmp.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/gcmp.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-siv.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/aes-ctr.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/sha256-internal.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/sha256.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/sha256-prf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/crypto/rtw_crypto_wrap.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/core/rtw_swcrypto.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/osdep_service.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/os_intfs.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/usb_intf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/usb_ops_linux.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/ioctl_linux.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/xmit_linux.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/mlme_linux.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/recv_linux.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/ioctl_cfg80211.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/rtw_cfgvendor.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/wifi_regd.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/rtw_android.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/rtw_proc.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/nlrtw.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/os_dep/linux/rtw_rhashtable.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_intf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_com.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_com_phycfg.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_phy.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_dm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_dm_acs.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_btcoex_wifionly.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_btcoex.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_mp.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_mcc.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_hci/hal_usb.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/led/hal_led.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/led/hal_usb_led.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/rtl8821c_halinit.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/rtl8821c_mac.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/rtl8821c_cmd.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/rtl8821c_phy.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/rtl8821c_dm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/rtl8821c_ops.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/hal8821c_fw.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_halinit.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_halmac.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_io.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_xmit.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_recv.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_led.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/rtl8821c/usb/rtl8821cu_ops.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/efuse/rtl8821c/HalEfuseMask8821C_USB.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/hal_halmac.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_api.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_dbg.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_bb_rf_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_common_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_efuse_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_flash_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_fw_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_gpio_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_init_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_mimo_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_usb_88xx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_cfg_wmac_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_common_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_gpio_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_init_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_phy_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_pwr_seq_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/halmac/halmac_88xx/halmac_8821c/halmac_usb_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_debug.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_antdiv.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_soml.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_smt_ant.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_antdect.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_interface.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_phystatus.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_hwconfig.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_dig.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_pathdiv.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_rainfo.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_dynamictxpower.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_adaptivity.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_cfotracking.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_noisemonitor.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_beamforming.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_direct_bf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_dfs.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/txbf/halcomtxbf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/txbf/haltxbfinterface.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/txbf/phydm_hal_txbf_api.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_adc_sampling.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_ccx.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_psd.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_primary_cca.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_cck_pd.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_rssi_monitor.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_auto_dbg.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_math_lib.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_api.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_pow_train.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_lna_sat.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_pmac_tx_setting.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_mp.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/phydm_cck_rx_pathdiv.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halrf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halrf_debug.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halphyrf_ce.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halrf_powertracking_ce.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halrf_powertracking.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halrf_kfree.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/halrf_psd.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/rtl8821c/halhwimg8821c_bb.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/rtl8821c/halhwimg8821c_mac.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/rtl8821c/phydm_hal_api8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/rtl8821c/phydm_regconfig8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/rtl8821c/phydm_rtl8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/rtl8821c/halhwimg8821c_rf.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/rtl8821c/halrf_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/phydm/halrf/rtl8821c/halrf_iqk_8821c.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/btc/halbtc8821cwifionly.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/btc/halbtc8821c1ant.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/hal/btc/halbtc8821c2ant.o
CC [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/platform/platform_ops.o
LD [M] /var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.o
MODPOST /var/lib/dkms/rtl8821cu/5.12.0.4/build/Module.symvers
ERROR: modpost: "__arch_copy_to_user" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "preempt_schedule_notrace" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "alt_cb_patch_nops" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "__udelay" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "csum_ipv6_magic" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "__rcu_read_unlock" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "__rcu_read_lock" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "_raw_spin_unlock" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "__arch_copy_from_user" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
ERROR: modpost: "__const_udelay" [/var/lib/dkms/rtl8821cu/5.12.0.4/build/8821cu.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:126: /var/lib/dkms/rtl8821cu/5.12.0.4/build/Module.symvers] Error 1
make[1]: *** [Makefile:1964: modpost] Error 2
make[1]: Leaving directory '/home/killbot/linux-431319d91b8584c9f28b195ab9a97d7e78905aeb'
make: *** [Makefile:2501: modules] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.