ऑटो रास्पबेरी पाई 2 पर TightVncServer शुरू


11

मेरे पास एक रास्पबेरी पाई 2 है और Raspberrypi.org पर पोस्ट का अनुसरण कर रहा है, लेकिन टाइट वीएनसी सर्वर रिबूट पर शुरू नहीं होता है। कोई त्रुटि प्रतीत नहीं होती है।

पाई रिबूट पर शुरू करने के लिए मुझे TightVncServer कैसे मिलेगा?


अभी तक एक उत्तर पोस्ट नहीं कर सकता, लेकिन एक सरल विधि है जो मुझे अपने पीआई 3 बी पर काम करने के लिए मिली थी, यहाँ पर विज्ञापन दिया गया है: learn.adafruit.com/…
Steven Evers

जवाबों:


10

ऐसा करने के लिए आप थोड़ी सी लिनक्स चतुराई का उपयोग कर सकते हैं।

हमारा पहला कार्य फ़ाइल /etc/rc.local को संपादित करना होगा। इस फ़ाइल में कमांड हो सकते हैं जो स्टार्ट-अप पर चलते हैं। यदि हम फ़ाइल को देखते हैं तो हम देख सकते हैं कि वहाँ पहले से ही कुछ प्रविष्टियाँ हैं;

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

उनके सामने हैश मार्क (#) के साथ लाइनों का पहला सेट टिप्पणी है। ये केवल यह समझाने के लिए हैं कि फ़ाइल पढ़ने वाले किसी व्यक्ति के लिए क्या हो रहा है।

नीचे की ओर कोड की पंक्तियों का स्पष्ट रूप से कंप्यूटर के आईपी पते के साथ कुछ करना है। वास्तव में वे एक छोटी स्क्रिप्ट है जो यह देखने के लिए जाँच करती है कि रास्पबेरी पाई का आईपी पता है और यदि ऐसा है, तो यह उसे प्रिंट करता है। यदि आप याद करते हैं कि आप स्क्रीन पर छपे हुए IP पते को देख सकते हैं, तो Pi बूट अप करता है

My IP address is 10.1.1.8

Raspbian GNU/Linux 7 raspberrypi tty1

raspberrypi login:

Rc.local में स्क्रिप्ट का यह टुकड़ा आईपी एड्रेस को प्रिंट करने के लिए जिम्मेदार कोड है!

हम निम्नलिखित कमांड को rc.local में जोड़ देंगे;

su - pi -c '/usr/bin/tightvncserver :1'

यह कमांड यूजर को su - pi के साथ 'pi' यूजर होने के लिए स्विच करता है। Su 'स्विच यूजर' के लिए खड़ा है डैश (-) यह सुनिश्चित करता है कि उपयोगकर्ता पीआई का वातावरण (उनकी सभी सेटिंग्स की तरह) सही तरीके से उपयोग किया जाता है और पीआई उपयोगकर्ता है।

-C विकल्प घोषित करता है कि लाइन का अगला टुकड़ा कमांड है जो चलाया जाएगा और उद्धरण चिह्नों ('/ usr / bin / tightvncserver: 1') के अंदर का भाग कमांड है।

इस मामले में कमांड फ़ाइल को कसकर निष्पादित करता है जो / usr / bin डायरेक्टरी में है और यह निर्दिष्ट करता है कि हमें डेस्कटॉप सत्र 1 (: 1) शुरू करना चाहिए।

ऐसा करने के लिए हम निम्नलिखित कमांड के साथ r.local फाइल को संपादित करेंगे;

sudo nano /etc/rc.local

हमारी लाइनों में जोड़ें ताकि फ़ाइल निम्नलिखित की तरह दिखे;

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# Start tightvncserver
su - pi -c '/usr/bin/tightvncserver :1'

exit 0

(हम भविष्य के पाठकों को यह बताने के लिए फ़ाइल में अपनी टिप्पणी भी जोड़ सकते हैं कि क्या हो रहा है)

यही होना चाहिए। अब आपको यह परीक्षण करने में सक्षम होना चाहिए कि सेवा तब शुरू होती है जब पाई बूट रिबूट करके होती है।

अगर ऊपर से थोड़ी लंबी आवाज़ आती है, तो बेझिझक यहाँ एक और पूर्ण तर्क की जाँच करें


यह मेरे लिए काम नहीं करता है।
गिरगिट

इसका उत्तर रास्पियन के 'व्हीजी' संस्करण के लिए लिखा गया था। बाद के संस्करण ('जेसी' और (मैं मानता हूं) 'खिंचाव') की एक अलग डिफ़ॉल्ट विधि है। वैकल्पिक दृष्टिकोण के लिए यहां देखें ।
d3noob

5

यह सुनिश्चित करने से पहले कि आपका Pi ईथरनेट \ wifi के माध्यम से इंटरनेट \ नेटवर्क से जुड़ा हुआ है।

टर्मिनल खोलें और निम्नलिखित कमांड दर्ज करें:

दूरस्थ कनेक्शन के लिए Pi IP पता प्राप्त करें (बाद में उपयोग के लिए)

hostname -I

TightVncServer स्थापित करें

sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver

पहली बार इसे चलाने पर आपको पासवर्ड दर्ज करना होगा और इसे सत्यापित करना होगा। केवल एक पासवर्ड दर्ज करने की आवश्यकता नहीं है।

जब पाई बूट हो जाए तो ऑटो स्टार्ट के लिए एक सेवा के रूप में कॉन्फ़िगर करें:

स्वत: प्रारंभ TNC VNC सर्वर sudo नैनो /etc/init.d/tightvncserver के लिए एक फ़ाइल बनाने के लिए नैनो (टेक्स्ट एडिटर) खोलें

निम्नलिखित में टाइप करें (या कॉपी और पेस्ट करें ):

#!/bin/sh
# /etc/init.d/tightvncserver
# Set the VNCUSER variable to the name of the user to start tightvncserver under
VNCUSER='pi'
case "$1" in
  start)
    su $VNCUSER -c '/usr/bin/tightvncserver :1'
    echo "Starting TightVNC server for $VNCUSER"
    ;;
  stop)
    pkill Xtightvnc
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

