Bluetooth failing to start until after login

I have a bluetooth keyboard and mouse and Garuda fails to connect to the bluetooth devices until after I've logged into the computer. Obviously this is a problem when the HID are all bluetooth. Right now I have to plug in a USB keyboard and mouse to get logged in every time I restart the computer.

Once logged it it will connect to them with no other prompting. The computer doesn't seem to have this issue waking from sleep, just from a cold boot. Do I need to update some drivers or something?

I appologize if these seem like really obvious questions or obvious solutions as I've never used linux outside of an appliance device before.

System:    Kernel: 5.10.8-112-tkg-bmq x86_64 bits: 64 compiler: gcc v: 10.2.0
           parameters: intel_pstate=passive BOOT_IMAGE=/@/boot/vmlinuz-linux-tkg-bmq
           root=UUID=328298ae-2aaa-498b-b0f7-d8b429022ec8 rw [email protected] quiet splash
           rd.udev.log_priority=3 vt.global_cursor_default=0 systemd.unified_cgroup_hierarchy=1 loglevel=3
           Desktop: KDE Plasma 5.20.5 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 dm: SDDM
           Distro: Garuda Linux
Machine:   Type: Desktop System: Gigabyte product: AB350M-D3H v: N/A serial: <filter>
           Mobo: Gigabyte model: AB350M-D3H-CF v: x.x serial: <filter> UEFI: American Megatrends v: F2
           date: 04/07/2017
Battery:   Device-1: hid-dc:2c:26:e7:57:eb-battery model: Keychron K2 serial: N/A charge: N/A
           status: Discharging
CPU:       Info: Quad Core model: AMD Ryzen 5 1400 bits: 64 type: MT MCP arch: Zen family: 17 (23) model-id: 1
           stepping: 1 microcode: 800111C L2 cache: 2 MiB
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 51156
           Speed: 1483 MHz min/max: 1550/3200 MHz boost: disabled Core speeds (MHz): 1: 1483 2: 1466 3: 1516
           4: 1502 5: 1440 6: 1454 7: 1471 8: 1408
           Vulnerabilities: Type: itlb_multihit status: Not affected
           Type: l1tf status: Not affected
           Type: mds status: Not affected
           Type: meltdown status: Not affected
           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 AMD retpoline, STIBP: disabled, RSB filling
           Type: srbds status: Not affected
           Type: tsx_async_abort status: Not affected
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
           vendor: Micro-Star MSI driver: amdgpu v: kernel bus ID: 09:00.0 chip ID: 1002:67df
           Display: x11 server: X.Org 1.20.10 compositor: kwin_x11 driver: amdgpu,ati unloaded: modesetting
           alternate: fbdev,vesa display ID: :0 screens: 1
           Screen-1: 0 s-res: 3440x1440 s-dpi: 96 s-size: 910x381mm (35.8x15.0") s-diag: 987mm (38.8")
           Monitor-1: DisplayPort-2 res: 3440x1440 hz: 144 dpi: 109 size: 800x335mm (31.5x13.2")
           diag: 867mm (34.1")
           OpenGL: renderer: Radeon RX 570 Series (POLARIS10 DRM 3.40.0 5.10.8-112-tkg-bmq LLVM 11.0.1)
           v: 4.6 Mesa 20.3.3 direct render: Yes
Audio:     Device-1: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] vendor: Micro-Star MSI
           driver: snd_hda_intel v: kernel bus ID: 09:00.1 chip ID: 1002:aaf0
           Device-2: Advanced Micro Devices [AMD] Family 17h HD Audio vendor: Gigabyte driver: snd_hda_intel
           v: kernel bus ID: 12:00.3 chip ID: 1022:1457
           Device-3: Blue Microphones Yeti Stereo Microphone type: USB
           driver: hid-generic,snd-usb-audio,usbhid bus ID: 3-3:2 chip ID: b58e:9e84 serial: <filter>
           Device-4: Kingston HyperX Cloud Flight S type: USB driver: hid-generic,snd-usb-audio,usbhid
           bus ID: 1-2:2 chip ID: 0951:16ea serial: <filter>
           Sound Server: ALSA v: k5.10.8-112-tkg-bmq
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Gigabyte driver: r8169
           v: kernel port: f000 bus ID: 05:00.0 chip ID: 10ec:8168
           IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Drives:    Local Storage: total: 689.33 GiB used: 38.26 GiB (5.6%)
           SMART Message: Unable to run smartctl. Root privileges required.
           ID-1: /dev/sda maj-min: 8:0 vendor: Seagate model: ST240HM000-1G5152 size: 223.57 GiB block size:
           physical: 4096 B logical: 512 B speed: 6.0 Gb/s serial: <filter> rev: C675
           ID-2: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 850 EVO 500GB size: 465.76 GiB block size:
           physical: 512 B logical: 512 B speed: 6.0 Gb/s serial: <filter> rev: 3B6Q
Partition: ID-1: / raw size: 232.57 GiB size: 232.57 GiB (100.00%) used: 38.24 GiB (16.4%) fs: btrfs
           dev: /dev/sdb5 maj-min: 8:21
           ID-2: /boot/efi raw size: 100 MiB size: 96 MiB (96.00%) used: 25.5 MiB (26.6%) fs: vfat
           dev: /dev/sdb2 maj-min: 8:18
           ID-3: /home raw size: 232.57 GiB size: 232.57 GiB (100.00%) used: 38.24 GiB (16.4%) fs: btrfs
           dev: /dev/sdb5 maj-min: 8:21
           ID-4: /var/log raw size: 232.57 GiB size: 232.57 GiB (100.00%) used: 38.24 GiB (16.4%) fs: btrfs
           dev: /dev/sdb5 maj-min: 8:21
           ID-5: /var/tmp raw size: 232.57 GiB size: 232.57 GiB (100.00%) used: 38.24 GiB (16.4%) fs: btrfs
           dev: /dev/sdb5 maj-min: 8:21
Swap:      Kernel: swappiness: 10 (default 60) cache pressure: 75 (default 100)
           ID-1: swap-1 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram0
           ID-2: swap-2 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram1
           ID-3: swap-3 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram2
           ID-4: swap-4 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram3
           ID-5: swap-5 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram4
           ID-6: swap-6 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram5
           ID-7: swap-7 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram6
           ID-8: swap-8 type: zram size: 1.96 GiB used: 0 KiB (0.0%) priority: 32767 dev: /dev/zram7
Sensors:   System Temperatures: cpu: 59.0 C mobo: N/A gpu: amdgpu temp: 51.0 C
           Fan Speeds (RPM): N/A gpu: amdgpu fan: 1124
Info:      Processes: 340 Uptime: 2m wakeups: 1 Memory: 15.64 GiB used: 4.93 GiB (31.5%) Init: systemd v: 247
           Compilers: gcc: 10.2.0 clang: 11.0.1 Packages: pacman: 1628 lib: 523 flatpak: 0 Shell: fish
           v: 3.1.2 running in: alacritty inxi: 3.2.01

https://bbs.archlinux.org/viewtopic.php?id=172756

https://bbs.archlinux.org/viewtopic.php?id=166362

https://wiki.archlinux.org/index.php/Bluetooth

https://wiki.archlinux.org/index.php/Bluetooth_mouse#Configuring_through_bluetoothctl

https://wiki.archlinux.org/index.php/Bluetooth_keyboard

Personally I would avoid Bluetooth technology like the plague, but if that's your thing fill your boots.

2 Likes

Looking through these options, it seems like changing this is the recommended response?

Going to here:
/etc/bluetooth/main.conf

and uncommentating and changing false to true this?

[Policy]
AutoEnable=true

I've done this and it doesn't change its behavior on boot, before login.

To auto-connect you also need the next one.
Also read this for troubleshooting.

2 Likes

I tried the other one as well and even with both enabled that doesn't change the behavior.

It still happily connects after login but doesn't do anything until then.

You can only troubleshoot, looking for logged messages.

And no-one can help without YOU run some relevant troubleshooting terminal commands and posting them in a post.
Isn't this humanly logic?

To see bluetooth status before login, don't login. At SDDM screen, go to TTY3 and run troubleshooting commands (systemctl, journalctl, bluetoothctl etc).

1 Like

I don't know how to do any of what you're saying. Like I said in the OP, this is the first time using linux. I have no idea how to access the terminal before logging in. I don't know how to access a "TTY3" from a "SSDM" screen.

I can run those commands from within the terminal after login but that would presumably not be of any help.

I'm not really sure why you think a brand new user to Linux would know any of this stuff.

read some manuals first. Sorry, but you can't fly an airplane with a car license.

I am sorry for your misunderstanding.
Garuda provides a system.
For support, we cannot come in your location/house and troubleshoot your (not unexpected) problems. This means that you, even if you are a new Linux user, have to educate yourself on how to troubleshoot your system and provide some helpful info to the forum users, in order for them to assist you with your problem.
If this is not acceptable by you, I guess you have chosen the wrong Linux distribution, or Linux in general. I think no OS Support service can help someone, without him doing some guided troubleshooting.
If you are not able to follow English technical instructions, then find someone in your friendly circle to help you.
Archwiki has excellent information on troubleshooting easily and properly.

https://wiki.archlinux.org/index.php/Linux_console#Virtual_consoles

2 Likes

It is possible that a udev rule or a systemd service might help in this situation.

https://bbs.archlinux.org/viewtopic.php?id=166362

Unfortunately, it's expecting a bit much for a new user to accomplish these kind of things if they are starting at point zero just learning Linux. It is equally unfortunate as @petsam has already stated that we cannot troubleshoot your system for you. Especially when we don't even know what model of bluetooth chip you are using.

Is this a USB dongle bluetooth adapter?

Be sure the BT USB dongle is connected directly to your computer's USB ports, not through a USB hub, or monitor port.

Using a USB 2 port on the rear of your computer would probably be best. If using a USB 2 port switch to a USB 3 port. Do not use a USB extension cable with the BT dongle.

It would be far better to know which BT adapter is being used here.

Please post the output of:

lsusb

Also conflicting modules at boot can sometimes cause problems with wifi/BT adapters, so also post:

lsmod | sort

Welcome to Garuda BTW.

However, if you find all this stuff is too complex for a beginner, you may want to start off your Linux journey with a more newbie friendly distro such as Mint. Arch based distros are more hands on, and may not be the best choice for some as a starter distro.

I'm not saying that as an insult or to be derisive, it's simply a common starting point for many new users looking to find a good newbie friendly distro. Arch based distro's are also an acceptable starting point. However the learning curve is much steeper on a rolling distro based on Arch. Those willing and eager to learn will do well using Arch/Garuda. Those not so inclined to read and learn how the OS works right off the hop may be better to ease into Linux usage with a more beginner friendly option.

Once you're familiar with the basics, then it will be far easier to understand how to use more advanced methods such as writing udev rules or systemd services.

If you're willing to learn the Archwiki is a fantastic resource for learning Linux. Although the Archwiki uses very technical terminology that isn't necessarily easy for a beginner to grasp.

All the best to you on your journey.

Of course you could also just side step some of the heavy lifting involved here by using a non Bluetooth mouse/keyboard to avoid all this BS.

1 Like

Oh crap, not again. I think you've been bitten by one of Gigabyte's shoddy MOBO's with poor USB support in Linux. As soon as I noticed it was a Gigabyte mobo in your inxi, I searched the model number and sure enough its one of the affected models.

You'll need to add iommu=soft to your Grub kernel boot parameters. There are other parameters that can be used, but this is the simplest method.

See:

https://forums.linuxmint.com/viewtopic.php?t=273823

Some of the USB 2 ports may work correctly on these boards at boot time, so juggle around testing different ports may help.

It seems it was likely this.

Oh crap, not again. I think you've been bitten by one of Gigabyte's shoddy MOBO's with poor USB support in Linux. As soon as I noticed it was a Gigabyte mobo in your inxi, I searched the model number and sure enough its one of the affected models.

Replacing the USB bluetooth radio with a PCIE card (specifically this one, which does have built in drivers in Garuda), fixed the problem. https://www.amazon.com/gp/product/B0832MR4WB/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1)

Marking thread resolved in case someone else has this issue, I hate to find my exact problem months or years after the fact in some thread and there never being a resolution post, so hopefully this helps someone in the future.