Realtek [RTL8822BU] - Edimax AC1200 WiFi slow speeds & dropped connections

I have an Edimax USB 3.0 AC1200 WiFi dongle, model EW-7822UTC, which is a small (but not micro) dongle device. Previously I had almost the same model in the USB 2.0 micro version, same chipset.

Anyway, it’s connecting to the PC at USB 2.0 speeds, whilst it and the port are both USB 3.0. The blue ones, so yeah, I’m sure it’s not the “wrong” ports. I’ve tried a USB 3.0 hard drive in them and have confirmed that device is coming up as 5GBps. Here’s what happens when I type:

lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/6p, 480M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/15p, 480M
**|__ Port 007: Dev 011, If 0, Class=Vendor Specific Class, Driver=rtw_8822bu, 480M** 
|__ Port 009: Dev 006, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 009: Dev 006, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 010: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 010: Dev 005, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 010: Dev 005, If 2, Class=Human Interface Device, Driver=[none], 12M
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/6p, 5000M
|__ Port 002: Dev 006, If 0, Class=Mass Storage, Driver=uas, 5000M

See, the hard drive connects at 5GBit. And this is a Lenovo M93p, which has 6 USB 3.0 and 2 USB 2.0 ports (and I know the difference between them; the blue ones are 3.0) so there’s no lack of USB 3.0 connectivity. It’s just odd that so many show up as slow speed ports when I have 6 3.0 ports! It also looks like we have too many ports in total. What’s up with that? Do I need to redetect my USB ports or something?

I must confess, I have an idea what it might be. I did move my install from a Dell Optiplex 3020 that didn’t have as many USB 3.0 ports; is that where the confusion lies? I simply put the SSDs in the new system and it just worked… except maybe it sort of didn’t? It’s also a different chipset (Q87 vs H81) so maybe that could be a problem. Same model processor, though. I guess I just expected it to scan hardware like Windows would and “fix itself.” Is that not how things work? Do I need to initiate something manually?

System:
  Kernel: 6.9.9-x64v-xanmod1-1 arch: x86_64 bits: 64 compiler: gcc v: 14.1.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-xanmod
    root=UUID=b1270554-eee9-4e1e-86df-0fc6d4334e01 rw rootflags=subvol=@
    quiet loglevel=3 ibt=off
  Desktop: KDE Plasma v: 6.1.5 tk: Qt v: N/A info: frameworks v: 6.6.0
    wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
  Type: Desktop System: LENOVO product: 10A90045US v: ThinkCentre M93p
    serial: <superuser required>
  Mobo: LENOVO model: SHARKBAY v: SDK0E50510 WIN
    serial: <superuser required> part-nu: LENOVO_MT_10A9
    uuid: <superuser required> BIOS: LENOVO v: FBKTE0AUS date: 12/23/2021
CPU:
  Info: model: Intel Core i5-4590 bits: 64 type: MCP arch: Haswell gen: core 4
    level: v3 note: check built: 2013-15 process: Intel 22nm family: 6
    model-id: 0x3C (60) stepping: 3 microcode: 0x28
  Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 smt: <unsupported> cache:
    L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB
    L3: 6 MiB desc: 1x6 MiB
  Speed (MHz): avg: 3700 min/max: 800/3700 scaling: driver: intel_cpufreq
    governor: performance cores: 1: 3700 2: 3700 3: 3700 4: 3700 bogomips: 26340
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
  Vulnerabilities: <filter>