Ctrl + x दबाएँ, फिर उसी फ़ाइल नाम को रखने के लिए सेव और एंटर करने के लिए y करें।

निष्पादन योग्य और सक्रिय बनाने के लिए इस फ़ाइल की अनुमतियों को संपादित करें:

sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults

सुडोल रिबूट का परीक्षण करने के लिए रिबूट

अपने OS के लिए vnc क्लाइंट स्थापित करें और पाई रिबूट होने के बाद कनेक्ट करने का प्रयास करें!

विंडोज के लिए: उदाहरण के लिए TightVNC क्लाइंट । सर्वर स्थापित करने की आवश्यकता नहीं है।

इस पोस्ट के ऊपर से IP पते का उपयोग करके VNC क्लाइंट कनेक्ट प्रारंभ करें । आपके लिए आईपी पता बदलें। कई इंटरनेट पोस्ट में पोर्ट संख्या केवल 2 अंकों के रूप में सूचीबद्ध है। यह छोटा हाथ है और यदि आप उपरोक्त स्क्रिप्ट का उपयोग कर रहे हैं तो आपका pi पोर्ट 1 पर चल रहा है तो आपको 590 1 का उपयोग करना चाहिए । यदि 2, तो 590 2 आदि।

192.168.1.123:5901

आपका समाधान पूरी तरह से मेरे लिए काम कर रहा है, सिवाय इसके कि मुझे पूरी स्क्रीन नहीं मिल रही है। मुझे पूर्ण स्क्रीन कैसे मिल सकती है? ( vncserver -geometry 1366x768 -depth 24 -dpi 96मैं पूर्ण स्क्रीन प्राप्त करने से पहले उस कमांड का उपयोग करता था। क्या आपके कोड में लाइन जोड़ने का कोई तरीका है?)
opu

@opu is वह रेखा su $VNCUSER -c '/usr/bin/tightvncserver :1'है जो आप जिस कमांड का उल्लेख कर रहे हैं उसे चलाता है। बस उस पंक्ति के अंत में विकल्पों को जोड़ें, जिसके परिणामस्वरूप कुछ होगाsu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96
ट्रेंट

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