Howto: Bluetooth beim Bootvorgang aktivieren

    • Offizieller Beitrag

    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 Au
    toEnable 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.

    Code
    sudo nano /etc/bluetooth/main.conf
    Code
    ....
    # 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.


    W
    ir 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.

    Code
    sudo nano /usr/bin/autostart.sh

    Der Inhalt der Datei ist für den Handler (z.b. bluetoothctl).

    Bash
    #!/bin/bash
    #
    # /usr/bin/autostart.sh: Local multi-user startup script.
    sudo bluetoothctl power on

    Speichert die Datei und macht sie ausführbar.

    Code
    sudo chmod +x /usr/bin/autostart.sh

    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.

    Code
    sudo nano /lib/systemd/system/autostart.service

    Der Inhalt ruft durch das Modul das Script auf und gibt u.a. an auf welcher Ebene dieser Service laufen soll.

    Code
    [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:

    Code
    sudo systemctl start autostart.service

    Falls hier keine Fehlermeldung erscheint, könnt ihr mit dem Befehlsatz unten den Status ausgeben lassen.

    Code
    sudo systemctl status autostart.service

    Im letzten Punkt aktivieren wir unseren Service also nun beim Hochfahren.

    Code
    sudo systemctl enable autostart.service    

    Nach einem Neustart und einer kurzen Sekunde, habt ihr euer Bluetoothgerät nun auch beim Login/Startbildschirm zur Verfügung. :thumbup: