Manche Hardware funktioniert einfach, die Microsoft Bluetooth Mouse 3600 unter Fedora 44/GNOME 50 gehört leider nicht dazu. Während sie am Surface Laptop 3 unter Windows jahrelang perfekt lief, war der Umzug auf Linux für das ‚Mausi‘ der Anfang vom Ende. Das Pairing mit Bluetooth wurde stetig schlechter, bis sie mit dem Upgrade auf Fedora 44 nun komplett unbrauchbar geworden ist.
Man muss dazu wissen, dass der mit Fedora 44/GNOME 50 eingeführte Bluetooth-Stack eine gewisse Zurückhaltung gegenüber BLE-HID-Geräten zeigt, was häufig zu Verbindungsproblemen führt.
Eine kurze Beschreibung des Problems
- Nach dem Upgrade verbindet die Maus nicht mehr automatisch
- Manuelles Pairing funktioniert, aber nur mit Geduld
- Und die MAC‑Adresse der Maus wechselt fröhlich hin und her1
1) und ja, auch Bluetooth-Mäuse haben eine MAC-Adresse
Zeit also, der Sache auf den Grund zu gehen, bevor ich die Anschaffung einer neuen Maus überhaupt in Erwägung ziehe. Man ist ja irgendwo auch Schwabe 😉
Das Sympton ist, die Maus wird angezeigt aber Linux tut so als ob es eine neue wäre
Nach dem Upgrade auf Fedora 44 zeigt bluetoothctl folgende Info an:
Device F1:00:85:92:CA:34 (random)
Die Maus meldet sich mit wechselnden BLE‑Adressen. Das ist normal, nennt sich „Resolvable Private Address“ RPA . BlueZ erkennt solche Geräte über einen Identity Resolving Key (IRK). Wenn der IRK fehlt, denkt Fedora bei jeder neuen Adresse: „Noch nie gesehen …“ und das Theater geht los.
Das erklärt, warum AutoConnect nicht funktioniert, obwohl die Maus korrekt gepairt ist.
Die Ursache liegt in einem blockierten AutoConnect vor der Anmeldung
Mit GNOME 50 (und der damit einhergehenden Entwicklung in den zugrunde liegenden Bibliotheken wie bluez) wurde das Sicherheitsmodell für Bluetooth verschärft. BLE-HID-Geräte (wie die Mouse 3600) benötigen oft einen aktiven Austausch von Schlüsseln beim Reconnect. Wenn der Agent der User-Session noch nicht aktiv ist, schlägt dieser Austausch fehl oder wird vom System ignoriert, um unautorisierte Verbindungen auf Hardware-Ebene zu verhindern.
Letztendlich sehen wir die folgenden Syptome:
- kein AutoConnect beim Boot von Linux
- manueller Connect funktioniert (bei Fedora 44 auch nicht immer und davor doch recht zuverlässig) oft erst nach 60 bis 120 Sekunden
- Zur Verbindung muss eine User-Session vorhanden sein
Der erste Schritt ist, dass wir mit der Maus ein neues Pairing durchführen müssen:
bluetoothctl
remove <DEVICE-MAC>
scan on
pair <DEVICE-MAC>
trust <DEVICE-MAC>
connect <DEVICE-MAC>
Schauen wir uns aber die info-Datei für die Maus an, so sind nach einen korrekt erfolgtem Pairing alle notwendigen Einträge vorhanden.
# Speicherung der Bluetooth-Informationen der Maus in der info
/var/lib/bluetooth/<ADAPTER-MAC>/<DEVICE-MAC>/info
Die Datei beinhaltet alle notwendigen Informationen wie den IRK, LTK und HID-Services.
Wir merken uns:
- ADAPTER-MAC = Hardware-Adresse des Bluetooth-Controllers im Laptop (die ist und bleibt statisch)
- DEVICE-MAC = Hardware-Adresse der Maus (Device), die sich in Grenzen dynamisch verhält
Den Pfad oben bauen wir als wie folgt zusammen, und dazu wechseln wir der Einfachheit halber in den interaktiven Sudo (wer in diesem verbleibt, spart sich in den kommenden Konfigurationen das nervige tippen von Befehl und Passwort):
# Wechsel in den interaktiven sudo-Modussudo -i
Am einfachsten (und damit ohne Tipp-Fehler), lassen sich Verzeichnispfade mit ls und der TAB-Taste verwenden:# Dazu ls und TAB für die Expansion des folgenden Pfads verwenden #- wichtig ist, dass die MAC-Adresse des Controllers bei Euch anders heißt!
ls '/var/lib/bluetooth/F0:1D:BC:9C:AC:9D'
Hängen wir dann an diesen Pfad die DEVICE-MAC mit an, können wir im Verzeichnis die info-Datei der Microsoft Bluetooth 3600 finden.
Damit ist die technische Basis gelegt.
Die zweite Baustelle sind die wechselnden MAC-Adresse der Maus (DEVICE-MAC)
Die Microsoft Maus nutzt Adressen, die immer mit F1:00:85: beginnen. Der Rest ändert sich.
BlueZ erkennt die Maus über den IRK, aber GNOME 50 leider nicht zuverlässig.
Das Problem konnte mit einer udev-Regel, die hilft den Connect auszulösen, sobald die Maus auftaucht, gelöst werden.
Die Sache wird nun als dritter Schritt an systemd übergeben und dort in eine Regel gepackt
# udev-Regel erstellen
sudo nano /etc/udev/rules.d/99-bt-mouse-autoconnect.rules
# Inhalt der Regel
ACTION=="add", SUBSYSTEM=="bluetooth", ATTR{address}=="F1:00:85:*", RUN+="/usr/bin/bluetoothctl connect %E{address}"
ACTION=="add", SUBSYSTEM=="bluetooth", ATTR{address}=="F1:00:85:*", RUN+="/usr/bin/bluetoothctl connect %E{address}"
Genau genommen arbeitet die Regel die folgenden Aufgaben ab:
- Sie reagiert auf jedes Bluetooth‑Gerät, dessen Adresse mit
F1:00:85:beginnt %E{address}übergibt die aktuelle (random) MAC an bluetoothctl- GNOME 50 wird komplett umgangen
- Die Maus verbindet sobald sie auftaucht
Die Regel sollte automatisch ausgeführt werden und damit blieb nur der Weg das mit einem systemd-Service um GNOME „herumzubauen“ (zumindest habe ich keine andere Möglichkeit gefunden).
Damit umschiffen wir die folgenden Problemzonen:
- GNOME‑Agent‑Blockade
- Race‑Condition beim Login
- 60–120‑Sekunden‑Timeout
- verzögerten BLE‑Reconnect

