
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 systemd
serviço.
Crie um arquivo de configuração nomeado
/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
Defina as permissões no arquivo:
sudo chmod a+x /etc/systemd/system/urserver.service
Recarregar
systemd
daemon:sudo systemctl daemon-reload
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 systemd
iniciará o serviço automaticamente. systemd
també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!