Birleşik Uzaktan Kumanda: Bluetooth: SDP'ye bağlanılamadı


12

Bugün telefonumu kullanarak bilgisayarımı kontrol etmek için bluetooth adaptörümle kullanabileceğimi umuyorum. Ancak Unified Remote'u yükleyip web arayüzünü yüklediğimde, şu hatayı aldım:

Bluetooth: SDP'ye bağlanılamadı

Google'ın bu hatayla ilgili hiçbir yararlılığı yoktur, bu yüzden buradaki tek şansım budur.

bazı çıktılar:

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'yi --compat argümanıyla başlatmak sorunu çözmez.

Ne yapabilirim?

/ edit: Birleşik uzak sunucuyu sudo olarak başlatarak bu sorunu giderdim. Gerçekten sahip olduğum tek seçenek bu mu?

Yanıtlar:


21

Kullanımdan kaldırılmış komut satırı arabirimleri sağlamak için bluetooth arka plan programını uyumluluk modunda çalıştırmanız gerekir. Bluez5 kullanıyorsunuz ve bazı Bluez4 işlevlerine ihtiyacınız var. Bu dosyayı düzenleyerek bunu yapabilirsiniz

/etc/systemd/system/dbus-org.bluez.service ve bu çizgiyi değiştirmek

ExecStart=/usr/lib/bluetooth/bluetoothd buna

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

ve bunun gibi bluetooth'u yeniden başlatma

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

ve şu tarihte de izinleri değiştirmeniz gerekecek: /var/run/sdp

sudo chmod 777 /var/run/sdp

ve son olarak birleşik uzak sunucuyu yeniden başlat


Yardımın için teşekkürler. İzni nasıl kalıcı hale getireceğinizi de bana bildirir misiniz? Şu anda benim pc yeniden başlatıldığında, izin kaybedilir. Teşekkürler
Adrian

Patladığım için üzgünüm, aynı sorunu yaşadığım için iznin nasıl kalıcı hale getirileceğini de bilmek istiyorum. Yukarıdaki düzeltme işe yaradı, ancak önyükleme yaptığımda otomatik hale getirmek istiyorum.
wjrochester

Ben
debian'ım

3

Başka bir çözüm:

/Etc/systemd/system/dbus-org.bluez.service adresini düzenleyin:

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

Çünkü / var / run / sdp izinleri her yeniden başlatmada sıfırlanmış gibi görünüyor.


Ben
debian'ım

1

Yeni bir systemdhizmet oluşturarak çalışmayı başardım .

  1. /etc/systemd/system/urserver.serviceİçeriği ile adlandırılmış bir yapılandırma dosyası oluşturun :

    [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. Dosyadaki izinleri ayarlayın:

    sudo chmod a+x /etc/systemd/system/urserver.service
    
  3. systemdDaemon'u tekrar yükle :

    sudo systemctl daemon-reload
    
  4. Asıl hizmeti başlatın:

    sudo systemctl start urserver
    

"İşletim sistemi başlatıldığında sunucuyu otomatik olarak başlat" seçeneğini devre dışı bırakmalısınız. Birleştirilmiş Uzak Ayarlar'dan (web arayüzü), çünkü systemdhizmeti otomatik olarak başlatacaktır. systemdherhangi bir nedenle çökmesi durumunda da hizmeti yeniden başlatır.

Düzenlendi: Niklas sayesinde Çevre ve PIDFile


Yukarıdaki yapılandırmada bir iyileştirme önermek istiyorum. urserver-startartık kök olarak çalışır ve sistem kökünde pidfile, .config dizini ve .remotes dizinini oluşturmaya çalışır. Başka bir kullanıcı olarak çalışacak şekilde ayarlarsanız / var / run / sdp üzerindeki izinleri değiştirmek başarısız olur. Yaptığım şey, urserver-startekleyerek Environment="HOME=/opt/urserver"ve PIDFile=/opt/urserver/.urserver/urserver.pidaltına değiştirerek çevreyi değiştirmekti [Service]. Şimdi hata ve başıboş veya eksik dizinler olmadan başlar.
Niklas

Bu cevap, --compatbluetooth hizmeti için ekleme ile birlikte, çoklu yeniden başlatmalarda kalıcı bir çözüm olduğu için gerçekten kabul edilen cevap olmalıdır.
Niklas

Komut dosyası olmadığı için sistemd hizmet dosyalarında yürütme izinlerine gerek yoktur. Lütfen chmod'u kaldırın.
Phillip -Zyan K Lee- Stockmann

Otomatik başlatmayı etkinleştirmek için önyükleme systemctl enable urserver.serviceyapılabilir.
Phillip -Zyan K Lee- Stockmann

0

Bunu çalıştırmak ve yeniden başlatmalarla devam ettirmek için diğer cevapları birleştirdim. İşte çalışmasını sağlamak için adım adım bir kılavuz:

"İşletim sistemi başlatıldığında sunucuyu otomatik olarak başlat" seçeneğinin işaretini kaldırın. Birleşik Uzak ayarlar GUI'sindeki onay kutusunu işaretleyin.

Urserver'ı durdurun. Bunu aşağıdakilerle yapabilirsiniz:

    user@machine:~$ sudo killall urserver

Daha sonra Leo Pedraza'nın dediği gibi /etc/systemd/system/dbus-org.bluez.service'yi düzenleyin ve bu satırı değiştirin

    ExecStart=/usr/lib/bluetooth/bluetoothd 

buna

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

Sonra yapın Esa Nikulainen ve Niklas önerdi ve bu yüzden gibi yeni bir systemd hizmet oluşturmak:

İçeriği içeren /etc/systemd/system/urserver.service adlı bir yapılandırma dosyası oluşturun:

    [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 arka planını yeniden yükle:

    user@machine:~$ sudo systemctl daemon-reload

Bluetooth'u şu şekilde yeniden başlatın:

    user@machine:~$ sudo systemctl restart bluetooth

Yeni hizmeti başlatın:

    user@machine:~$ sudo systemctl start urserver

Yeni hizmeti başlangıçta çalışması için etkinleştirin:

    user@machine:~$ sudo systemctl enable urserver

Teşekkürler Leo Pedraza , Esa Nikulainen ve Niklas tüm parçaları buldukları için!


Bu soruya gerçekten cevap vermiyor. Farklı bir sorunuz varsa Soru Sor'u tıklayarak bunu sorabilirsiniz . Ayrıca , yeterli itibara sahip olduğunuzda bu soruya daha fazla dikkat çekmek için bir ödül ekleyebilirsiniz . - Yorumdan
Phillip -Zyan K Lee- Stockmann

Diğer yanıtları daha kapsamlı bir adım adım kılavuzda birleştiren gerçek bir yanıt sağlamak için yazımı değiştirdim.
andyanderso

Bir systemd hizmetinde yürütme izinlerine sahip olmak gerekmez. Chmod'u kaldırmanızı öneririm.
Phillip -Zyan K Lee- Stockmann
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.