Ubuntu 22.04 wifi slow and BT not working

Hi all.

So I’ve got the RTL8822CE wifi adapter. In Windows 11 this works well.
I am able to get a transfer rate of 50MB/s in Windows (copying from 2.5GbE NAS to NVMe)

While with Ubuntu 22.04 the transfer rate is maximum 23MB/s.
And bluetooth is unable to enable. (knob enable BT in gnome settings does nothing)

With Windows I am able to connect to BT speaker without issue’s.

Here dmesg output. At the end you can see BT errors :

[    3.465794] loop12: detected capacity change from 0 to 187776
[    3.653897] Consider using thermal netlink events interface
[    3.744412] Goodix-TS i2c-GDIX1001:00: supply AVDD28 not found, using dummy regulator
[    3.744463] Goodix-TS i2c-GDIX1001:00: supply VDDIO not found, using dummy regulator
[    3.748632] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.752258] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.756068] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.760828] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.760859] Goodix-TS i2c-GDIX1001:00: Error reading 1 bytes from 0x8140: -11
[    3.782150] proc_thermal 0000:00:04.0: enabling device (0000 -> 0002)
[    3.791212] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.795070] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.798679] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.802412] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.802430] Goodix-TS i2c-GDIX1001:00: Error reading 1 bytes from 0x8140: -11
[    3.810446] mei_me 0000:00:16.0: enabling device (0000 -> 0002)
[    3.849321] Bluetooth: Core ver 2.22
[    3.849354] NET: Registered PF_BLUETOOTH protocol family
[    3.849356] Bluetooth: HCI device and connection manager initialized
[    3.849361] Bluetooth: HCI socket layer initialized
[    3.849363] Bluetooth: L2CAP socket layer initialized
[    3.849367] Bluetooth: SCO socket layer initialized
[    3.872504] dw-apb-uart.5: ttyS6 at MMIO 0x4010005000 (irq = 20, base_baud = 7500000) is a 16550A
[    3.888090] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000c lmp_ver=0a lmp_subver=8822
[    3.889019] Bluetooth: hci0: RTL: rom_version status=0 version=3
[    3.889023] Bluetooth: hci0: RTL: loading rtl_bt/rtl8822cu_fw.bin
[    3.890376] Bluetooth: hci0: RTL: loading rtl_bt/rtl8822cu_config.bin
[    3.890583] Bluetooth: hci0: RTL: cfg_sz 6, total sz 35086
[    3.902075] usbcore: registered new interface driver btusb
[    3.926174] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.930898] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.931811] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.934888] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.937524] spi-nor spi0.0: spi-nor-generic (16384 Kbytes)
[    3.938739] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.942834] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.942865] Goodix-TS i2c-GDIX1001:00: Error reading 1 bytes from 0x8140: -11
[    3.971084] Creating 1 MTD partitions on "0000:00:1f.5":
[    3.971093] 0x000000000000-0x000001000000 : "BIOS"
[    3.978822] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.982466] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.986200] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.989952] i2c_designware i2c_designware.2: i2c_dw_handle_tx_abort: lost arbitration
[    3.990007] Goodix-TS i2c-GDIX1001:00: Error reading 1 bytes from 0x8140: -11
[    4.014707] Goodix-TS i2c-GDIX1001:00: I2C communication failure: -11
[    4.015336] Goodix-TS: probe of i2c-GDIX1001:00 failed with error -11
[    4.446209] cryptd: max_cpu_qlen set to 1000
[    4.449073] intel_rapl_common: Found RAPL domain package
[    4.449080] intel_rapl_common: Found RAPL domain core
[    4.455088] SSE version of gcm_enc/dec engaged.
[    4.458886] Console: switching to colour dummy device 80x25
[    4.459895] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.463915] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    4.472990] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    4.474408] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
[    4.484897] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[    4.487373] rtw_8822ce 0000:02:00.0: enabling device (0000 -> 0003)
[    4.490455] rtw_8822ce 0000:02:00.0: Firmware version 9.9.11, H2C version 15
[    4.490515] rtw_8822ce 0000:02:00.0: WOW Firmware version 9.9.4, H2C version 15
[    4.529430] audit: type=1400 audit(1697657911.303:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=416 comm="apparmor_parser"
[    4.534006] audit: type=1400 audit(1697657911.307:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=418 comm="apparmor_parser"
[    4.534015] audit: type=1400 audit(1697657911.307:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=418 comm="apparmor_parser"
[    4.537948] audit: type=1400 audit(1697657911.311:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=421 comm="apparmor_parser"
[    4.537957] audit: type=1400 audit(1697657911.311:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=421 comm="apparmor_parser"
[    4.537960] audit: type=1400 audit(1697657911.311:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=421 comm="apparmor_parser"
[    4.538314] rtw_8822ce 0000:02:00.0 wlp2s0: renamed from wlan0
[    4.542508] audit: type=1400 audit(1697657911.315:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="tcpdump" pid=422 comm="apparmor_parser"
[    4.542963] audit: type=1400 audit(1697657911.319:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=419 comm="apparmor_parser"
[    4.542970] audit: type=1400 audit(1697657911.319:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-helper" pid=419 comm="apparmor_parser"
[    4.614375] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[    4.745753] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    4.752141] ACPI: video: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    4.752522] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input11
[    4.754183] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.790116] fbcon: i915drmfb (fb0) is primary device
[    5.046644] Console: switching to colour frame buffer device 128x37
[    5.064718] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[    5.161695] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC269VC: line_outs=1 (0x1a/0x0/0x0/0x0/0x0) type:speaker
[    5.161705] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    5.161708] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
[    5.161711] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[    5.161712] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[    5.161715] snd_hda_codec_realtek hdaudioC0D0:      Mic=0x18
[    5.161717] snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x12
[    5.318473] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
[    5.318557] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input13
[    5.318612] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input14
[    5.318668] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input15
[    5.318814] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input16
[    5.318871] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input17
[    5.357993] kauditd_printk_skb: 35 callbacks suppressed
[    5.357997] audit: type=1400 audit(1697657912.131:46): apparmor="DENIED" operation="capable" class="cap" profile="/usr/sbin/cupsd" pid=574 comm="cupsd" capability=12  capname="net_admin"
[    5.435083] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    5.435090] Bluetooth: BNEP filters: protocol multicast
[    5.435111] Bluetooth: BNEP socket layer initialized
[    5.702769] Generic FE-GE Realtek PHY r8169-0-100:00: attached PHY driver (mii_bus:phy_addr=r8169-0-100:00, irq=MAC)
[    5.898897] r8169 0000:01:00.0 enp1s0: Link is Down
[    6.104661] Bluetooth: hci0: command 0x1001 tx timeout
[    7.009697] audit: type=1400 audit(1697657913.783:47): apparmor="DENIED" operation="capable" class="cap" profile="/snap/snapd/19457/usr/lib/snapd/snap-confine" pid=739 comm="snap-confine" capability=12  capname="net_admin"
[    7.009707] audit: type=1400 audit(1697657913.783:48): apparmor="DENIED" operation="capable" class="cap" profile="/snap/snapd/19457/usr/lib/snapd/snap-confine" pid=739 comm="snap-confine" capability=38  capname="perfmon"
[    7.054547] loop14: detected capacity change from 0 to 8
[    9.310425] ntfs3: Max link count 4000
[    9.310433] ntfs3: Enabled Linux POSIX ACLs support
[    9.310434] ntfs3: Read-only LZX/Xpress compression included
[    9.405855] rfkill: input handler disabled
[   10.695145] wlp2s0: authenticate with 38:35:fb:10:c4:ab
[   11.236343] wlp2s0: send auth to 38:35:fb:10:c4:ab (try 1/3)
[   11.239712] wlp2s0: authenticated
[   11.242760] wlp2s0: associate with 38:35:fb:10:c4:ab (try 1/3)
[   11.246226] wlp2s0: RX AssocResp from 38:35:fb:10:c4:ab (capab=0x1511 status=0 aid=16)
[   11.246598] wlp2s0: associated
[   11.282196] wlp2s0: Limiting TX power to 30 (30 - 0) dBm as advertised by 38:35:fb:10:c4:ab
[   11.538892] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[   14.134968] Bluetooth: hci0: RTL: HCI_OP_READ_LOCAL_VERSION failed (-110)
[   14.134996] Bluetooth: hci0: RTL: read local version failed
[   14.257235] Bluetooth: hci0: AOSP extensions version v1.00
[   14.257257] Bluetooth: hci0: AOSP quality report is supported
[ 8502.804906] audit: type=1400 audit(1697666409.968:49): apparmor="DENIED" operation="capable" class="cap" profile="/usr/sbin/cupsd" pid=1883 comm="cupsd" capability=12  capname="net_admin"

Greetings, NicoD

you may need to correct the driver for RTL8822CE

Please refer to this article: