13 พฤษภาคม 2558

PI : Remote เข้า Raspberry Pi ด้วย Tightvncserver

11:23 Posted by attaphon singhakiree , 2 comments
ช่วงนี้กำลังหมกมุ่นอยู่กับของเล่นใหม่ครับ  เนื่องจากกระแสคอมพิวเตอร์จิ๋ว Raspberry Pi มาแรงมาก  ผมเลยไปศึกษาเจ้า Pi ไว้  เผื่อจะเอามาใช้ในงานที่ทำอยู่ได้บ้าง


ถ้าใครเพิ่งเคยเล่น RPi (ขอย่อให้เขียนสั้นๆ จาก Raspberry Pi)  มันเป็นคอมพิวเตอร์จิ๋วราคาถูก แต่ความถูกก็มาพร้อมกับปัญหาคือ มันไม่มีคีบอร์ดและไม่มีจอ  กลายเป็นความยากของผู้เริ่มต้นแบบผมที่ไม่มีตังจะซื้อหน้าจอที่ใช้ต่อ HDMI กับตัว RPi   ผมก็เลยกะว่าจะ Remote จากโน้ตบุคที่ใช้อยู่นี่แหละง่ายดี

เขียนไว้เป็น log เผื่อมีคนเริ่มต้นแล้วเจอปัญหาแบบผมครับ  มาเริ่มกันเลย

วิธี Remote เข้า Raspberry Pi ด้วย Tightvncserver

ปกติแล้ว เราสามารถ remote เข้า RPi ด้วยการ SSH เข้าไปก็ได้  แต่ แบบนั้นมันเป็น command line นี่นา  เราอยากเห็นหน้าจอ desktop จริงๆของ RPi มันน่าจะดีกว่านะ

สิ่งที่เราต้องเตรียม
1) เราต้องรู้ IP ของ RPi ตัวที่จะ Remote
2) RPi ตัวนั้นต้องต่อ internet ได้ เพราะเราจะโหลด tight vncserver  มาลงที่ RPi
3) เราต้องเตรียมลงโปรแกรม VNC viewer เพื่อ remote ดู RPi

------------(1)------------


ขั้นแรก เราเข้า RPi ด้วยวิธีการ SSH ไปก่อน (มันคือการ remote เข้าไปโหมดหน้าจอดำๆ ไว้พิมพ์ command line)  เพื่อไปติดตั้งตัว  Tight VNC Server ใน RPi


ใช้คำสั่ง
sudo apt-get install tightvncserver

เจ้า RPi จะเริ่มโหลดแพคเกจโปรแกรมจากอินเตอร์เน็ตมา install ใน RPi ของเรา รอมันจนลงโปรแกรมเสร็จครับ  ต่อมาก็เป็นขั้นตอนการ set Password ครั้งแรกเพื่อ login  ตอน Remote เข้า RPi

ใช้คำสั่ง

tightvncserver

โปรแกรมจะให้เรากำหนด Password และให้ verify Password ซ้ำอีกที  ตอนท้ายมันจะถามว่าให้ดูเป็นโหมด Read-only ไหม   ให้เราตอบ โนววว  : n

 ปล. Password ตั้งได้แค่ 8 ตัวอักษร  จำไว้ให้ดีละ

เอาละ เสร็จจากเจ้า RPi เรามาติดตั้งตัว VNC client ในโน้ตบุคของเรากันเป็นลำดับถัดมา  เราสามารถ Download โปรแกรม Ultra VNC Viewer จากที่นี่  เป็นฟรีแวร์ครับ ติดตั้งไม่ยากครับ กด next อย่างเดียว  และเมื่อติดตั้งเสร็จจะได้โปรแกรมหน้าตาแบบนี้


ขั้นตอนนี้เราก็จะใส่ IP ของ RPi ที่จะ Remote ลงไป ต่อท้ายด้วยตัวย่อ :Port ครับ  เช่น เครื่อง RPi ของผม มี IP เป็น 192.168.25.45 ผมก็จะใส่ข้อมูลในช่อง VNC server เป็น 192.168.25.45:1  ซึ่ง :1 ย่อมาจาก พอร์ต 5901 ของ VNC server  (จริงๆ เราเซ็ตค่าความกว้างของหน้าจอที่เรา remote ได้ด้วย ลองไปตามหาอ่านจาก blog คนอื่นๆดูนะครับ)



ใส่ Password ที่ตั้งไว้ครับ



Remote ได้สำเร็จ !!!



แต่เดี๋ยว!! ทุกครั้งที่เรา Shutdown เจ้า RPi ของเรา ตัวโปรแกรม tightvncserver  จะถูกปิดไป เราจึงต้องพิมพ์คำสั่งเริ่มโปรแกรม tightvncserver ใน RPi ใหม่ก่อนทุกครั้งก่อนจะ Remote เข้า RPi ได้    นั่นเป็นความยุ่งยาก  เราจึงจะมาสร้าง script ให้ tightvncserver  มัน start ตัวเองด้วยทุกครั้งเมื่อเปิดเครื่อง RPi

ขั้นตอนการสร้าง script (ใช้ command line mode นะครับ  ผ่าน SSH ก็ได้ )

1) สร้าง ไฟล์ script  โดยใช้คำสั่งนี้

คำสั่ง
sudo nano /etc/init.d/tightvncserver

ปล. nano เป็นคำสั่งเปิดไฟล์ text editor จากคำสั่งนี้ก็คือเราจะสร้างไฟล์ชื่อ tightvncserver ในโฟลเดอร์ /etc/init.d 

หลังจากนั้นให้ copy code นี้ไปวางบนไฟล์ script

#!/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 เพื่อ save ไฟล์ครับ

และใช้คำสั่งต่อไปนี้เพื่อสั่งให้ script ทำงานเมื่อ boot เจ้า RPi

sudo chmod 755 /etc/init.d/tightvncserver

sudo update-rc.d tightvncserver defaults

เสร็จขั้นตอนนี้  ก็ลอง reboot RPi สักที เพื่อทดสอบ tightvncserver script ว่าใช้งานได้รึเปล่า 

หวังว่าบทความนี้จะเป็นประโยชน์แก่คนที่เพิ่งเริ่มต้น(แบบผม) นะครับ  ใจจริงคืออยากเขียนบทความไว้กันลืมวิธีการทำด้วย :)  ขอให้สนุกกับการเล่น RPi ครับ

2 ความคิดเห็น:

  1. ได้รับความรู้มากคะ ขอบคุณคะ

    ตอบลบ
  2. ไม่ระบุชื่อ22 สิงหาคม 2566 เวลา 08:51

    ไม่สามารถพิมพ์อะไรได้เลยในขั้นตอนตั้ง password เป็นที่อะไรครับ

    ตอบลบ