How to properly use bluetooth dongle in Fedora 39

I am running Fedora 39 completely updated. Unfortunately, whenever I connect my Apple Magic Mouse via Bluetooth it disconnects after some time. Researching this issue led me to buy a Bluetooth Dongle. This brought me one step closer to having a fully functioning mouse, but as said not 100%.

What I found until now:

Scenario a) connecting the mouse to the built in bluetooth module does not work properly, as the mouse disconnects after some time and as soon as it is reconnected, the scrolling function is broken. After repairing it, or restarting bluetooth via terminal, the mouse fully functions again for some short period until it disconnects again.

Important information: in the settings I see that my machine is visible via NAME and the paired devices (4 in total) are shown.

Scenario b) connecting the mouse to the bluetooth dongle just works randomly. If it is connected to the dongle, then everything works flawlessly. That means, it stays connected and the scrolling function works normally. However, I cannot really control to connect it to the dongle. In more detail, if the dongle is used, then I see the devices paired to the dongle in the settings (3 in total) and the machine is visible via NAME#1.

Now, I would like to know how to be able to basiacally turn off the internal bluetooth module and use the dongle instead. Unfortunately, I did not achieve this yet.

Could anyone help me out with this isse?

See How to manage multiple bluetooth chips is from 2018. I haven’t needed this since 2018, so check example commands against the current version with man bluetoothctl.

Thank you very much! This clarifies a lot for me and is a big help!!

Apparently, my problem is still not solved. I was able to connect and use the bluetooth dongle, but it seems to me the problem of disconnects and reconnects got even worse…I do not know how to proceed but lets see

