Remote Terpadu: Bluetooth: Tidak dapat terhubung ke SDP

11

Saya menginstal Unified Remote hari ini dengan harapan saya dapat menggunakannya dengan adaptor bluetooth saya untuk mengontrol PC saya menggunakan telepon saya. Tetapi ketika saya menginstal Unified Remote dan memuat antarmuka web, saya mendapatkan kesalahan ini:

Bluetooth: Tidak dapat terhubung ke SDP

Google sama sekali tidak membantu tentang kesalahan ini sehingga ini adalah satu-satunya peluang saya di sini.

beberapa output:

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)

Memulai Bluetoothd dengan argumen --compat tidak akan memperbaiki masalah.

Apa yang dapat saya?

/ edit: Saya memperbaiki masalah ini dengan memulai server remote terpadu sebagai sudo. Apakah ini satu-satunya pilihan yang saya miliki?

Tidak ada
sumber

Jawaban:

20

Anda perlu menjalankan daemon bluetooth dalam mode kompatibilitas untuk menyediakan antarmuka baris perintah yang sudah tidak digunakan lagi. Anda menjalankan Bluez5 dan Anda memerlukan beberapa fungsi Bluez4. Anda dapat melakukan ini dengan mengedit file ini

/etc/systemd/system/dbus-org.bluez.service dan mengubah baris ini

ExecStart=/usr/lib/bluetooth/bluetoothd untuk ini

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

dan kemudian memulai kembali bluetooth seperti ini

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

dan Anda juga harus mengubah izin /var/run/sdp

sudo chmod 777 /var/run/sdp

dan akhirnya restart server jarak jauh terpadu

Leo Pedraza
sumber
Terima kasih untuk bantuannya. Bisakah Anda memberi tahu saya bagaimana Anda membuat izin menjadi permanen? Saat ini ketika me-restart pc saya, izin hilang. Terima kasih
Adrian
Maaf bertemu, saya juga ingin tahu cara membuat izin permanen karena saya mengalami masalah yang sama. Perbaikan di atas berfungsi tetapi saya ingin membuatnya otomatis setiap kali saya boot.
wjrochester
Saya menggunakan debian dan saya tidak memiliki file ini = /
Dimitri Kopriwa
3

Solusi lain:

Edit /etc/systemd/system/dbus-org.bluez.service:

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

Karena izin / var / run / sdp tampaknya diatur ulang pada setiap reboot.

Esa Nikulainen
sumber
Saya menggunakan debian dan saya tidak memiliki file ini = /
Dimitri Kopriwa
1

Saya berhasil membuatnya bekerja dengan menciptakan systemdlayanan baru .

  1. Buat file config bernama /etc/systemd/system/urserver.servicedengan isi:

    [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. Tetapkan izin pada file:

    sudo chmod a+x /etc/systemd/system/urserver.service
    
  3. Muat ulang systemddaemon:

    sudo systemctl daemon-reload
    
  4. Mulai layanan aktual:

    sudo systemctl start urserver
    

Anda harus menonaktifkan "Server mulai secara otomatis ketika OS mulai." dari Unified Remote Settings (antarmuka web), karena systemdakan memulai layanan secara otomatis. systemdjuga akan memulai kembali layanan jika macet karena suatu alasan.

Diedit: Lingkungan dan PIDFile, terima kasih kepada Niklas

Esa Nikulainen
sumber
Saya ingin menyarankan peningkatan pada konfigurasi di atas. urserver-startsekarang berjalan sebagai root dan mencoba membuat direktori pidfile, .config dan .remotes di root sistem. Jika Anda mengaturnya untuk dijalankan sebagai pengguna lain, maka memodifikasi izin pada / var / run / sdp gagal. Apa yang saya lakukan adalah mengubah lingkungan urserver-startdengan menambahkan Environment="HOME=/opt/urserver"dan mengubah di PIDFile=/opt/urserver/.urserver/urserver.pidbawah [Service]. Sekarang ini dimulai tanpa kesalahan dan direktori yang hilang atau hilang.
Niklas
Jawaban ini, bersama dengan menambahkan --compatuntuk layanan bluetooth, harus benar-benar menjadi jawaban yang diterima karena ini adalah solusi yang gigih di beberapa reboot.
Niklas
Jalankan izin tidak diperlukan pada file layanan systemd, karena mereka bukan skrip. Silakan hapus chmod.
Phillip -Zyan K Lee- Stockmann
Untuk mengaktifkan mulai otomatis saat boot systemctl enable urserver.servicedapat dijalankan.
Phillip -Zyan K Lee- Stockmann
0

Saya menggabungkan jawaban lain untuk membuatnya bekerja dan membuatnya bertahan melalui reboot. Berikut ini adalah panduan langkah demi langkah untuk membuatnya berfungsi:

Hapus centang pada "Secara otomatis memulai server ketika OS mulai." kotak di GUI pengaturan jarak jauh.

Hentikan urserver. Anda dapat melakukan ini dengan:

    user@machine:~$ sudo killall urserver

Selanjutnya sebagai Leo Pedraza berkata edit /etc/systemd/system/dbus-org.bluez.service dan ubah baris ini

    ExecStart=/usr/lib/bluetooth/bluetoothd 

untuk ini

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

Kemudian lakukan seperti yang disarankan Esa Nikulainen dan Niklas dan buat layanan systemd baru seperti:

Buat file config bernama /etc/systemd/system/urserver.service dengan konten:

    [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

Muat ulang daemon systemd:

    user@machine:~$ sudo systemctl daemon-reload

Mulai ulang bluetooth seperti ini:

    user@machine:~$ sudo systemctl restart bluetooth

Mulai layanan baru:

    user@machine:~$ sudo systemctl start urserver

Aktifkan layanan baru sehingga berjalan saat startup:

    user@machine:~$ sudo systemctl enable urserver

TERIMA KASIH Leo Pedraza , Esa Nikulainen , dan Niklas untuk mencari tahu semua bagian!

andyanderso
sumber
Ini tidak benar-benar menjawab pertanyaan itu. Jika Anda memiliki pertanyaan yang berbeda, Anda dapat menanyakannya dengan mengeklik Ajukan Pertanyaan . Anda juga dapat menambahkan hadiah untuk menarik lebih banyak perhatian ke pertanyaan ini setelah Anda memiliki reputasi yang cukup . - Dari Ulasan
Phillip -Zyan K Lee- Stockmann
Saya mengubah posting saya untuk memberikan jawaban aktual yang menggabungkan jawaban lain menjadi panduan langkah-demi-langkah yang lebih komprehensif.
andyanderso
Memiliki izin eksekusi tidak diperlukan pada layanan systemd. Saya sarankan menghapus chmod.
Phillip -Zyan K Lee- Stockmann