Der funktionierende systemd-AutoConnect-Service:
# Als erstes muss der Service angelegt werden
sudo nano /etc/systemd/system/bt-mouse-autoconnect.service
# Und der Service in der Config definiert werden
[Unit]
Description=Auto-connect Bluetooth Mouse after GNOME startup
After=graphical.target bluetooth.service
Wants=bluetooth.service
[Service]
Type=oneshot
ExecStart=/usr/bin/bluetoothctl connect F1:00:85:93:CA:34
ExecStart=/usr/bin/sleep 2
ExecStart=/usr/bin/bluetoothctl connect F1:00:85:93:CA:34
[Install]
WantedBy=graphical.target
Das Timing im Logon-Prozess ist nicht ganz optimal, darum probiert es der Service mit dem Start nach 2s ein zweites Mal.
Zum Schluss fehlt nur noch die Aktivierung des Service verbunden mit einem Neustart:
# Aktivierung des Service
sudo systemctl daemon-reload
sudo systemctl enable bt-mouse-autoconnect.service
# Reboot
sudo reboot
Fazit
Die Maus läuft und ich muss keine neue mehr besorgen, zumal ich die Teile immer sehr mochte da sie wirklich robust und zuverlässig waren sind. Auch wenn ich mich erneut an dem Surface Laptop anmelde, ist die Maus nach ca. 30 Sekunden da. Man könnte hier sicherlich noch eine Reihe von Optimierungen und Retries bauen, ich will es aber dabei belassen. Wie sagt der Schwabe gerne „für me duats des“ … und er ist glücklich, muss er doch keine neue Maus kaufen.
Enjoy it, b!


























