ติดตั้ง Raspberry Pi แบบไม่ใช้จอ เมาส์ และ คีย์บอร์ด
ไม่ได้เล่น Raspberry Pi มานาน มาครั้งนี้ ถือโอกาสบันทึกการเริ่มต้นใช้งานกับ Raspberry Pi ไว้สักหน่อย โดยมีเป้าหมายคือ สามารถใช้งาน Raspberry Pi ได้โดยที่ไม่ต้องต่ออุปกรณ์ภายนอกเช่น จอภาพ คีย์บอร์ด หรือ เมาส์ เข้ากับ Raspberry Pi แต่สามารถ Remote เข้าไปทำงานได้เลยผ่านเครื่องคอมที่มีอยู่ ซึ่งโหมดที่ว่านี้ เรียกว่า Headless ซึ่งจริงๆ Official Site ได้มีเขียนอธิบายวิธีการทำเป็นภาษาอังกฤษไว้เรียบร้อยแล้ว
สำหรับบทความนี้จึงเหมาะสำหรับคนที่กะจะใช้ Raspberry Pi ผ่านเครื่องคอมที่มีอยู่แล้วเท่านั้นนะครับ ถ้าหากต้องการจะใช้แบบต่อจอภาพ ต่อคีย์บอร์ดและเมาส์อยู่แล้วก็ข้ามไปได้เลย
ขอตัดในส่วนที่เป็นการติดตั้ง OS ลงบน SD Card (OS Image to microSD Card) ไปเลยนะครับ น่าจะมีให้อ่านง่ายๆอยู่แล้ว
เมื่อทำการดาวโหลด OS และทำการ Burn ลง microSD เรียบร้อย ต้องถอด microSD ออกก่อนแล้วเสียบกลับเข้าไปที่คอมพิวเตอร์อีกครั้ง หลังจากนั้น จะมี drive “boot” โผล่มา
Raspberry Pi ต่อกับ Network ได้ทันที
สร้างไฟล์ชื่อ wpa_supplicant.conf
แล้วนำไปไว้ใน drive “boot” หลังจากนั้น ใส่รายละเอียดลงในไฟล์ตามรายละเอียดข้างล่างนี้
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid="<wifi SSID>"
psk="<password>"
key_mgmt=WPA-PSK
}
ตรง <wifi SSID>
ก็แทนด้วยชื่อของ Wireless Network ของเรา ส่วน <password>
ก็คือพาสเวิร์ดสำหรับเข้า Wireless Network หละครับ ไฟล์นี้เมื่อตอน Raspberry Pi บูตเข้าระบบ จะถูกก๊อปปี้ไปวางใน Path จริงๆ ของมันที่ /etc/wpa_supplicant
ครับ
Secure Shell เข้าไปได้ทันที
สร้างไฟล์ ssh
ไม่ต้องมีนามสกุลใดๆ ต่อท้าย และก็ไม่ต้องใส่เนื้อหาอะไรลงไฟล์ เป็นไฟล์ว่างๆ เปล่าๆ เรียบร้อยละ เท่านี้ ก็สามารถ Remote เข้าไปที่ Raspberry Pi ได้เลย โดยผ่าน SSH และใช้ Default Username / Password นั่นคือ pi
กับ raspberry
.
โน๊ตทิ้งไว้สำหรับคนที่ตั้งใจจะใช้ ssh-keygen
ในการสร้าง Public key/Private key ทำให้ตอนที่เรา Remote เข้าไปนั้นไม่ต้องใช้พาสเวิร์ด ผมแนะนำให้ระบุเป็น ssh-keygen -t ed25519
แทนที่จะเป็นคีย์แบบ rsa ครับ <อ่านเพิ่ม>
ค้นหา IP Address ของ Raspberry Pi
ส่วนจะ SSH เข้าไปได้ ก็ต้องรู้ IP ก่อน วิธีการรู้ไอพีแอดเดรส เริ่มต้นให้ Raspberry Pi อยู่ในวง Wifi เดียวกัน จากนั้นใช้โปรแกรมเช่น Angry IP Scanner ซึ่งจะทำการ Scan ว่าใน Network เรามีอุปกรณ์อะไรอยู่บ้าง จากนั้น ก็เพียงแค่ดูอุปกรณ์ที่มีชื่อว่า raspberry ก็เป็นอันรู้ IP Address สามารถ SSH เข้าไปได้ละ (รายละเอียดการหา IP ด้วยวิธีการอื่นๆ ไปอ่านจากที่นี่นะ)
หลังจากเข้าไปได้แล้ว ถ้าต้องการ Configuration เพิ่ม สามารถทำได้ด้วยการใช้คำสั่ง sudo raspi-config
สามารถเปิด VNC Server และการติดตั้งค่าเช่น hostname
หรือ Locale และอื่นๆ ได้อีก ถ้าเปิด VNC จากตรงนี้ ก็สามารถใช้ VNC Client connect ต่อได้เลย
แล้วถ้าหากมี Raspberry Pi หลายตัวละ จะทำยังไงดี แก้ไข IP address ให้เป็น Static IP ได้ โดยทำตามรายละเอียดนี้
ติดตั้งอะไรบน Raspberry Pi บ้าง
อันนี้ พอดีผมกำลังจะหัดเรียนเกี่ยวกับงานที่ต้องใช้ CPU เยอะ ซึ่งจะเกิดความร้อน จึงหาเครื่องมือที่มีขนาดไม่ใหญ่มาก ติดตั้งง่ายๆ และสามารถดูสถานะของ Raspberry Pi ได้โดยที่ไม่กินทรัพยากรมากนัก ก็ไปเจอตัวนี้
Linux Dash
Linux-dash สามารถใช้ Monitoring ดูสถานะของ Pi เราได้อย่างคร่าวๆ ตัวของมันเอง แสดงข้อมูลเป็น Realtime ณ ขณะนั้น ไม่ได้มีการเก็บข้อมูลใดๆ ไว้ แสดงได้ทั้งสถานะ CPU / Ram / CPU Temp / Network Transfer rate และข้อมูล Process คร่าวๆ
ผมลองพยายามรันโดยใช้ Python ซึ่งมีติดตั้งอยู่บน Raspbain อยู่แล้ว แต่ไม่สำเร็จ ค่าบางค่าขาดหายไป วิธีที่รันได้สมบูรณ์คือรันผ่าน NodeJS ซึ่งต้องติดตั้ง Node เพิ่ม เมื่อติดตั้งเสร็จแล้วสามารถ Monitoring ผ่าน Web Browser ได้เลย
ตรงนี้ผมต้องการให้มันรันทำงานอัตโนมัติ ก็สร้างเป็น System service ผ่าน systemctl ซึ่งจะรันทำงานอัตโนมัติเมื่อบูตทันที
Dynamic DNS Updater
คิดว่า อยากจะให้สามารถเข้าผ่านชื่อเช่น super-pi.warun.in.th
ได้เลย จริงๆ มันจะมีพวกบริการ DynDNS อยู่ แต่ผมอยากได้เป็น Private IP กับเพราะว่ามีโดเมนอยู่บน Digital Ocean DNS เลยต้องใช้ DNS Updater ผ่าน Digital Ocean แทน
วิธีการก็ผมใช้สคริปต์เป็น Shell script ง่ายๆ ยิง cURL เข้าไปอัพเดทผ่าน DigitalOcean API