TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸

Bluetooth-Geräte unter Armbian per Kommandozeile koppeln

August 6, 2018

Diese Anleitung beschreibt, wie Sie Bluetooth-Geräte, insbesondere Tastaturen, die eine PIN-Eingabe erfordern (z.B. die Logitech K480), über das Kommandozeilen-Tool bluetoothctl auf einem Armbian-System koppeln und verbinden.


1. Voraussetzungen

Stellen Sie sicher, dass das bluez-Paket, das die Bluetooth-Tools für Linux bereitstellt, installiert ist.

code
sudo apt update
sudo apt install -y bluez

2. Interaktives Pairing mit bluetoothctl

Starten Sie das interaktive bluetoothctl-Werkzeug.

code
bluetoothctl

Führen Sie innerhalb der bluetoothctl-Sitzung die folgenden Schritte aus.

Agent für Tastatur-Eingabe konfigurieren

Für Geräte, die eine PIN-Eingabe erfordern, ist der KeyboardOnly-Agent notwendig. Dieser ermöglicht die PIN-Bestätigung direkt auf der zu koppelnden Tastatur.

code
[bluetooth]# agent KeyboardOnly
[bluetooth]# default-agent

Gerät scannen und koppeln

  1. Scan starten: Aktiviert die Suche nach sichtbaren Bluetooth-Geräten in der Umgebung.

    code
    [bluetooth]# scan on
    

    Warten Sie, bis die MAC-Adresse Ihrer Tastatur (z.B. 34:XX:XX:XX:D8:F3) in der Liste der gefundenen Geräte erscheint.

  2. Gerät koppeln (Pairing):

    code
    [bluetooth]# pair 34:XX:XX:XX:D8:F3
    

    Sie werden aufgefordert, eine PIN auf der Tastatur einzugeben und mit Enter zu bestätigen.

  3. Gerät als vertrauenswürdig einstufen (Trust): Dies ist notwendig, damit sich das Gerät in Zukunft automatisch verbinden kann.

    code
    [bluetooth]# trust 34:XX:XX:XX:D8:F3
    
  4. Verbindung herstellen:

    code
    [bluetooth]# connect 34:XX:XX:XX:D8:F3
    

3. Automatisches Verbinden beim Systemstart

Um die Tastatur bei jedem Systemstart automatisch zu verbinden, können Sie ein systemd-User-Service einrichten.

Verbindungsskript erstellen

Erstellen Sie ein Shell-Skript, das den connect-Befehl ausführt.

code
# Verzeichnis für Skripte erstellen, falls nicht vorhanden
mkdir -p ~/Scripts

# Skript erstellen
cat <<'EOF' > ~/Scripts/bt-connect.sh
#!/usr/bin/env bash
# Beendet das Skript bei Fehlern
set -e

# Ersetzen Sie dies durch die MAC-Adresse Ihres Geräts
MAC_K480="34:XX:XX:XX:D8:F3"

# Führt bluetoothctl-Befehle nicht-interaktiv aus
bluetoothctl << EOT
power on
connect ${MAC_K480}
EOT
EOF

# Skript ausführbar machen
chmod +x ~/Scripts/bt-connect.sh

systemd User Service erstellen

Ein User-Service läuft unter Ihrem Benutzerkonto und startet, sobald Sie sich anmelden.

  1. Verzeichnis erstellen:

    code
    mkdir -p ~/.config/systemd/user
    
  2. Service-Datei erstellen:

    code
    cat <<'EOF' > ~/.config/systemd/user/bt-connect.service
    [Unit]
    Description=Automatisches Verbinden von Bluetooth-Geräten
    
    [Service]
    Type=oneshot
    ExecStart=%h/Scripts/bt-connect.sh
    
    [Install]
    WantedBy=default.target
    EOF
    

    %h ist ein Platzhalter für Ihr Home-Verzeichnis.

  3. Service aktivieren:

    code
    systemctl --user daemon-reload
    systemctl --user enable --now bt-connect.service
    

4. Fehlerbehebung

  • Keine PIN-Abfrage auf der Tastatur: Stellen Sie sicher, dass Sie agent KeyboardOnly vor dem Pairing-Versuch ausgeführt haben.
  • Verbindung schlägt fehl: Überprüfen Sie mit bluetoothctl power on, ob der Bluetooth-Adapter aktiv ist.
  • Kein Bluetooth-Adapter gefunden: Der Befehl bluetoothctl list zeigt verfügbare Controller an. Fehlt hier ein Eintrag, gibt es möglicherweise ein Treiberproblem.