Intel 8260 - Bluetooth Not Working

Hello Everyone,

Background:
I am currently running a Dell XPS 13 with an Intel 8260 wifi + bluetooth chip. I swapped the Intel card because it plays nice with Linux. I am using KDE on the 5.8.x Kernal currently.

The Issue:
I have noticed that my bluetooth often does not work (trying to enable the bluetooth device in my settings). I found doing a reboot, etc. does not cause anything to change. However, running the following command ‘resets’ my bluetooth and I am able to enable the device and can pair things correctly:

Command:
‘nmcli networking off; sudo rmmod btusb; sleep 2; sudo modprobe btusb; nmcli networking on’

I found this command and almost exactly my issue in the following 2 posts:
https://bbs.archlinux.org/viewtopic.php?id=208328
and
https://bbs.archlinux.org/viewtopic.php?id=248784

Running the above, I can suddenly enable and start using my Intel 8260 chip with Bluetooth successfully. However, this is a workaround and not a proper solution for enabling / disabling my Bluetooth correctly.

Has anyone else experienced this problem and found a permanent solution? Any help / feedback / assistance would be greatly appreciated.

Thanks everyone!

Can't say as how I've experienced that issue. The first thing I would suggest is to test one or two alternate kernels. Give the LTS kernel a try or perhaps the mainline kernel.

I have noticed people who swap their network cards for an Intel model often experience problems that other users of the same hardware don't normally experience.

A service might help with this issue if you can't resolve it with a kernel change. You would need to write a service that reloads bluetooth after your wifi is already up. This is not really a true "solution" either, but it does make the problem invisible as it does this in the background without requiring any user intervention.

1 Like

Hi,i also had similar problems with BT,so after trying various BT dongles i found the only one that worked 100% was a SABRENT 4.0 (BT-UB40) available on amazon for 8 pounds.sydC

You did not mention which desktop you are using. Please provide more details by posting the output of the following command:

inxi -Fxxxza

Did you test alternate kernels?

Did this issue appear immediately after you installed, or did it appear after you swapped wifi cards.

1 Like

I have written numerous services in the past to help with networking issues. Below is a service I wrote a while back to deal with your type of Bluetooth problem. Follow the steps detailed below to create a service that should start your bluetooth connection for you without requiring any intervention on your part.




Bluetooth Startup Service

Sometimes network drivers can conflict with each other. In some cases the drivers must be loaded in a specific sequence or they will fail to load properly. This Bluetooth startup service in combination with a Bluetooth blacklist file will ensure that Bluetooth is not started until after the other networking components are initialized.

The following is a simple system service to start your Bluetooth after your WiFi at system startup.

The best way to ensure there is no driver conflict with WiFi or Ethernet at startup is to blacklist the btusb module.

Run this command to prevent Bluetooth from initiating early in the startup sequence:

echo 'blacklist btusb' | sudo tee /etc/modprobe.d/blacklist_btusb.conf

This will create /etc/modprobe.d/blacklist_btusb.conf which will prevent the bluetooth module from automatic early startup.

Then create the following service which will restart the Bluetooth components automatically after the other network components:

Restart Bluetooth Service

With a text editor create:

/etc/systemd/system/restart-bt.service

Service file contents:

#/etc/systemd/system/restart-bt.service
#systemctl enable restart-bt.service
#systemctl start restart-bt.service
#systemctl stop restart-bt.service
#systemctl disable restart-bt.service
#systemctl status restart-bt.service
#systemctl daemon-reload

[Unit]
Description=Restart Bluetooth Service
WantedBy=multi-user.target 
After=network.target
Wants=bluetooth.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/bin/sleep 3
ExecStart=/usr/bin/modprobe btusb
ExecStop=/usr/bin/systemctl restart bluetooth

[Install]
WantedBy=multi-user.target 

Save the newly created service file, then enable the service:

systemctl enable restart-bt.service

Then restart.

Bluetooth should now be automatically started after your other network components have been loaded at startup.

2 Likes

Wow @tbg! This is an awesome post with the service you wrote! Thank you so much for providing the details. I guess I picked the wrong weekend to travel a bit and not check things for a few days. =)

I wanted to also address your questions directly below as well:
1. Did you test alternate kernels?
I have not yet, and will try to test things out very soon.

2. Did this issue appear immediately after you installed, or did it appear after you swapped wifi cards?
So, I swapped wifi cards 2-3 years ago on this XPS. I actually used Antergos before (flavor of Arch) and it worked just fine there. I also dual boot, and it has ZERO issues under Windows 10. However, I'm not sure if it occurred after a specific update or it never worked....I know I've been using my workaround for a few months now. So it hasn't been anything super recent.

3. You did not mention which desktop you are using.
I am using KDE Plasma 5.19.5 under Wayland.

4. Output of the following command is below: inxi -Fxxxza

[[email protected] ~]$ inxi -Fxxxza
System:    Kernel: 5.8.16-2-MANJARO x86_64 bits: 64 compiler: N/A 
           parameters: BOOT_IMAGE=/boot/vmlinuz-5.8-x86_64 root=UUID=f6a1d0ce-d328-4151-87d1-2500901e49e9 rw apparmor=1 
           security=apparmor resume=UUID=fc440987-1c94-45a3-9c45-fcc91942087e udev.log_priority=3 
           Desktop: KDE Plasma 5.19.5 tk: Qt 5.15.1 info: latte-dock wm: kwin_x11 dm: SDDM Distro: Manjaro Linux 
Machine:   Type: Laptop System: Dell product: XPS 13 9350 v: N/A serial: <filter> Chassis: type: 9 serial: <filter> 
           Mobo: Dell model: 076F9T v: A00 serial: <filter> UEFI: Dell v: 1.13.0 date: 02/10/2020 
Battery:   ID-1: BAT0 charge: 23.5 Wh condition: 37.5/57.5 Wh (65%) volts: 7.4/7.6 model: SMP DELL JHXPY53 type: Li-poly 
           serial: <filter> status: Discharging 
CPU:       Topology: Dual Core model: Intel Core i5-6200U bits: 64 type: MT MCP arch: Skylake family: 6 model-id: 4E (78) 
           stepping: 3 microcode: D6 L2 cache: 3072 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 19204 
           Speed: 2787 MHz min/max: 400/2800 MHz Core speeds (MHz): 1: 2788 2: 2700 3: 2775 4: 2700 
           Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
           Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
           Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
           Type: meltdown mitigation: PTI 
           Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp 
           Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization 
           Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling 
           Type: srbds status: Vulnerable: No microcode 
           Type: tsx_async_abort status: Not affected 
Graphics:  Device-1: Intel Skylake GT2 [HD Graphics 520] vendor: Dell driver: i915 v: kernel bus ID: 00:02.0 
           chip ID: 8086:1916 
           Device-2: Microdia Integrated Webcam HD type: USB driver: uvcvideo bus ID: 1-5:3 chip ID: 0c45:670c 
           Display: x11 server: X.Org 1.20.9 compositor: kwin_x11 driver: intel unloaded: modesetting alternate: fbdev,vesa 
           display ID: :0 screens: 1 
           Screen-1: 0 s-res: 3200x1800 s-dpi: 192 s-size: 423x238mm (16.7x9.4") s-diag: 485mm (19.1") 
           Monitor-1: eDP1 res: 3200x1800 hz: 60 dpi: 280 size: 290x170mm (11.4x6.7") diag: 336mm (13.2") 
           OpenGL: renderer: Mesa Intel HD Graphics 520 (SKL GT2) v: 4.6 Mesa 20.1.8 direct render: Yes 
Audio:     Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell driver: snd_hda_intel v: kernel alternate: snd_soc_skl 
           bus ID: 00:1f.3 chip ID: 8086:9d70 
           Sound Server: ALSA v: k5.8.16-2-MANJARO 
Network:   Device-1: Intel Wireless 8260 driver: iwlwifi v: kernel port: f040 bus ID: 3a:00.0 chip ID: 8086:24f3 
           IF: wlp58s0 state: up mac: <filter> 
Drives:    Local Storage: total: 238.47 GiB used: 94.52 GiB (39.6%) 
           SMART Message: Unable to run smartctl. Root privileges required. 
           ID-1: /dev/nvme0n1 vendor: Samsung model: PM951 NVMe 256GB size: 238.47 GiB block size: physical: 512 B 
           logical: 512 B speed: 31.6 Gb/s lanes: 4 serial: <filter> rev: BXV77D0Q scheme: GPT 
Partition: ID-1: / raw size: 43.95 GiB size: 43.00 GiB (97.86%) used: 26.63 GiB (61.9%) fs: ext4 dev: /dev/nvme0n1p5 
           ID-2: /home raw size: 85.36 GiB size: 83.52 GiB (97.84%) used: 11.99 GiB (14.4%) fs: ext4 dev: /dev/nvme0n1p7 
Swap:      Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
           ID-1: swap-1 type: partition size: 3.91 GiB used: 248.5 MiB (6.2%) priority: -2 dev: /dev/nvme0n1p6 
Sensors:   System Temperatures: cpu: 57.0 C mobo: 39.0 C sodimm: 44.0 C 
           Fan Speeds (RPM): cpu: 0 
Info:      Processes: 213 Uptime: 23h 00m Memory: 7.64 GiB used: 1.75 GiB (22.9%) Init: systemd v: 246 Compilers: gcc: 10.2.0 
           Packages: pacman: 1428 lib: 399 flatpak: 0 Shell: Bash v: 5.0.18 running in: konsole inxi: 3.1.05 
[[email protected] ~]$ 

Thank you again for all of your time and help. I am home and more available now, so if you need any additional information, please let me know.

1 Like

Not to be rude, but if you are using Manjaro why exactly are you posting here?

In the case of using Intel Wifi/BT drivers it won't make a lot of difference. However, Manjaro uses their own specific drivers in their own repos for some other manufacturers. This is a major inconsistency if you are using different drivers than are provided with Garuda.

I highly reccomend people be forthright if using a different distro than Garuda because all distros are not the same (even if Arch based). Not explaining that you are using a different distro can lead to a complete waste of everybodies time. Please provide this information up front in your OP if using a different distro.

3 Likes

Hey @tbg - It's a fair question, so no offense taken. I have been looking for help on a variety of forums (Ubuntu, Reddit, Manjaro Forums, etc.) and everyone I've asked has not been able to help me troubleshoot this issue at all. So, I've been casting a 'wide net' to other Linux forums to see if anyone could help me at the "Network / BT" level if that make sense. I apologize for not disclosing my use of Manjaro in my original post, but I did not think it would play a major factor with Wifi/BT issues. However, I will remember that for future questions when posting on different forums than the Manjaro-based ones.

So, is there something I should do to 'switch' to a different driver than the OOTB Manjaro version? Just trying to understand what the best course of action is moving forward.

Once again thank you for your help and assistance, it is super appreciated!

Thanks,
Asif

Fair enough.

The Intel wifi/BT drivers are all (mostly) contained in the kernel itself. That is why I suggested testing different kernels. BTW, the kernels and installation methods also differ drastically between Garuda and Manjaro. This is another reason why cross posting to different forums is not such a good idea.

Anyways, the drivers are in the kernel, but the firmware is separate. This is provided in the linux-firmware package.

You can install different versions of the firmware by using downgrade. If you search the old archived Manjaro forum you will find plenty of posts with instructions on how to do this by @tbg or @dglt.

If you try the service I posted it may simply avoid all the extra effort. Even if you do find the issue is not present on an older kernel or firmware, do you really want to freeze updating kernels or the linux-firmware.

Good luck with your issue.

6 Likes

That would be polite. Generally it's a much better idea to ask for help via the official support channels rather than disguise an issue's cause and hope someone still spends their time helping you rather than those who are actually using the relevant project/software.

If you do persist in posting on unrelated forums then at the very least link to other places you have asked for help. You should also keep in mind that having to wait more than 24 hours for a response is not the same as getting no help.

That is, if you posted on the Manjaro forum then wait for someone there to help you. If they don't want to help, then escalate it with one of the team there rather than "passing the buck" to someone entirely unrelated.

If the developers refuse to help then you might want to reconsider whether you should be using their project.

4 Likes

Thanks @tbg, I'll keep you guys posted with my results.

Thank you for posting this, it helped a lot. However, I only got this working by replacing "WantedBy" with "Wants" in the Unit-Section. I don't know if my solution is right though, it is just a shot in the dark.

Another thing is that I have to start the bluetooth service manually after start, as the following line does not seem to be executed:
ExecStop=/usr/bin/systemctl restart bluetooth

Any help would be aprreciated!

1 Like

You're welcome, glad that helped.

Try this:

#/etc/systemd/system/restart-bt.service
#systemctl enable restart-bt.service
#systemctl start restart-bt.service
#systemctl stop restart-bt.service
#systemctl disable restart-bt.service
#systemctl status restart-bt.service
#systemctl daemon-reload

[Unit]
Description=Restart Bluetooth Service
Wants=multi-user.target 
After=network.target
Wants=bluetooth.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/bin/sleep 3
ExecStart=/bin/bash -c "modprobe btusb; sleep 3; systemctl restart bluetooth"

[Install]
WantedBy=multi-user.target

4 Likes

Thank you for checking this, @tbg. Now the service starts without error and my bluetooth gamepads work great! I still notice some odd behaviour with my bluetooth keyboard sometimes, but I think that is driver / kernel related.

1 Like

Glad to hear that fixed you up.

Services can solve a lot of issues, it pays to learn systemd usage when it is such a major part of Linux now.

1 Like