Howto: Bluetooth beim Bootvorgang aktivieren
In den aktuellen Releases von Ubuntu, wie auch Manjaro (Arch) kann man beobachten, das z.b. eingerichtete Tastaturen & Mäuse am Anmeldebildschirm nicht zur Verfügung stehen.
Bei dem aktuellen Beispiel geht es um Manjaro mit der KDE Oberfläche.
Der Hintergrund ist, selbst wenn das Bluetoothgerät gekoppelt war und auch den Trust hat, es beim hochfahren nicht getriggert wird um automatisch zu verbinden. Das hat zwei mögliche Gründe:
Der AutoEnable Eintrag im Bluetooth Stack ist nicht aktiviert bzw. auf dem Wert False
Wir öffnen mit unserem bevorzugten Editor die Config Datei im Verzeichnis /etc/bluetooth/main.conf und aktivieren den Eintrag AutoEnable und setzen den Wert auf True.
....
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'false'.
AutoEnable=True
....
Speichert die Config Datei und checkt nach dem Reboot, ob ihr nun eurer Gerät direkt nach dem Start benutzen könnt.
Falls ihr noch immer keine Gerät habt, schaut etwas genauer auf den Bluetoothservice. Ist er auch schon gestartet, wenn der Loginbildschirm erscheint?
In diesem Fall war er gestartet, aber der Bluetooth Adapter wird beim hochfahren nicht eingeschaltet.
Nach etwas Recherche und der Feststellung das hier wohl das Thema beim Handler des Bluetoothservice liegt (blueZ oder bluetoothctl) habe ich hier kurz gehalten einen eigenen Service eingerichtet der den Bluetooth Adapter beim Start einschaltet.
Wir bauen uns einen eigenen Service und binden ihn in den Startvorgang ein
Dazu erstellen wir im Verzeichnis /usr/bin/ eine Datei mit dem Namen autostart.sh.
Der Inhalt der Datei ist für den Handler (z.b. bluetoothctl).
#!/bin/bash
#
# /usr/bin/autostart.sh: Local multi-user startup script.
sudo bluetoothctl power on
Speichert die Datei und macht sie ausführbar.
Im weiteren Schritt richten wir das Service Modul für unser Script ein. Dafür erstellen wir eine Datei im Verzeichnis /lib/systemd/system/ und nennen diese autostart.service.
Der Inhalt ruft durch das Modul das Script auf und gibt u.a. an auf welcher Ebene dieser Service laufen soll.
[Unit]
Description=Example systemd service.
[Service]
Type=simple
ExecStart=/bin/bash /usr/bin/autostart.sh
[Install]
WantedBy=multi-user.target
Nun prüfen wir mit dem Triggern des selbsterstellen Service ob unsere Eingaben richtig waren:
Falls hier keine Fehlermeldung erscheint, könnt ihr mit dem Befehlsatz unten den Status ausgeben lassen.
Im letzten Punkt aktivieren wir unseren Service also nun beim Hochfahren.
Nach einem Neustart und einer kurzen Sekunde, habt ihr euer Bluetoothgerät nun auch beim Login/Startbildschirm zur Verfügung.