Graphics:
  Device-1: NVIDIA GP107 [GeForce GTX 1050] driver: nvidia v: 560.35.03
    alternate: nvidiafb,nouveau,nvidia_drm non-free: 550.xx+ status: current
    (as of 2024-09; EOL~2026-12-xx) arch: Pascal code: GP10x
    process: TSMC 16nm built: 2016-2021 pcie: gen: 3 speed: 8 GT/s lanes: 16
    ports: active: none off: HDMI-A-1 empty: DP-1,DVI-D-1 bus-ID: 01:00.0
    chip-ID: 10de:1c81 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 24.1.2
    compositor: kwin_x11 driver: X: loaded: nvidia unloaded: modesetting
    alternate: fbdev,nouveau,nv,vesa gpu: nvidia,nvidia-nvswitch
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 90 s-size: 542x301mm (21.34x11.85")
    s-diag: 620mm (24.41")
  Monitor-1: HDMI-A-1 mapped: HDMI-0 note: disabled model: Acer XF251Q
    serial: <filter> built: 2019 res: 1920x1080 hz: 60 dpi: 90 gamma: 1.2
    size: 544x303mm (21.42x11.93") diag: 623mm (24.5") ratio: 16:9 modes:
    max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
    inactive: wayland,device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 560.35.03
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GTX 1050/PCIe/SSE2
    memory: 3.91 GiB
  API: Vulkan v: 1.3.295 layers: 11 device: 0 type: discrete-gpu
    name: NVIDIA GeForce GTX 1050 driver: nvidia v: 560.35.03
    device-ID: 10de:1c81 surfaces: xcb,xlib
Audio:
  Device-1: Intel 8 Series/C220 Series High Definition Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:8c20
    class-ID: 0403
  Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 01:00.1
    chip-ID: 10de:0fb9 class-ID: 0403
  API: ALSA v: k6.9.9-x64v-xanmod1-1 status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.2.4 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Ethernet I217-LM vendor: Lenovo driver: e1000e v: kernel
    port: f040 bus-ID: 00:19.0 chip-ID: 8086:153a class-ID: 0200
  IF: eno1 state: down mac: <filter>
  Device-2: Edimax AC1200 MU-MIMO USB3.0 Adapter driver: rtw_8822bu
    type: USB rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-7:11
    chip-ID: 7392:c822 class-ID: 0000 serial: <filter>
  IF: wlp0s20u7 state: up mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Drives:
  Local Storage: total: 1.38 TiB used: 1022.41 GiB (72.5%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: TeamGroup model: T-FORCE 240GB
    size: 223.57 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 4A0 scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 vendor: KLEVV model: NEO N610 SSD 1TB
    size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 7D scheme: MBR
  ID-3: /dev/sdc maj-min: 8:32 vendor: Hitachi model: HTS545025B9SA00
    size: 232.89 GiB block-size: physical: 512 B logical: 512 B type: USB
    rev: 3.1 spd: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1 tech: HDD rpm: 5400
    serial: <filter> scheme: MBR
Partition:
  ID-1: / raw-size: 40 GiB size: 40 GiB (100.00%) used: 29.29 GiB (73.2%)
    fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-2: /home raw-size: 183.07 GiB size: 180.01 GiB (98.33%)
    used: 142.03 GiB (78.9%) fs: ext4 dev: /dev/sda3 maj-min: 8:3
  ID-3: /var/log raw-size: 40 GiB size: 40 GiB (100.00%)
    used: 29.29 GiB (73.2%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-4: /var/tmp raw-size: 40 GiB size: 40 GiB (100.00%)
    used: 29.29 GiB (73.2%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 50 (default 100)
    zswap: no
  ID-1: swap-1 type: zram size: 7.69 GiB used: 3.17 GiB (41.2%)
    priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 4
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 34.0 C mobo: N/A gpu: nvidia temp: 35 C
  Fan Speeds (rpm): N/A gpu: nvidia fan: 20%
Info:
  Memory: total: 8 GiB available: 7.69 GiB used: 5.1 GiB (66.3%)
  Processes: 374 Power: uptime: 1d 16h 3m states: freeze,mem,disk
    suspend: deep avail: s2idle wakeups: 0 hibernate: platform avail: shutdown,
    reboot, suspend, test_resume image: 3.02 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Packages: 2191 pm: pacman pkgs: 2145 libs: 600 tools: octopi,paru,yay
    pm: flatpak pkgs: 46 Compilers: clang: 18.1.8 gcc: 14.2.1 Shell: garuda-inxi
    default: fish v: 3.7.1 running-in: konsole inxi: 3.3.36
Garuda (2.6.26-1):
  System install date:     2024-06-09
  Last full system update: 2024-10-17 ↻
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut nvidia-dkms
  Windows dual boot:       No/Undetected
  Failed units:            upgrade.service 

I have an Edimax USB 3.0 AC1200 WiFi dongle, model EW-7822UTC, which is a small (but not micro) dongle device. Previously I had almost the same model in the USB 2.0 micro version, same chipset. Same thing happened.

The issue is that it seems to drop randomly. It’ll work for hours on end, and stay connected most of the day, then sometimes, without warning or much logic, it will drop the connection. Unplugging and replugging usually fixes it, but every once in a great while I might have to restart. It seems to have the proper driver support, rtw_8822bu; and it generally works, just drops randomly, and not really that super-often, but at least a few times a day, and it’s mildly annoying.

Hey @aleax804.

I have condensed your two threads regarding your wifi issues into one topic. It seemed a bit redundant to have two simultaneous threads about the same adapter, I hope you don’t mind.

My first suggestion would be to test at least 3 other kernels.

Be sure test the linux-lts and linux-mainline kernels, as well as perhaps the linux and linux-hardened kernels.

I also think it might not be a bad idea to reset your bios to the factory defaults, as this may help with your hardware detection issues.

The driver for your rtl8822bu Realtek wifi adapter has been included in the kernel for some time. If you are currently using one of the proprietary realtek divers and testing alternate kernels didn’t help, then uninstall the wifi driver you installed. Once the proprietary driver has been removed make sure you either commented out or deleted any blacklist file for your wifi driver in /etc/modprobe.d/. After performing these actions, be sure to retest each kernel you have installed. The kernel module may possibly be working better than the proprietary driver at this point if it has suffered a regression. To be sure test the kernels I suggested above, as well as the linux-zen kernel. The xanmod kernel you were using is an excellent kernel, but you need to test numerous others to be sure the kernel in use isn’t responsible for your wifi issues.

I don’t know which proprietary drivers you may have already tested (or how you installed them), so follow my suggestions below if none of my prior suggestions have helped:

From the Chaotic AUR install the package below:

https://aur.archlinux.org/packages/rtl88x2bu-dkms-git

The command to install this proprietary Realtek driver is:

sudo pacman -Syu rtl88x2bu-dkms-git

After the above driver is installed, run the command below to create a blacklist on the kernel module::

echo "blacklist rtw88_8822bu" | sudo tee /etc/modprobe.d/rtw8822bu.conf

Then reboot.


If you are still experiencing dropped connections using the above propritary driver run the following command:

sudo systemctl stop NetworkManager; sudo modprobe -r 88x2bu; sleep 3; sudo modprobe 88x2bu rtw_power_mgnt=0 rtw_ips_mode=0 rtw_enusbss=0; sleep 3; sudo systemctl start NetworkManager

If your connectivity has improved using the above command, then make these driver options permanent with:

echo "options 88x2bu rtw_power_mgnt=0 rtw_ips_mode=0 rtw_enusbss=0" | sudo tee /etc/modprobe.d/88x2bu.conf

Reboot.


1 Like

Regarding your adapter only attaining USB 2 speeds:


USB 3.0 Support


Firstly, unload the proprietary Realtek driver module by issuing the following command:

sudo modprobe -r 88x2bu 

Then, to force the rtl8822bu adapter run under USB 3.0 issue:

sudo modprobe 88x2bu rtw_switch_usb_mode=1

After issuing the above commands, test your wifi speeds.

A reboot will wipe the above temporary modification to your Realtek wifi driver.

To force USB 3.0 support mode permanently, create the the following configuration file:

sudo /etc/modprobe.d/99-RTL88x2BU.conf

To permanently set the RTL8822BU driver option to USB 3 you will need to modify the newly created /etc/modprobe.d/99-RTL88x2BU.conf file by adding the following content:

options 88x2bu rtw_switch_usb_mode=1

Then, save the file changes and reboot.


Recommendations regarding USB Wifi performance from:

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.
2 Likes

I have condensed your two threads regarding your wifi issues into one topic. It seemed a bit redundant to have two simultaneous threads about the same adapter, I hope you don’t mind.

Not at all; although it does render moot my efforts to separate the two issues as is the guidance in the forum rules. Ah well, whatever.

My first suggestion would be to test at least 3 other kernels.

Be sure test the linux-lts and linux-mainline kernels, as well as perhaps the linux and linux-hardened kernels.

I also think it might not be a bad idea to reset your bios to the factory defaults, as this may help with your hardware detection issues.

Strangely enough it’s been good about not dropping (much) lately. It’s really sporadic and I wonder if it might be heat related. But it doesn’t answer the question why it’s not doing USB 3.0. As I write this I’m looking at the next post, and there’s the answer for that question… LOL.

The driver for your rtl8822bu Realtek wifi adapter has been included in the kernel for some time. If you are currently using one of the proprietary realtek divers and testing alternate kernels didn’t help, then uninstall the wifi driver you installed.

And that’s the driver I’m using. I haven’t installed any proprietary driver. I’m not sure which kernel is best for my system, but I have both zen and xanmod kernels installed. It’s a 4th gen intel chip; which kernel is optimal for that? Right now I’m booted up on the zen kernel, maybe that’s better, as I can’t recall exactly the last time I had to unplug/replug it, at least a day or two.

Firstly, unload the proprietary Realtek driver module by issuing the following command:

sudo modprobe -r 88x2bu 

I’m not using a proprietary Realtek driver, AFAIK. As I said, it’s using “rtw_8822bu” so what exactly is that? A few days after I asked the question, I had to reinstall the OS due to a SNAFU during a failed system update (it ran out of disk space and made a mess and couldn’t boot or restore from snaps) and the only proprietary driver I have that I’m aware of is the NVIDIA driver, which is pretty much all I ever do as far as proprietary drivers, if I can at all help it. But everything seems somewhat (not 100%) better including resuming from sleep ever since I reinstalled. It even fixed the very first question I had in the forums (mouse pointer corrupt after sleep resume) without me intending it. Sometimes that can fix things inexplicably, but I do wish things were more predictable. I guess that’s what you get with a bleeding-edge distro. I’m just glad I had the foresight to separate my / and /home partitions, after all the troubles I’m experiencing, at least I don’t have to worry about losing my settings when I go to reinstall. This is like the third time I’ve had to in 6 months. Not exactly reliable!

sudo modprobe 88x2bu rtw_switch_usb_mode=1

Yeah, that didn’t work. It threw this error:

modprobe: FATAL: Module 88x2bu not found in directory /lib/modules/6.11.4-zen1-1-zen

Like I said, this machine has 2 USB 2.0 ports (filled by mouse dongle and keyboard cable) and 6 USB 3.0 ports; but it’s seeing the ports in a weird fashion (but is that normal and I just don’t realize it?), and it’s only running the adapter at 2.0 no matter which port I try. But my external drive enclosure has no problem running at 3.0 in any of the 3.0 ports, so it doesn’t seem to be the ports. I don’t know if I’ve tried ALL of the ports yet, but that would be weird indeed. But I guess computers are, as a matter of course, a little weird from time to time.

Do you have the realtek-firmware package installed?

If not, then install it from the ChaoticAUR.

Also be sure to disable wifi power saving.

Are you sure you are connecting to the 5GHz band?



Edit:

For an alternative driver you can install and test the rtw88-dkms-git package from the ChaoticAUR.

Be sure to check the upstream project’s Readme file. Pay special attention to the instructions regarding blacklisting.



This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.