
Bluetooth 어댑터와 함께 사용하여 휴대폰으로 PC를 제어할 수 있기를 바라며 오늘 통합 원격을 설치했습니다. 하지만 통합 원격을 설치하고 웹 인터페이스를 로드할 때 다음 오류가 발생했습니다.
블루투스: 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 인수를 사용하여 Bluetoothd를 시작해도 문제가 해결되지 않습니다.
어떡해?
/edit: 통합 원격 서버를 sudo로 시작하여 이 문제를 해결했습니다. 이것이 정말로 내가 가진 유일한 선택인가요?
답변1
더 이상 사용되지 않는 명령줄 인터페이스를 제공하려면 호환 모드에서 블루투스 데몬을 실행해야 합니다. 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
마지막으로 통합 원격 서버를 다시 시작합니다.
답변2
또 다른 해결책:
/etc/systemd/system/dbus-org.bluez.service를 편집합니다.
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
ExecStartPost=/bin/chmod 777 /var/run/sdp
재부팅할 때마다 /var/run/sdp의 권한이 재설정되는 것 같습니다.
답변3
새로운 서비스를 만들어서 작동하게 만들었습니다 systemd
.
/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
파일에 대한 권한을 설정합니다.
sudo chmod a+x /etc/systemd/system/urserver.service
데몬을 다시 로드합니다
systemd
.sudo systemctl daemon-reload
실제 서비스를 시작합니다:
sudo systemctl start urserver
"OS 시작 시 자동으로 서버 시작"을 비활성화해야 합니다. 통합 원격 설정(웹 인터페이스)에서 systemd
서비스가 자동으로 시작되기 때문입니다. systemd
어떤 이유로든 서비스가 중단되는 경우에도 서비스를 다시 시작합니다.
편집됨: Niklas 덕분에 환경 및 PIDFile
답변4
이 작업을 수행하고 재부팅을 통해 지속되도록 하기 위해 다른 답변을 결합했습니다. 다음은 작동을 위한 단계별 가이드입니다.
"OS 시작 시 자동으로 서버 시작"을 선택 취소합니다. 통합 원격 설정 GUI의 상자.
서버를 중지하세요. 다음을 사용하여 이 작업을 수행할 수 있습니다.
user@machine:~$ sudo killall urserver
다음으로레오 페드라자/etc/systemd/system/dbus-org.bluez.service를 편집하고 이 줄을 변경했다고 말했습니다.
ExecStart=/usr/lib/bluetooth/bluetoothd
이에
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
그런 다음 다음과 같이하십시오에사 니쿨라이넨그리고니클라스다음과 같이 새로운 시스템 서비스를 제안하고 생성합니다.
다음 내용으로 /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