Unified Remote : Bluetooth : SDP에 연결할 수 없습니다


11

오늘 Bluetooth 어댑터와 함께 사용하여 전화기를 사용하여 PC를 제어 할 수 있도록 Unified Remote를 설치했습니다. 그러나 Unified Remote를 설치하고 웹 인터페이스를로드 할 때이 오류가 발생했습니다.

블루투스 : SDP에 연결할 수 없습니다

Google은 절대적 으로이 오류에 도움이되지 않으므로 여기에서 유일한 기회 중 하나입니다.

일부 출력 :

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)

--compat 인수로 Bluetooth를 시작해도 문제가 해결되지 않습니다.

어떡해?

/ 편집 : 통합 원격 서버를 sudo로 시작 하여이 문제를 해결했습니다. 이것이 내가 가진 유일한 옵션입니까?

답변:


20

더 이상 사용되지 않는 명령 줄 인터페이스를 제공하려면 호환 모드에서 Bluetooth 데몬을 실행해야합니다. Bluez5를 실행 중이며 Bluez4 기능이 필요합니다. 이 파일을 편집하면됩니다

/etc/systemd/system/dbus-org.bluez.service 이 줄을 바꾸고

ExecStart=/usr/lib/bluetooth/bluetoothd 이에

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

다음과 같이 블루투스를 다시 시작하십시오.

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

에 대한 권한도 변경해야합니다. /var/run/sdp

sudo chmod 777 /var/run/sdp

마지막으로 통합 원격 서버를 다시 시작하십시오.


도와 주셔서 감사합니다. 허가를 어떻게 영구적으로 유지하겠습니까? 내 PC를 다시 시작할 때 권한이 손실됩니다. 감사합니다
Adrian

충돌해서 죄송합니다. 같은 문제가 발생하여 권한을 영구적으로 유지하는 방법도 알고 싶습니다. 위의 수정은 효과가 있었지만 부팅 할 때마다 자동으로 수정하고 싶습니다.
wjrochester

나는 데비안에이고 나는이 파일 = /이 없습니다
디미트리 Kopriwa

3

다른 해결책 :

/etc/systemd/system/dbus-org.bluez.service를 편집하십시오.

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

/ var / run / sdp의 권한은 재부팅 할 때마다 재설정되는 것으로 보입니다.


나는 데비안에이고 나는이 파일 = /이 없습니다
디미트리 Kopriwa

1

systemd서비스 를 만들어서 작동하게했습니다 .

  1. /etc/systemd/system/urserver.service내용이 다음과 같은 구성 파일을 만듭니다 .

    [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. 파일에 대한 권한을 설정하십시오.

    sudo chmod a+x /etc/systemd/system/urserver.service
    
  3. systemd데몬을 다시로드하십시오 .

    sudo systemctl daemon-reload
    
  4. 실제 서비스를 시작하십시오.

    sudo systemctl start urserver
    

"OS 시작시 서버 자동 시작"을 비활성화해야합니다. systemd서비스를 자동으로 시작 하기 때문에 Unified Remote Settings (웹 인터페이스)에서systemd어떤 이유로 충돌이 발생하면 서비스를 다시 시작합니다.

편집 : Niklas 덕분에 환경 및 PIDFile


위 구성의 개선을 제안하고 싶습니다. urserver-start이제 루트로 실행되고 시스템 루트에 pidfile, .config 디렉토리 및 .remotes 디렉토리를 작성하려고 시도합니다. 다른 사용자로 실행하도록 설정 한 경우 / var / run / sdp에 대한 권한 수정이 실패합니다. 내가 한 것은 아래 urserver-start에 추가 Environment="HOME=/opt/urserver"하고 변경하여 환경을 변경하는 것이 었습니다 . 이제 오류없이 시작되고 디렉토리가 사라지거나 누락됩니다. PIDFile=/opt/urserver/.urserver/urserver.pid[Service]
Niklas

이 답변 --compat은 블루투스 서비스 추가와 함께 여러 번의 재부팅에 대한 지속적인 솔루션이므로 실제로 받아 들여지는 답변이어야합니다.
Niklas

시스템화 된 서비스 파일은 스크립트가 아니기 때문에 실행 권한이 필요하지 않습니다. chmod를 제거하십시오.
Phillip -Zyan K Lee- Stockmann

부팅시 자동 시작을 활성화하기 위해 systemctl enable urserver.service실행할 수 있습니다.
Phillip -Zyan K Lee- Stockmann

0

다른 답변을 결합 하여이 작업을 수행하고 재부팅을 통해 지속되도록했습니다. 다음은 단계별 가이드입니다.

"OS가 시작될 때 자동으로 서버 시작"을 선택 취소하십시오. Unified Remote settings GUI의 확인란을 선택합니다.

urserver를 중지하십시오. 당신은 이것을 할 수 있습니다 :

    user@machine:~$ sudo killall urserver

Leo Pedraza가 다음과 같이 /etc/systemd/system/dbus-org.bluez.service를 편집하고이 줄을 변경하십시오

    ExecStart=/usr/lib/bluetooth/bluetoothd 

이에

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

그런 다음 Esa NikulainenNiklas 처럼 제안한 과 같이 새로운 시스템 서비스를 작성하십시오.

다음 내용으로 /etc/systemd/system/urserver.service라는 구성 파일을 작성하십시오.

    [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 데몬을 다시로드하십시오.

    user@machine:~$ sudo systemctl daemon-reload

다음과 같이 블루투스를 다시 시작하십시오.

    user@machine:~$ sudo systemctl restart bluetooth

새로운 서비스를 시작하십시오 :

    user@machine:~$ sudo systemctl start urserver

시작할 때 새 서비스가 실행되도록 설정하십시오.

    user@machine:~$ sudo systemctl enable urserver

Leo Pedraza , Esa NikulainenNiklas 에게 감사의 말 을 전합니다.


이것은 실제로 질문에 대답하지 않습니다. 다른 질문이 있으면 질문하기를 클릭하여 질문 할 수 있습니다 . 당신은 또한 수 있습니다 현상금을 추가 충분한 일단이 문제에 더 많은 관심을 끌기 위해 명성을 . - 리뷰에서
Phillip -Zyan K Lee- Stockmann

다른 답변을보다 포괄적 인 단계별 가이드로 결합한 실제 답변을 제공하도록 게시물을 변경했습니다.
andyanderso 19

시스템 서비스에는 실행 권한이 필요하지 않습니다. chmod를 제거하는 것이 좋습니다.
Phillip -Zyan K Lee- Stockmann
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.