यूनिफाइड रिमोट: ब्लूटूथ: एसडीपी से कनेक्ट नहीं हो सका


11

मैंने आज यूनिफाइड रिमोट को इस उम्मीद में स्थापित किया है कि मैं अपने फोन का उपयोग करके अपने पीसी को नियंत्रित करने के लिए अपने ब्लूटूथ एडाप्टर के साथ इसका उपयोग कर सकता हूं। लेकिन जैसा कि मैंने यूनिफाइड रिमोट इंस्टॉल किया और वेब इंटरफेस को लोड किया, मुझे यह त्रुटि मिली:

ब्लूटूथ: एसडीपी से कनेक्ट नहीं हो सका

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 तर्क समस्या को ठीक नहीं करेगा।

मैं क्या कर सकता हूँ?

/ edit: मैंने एकीकृत रिमोट सर्वर को sudo के रूप में शुरू करके इस समस्या को ठीक किया। क्या यह वास्तव में मेरे पास एकमात्र विकल्प है?

जवाबों:


20

वर्धित कमांड लाइन इंटरफेस प्रदान करने के लिए आपको संगतता मोड में ब्लूटूथ डेमॉन को चलाने की आवश्यकता है। आप 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

और अंत में एकीकृत रिमोट सर्वर को फिर से शुरू करें


आपके सहयोग के लिए धन्यवाद। क्या आप मुझे यह भी बता सकते हैं कि आप अनुमति को स्थायी कैसे करेंगे? फिलहाल जब मेरे पीसी को पुनरारंभ करना, अनुमति खो गई है। धन्यवाद
एड्रियन

क्षमा करें, मैं यह भी जानना चाहता हूं कि अनुमति को कैसे स्थायी किया जाए क्योंकि मैं उसी मुद्दे पर चल रहा हूं। उपरोक्त फिक्स ने काम किया लेकिन जब भी मैं बूट करता हूं मैं इसे स्वचालित बनाना चाहता हूं।
wjrochester

मैं डेबियन पर हूं और मेरे पास यह फाइल = /
दिमित्री कोपरिवा

3

एक और समाधान:

संपादित करें /etc/systemd/system/dbus-org.bluez.service:

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

क्योंकि प्रत्येक रीबूट पर / var / run / sdp की अनुमतियां रीसेट हो रही हैं।


मैं डेबियन पर हूं और मेरे पास यह फाइल = /
दिमित्री कोपरिवा

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
    

ओएस शुरू होने पर आपको "स्वचालित रूप से सर्वर शुरू करना" अक्षम करना चाहिए। यूनिफाइड रिमोट सेटिंग्स (वेब ​​इंटरफेस) से, क्योंकि systemdयह सेवा अपने आप शुरू हो जाएगी। systemdयह किसी कारण से दुर्घटनाग्रस्त होने पर भी सेवा को पुनः आरंभ करेगा।

संपादित: पर्यावरण और PIDFile, निकल्स के लिए धन्यवाद


मैं उपरोक्त विन्यास में सुधार का सुझाव देना चाहता हूं। urserver-startअब रूट के रूप में चलता है और सिस्टम रूट में pidfile, .config निर्देशिका और .remotes निर्देशिका बनाने का प्रयास करता है। यदि आप इसे किसी अन्य उपयोगकर्ता के रूप में चलाने के लिए सेट करते हैं, तो / var / run / sdp पर अनुमतियों को संशोधित करने में विफल रहता है। मैंने जो कुछ भी किया वह पर्यावरण को urserver-startजोड़ने Environment="HOME=/opt/urserver"और बदलने के लिए PIDFile=/opt/urserver/.urserver/urserver.pidकिया [Service]। अब यह त्रुटियों और आवारा या लापता निर्देशिकाओं के बिना शुरू होता है।
निकल्स

यह जवाब, --compatब्लूटूथ सेवा के लिए एक साथ जोड़ने के साथ , वास्तव में स्वीकृत उत्तर होना चाहिए क्योंकि यह कई रिबूट में एक निरंतर समाधान है।
निकल्स

सिस्टमड सर्विस फाइलों पर एक्ज़ीक्यूट परमिशन की ज़रूरत नहीं होनी चाहिए, क्योंकि वे कोई स्क्रिप्ट नहीं हैं। कृप्या चामोड को हटा दें।
फिलिप -ज़्यान के ली- स्टॉकमैन

बूट पर स्वत: प्रारंभ सक्षम करने के लिए systemctl enable urserver.serviceचलाया जा सकता है।
फिलिप -ज़्यान के ली- स्टॉकमैन

0

मैंने इस काम को पाने के लिए और रिबूट के माध्यम से इसे बनाए रखने के लिए अन्य उत्तरों को संयोजित किया। यह काम करने के लिए एक चरण-दर-चरण मार्गदर्शिका है:

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

तब जैसा कि Esa Nikulainen और Niklas ने सुझाव दिया और एक नई 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

रिलोड सिस्टम डेमॉन:

    user@machine:~$ sudo systemctl daemon-reload

इस तरह से ब्लूटूथ को पुनरारंभ करें:

    user@machine:~$ sudo systemctl restart bluetooth

नई सेवा शुरू करें:

    user@machine:~$ sudo systemctl start urserver

नई सेवा सक्षम करें ताकि वह स्टार्टअप पर चले:

    user@machine:~$ sudo systemctl enable urserver

आप सभी टुकड़े बाहर लगाने के लिए लियो पेड्राज़ा , एसा निकुलेनेन , और निकलास धन्यवाद !


यह वास्तव में सवाल का जवाब नहीं देता है। यदि आपका कोई अलग प्रश्न है, तो आप प्रश्न पूछें पर क्लिक करके पूछ सकते हैं । पर्याप्त प्रतिष्ठा होने पर आप इस प्रश्न पर अधिक ध्यान आकर्षित करने के लिए एक इनाम भी जोड़ सकते हैं । - रिव्यू से
फिलिप -ज़्यान के ली- स्टॉकमैन

मैंने एक वास्तविक उत्तर प्रदान करने के लिए अपनी पोस्ट को बदल दिया जो अन्य उत्तरों को अधिक व्यापक चरण-दर-चरण मार्गदर्शिका में जोड़ती है।
andyanderso

निष्पादित करने के लिए सिस्टमड सेवा पर अनुमतियों की आवश्यकता नहीं होनी चाहिए। मेरा सुझाव है कि चोद को हटा दें।
फिलिप -ज़्यान के ली- स्टॉकमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.