Remoto Unificado: Bluetooth: Não foi possível conectar ao SDP

Remoto Unificado: Bluetooth: Não foi possível conectar ao SDP

Instalei o Unified Remote hoje na esperança de poder usá-lo com meu adaptador Bluetooth para controlar meu PC usando meu telefone. Mas ao instalar o Unified Remote e carregar a interface da web, recebi este erro:

Bluetooth: não foi possível conectar ao SDP

O Google não tem absolutamente nada de útil sobre esse erro, então esta é uma das minhas únicas chances aqui.

algumas saídas:

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)

Iniciar o Bluetoothd com o argumento --compat não resolverá o problema.

O que posso fazer?

/edit: resolvi esse problema iniciando o servidor remoto unificado como sudo. Esta é realmente a única opção que tenho?

Responder1

Você precisa executar o daemon bluetooth no modo de compatibilidade para fornecer interfaces de linha de comando obsoletas. Você está executando o Bluez5 e precisa de algumas funções do Bluez4. Você pode fazer isso editando este arquivo

/etc/systemd/system/dbus-org.bluez.service e mudando esta linha

ExecStart=/usr/lib/bluetooth/bluetoothd para isso

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

e então reiniciando o bluetooth assim

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

e você também terá que alterar as permissões em/var/run/sdp

sudo chmod 777 /var/run/sdp

e finalmente reinicie o servidor remoto unificado

Responder2

Outra solução:

Edite /etc/systemd/system/dbus-org.bluez.service:

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

Porque as permissões de /var/run/sdp parecem ser redefinidas a cada reinicialização.

Responder3

Consegui fazê-lo funcionar criando um novo systemdserviço.

  1. Crie um arquivo de configuração nomeado /etc/systemd/system/urserver.servicecom conteúdo 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. Defina as permissões no arquivo:

    sudo chmod a+x /etc/systemd/system/urserver.service
    
  3. Recarregar systemddaemon:

    sudo systemctl daemon-reload
    
  4. Inicie o serviço real:

    sudo systemctl start urserver
    

Você deve desativar "Iniciar servidor automaticamente quando o sistema operacional for inicializado". em Configurações Remotas Unificadas (interface web), pois systemdiniciará o serviço automaticamente. systemdtambém reiniciará o serviço se ele travar por algum motivo.

Editado: Environment e PIDFile, graças a Niklas

Responder4

Combinei as outras respostas para fazer isso funcionar e persistir durante as reinicializações. Aqui está um guia passo a passo para fazê-lo funcionar:

Desmarque a opção "Iniciar servidor automaticamente quando o sistema operacional for inicializado". caixa na GUI de configurações do Unified Remote.

Pare o servidor. Você pode fazer isso com:

    user@machine:~$ sudo killall urserver

Próximo comoLeo Pedrazadisse edit /etc/systemd/system/dbus-org.bluez.service e altere esta linha

    ExecStart=/usr/lib/bluetooth/bluetoothd 

para isso

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

Então faça comoEsa NikulaineneNiklassugerido e crie um novo serviço systemd assim:

Crie um arquivo de configuração chamado /etc/systemd/system/urserver.service com conteúdo 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

Recarregue o daemon do systemd:

    user@machine:~$ sudo systemctl daemon-reload

Reinicie o bluetooth assim:

    user@machine:~$ sudo systemctl restart bluetooth

Inicie o novo serviço:

    user@machine:~$ sudo systemctl start urserver

Habilite o novo serviço para que ele seja executado na inicialização:

    user@machine:~$ sudo systemctl enable urserver

OBRIGADOLeo Pedraza,Esa Nikulainen, eNiklaspor descobrir todas as peças!

informação relacionada