4

Running Kubuntu 18.10, on Lenovo Y530.

On their own, WiFi connection and Bluetooth speakers work fine. If running both, heavy interference is introduced. This first resulted in both WiFi connection dropping to less than 10% of the speed (and, in some cases, upload failing completely), and BT signal jamming/skipping heavily.

I tried setting options iwlwifi bt_coex_active=N in /etc/modprobe.d/iwlwifi.conf, which completely disabled my BT (EDIT: see below). I then set it to bt_coex_active=0 and removed Blueman (not sure if its removal was important), which solved the WiFi problems, but BT signal is still not working (still skipping heavily) if WiFi is used.

EDIT: I now tried setting it to N again, and it is exactly the same as 0. Not sure why it didn't work before.

On Windows, everything works fine. Also, everything is fine if I connect to the speakers from my phone - meaning it probably isn't the signal itself getting jammed (sadly, my router doesn't support 5GHz, so I cannot check this thoroughly). I tried changing the WiFi channels, but with no effects.

It might be the driver issue, but the same problem occurs when using a WiFi USB adapter. It might be that, although this adapter was stated as "in use" for the connection, it wasn't really used and WiFi was still going over the built-in cart - I have no idea how to check for this.

Here is the output usually requested for these problems, please ask if some more is needed. Thanks!

$ uname -a
Linux mylenovo 4.18.0-13-generic #14-Ubuntu SMP Wed Dec 5 09:04:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ sudo lshw -class network
  *-network                 
       description: Wireless interface
       product: QCA9377 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:07:00.0
       logical name: wlp7s0
       version: 31
       serial: 00:f4:8d:ed:2b:99
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=4.18.0-13-generic firmware=WLAN.TF.1.0-00002-QCATFSWPZ-5 ip=192.168.5.19 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:145 memory:a4200000-a43fffff
  *-network
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:08:00.0
       logical name: enp8s0
       version: 15
       serial: e8:6a:64:49:a5:e4
       size: 10Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8168h-2_0.0.2 02/26/15 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
       resources: irq:17 ioport:3000(size=256) memory:a4504000-a4504fff memory:a4500000-a4503fff


$ lspci
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Device 3e9b
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device a368 (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Device a369 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Device a353 (rev 10)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port 9 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Device a334 (rev f0)
00:1d.5 PCI bridge: Intel Corporation Device a335 (rev f0)
00:1e.0 Communication controller: Intel Corporation Device a328 (rev 10)
00:1f.0 ISA bridge: Intel Corporation Device a30d (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
06:00.0 Non-Volatile memory controller: Sandisk Corp Device 5002
07:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)


$ ethtool -i enp8s0
driver: r8169
version: 2.3LK-NAPI
firmware-version: rtl8168h-2_0.0.2 02/26/15
expansion-rom-version: 
bus-info: 0000:08:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

2 Answers 2

3

I just solved this problem (on Ubuntu 20.04) by buying a dual band router.

When I connect the notebook wifi in the 5GHz band together with my sound box in the notebook Bluetooth and play music videos in YouTube, everything works fine, with top performance.

The problem is that Bluetooth generates interference in the 2.4GHz wifi, as it also operates on this frequency, but does not affect the 5GHz band.

2
  • This is the only perfect solution.
    – Pilot6
    May 29, 2020 at 20:48
  • I finally did this after trying all the other approaches. Problem finally solved, thank you.
    – curl-up
    Dec 10, 2020 at 14:42
0

Edit 2:

Dear @ibestvinn, upgrading my kernel to 4.18.0-18 did not work for me, but I think I solved the issue.

After some research I found that the patch mentioned @loan corresponds to the bluetooth device 04ca:3015 Lite-On Technology Corp (an older QCA9377 used this chip). As our model uses 0cf3:e500 Atheros Communications, Inc. I downloaded the kernel source code to check if 0cf3:e500 was included in btusb.c blacklist and it wasn't. So using steps described here by Jeremy31 decided to add 0cf3:e500, recompile only the kernel modules and replace btusb.ko in kernel modules, and it seems that it worked.

There process to recompile the modules is very simple. I did as follows:

1) Download Kernel Source (consider changing '4.18.0' for whichever version you're using):

# In a working directory, run:
apt source linux-source-4.18.0 

2) Fix code for this device. Include 0x0cf3:e500 to blacklist in btusb.c.

# Here the source was extracted to linux-hwe-4.18.0.
cd linux-hwe-4.18.0/drivers/bluetooth

# Change btusb.c with editor of your choice. Ex:
vim btusb.c

In btusb.c file just add { USB_DEVICE(0x0cf3, 0xe500), .driver_info = BTUSB_QCA_ROME }, to static const struct usb_device_id blacklist_table[].

File should be something like this:

static const struct usb_device_id blacklist_table[] = {
    ...
    /* QCA ROME chipset */
    ...
    { USB_DEVICE(0x04ca, 0x3015), .driver_info = BTUSB_QCA_ROME },
    { USB_DEVICE(0x04ca, 0x3016), .driver_info = BTUSB_QCA_ROME },
    { USB_DEVICE(0x04ca, 0x301a), .driver_info = BTUSB_QCA_ROME },
    { USB_DEVICE(0x13d3, 0x3496), .driver_info = BTUSB_QCA_ROME },
    // This is the fix for QCA9377 bluetooth 0x0cf3:e500
    { USB_DEVICE(0x0cf3, 0xe500), .driver_info = BTUSB_QCA_ROME },
    ...

3) Compile modules. You may need some need make and build-essential for that, install using 'sudo apt install make build-essential' if they are not installed.

make -C /lib/modules/$(uname -r)/build M=$PWD modules

4) "Install" and reboot. Replace btusb module for the new btusb and reboot.

# You may do a backup of the old file:
sudo mv /lib/modules/$(uname -r)/kernel/drivers/bluetooth/btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/btusb.ko.backup

# Copy and replace btusb.ko to module location:
sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/

# Reboot and test
reboot

I didn't experience any problem after that. Wireless seems ok, bluetooth headset also seems to be ok.

If you also could test, please, share results here. If it really solves the problem we can ask this to be included in future linux kernel versions.

Edit:

Dear @ibestvinn, I found this other question where @Ioan answers that this issue was solved in Linux 4.16. Check out there. I'll try to upgrade my kernel and test it. Good Luck!

Wifi slows down when bluetoth headset is playing sound. Qualcomm Atheros QCA9377

Old:

This is not actually an answer, but I can't comment.

--

Dear @ibestvinn, I'm having the same problem in my Samsung laptop with the same network chip, Qualcomm Atheros QCA9377.

Wireless connection is the worst when I connect a bt headphone to my computer. The audio quality is affected, but the impact on Wifi is simply tremendous. Ping to my AP is greater than 5000ms - without bt headphone its usually less than 6ms.

I tried options iwlwifi bt_coex_active=0 but it didn't work for me. Actually it doesn't seems that iwlwifi is running unless I manually start it, but my wireless and bluetooth works fine without it.

This issue is really annoying. It would be great if we could solve this issue through software configuration, since bt and wireless share antenna.

Have you got any luck?

2
  • Thank you for a very thorough answer! I will try doing as you suggest and report back.
    – curl-up
    Apr 25, 2019 at 6:58
  • I see now that I have never answered this - I tried all the steps but with no effects. Ended up buying a dual band router recently and that finally fixed it. But anyway, thanks a lot for a very detailed answer.
    – curl-up
    Dec 10, 2020 at 14:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .