it-swarm.dev

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

Eu instalei o Unified Remote hoje na esperança de que eu possa usá-lo com meu adaptador bluetooth para controlar meu PC usando meu telefone. Mas quando instalei o Unified Remote e carreguei a interface web, recebi este erro:

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

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

algumas saídas:

[email protected]:/etc/bluetooth$ Sudo sdptool browse local
Failed to connect to SDP server on FF:FF:FF:00:00:00: Connection refused

Ubuntu 16.04

[email protected]:/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

[email protected]:/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 corrigirá o problema.

O que eu posso fazer?

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

8
Noneatme

Você precisa executar o daemon do bluetooth no modo de compatibilidade para fornecer interfaces de linha de comandos obsoletas. Você está rodando 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 alterando esta linha

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

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

e depois reiniciar 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 reiniciar o servidor remoto unificado

16
Leo Pedraza

Outra solução

Edite o /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.

2
Esa Nikulainen

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

  1. Crie um arquivo de configuração chamado /etc/systemd/system/urserver.service com o 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. Reload systemd daemon:

    Sudo systemctl daemon-reload
    
  4. Comece o serviço real:

    Sudo systemctl start urserver
    

Você deve desativar "Iniciar o servidor automaticamente quando o sistema operacional for iniciado". de Configurações Remotas Unificadas (interface web), porque systemd iniciará o serviço automaticamente. systemd também reiniciará o serviço se ele falhar por algum motivo.

Editado: Environment e PIDFile, graças a Niklas

1
Esa Nikulainen

Eu combinei as outras respostas para fazer isso funcionar e fazer com que isso persistisse durante as reinicializações. Aqui está um guia passo-a-passo para que funcione:

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

Pare o urserver. Você pode fazer isso com:

    [email protected]:~$ Sudo killall urserver

Em seguida, --- Leo Pedraza disse editar /etc/systemd/system/dbus-org.bluez.service e mudar esta linha

    ExecStart=/usr/lib/bluetooth/bluetoothd 

para isso

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

Então faça como Esa Nikulainen e Niklas sugerido e crie um novo serviço systemd da seguinte forma:

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

Atualizar o daemon do systemd:

    [email protected]:~$ Sudo systemctl daemon-reload

Reinicie o bluetooth assim:

    [email protected]:~$ Sudo systemctl restart bluetooth

Inicie o novo serviço:

    [email protected]:~$ Sudo systemctl start urserver

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

    [email protected]:~$ Sudo systemctl enable urserver

OBRIGADO Leo Pedraza , Esa Nikulainen , e Niklas por descobrir todas as peças!

0
andyanderso