### Manual RTL8852CU Driver Installation Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Provides steps for a manual, command-line installation of the RTL8852CU driver. It involves cleaning previous builds, compiling with multiple jobs, and installing the driver. Rebooting is recommended, especially if Secure Boot is enabled. ```bash make clean make -j$(nproc) # If secure boot is off: sudo make install sudo reboot # If secure boot is on: sudo make sign-install # Follow on-screen prompts for Secure Boot enrollment. ``` -------------------------------- ### Start DHCP Server Service Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Guides/linux_dhcp_server_notes.txt Starts the DHCP server service using the init.d script. This command assumes the system uses System V-style init scripts. ```bash //Execute [root@localhost ~]#/etc/rc.d/init.d/dhcpd start ``` -------------------------------- ### Install Development Packages (Ubuntu/Ubuntu-based) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs essential development packages for Ubuntu and its derivatives. This includes `build-essential`, `dkms`, `git`, and `iw`. ```bash sudo apt install -y build-essential dkms git iw ``` -------------------------------- ### Install Build Tools (Armbian) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs essential build tools on Armbian systems. This includes `build-essential`, which provides compilers and development libraries required for compiling software. ```bash sudo apt install -y build-essential ``` -------------------------------- ### Resetting MOK List for Secure Boot Issues Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/FAQ.md This command is used to reset the Machine Owner Key (MOK) list, which can resolve issues preventing the system from booting after incorrect password entry during driver installation with Secure Boot enabled. It requires administrator privileges. ```bash sudo mokutil --reset ``` -------------------------------- ### Install Development Packages (openSUSE) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs the kernel development pattern and `dkms` on openSUSE systems. This command ensures the necessary components for building kernel modules are present. ```bash sudo zypper install -t pattern devel_kernel dkms ``` -------------------------------- ### Install Development Packages (Alpine) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs the Linux LTS headers, `make`, and `gcc` on Alpine Linux. These are fundamental packages for compiling software on Alpine. ```bash sudo apk add linux-lts-dev make gcc ``` -------------------------------- ### Install Development Packages (Void Linux) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs kernel headers, `dkms`, `git`, and `make` on Void Linux. These packages are crucial for building and managing kernel modules. ```bash sudo xbps-install linux-headers dkms git make ``` -------------------------------- ### Run RTL8852CU Driver Installation Script Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Executes the automated installation script for the RTL8852CU driver. It can be run directly or with 'sh'. For non-interactive builds, the 'NoPrompt' option should be used. ```bash sudo ./install-driver.sh # or sudo sh install-driver.sh ``` -------------------------------- ### Install Development Packages (Debian/Kali/Raspberry Pi Desktop) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs required packages for Debian, Kali, and Raspberry Pi Desktop (x86), including kernel headers specific to the running kernel, build tools, `bc`, `dkms`, `git`, and `libelf-dev`. ```bash sudo apt install -y linux-headers-$(uname -r) build-essential bc dkms git libelf-dev rfkill iw ``` -------------------------------- ### Install Development Packages (Fedora) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs development tools on Fedora systems, including `git`, `dkms`, and `kernel-devel`. `openssl` may also be needed if Secure Boot is active. ```bash sudo dnf -y install git dkms kernel-devel ``` -------------------------------- ### Install Development Packages (Arch/Manjaro) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs common development packages on Arch and Manjaro Linux using `pacman`. This includes kernel headers, `dkms`, `git`, `bc`, and `iw`. ```bash sudo pacman -S --noconfirm linux-headers dkms git bc iw ``` -------------------------------- ### Install Manjaro RasPi4B Specific Headers (Arch/Manjaro) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs specific kernel headers for Manjaro on Raspberry Pi 4B, along with `dkms`, `git`, and `bc`. This is a specialized installation for that particular hardware and OS combination. ```bash sudo pacman -S --noconfirm linux-rpi4-headers dkms git bc ``` -------------------------------- ### Uninstall RTL8852CU Driver Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md These commands guide the user through the process of uninstalling the RTL8852CU driver. It involves navigating to the driver directory and executing the uninstallation script. An optional 'NoPrompt' argument can be used for automated builds. ```bash cd ~/src/rtl8852cu-20240510 sudo ./uninstall-driver.sh ``` -------------------------------- ### Install DHCP Server using YUM Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Guides/linux_dhcp_server_notes.txt Installs the DHCP server package using the YUM package manager. This is a prerequisite for setting up a DHCP server. ```bash //Install dhcp server [root@localhost ~]#yum install dhcp ``` -------------------------------- ### Configure GRUB for USB Adapter Mode-Switching (Ubuntu) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/FAQ.md This snippet demonstrates how to modify the GRUB configuration file on Ubuntu systems to address USB WiFi adapter mode-switching issues. By adding specific kernel parameters, the system can correctly identify and utilize the adapter. Ensure to replace `0bda:1a2b` with your adapter's specific storage VID/PID. ```shell sudo nano /etc/default/grub # Add 'usb-storage.quirks=0bda:1a2b:i' to GRUB_CMDLINE_LINUX # Example: GRUB_CMDLINE_LINUX="quiet usb-storage.quirks=0bda:1a2b:i" sudo update-grub sudo reboot ``` -------------------------------- ### Install Development Packages (Raspberry Pi OS) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs necessary packages for development on Raspberry Pi OS, including kernel headers, build tools, and utilities like `bc`, `dkms`, and `git`. ```bash sudo apt install -y raspberrypi-kernel-headers build-essential bc dkms git ``` -------------------------------- ### Download Driver Source Code Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Clones the `rtl8852cu-20240510` repository from GitHub into the current directory (`~/src`). This command uses `git` to download the source code for the driver. ```bash git clone https://github.com/morrownr/rtl8852cu-20240510.git ``` -------------------------------- ### Create Driver Directory Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Creates a directory named `src` in the user's home directory if it does not already exist. The `-p` flag ensures that parent directories are created as needed and no error is thrown if the directory already exists. ```bash mkdir -p ~/src ``` -------------------------------- ### Configuring Raspberry Pi OS for 32-bit Kernel Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/FAQ.md This configuration change is necessary for Raspberry Pi 4B or 400 devices running Raspberry Pi OS when encountering issues with kernel header files during driver installation. Adding 'arm_64bit=0' to '/boot/config.txt' forces the use of the 32-bit kernel. ```bash echo "arm_64bit=0" >> /boot/config.txt reboot ``` -------------------------------- ### Update and Install RTL8852CU Driver Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This snippet details the commands to pull the latest code from the repository and then execute the driver installation script. Ensure you are in the correct directory before running these commands. ```bash git pull sudo ./install-driver.sh ``` -------------------------------- ### Configure Kernel Parameters for USB Adapter Mode-Switching (Raspberry Pi OS) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/FAQ.md This snippet shows how to add kernel parameters to the `cmdline.txt` file on Raspberry Pi OS to resolve USB WiFi adapter mode-switching problems. This method directly modifies the boot configuration to ensure the adapter is recognized correctly. Replace `0bda:1a2b` with your adapter's storage VID/PID. ```shell sudo nano /boot/firmware/cmdline.txt # Add 'usb-storage.quirks=0bda:1a2b:i' to the end of the console= line sudo reboot ``` -------------------------------- ### Change Directory Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Changes the current working directory to `~/src`. This is a standard command for navigating the file system. ```bash cd ~/src ``` -------------------------------- ### Manual RTL8852CU Driver Uninstallation Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This command uninstalls the RTL8852CU driver when it was installed using the manual installation instructions. A reboot is recommended after uninstallation. ```bash sudo make uninstall sudo reboot ``` -------------------------------- ### Check DKMS Status Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This command checks the status of installed DKMS modules. It is useful for identifying any conflicting drivers before or after installing the rtl8852cu driver. ```shell sudo dkms status ``` -------------------------------- ### Edit RTL8852CU Driver Options Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Runs a script to install and/or edit the driver options file (`8852cu.conf`). This file contains module parameters that are applied to the driver on system boot. ```bash sudo ./edit-options.sh ``` -------------------------------- ### Create DHCP Leases File Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Guides/linux_dhcp_server_notes.txt Creates the `dhcpd.leases` file if it does not exist. This file is used by the DHCP server to record information about clients it has leased IP addresses to. ```bash //If /var/lib/dhcpd/dhcpd.leases doesn't exist, //we should establish it //This file is used to record clients information. [root@localhost ~]#touch /var/lib/dhcpd/dhcpd.leases ``` -------------------------------- ### Install RTL8852CU Driver (Shell Script) Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt Automates the installation of the RTL8852CU driver, supporting both DKMS and non-DKMS methods. It performs system checks for kernel version, compiler, headers, and DKMS availability, then proceeds with the installation. It can be run interactively or non-interactively. ```bash sudo ./install-driver.sh # Non-interactive installation sudo ./install-driver.sh NoPrompt # System checks performed: # - Kernel version: 6.8.0 or later # - GCC compiler installed # - Kernel headers available in /lib/modules/$(uname -r)/build # - DKMS availability (optional but recommended) # - Secure Boot status via mokutil # Output example: # install-driver.sh v20250317 # Debian 12 # Kernel version: 6.8.0-1028-aws # Kernel ARCH: x86_64 # Processing units: 2/4 (in-use/total) # gcc: gcc (Ubuntu 12.1.0-2ubuntu1) 12.1.0 # dkms: 3.0.10 # Secure Boot: disabled # Starting installation: # Copying 8852cu.conf to /etc/modprobe.d # The dkms installation routines are in use. # The driver was added to dkms successfully. # The driver was built by dkms successfully. # The driver was installed by dkms successfully. ``` -------------------------------- ### Update System Packages (Void Linux) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Installs system updates and upgrades packages on Void Linux. This command synchronizes package repositories and applies updates. ```bash sudo xbps-install -Syu ``` -------------------------------- ### Navigate to Driver Directory Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Changes the current working directory to the newly cloned driver directory, `~/src/rtl8852cu-20240510`. This prepares the user to work within the driver's source files. ```bash cd ~/src/rtl8852cu-20240510 ``` -------------------------------- ### Install GCC 12 for Ubuntu Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This command installs GCC version 12 on Ubuntu systems. It is recommended when the active GCC major version does not match the kernel's GCC major version. ```bash sudo apt install gcc-12 ``` -------------------------------- ### Import MOK Public Key on Fedora Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This command is used on Fedora systems with Secure Boot enabled to import the MOK (Machine Owner Key) public key. This is necessary for the driver to load correctly. ```bash sudo mokutil --import /var/lib/dkms/mok.pub ``` -------------------------------- ### Reinstall Driver After Distro Upgrade Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This command reinstalls the rtl8852cu driver after a distribution upgrade has been completed. It ensures the driver is compatible with the newly installed kernel. ```shell sudo sh install-driver.sh ``` -------------------------------- ### Update System Packages (openSUSE) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Updates system packages on openSUSE distributions. This command refreshes the package repositories and applies available updates. ```bash sudo zypper update ``` -------------------------------- ### Update System Packages (Debian/Ubuntu) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Updates the package list and upgrades installed packages on Debian-based systems like Ubuntu, Kali, Armbian, and Raspberry Pi OS. This ensures your system has the latest software versions before proceeding with further installations. ```bash sudo apt update && sudo apt upgrade ``` -------------------------------- ### Configure DHCP Server (`dhcpd.conf`) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Guides/linux_dhcp_server_notes.txt Provides a sample configuration file for the ISC DHCP server. It includes global options, subnet declarations with IP ranges and router configurations, and host-specific settings for static IP assignments. ```bash //We shoule copy /usr/share/doc/dhcp-4.2.0/dhcpd.conf.sample to /etc/dhcp/dhcpd.conf //and modifiy /etc/dhcp/dhcpd.conf as the following [root@localhost ~]#cat /etc/dhcp/dhcpd.conf # dhcpd.conf # # Sample configuration file for ISC dhcpd # # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; # Use this to enble / disable dynamic dns updates globally. #ddns-update-style none; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. subnet 10.152.187.0 netmask 255.255.255.0 { } # This is a very basic subnet declaration. subnet 10.254.239.0 netmask 255.255.255.224 { range 10.254.239.10 10.254.239.20; option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; } # This declaration allows BOOTP clients to get dynamic addresses, # which we don't really recommend. subnet 10.254.239.32 netmask 255.255.255.224 { range dynamic-bootp 10.254.239.40 10.254.239.60; option broadcast-address 10.254.239.31; option routers rtr-239-32-1.example.org; } # A slightly different configuration for an internal subnet. subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.30 192.168.1.150; option domain-name-servers 192.168.1.254; option domain-name "internal.org"; option routers 192.168.1.254; option broadcast-address 192.168.1.255; default-lease-time 6000; max-lease-time 7200; } subnet 172.21.69.0 netmask 255.255.255.0 { } # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. host passacaglia { hardware ethernet 0:0:c0:5d:bd:95; filename "vmunix.passacaglia"; server-name "toccata.fugue.com"; } # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. host fantasia { hardware ethernet 08:00:07:26:c0:a5; fixed-address fantasia.fugue.com; } # You can declare a class of clients and then do address allocation # based on that. The example below shows a case where all clients # in a certain class get addresses on the 10.17.224/24 subnet, and all # other clients get addresses on the 10.0.29/24 subnet. class "foo" { match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; } shared-network 224-29 { subnet 10.17.224.0 netmask 255.255.255.0 { option routers rtr-224.example.org; } subnet 10.0.29.0 netmask 255.255.255.0 { option routers rtr-29.example.org; } pool { allow members of "foo"; range 10.17.224.10 10.17.224.250; } pool { deny members of "foo"; range 10.0.29.10 10.0.29.230; } } [root@localhost ~]# ``` -------------------------------- ### Reboot System Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Reboots the system. This is often recommended after updating system packages to ensure all changes take effect. ```bash sudo reboot ``` -------------------------------- ### Update and Uninstall Driver Before Distro Upgrade Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md This sequence of commands is used to update the driver code and then uninstall it before performing a distribution upgrade. This prevents potential conflicts with the new kernel. ```shell git pull sudo sh uninstall-driver.sh ``` -------------------------------- ### Update System Packages (Arch/Manjaro) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Synchronizes package databases and upgrades all installed packages on Arch-based systems, including Manjaro. This command is essential for maintaining an up-to-date system. ```bash sudo pacman -Syu ``` -------------------------------- ### Update System Packages (Fedora) Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md Upgrades all installed packages on Fedora systems. This command ensures that your Fedora distribution is up-to-date. ```bash sudo dnf upgrade ``` -------------------------------- ### Driver Installation and Removal Script Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Concurrent_Mode.md Scripts to remove the existing driver and install the new one after enabling Concurrent Mode. These commands ensure the driver is properly updated to support the new configuration. ```shell sudo ./remove-driver.sh sudo ./install-driver.sh ``` -------------------------------- ### hostapd-rtl8852cu.conf - AP Mode Configuration Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt This is an example configuration file for hostapd, used to set up the RTL8852CU adapter as an Access Point. It includes basic settings for SSID, passphrase, hardware mode, and channel. Advanced options for WPA3 and WiFi 6 (802.11ax) are also commented out. ```ini # Basic AP configuration ssid=rtl8832cu wpa_passphrase=myPW1234 hw_mode=a # a = 5 GHz (802.11a/n/ac/ax), g = 2.4 GHz channel=36 # 5 GHz channel # Required module parameters for AP mode: # options 8852cu rtw_he_enable=2 rtw_vht_enable=2 # WPA3 configuration (required for 6 GHz band 4): # wpa=2 # wpa_key_mgmt=SAE # rsn_pairwise=CCMP # ieee80211w=2 # Management Frame Protection required # WiFi 6 (802.11ax) capabilities: # ieee80211ax=1 # he_su_beamformer=1 # he_su_beamformee=1 # he_mu_beamformer=0 # HT capabilities (802.11n): # ht_capab=[LDPC][HT40+][HT40-][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1] # VHT capabilities (802.11ac): # vht_capab=[MAX-MPDU-7991][VHT160][RXLDPC][SHORT-GI-80][SHORT-GI-160][TX-STBC-2BY1][RX-STBC-1] # Start hostapd: # sudo hostapd /etc/hostapd/hostapd-rtl8852cu.conf # Requirements: # - hostapd 2.10 or later for WiFi 6/6e support # - Verify with: hostapd -v ``` -------------------------------- ### Check GCC and Kernel Version Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/README.md These commands help determine the GCC version used to compile the kernel and the currently active GCC version. This is crucial for identifying potential compatibility issues during driver compilation. ```bash cat /proc/version gcc --version ``` -------------------------------- ### Specify DHCP Server Interface Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Guides/linux_dhcp_server_notes.txt Configures which network interface the DHCP server will listen on. This is done by setting the DHCPDARGS environment variable in the `/etc/sysconfig/dhcpd` file. ```bash //Set only one interface as dhcp server [root@localhost ~]#cat /etc/sysconfig/dhcpd # Command line options here DHCPDARGS=wlan0 ``` -------------------------------- ### supported-device-IDs - Device Compatibility Check Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt This file lists the USB Vendor and Product IDs for adapters compatible with the RTL8852CU driver. Users can check their adapter's compatibility by comparing its ID (obtained via `lsusb`) with this list. Example `lsusb` output and common adapter models are provided. ```bash # View supported devices cat supported-device-IDs # Check if your adapter is supported: # 1. Plug in the adapter # 2. Run: lsusb # 3. Look for vendor:product ID (format: 0bda:xxxx for Realtek) # 4. Compare with supported-device-IDs file # Example lsusb output: # Bus 001 Device 005: ID 0bda:c852 Realtek Semiconductor Corp. # Common supported adapters: # - Edup AX5400 EP-AX1671 (single-state recommended) # - TP-Link Archer TX50UH V1 # - TP-Link Archer TXE70UH(EU) V1 # - MSI AXE5400 # - Brostrend AX8 (multi-state, may require modeswitch) # Verify driver is loaded: # lsmod | grep 8852cu # dmesg | grep 8852cu # ip link show ``` -------------------------------- ### Makefile - Driver Compilation Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt This Makefile controls the compilation of the RTL8852CU driver. It allows configuration of chipset, interface, and various features like power saving and Bluetooth coexistence. Compilation involves standard Make targets and installation requires root privileges, with options for Secure Boot. ```makefile # Key configuration options CONFIG_RTL8852C = y # Enable RTL8852C chipset support CONFIG_USB_HCI = y # Enable USB interface CONFIG_MP_INCLUDED = y # Include manufacturing test mode CONFIG_POWER_SAVE = y # Enable power saving features CONFIG_BTC = y # Enable Bluetooth coexistence CONFIG_WAPI_SUPPORT = n # WAPI support (China) # Compile the driver manually: # make clean # make -j$(nproc) # sudo make install # For non-Secure Boot systems # sudo make sign-install # For Secure Boot systems # sudo reboot # Check compilation: # If compilation fails, verify: # - GCC version matches kernel compilation GCC (major version) # - Kernel headers installed: ls /lib/modules/$(uname -r)/build # - Sufficient memory available (reduce parallel jobs if needed) # Build artifacts: # - 8852cu.ko (kernel module) # - Output in current directory after make ``` -------------------------------- ### Assign Static IP to WLAN Interface Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Guides/linux_dhcp_server_notes.txt Assigns a static IP address to a specified WLAN interface. This step is often necessary to ensure the interface has a predictable IP for network services like DHCP. ```bash //Depends on the above setting, wlan interface IP would be 192.168.1.254 [root@localhost ~]#ifconfig wlan14 192.168.1.254 ``` -------------------------------- ### Verify Concurrent Mode with iw dev Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Concurrent_Mode.md Command to verify the successful activation of Concurrent Mode. After installation and reboot, this command should display two wireless interfaces (e.g., wlan0 and wlan1) with similar MAC addresses, indicating the driver is operating in concurrent mode. ```bash iw dev ``` -------------------------------- ### Enable Concurrent Mode in Makefile Source: https://github.com/morrownr/rtl8852cu-20240510/blob/main/docs/Concurrent_Mode.md Modify the Makefile to enable Concurrent Mode by changing the configuration flag. This is a prerequisite for using dual wireless interfaces on a single adapter. Ensure to follow installation and reinstallation steps after modification. ```makefile CONFIG_CONCURRENT_MODE = y ``` -------------------------------- ### Uninstall RTL8852CU Driver (Shell Script) Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt Removes the RTL8852CU driver from the system, including both DKMS and non-DKMS installations. It cleans up kernel modules, DKMS configurations, and associated files. The script supports interactive and non-interactive uninstallation. ```bash sudo ./uninstall-driver.sh # Non-interactive uninstallation sudo ./uninstall-driver.sh NoPrompt # Removes: # - Kernel module from /lib/modules/*/kernel/drivers/net/wireless/ # - DKMS registration and source files # - Configuration file /etc/modprobe.d/8852cu.conf # - Source files from /usr/src/rtl8852cu-1.19.2.1/ # Output example: # uninstall-driver.sh v20241208 # x86_64 (kernel architecture) # 6.8.0-1028-aws (kernel version) # Uninstalling a driver that was installed by dkms. # Removing 8852cu.conf from /etc/modprobe.d # Removing source files from /usr/src/rtl8852cu-1.19.2.1 # The driver was uninstalled successfully. ``` -------------------------------- ### Edit Driver Module Options (Shell Script) Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt Opens the driver's configuration file (`8852cu.conf`) for editing using the system's default editor. It ensures superuser privileges and prompts the user to reboot to apply any changes made to the module parameters. ```bash # Edit driver options (uses $VISUAL, $EDITOR, or default editor) sudo ./edit-options.sh # The script: # 1. Checks for superuser privileges # 2. Determines text editor (VISUAL, EDITOR, or default from default-editor.txt) # 3. Copies 8852cu.conf to /etc/modprobe.d if not present # 4. Opens /etc/modprobe.d/8852cu.conf in editor # 5. Prompts to reboot for changes to take effect # Example workflow: # $ sudo ./edit-options.sh # [Editor opens with /etc/modprobe.d/8852cu.conf] # Do you want to apply the new options by rebooting now? (recommended) [Y/n] ``` -------------------------------- ### dkms.conf - DKMS Configuration Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt This file configures Dynamic Kernel Module Support (DKMS) for the rtl8852cu driver. It specifies package details, the module to build, and the build script. DKMS automates driver rebuilds when kernel updates occur, ensuring the driver remains compatible. ```conf PACKAGE_NAME="rtl8852cu" PACKAGE_VERSION="1.19.2.1" BUILT_MODULE_NAME[0]="8852cu" MAKE="kernelver=$kernelver ./dkms-make.sh" CLEAN="'make' clean" DEST_MODULE_LOCATION[0]="/updates/dkms" AUTOINSTALL="yes" # DKMS manages driver lifecycle: # 1. Source copied to /usr/src/rtl8852cu-1.19.2.1/ # 2. Module registered with: dkms add -m rtl8852cu -v 1.19.2.1 # 3. Module built with: dkms build -m rtl8852cu -v 1.19.2.1 # 4. Module installed with: dkms install -m rtl8852cu -v 1.19.2.1 # Check DKMS status: # dkms status # Manual DKMS operations: # dkms add -m rtl8852cu -v 1.19.2.1 # dkms build -m rtl8852cu -v 1.19.2.1 # dkms install -m rtl8852cu -v 1.19.2.1 # dkms remove -m rtl8852cu -v 1.19.2.1 --all ``` -------------------------------- ### RTL8852CU Driver Configuration (Conf File) Source: https://context7.com/morrownr/rtl8852cu-20240510/llms.txt This configuration file (`8852cu.conf`) specifies kernel module parameters for the RTL8852CU driver. It allows customization of operational modes (client, AP), WiFi standards (HE, VHT), country codes, and DFS channels. Changes require a system reboot to take effect. ```conf # Managed (client) mode configuration options 8852cu rtw_switch_usb_mode=0 # AP (hotspot) mode configuration with WiFi 6 features # options 8852cu rtw_switch_usb_mode=0 rtw_he_enable=2 rtw_vht_enable=2 # USB mode options (rtw_switch_usb_mode): # 0 = No switch (default) # 1 = Switch from USB 2.0 to USB 3.0 # 2 = Switch from USB 3.0 to USB 2.0 # HE (WiFi 6) options (rtw_he_enable): # 0 = Disable # 1 = Enable (default for managed mode) # 2 = Force auto enable (required for AP mode with 80/160 MHz channels) # VHT (WiFi 5) options (rtw_vht_enable): # 0 = Disable # 1 = Enable (default) # 2 = Force auto enable (required for AP mode with 80 MHz channels) # Country code setting (optional) # options 8852cu rtw_country_code=US # DFS channels for AP mode (rtw_dfs_region_domain): # 0 = NONE (default) # 1 = FCC (US) # 2 = MKK (Japan) # 3 = ETSI (Europe) # View all available parameters: # ls /sys/module/8852cu/parameters/ # View current values: # grep [[:alnum:]] /sys/module/8852cu/parameters/* ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.