
Я установил Unified Remote сегодня в надежде, что смогу использовать его с моим адаптером Bluetooth для управления моим ПК с помощью моего телефона. Но когда я установил Unified Remote и загрузил веб-интерфейс, я получил эту ошибку:
Bluetooth: не удалось подключиться к 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)
Запуск Bluetoothd с аргументом --compat не решит проблему.
Что я могу сделать?
/edit: Я исправил эту проблему, запустив унифицированный удаленный сервер как sudo. Это действительно единственный вариант, который у меня есть?
решение1
Вам необходимо запустить демон bluetooth в режиме совместимости, чтобы обеспечить устаревшие интерфейсы командной строки. Вы используете Bluez5 и вам нужны некоторые функции Bluez4. Вы можете сделать это, отредактировав этот файл
/etc/systemd/system/dbus-org.bluez.service
и изменение этой строки
ExecStart=/usr/lib/bluetooth/bluetoothd
к этому
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
и затем перезапустить Bluetooth вот так
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
Вам следует отключить параметр «Автоматически запускать сервер при запуске ОС» в унифицированных удаленных настройках (веб-интерфейс), поскольку systemd
он автоматически запустит службу. systemd
Кроме того, служба будет перезапущена, если по какой-то причине произойдет сбой.
Отредактировано: Environment и PIDFile, спасибо Никласу
решение4
Я объединил другие ответы, чтобы это заработало и сохранялось после перезагрузок. Вот пошаговое руководство, чтобы это заработало:
Снимите флажок «Автоматически запускать сервер при запуске ОС» в графическом интерфейсе настроек Unified Remote.
Остановить urserver. Это можно сделать с помощью:
user@machine:~$ sudo killall urserver
Далее какЛео Педрасасказал отредактировать /etc/systemd/system/dbus-org.bluez.service и изменить эту строку
ExecStart=/usr/lib/bluetooth/bluetoothd
к этому
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
Тогда делай какЭса НикулайнениНикласпредложил и создал новую службу 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
Перезагрузите демон systemd:
user@machine:~$ sudo systemctl daemon-reload
Перезапустите Bluetooth следующим образом:
user@machine:~$ sudo systemctl restart bluetooth
Запустите новую услугу:
user@machine:~$ sudo systemctl start urserver
Включите новую службу, чтобы она запускалась при запуске:
user@machine:~$ sudo systemctl enable urserver
СПАСИБОЛео Педраса,Эса Никулайнен, иНикласза то, что разобрались со всеми деталями!