Unified Remote: Bluetooth: Verbindung zu SDP konnte nicht hergestellt werden

Unified Remote: Bluetooth: Verbindung zu SDP konnte nicht hergestellt werden

Ich habe Unified Remote heute installiert, in der Hoffnung, dass ich es mit meinem Bluetooth-Adapter verwenden kann, um meinen PC über mein Telefon zu steuern. Aber als ich Unified Remote installierte und die Weboberfläche lud, erhielt ich diesen Fehler:

Bluetooth: Verbindung zum SDP konnte nicht hergestellt werden

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

einige Ausgaben:

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?

Antwort1

Sie müssen den Bluetooth-Daemon im Kompatibilitätsmodus ausführen, um veraltete Befehlszeilenschnittstellen bereitzustellen. Sie verwenden Bluez5 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 so neu starten

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

und Sie müssen auch die Berechtigungen ändern für/var/run/sdp

sudo chmod 777 /var/run/sdp

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

Antwort2

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.

Antwort3

Ich habe es geschafft, es zum Laufen zu bringen, indem ich einen neuen systemdDienst erstellt habe.

  1. Erstellen Sie eine Konfigurationsdatei /etc/systemd/system/urserver.servicemit dem Namen und dem folgenden Inhalt:

    [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. Daemon neu laden systemd:

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

    sudo systemctl start urserver
    

Sie sollten „Server automatisch starten, wenn das Betriebssystem hochfährt“ in den Unified Remote-Einstellungen (Weboberfläche) deaktivieren, weil systemdder Dienst dann automatisch gestartet wird. systemdAußerdem wird der Dienst neu gestartet, wenn er aus irgendeinem Grund abstürzt.

Bearbeitet: Umgebung und PID-Datei, danke an Niklas

Antwort4

Ich habe die anderen Antworten kombiniert, um dies zum Laufen zu bringen und dafür zu sorgen, dass es auch nach Neustarts bestehen bleibt. Hier ist eine Schritt-für-Schritt-Anleitung, um es zum Laufen zu bringen:

Deaktivieren Sie das Kontrollkästchen „Server automatisch starten, wenn das Betriebssystem hochfährt“ in der GUI der Unified Remote-Einstellungen.

Stoppen Sie den Server. Dies können Sie tun mit:

    user@machine:~$ sudo killall urserver

Weiter alsLeo Pedrazasagte, 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 machen Sie wieEsa NikulainenUndNiklasvorgeschlagen und erstellen Sie einen neuen systemd-Dienst wie folgt:

Erstellen Sie eine Konfigurationsdatei namens /etc/systemd/system/urserver.service mit folgendem Inhalt:

    [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, sodass er beim Start ausgeführt wird:

    user@machine:~$ sudo systemctl enable urserver

DANKELeo Pedraza,Esa Nikulainen, UndNiklasfür das Herausfinden aller Teile!

verwandte Informationen