Unified Remote: Bluetooth: Es konnte keine Verbindung zu SDP hergestellt werden

10

Ich habe Unified Remote heute in der Hoffnung installiert, dass ich es mit meinem Bluetooth-Adapter verwenden kann, um meinen PC mit meinem Telefon zu steuern. Als ich Unified Remote installiert und die Weboberfläche geladen habe, wurde folgende Fehlermeldung angezeigt:

Bluetooth: Es konnte keine Verbindung zu SDP hergestellt werden

Google hat absolut nichts Hilfreiches an diesem Fehler, daher ist dies eine meiner einzigen Chancen hier.

Einige Ausgänge:

noneatme@noneatme-desktop:/etc/bluetooth$ sudo sdptool browse local
Failed to connect to SDP server on FF:FF:FF:00:00:00: Connection refused

Ubuntu 16.04

noneatme@noneatme-desktop:/etc/bluetooth$ uname -a
Linux noneatme-desktop 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

noneatme@noneatme-desktop:/etc/bluetooth$ /usr/lib/bluetooth/bluetoothd -C
D-Bus setup failed: Connection ":1.129" is not allowed to own the service "org.bluez" due to security policies in the configuration file
(it works with sudo)

Das Starten von Bluetoothd mit dem Argument --compat behebt das Problem nicht.

Was kann ich machen?

/ edit: Ich habe dieses Problem behoben, indem ich den einheitlichen Remote-Server als sudo gestartet habe. Ist das wirklich die einzige Option, die ich habe?

Noneatme
quelle

Antworten:

18

Sie müssen den Bluetooth-Dämon im Kompatibilitätsmodus ausführen, um veraltete Befehlszeilenschnittstellen bereitzustellen. Sie führen Bluez5 aus und benötigen einige Bluez4-Funktionen. Sie können dies tun, indem Sie diese Datei bearbeiten

/etc/systemd/system/dbus-org.bluez.service und diese Zeile ändern

ExecStart=/usr/lib/bluetooth/bluetoothd dazu

ExecStart=/usr/lib/bluetooth/bluetoothd --compat

und dann Bluetooth wie folgt neu starten

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

Außerdem müssen Sie die Berechtigungen für ändern /var/run/sdp

sudo chmod 777 /var/run/sdp

und starten Sie schließlich den einheitlichen Remote-Server neu

Leo Pedraza
quelle
Danke für deine Hilfe. Können Sie mir auch mitteilen, wie Sie die Erlaubnis dauerhaft machen würden? Im Moment beim Neustart meines PCs geht die Berechtigung verloren. Vielen Dank
Adrian
Es tut mir leid, aber ich möchte auch wissen, wie ich die Berechtigung dauerhaft machen kann, da ich auf dasselbe Problem stoße. Das obige Update hat funktioniert, aber ich möchte es automatisch machen, wenn ich boote.
Wjrochester
Ich bin auf Debian und ich habe diese Datei nicht = /
Dimitri Kopriwa
3

Eine andere Lösung:

Bearbeiten Sie /etc/systemd/system/dbus-org.bluez.service:

ExecStart=/usr/lib/bluetooth/bluetoothd --compat
ExecStartPost=/bin/chmod 777 /var/run/sdp

Weil die Berechtigungen von / var / run / sdp bei jedem Neustart zurückgesetzt zu werden scheinen.

Esa Nikulainen
quelle
Ich bin auf Debian und ich habe diese Datei nicht = /
Dimitri Kopriwa
1

Ich habe es geschafft, indem ich einen neuen systemdService erstellt habe.

  1. Erstellen Sie eine Konfigurationsdatei mit dem Namen /etc/systemd/system/urserver.service:

    [Unit]
    Description=Unified Remote Server
    After=syslog.target network.target
    
    [Service]
    Environment="HOME=/opt/urserver"
    Type=forking
    PIDFile=/opt/urserver/.urserver/urserver.pid
    ExecStartPre=/bin/chmod 777 /var/run/sdp
    ExecStart=/opt/urserver/urserver-start --no-manager --no-notify
    ExecStop=/opt/urserver/urserver-stop
    
    RemainAfterExit=no
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=default.target
    
  2. Legen Sie die Berechtigungen für die Datei fest:

    sudo chmod a+x /etc/systemd/system/urserver.service
    
  3. systemdDaemon neu laden :

    sudo systemctl daemon-reload
    
  4. Starten Sie den eigentlichen Dienst:

    sudo systemctl start urserver
    

Sie sollten "Server beim Start des Betriebssystems automatisch starten" deaktivieren. von Unified Remote Settings (Webinterface), da systemdder Dienst automatisch gestartet wird. systemdstartet den Dienst auch neu, wenn er aus irgendeinem Grund abstürzt.