We need to see details of your hardware and relevant records from journactl. It is good practice to post the output from inxi -Fzxx (run in a terminal and pasted as pre-formatted text using the </> button from the top of the text entry window… It gives a complete picture of your hardware which can help others find this thread when they have issues with similar hardware. Rare clashes between different hardware components can’t be discovered without full details.

journalctl captures enormous detail, so it is not trivial to find “filters” that select the records relvant to your problem. I’ll give some examples – you should use man journalctl in a terminal to see explanations. Start by check for “priority” messages with journalctl --no-hostname -b -p 3 |cat. The |cat is needed to avoid losing important details when lines are truncated (> marks a line longer than the terminal width). The try selecting for relevant text patterns along the lines of journalctl --no-hostname -b -g bluetooth |cat.

Thank you for your message. I am trying my best now. See the output of inxi -Fzxx here

System:
  Kernel: 6.8.6-200.fc39.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.40-14.fc39
  Desktop: GNOME v: 45.5 tk: GTK v: 3.24.41 wm: gnome-shell dm: GDM
    Distro: Fedora Linux 39 (Workstation Edition)
Machine:
  Type: Laptop System: FUJITSU product: LIFEBOOK E546 v: 10601736746
    serial: <superuser required> Chassis: type: 10 v: LIFEBOOK E546
    serial: <superuser required>
  Mobo: FUJITSU model: FJNB290 v: F3 serial: <superuser required>
    part-nu: SK00 UEFI: FUJITSU // Insyde v: Version 1.26 date: 08/20/2021
Battery:
  ID-1: CMB1 charge: 51.8 Wh (100.0%) condition: 51.8/62.6 Wh (82.6%)
    volts: 12.1 min: 10.8 model: Fujitsu CP700281-02 serial: <filter>
    status: full
  Device-1: hid-d4:9a:20:89:0a:48-battery model: Manuels Maus serial: N/A
    charge: N/A status: discharging
CPU:
  Info: dual core model: Intel Core i5-6300U bits: 64 type: MT MCP
    arch: Skylake rev: 3 cache: L1: 128 KiB L2: 512 KiB L3: 3 MiB
  Speed (MHz): avg: 400 min/max: 400/3000 cores: 1: 400 2: 400 3: 400 4: 400
    bogomips: 19999
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
Graphics:
  Device-1: Intel Skylake GT2 [HD Graphics 520] vendor: Fujitsu driver: i915
    v: kernel arch: Gen-9 ports: active: eDP-1 empty: DP-1, DP-2, HDMI-A-1,
    HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:1916
  Device-2: Chicony FJ Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 1-8:4 chip-ID: 04f2:b413
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 23.2.4
    compositor: gnome-shell driver: gpu: i915 display-ID: 0
  Monitor-1: eDP-1 model: LG Display 0x046d res: 1920x1080 dpi: 158
    diag: 355mm (14")
  API: OpenGL v: 4.6 vendor: intel mesa v: 23.3.6 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: Mesa Intel HD Graphics 520 (SKL GT2)
    device-ID: 8086:1916 display-ID: :0.0
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: Fujitsu
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:9d70
  API: ALSA v: k6.8.6-200.fc39.x86_64 status: kernel-api
  Server-1: PipeWire v: 1.0.4 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin
Network:
  Device-1: Intel Ethernet I219-LM vendor: Fujitsu driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:156f
  IF: enp0s31f6 state: down mac: <filter>
  Device-2: Intel Wireless 8260 driver: iwlwifi v: kernel pcie:
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:24f3
  IF: wlp2s0 state: up mac: <filter>
  IF-ID-1: gpd0 state: down mac: N/A
  IF-ID-2: wwan0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface driver: btusb v: 0.8 type: USB
    rev: 2.0 speed: 12 Mb/s lanes: 1 bus-ID: 1-7:3 chip-ID: 8087:0a2b
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 4.2
    lmp-v: 8
Drives:
  Local Storage: total: 465.76 GiB used: 330.91 GiB (71.0%)
  ID-1: /dev/sda vendor: Samsung model: SSD 860 EVO 500GB size: 465.76 GiB
    speed: 6.0 Gb/s serial: <filter>
Partition:
  ID-1: / size: 349.59 GiB used: 330.58 GiB (94.6%) fs: btrfs dev: /dev/dm-0
    mapped: luks-8bcfb125-cab6-416a-8d8c-d26ccc96a7f6
  ID-2: /boot size: 973.4 MiB used: 286.8 MiB (29.5%) fs: ext4
    dev: /dev/sda5
  ID-3: /boot/efi size: 96 MiB used: 51 MiB (53.2%) fs: vfat dev: /dev/sda1
  ID-4: /home size: 349.59 GiB used: 330.58 GiB (94.6%) fs: btrfs
    dev: /dev/dm-0 mapped: luks-8bcfb125-cab6-416a-8d8c-d26ccc96a7f6
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 512 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 16 GiB available: 15.5 GiB used: 5.06 GiB (32.6%)
  Processes: 333 Power: uptime: 1h 21m wakeups: 0 Init: systemd v: 254
    target: graphical (5) default: graphical
  Packages: pm: flatpak pkgs: 33 Compilers: clang: 17.0.6 gcc: 13.2.1
    Shell: Bash v: 5.2.26 running-in: gnome-terminal inxi: 3.3.33

Then, I typed the second command journalctl --no-hostname -b -p 3 |cat. and the output can be found here:

journalctl --no-hostname -b -p 3 |cat
Apr 23 13:36:59 kernel: x86/cpu: VMX (outside TXT) disabled by BIOS
Apr 23 13:36:59 kernel: x86/cpu: SGX disabled by BIOS.
Apr 23 13:36:59 kernel: ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.XHC.RHUB.TPLD], AE_NOT_FOUND (20230628/psargs-330)
Apr 23 13:36:59 kernel: ACPI Error: Aborting method \_SB.UBTC.CR01._PLD due to previous error (AE_NOT_FOUND) (20230628/psparse-529)
Apr 23 13:36:59 systemd-vconsole-setup[263]: /usr/bin/setfont failed with exit status 71.
Apr 23 13:37:00 systemd-vconsole-setup[546]: /usr/bin/setfont failed with exit status 71.
Apr 23 11:37:33 bluetoothd[1603]: src/main.c:load_config() Parsing /etc/bluetooth/main.conf failed: Key file contains line “f[General]” which is not a key-value pair, group, or comment
Apr 23 11:37:34 kernel: Bluetooth: hci0: Malformed MSFT vendor event: 0x02
Apr 23 11:37:34 kernel: Bluetooth: hci0: Reading supported features failed (-16)
Apr 23 11:37:41 virtqemud[2066]: Kann /dev/kvm nicht öffnen: Datei oder Verzeichnis nicht gefunden
Apr 23 11:37:45 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:45 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:45 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:45 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:52 gdm-password][2852]: gkr-pam: unable to locate daemon control file
Apr 23 11:37:53 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:37:53 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:37:53 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:37:53 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:37:53 systemd[2873]: Failed to start app-gnome-gnome\x2dkeyring\x2dpkcs11-3117.scope - Application launched by gnome-session-binary.
Apr 23 11:37:54 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:54 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:54 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:37:54 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:28 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:28 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:28 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:28 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:31 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:31 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:31 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:31 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:37 gdm-password][5979]: gkr-pam: unable to locate daemon control file
Apr 23 11:38:37 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to remove UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:37 bluetoothd[1603]: Failed to add UUID: Failed (0x03)
Apr 23 11:38:38 systemd[2873]: Failed to start app-gnome-gnome\x2dkeyring\x2dpkcs11-6179.scope - Application launched by gnome-session-binary.
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593932 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593933 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593934 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593935 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593936 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593937 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593938 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593939 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593940 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593941 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:39:40 nm-openvpn[7944]: AEAD Decrypt error: bad packet ID (may be a replay): [ #593942 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Apr 23 11:53:34 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 11:57:05 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:09:35 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:23:36 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:28:06 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:31:07 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:31:33 bluetoothd[1603]: profiles/input/device.c:control_connect_cb() connect to D4:9A:20:89:0A:48: Host is down (112)
Apr 23 12:31:37 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:33:07 bluetoothd[1603]: profiles/input/device.c:hidp_send_message() BT socket not connected
Apr 23 12:58:28 sudo[16236]:   manuel : a password is required ; TTY=pts/0 ; PWD=/home/manuel ; USER=root ; COMMAND=/sbin/hddtemp -nq -u C /dev/sda
Apr 23 12:58:39 sudo[16370]:   manuel : a password is required ; TTY=pts/0 ; PWD=/home/manuel ; USER=root ; COMMAND=/sbin/hddtemp -nq -u C /dev/sda

which is interesting as only a few bluetooth messages are found.

Do you think it would be of any value to restart the bluetooth module via terminal, then reconnect to the mouse again and wait until the scrolling issue happens again? Then maybe I could find some interesting logs?

Looking forward to your answer!

The following line indicates that the main.con file is corrupt:

bluetoothd[1603]: src/main.c:load_config() Parsing /etc/bluetooth/main.conf failed: Key file contains line “f[General]” which is not a key-value pair, group, or comment

Here:

% grep '^\[' /etc/bluetooth/main.conf 
[General]
[BR]
[LE]
[GATT]
[CSIS]
[AVDTP]
[Policy]
[AdvMon]

All the other (non-header) lines are either blank or start with #. Others are reporting problems with Magic Mouse disconnects. Are you using the first generation (2009) Magic Mouse with AA batteries? If so, consider buying a newmouse, If yours is second generation, you should start a new topic like “Magic Mouse Gen 2 Bluetooth Disconnects”.

I found a typo in the main.conf file, thank you for pointing to that! I corrected it and let us see whether it makes any difference.

I am using the first generation Magic Mouse.