web-dev-qa-db-fra.com

Unified Remote: Bluetooth: Impossible de se connecter à SDP

J'ai installé Unified Remote aujourd'hui dans l'espoir de pouvoir l'utiliser avec mon adaptateur Bluetooth pour contrôler mon PC à l'aide de mon téléphone. Mais lorsque j'ai installé Unified Remote et chargé l'interface Web, j'ai eu cette erreur:

Bluetooth: Impossible de se connecter à SDP

Google n'a absolument rien d'utile à propos de cette erreur, c'est donc l'une de mes seules chances ici.

quelques sorties:

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)

Démarrer Bluetooth avec l’argument --compat ne résoudra pas le problème.

Que puis-je faire?

/ edit: J'ai résolu ce problème en démarrant le serveur distant unifié en tant que Sudo. Est-ce vraiment la seule option que j'ai?

9
Noneatme

Vous devez exécuter le démon bluetooth en mode de compatibilité pour fournir des interfaces de ligne de commande obsolètes. Vous utilisez Bluez5 et vous avez besoin de fonctions Bluez4. Vous pouvez le faire en modifiant ce fichier

/etc/systemd/system/dbus-org.bluez.service et changer cette ligne

ExecStart=/usr/lib/bluetooth/bluetoothd to this

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

puis en redémarrant bluetooth comme ça

Sudo systemctl daemon-reload
Sudo systemctl restart bluetooth

et vous devrez également modifier les autorisations sur /var/run/sdp

Sudo chmod 777 /var/run/sdp

et enfin redémarrer un serveur distant unifié

17
Leo Pedraza

Une autre solution:

Éditez /etc/systemd/system/dbus-org.bluez.service:

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

Parce que les autorisations de/var/run/sdp semblent se réinitialiser à chaque redémarrage.

3
Esa Nikulainen

J'ai réussi à le faire fonctionner en créant un nouveau service systemd.

  1. Créez un fichier de configuration nommé /etc/systemd/system/urserver.service avec le contenu de:

    [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. Définissez les autorisations sur le fichier:

    Sudo chmod a+x /etc/systemd/system/urserver.service
    
  3. Recharger le démon systemd:

    Sudo systemctl daemon-reload
    
  4. Démarrer le service actuel:

    Sudo systemctl start urserver
    

Vous devez désactiver "Démarrer automatiquement le serveur au démarrage du système d'exploitation". depuis les paramètres distants unifiés (interface Web), car systemd lancera le service automatiquement. systemd redémarre également le service s'il se bloque pour une raison quelconque.

Edited: Environment et PIDFile, grâce à Niklas

1
Esa Nikulainen

J'ai combiné les autres réponses pour que cela fonctionne et que cela persiste lors des redémarrages. Voici un guide étape par étape pour le faire fonctionner:

Décochez la case "Démarrer automatiquement le serveur au démarrage du système d'exploitation". dans l’interface graphique des paramètres de Unified Remote.

Arrêtez urserver. Vous pouvez le faire avec:

    user@machine:~$ Sudo killall urserver

Suivant en tant que Leo Pedraza dit /etc/systemd/system/dbus-org.bluez.service et changez cette ligne

    ExecStart=/usr/lib/bluetooth/bluetoothd 

pour ça

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

Ensuite, faites comme Esa Nikulainen et Niklas suggéré et créez un nouveau service systemd comme suit:

Créez un fichier de configuration nommé /etc/systemd/system/urserver.service avec le contenu de:

    [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

Recharger le démon systemd:

    user@machine:~$ Sudo systemctl daemon-reload

Redémarrez Bluetooth comme ceci:

    user@machine:~$ Sudo systemctl restart bluetooth

Démarrer le nouveau service:

    user@machine:~$ Sudo systemctl start urserver

Activez le nouveau service pour qu’il s’exécute au démarrage:

    user@machine:~$ Sudo systemctl enable urserver

MERCI Leo Pedraza , Esa Nikulainen , et Niklas pour avoir trouvé toutes les pièces!

0
andyanderso