Bearbeitet: Umwelt und PIDFile dank Niklas

Esa Nikulainen
quelle
Ich möchte eine Verbesserung der obigen Konfiguration vorschlagen. urserver-startWird jetzt als root ausgeführt und versucht, das Verzeichnis pidfile, .config und .remotes im System root zu erstellen. Wenn Sie festlegen, dass es als anderer Benutzer ausgeführt wird, schlägt das Ändern der Berechtigungen für / var / run / sdp fehl. Was ich getan habe, war, die Umgebung urserver-startdurch Hinzufügen Environment="HOME=/opt/urserver"und Ändern PIDFile=/opt/urserver/.urserver/urserver.pidunter zu ändern [Service]. Jetzt beginnt es ohne Fehler und streunende oder fehlende Verzeichnisse.
Niklas
Diese Antwort sollte zusammen mit dem Hinzufügen --compatfür den Bluetooth-Dienst wirklich die akzeptierte Antwort sein, da es sich um eine dauerhafte Lösung für mehrere Neustarts handelt.
Niklas
Ausführungsberechtigungen sollten für systemd-Dienstdateien nicht benötigt werden, da es sich nicht um Skripts handelt. Bitte entfernen Sie den chmod.
Phillip-Zyan K Lee-Stockmann
Um den automatischen Start beim Booten zu aktivieren, systemctl enable urserver.servicekann ausgeführt werden.
Phillip-Zyan K Lee-Stockmann
0

Ich habe die anderen Antworten kombiniert, um dies zum Laufen zu bringen und es durch Neustarts dauerhaft zu machen. Hier ist eine Schritt-für-Schritt-Anleitung, damit es funktioniert:

Deaktivieren Sie das Kontrollkästchen "Server beim Start des Betriebssystems automatisch starten". Feld in der GUI der Unified Remote-Einstellungen.

Stoppen Sie urserver. Sie können dies tun mit:

    user@machine:~$ sudo killall urserver

Als nächstes, wie Leo Pedraza sagte, bearbeiten Sie /etc/systemd/system/dbus-org.bluez.service und ändern Sie diese Zeile

    ExecStart=/usr/lib/bluetooth/bluetoothd 

dazu

    ExecStart=/usr/lib/bluetooth/bluetoothd --compat

Dann tun Sie, was Esa Nikulainen und Niklas vorgeschlagen haben, und erstellen Sie einen neuen Systemdienst wie folgt :

Erstellen Sie eine Konfigurationsdatei mit dem Namen /etc/systemd/system/urserver.service mit folgenden Inhalten:

    [Unit]
    Description=Unified Remote Server
    After=syslog.target network.target

    [Service]
    Environment="HOME=/opt/urserver"
    Type=forking
    PIDFile=/opt/urserver/.urserver/urserver.pid
    ExecStartPre=/bin/chmod 777 /var/run/sdp
    ExecStart=/opt/urserver/urserver-start --no-manager --no-notify
    ExecStop=/opt/urserver/urserver-stop

    RemainAfterExit=no
    Restart=on-failure
    RestartSec=5s

    [Install]
    WantedBy=default.target

Systemd-Daemon neu laden:

    user@machine:~$ sudo systemctl daemon-reload

Starten Sie Bluetooth wie folgt neu:

    user@machine:~$ sudo systemctl restart bluetooth

Starten Sie den neuen Dienst:

    user@machine:~$ sudo systemctl start urserver

Aktivieren Sie den neuen Dienst, damit er beim Start ausgeführt wird:

    user@machine:~$ sudo systemctl enable urserver

DANKE Leo Pedraza , Esa Nikulainen und Niklas , dass sie alle Teile herausgefunden haben!

andyanderso
quelle
Dies beantwortet die Frage nicht wirklich. Wenn Sie eine andere Frage haben, können Sie diese stellen, indem Sie auf Frage stellen klicken . Sie können auch ein Kopfgeld hinzufügen, um mehr Aufmerksamkeit auf diese Frage zu lenken, sobald Sie genügend Ruf haben . - Aus dem Rückblick
Phillip-Zyan K Lee-Stockmann
Ich habe meinen Beitrag geändert, um eine tatsächliche Antwort bereitzustellen, die die anderen Antworten zu einer umfassenderen Schritt-für-Schritt-Anleitung kombiniert.
andyanderso
Ausführungsberechtigungen sollten für einen systemd-Dienst nicht erforderlich sein. Ich würde vorschlagen, den chmod zu entfernen.
Phillip-Zyan K Lee-Stockmann