[RaspberryPi] ทำ Kiosk โดยใช้ Raspberry Pi + Chromium browser
ก่อนอื่นเราต้องลง Image Rasbian OS Desktop ก่อน โดยที่ผมจะใช้ตัว Raspberry Pi Imager ในการสร้าง Kiosk นะครับ ซึ่งในตัว Image นี้ได้ติดตั้ง Chromium browser กับ LXDE อยู่แล้วนะครับ
ตั้งค่า Raspberry Pi OS ให้เปิด browser อัตโนมัติ
- ก่อนอื่นเข้าไปตั้งค่า LXDE โดยที่เราจะไปแก้ script ตอนที่มัน boot ระบบขึ้นมาตอนแรก
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
- เพิ่ม command ข้างล่างนี้ไปเลย
@xscreensaver -no-splash :
@xset s off : ปิด screensaver
@xset -dpms : ปิดระบบ power management
@xset s noblank : ปิด screen blanking
@chromium-browser –kiosk –disable-restore-session-state <url> : เปิด chormium ใน kiosk mode
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@xset s off
@xset -dpms
@xset s noblank
@chromium-browser --kiosk --disable-restore-session-state http://localhost:3000
- จากนั้นก็ทำการ save config file
ตั้งค่า Raspi-config สำหรับ Boot ผ่าน Console
- อันดับแรกให้เข้ามาที่ Raspi-config ก่อนผ่าน terminal เพื่อที่จะตั้งค่า network connection ตอนที่ boot ครั้งแรกโดยที่จะให้มันรอรับ IP Address ก่อน
sudo raspbi-config
- เลือกเมนู System Options
- เลือก Network at Boot
- จากนั้นเลือก S5 Boot/Auto Login แล้วเลือก B2 Console Autologin เพื่อให้ตอนที่เรา boot ระบบขึ้นมามันจะได้ skip หน้าที่ให้กรอก username/password
- แล้วก็ Back ออกมาโดยกดปุ่ม Tab ไล่ลงมาเรื่อยๆ แล้วเลือก Finish ระบบจะ restart เครื่องใหม่
ตั้งค่า Bash profile ให้รัน X Server ทุกครั้งหลังจาก Login
- สร้างไฟล์ bash_profile มาก่อนโดยจะเก็บไว้ที่ home
sudo nano ~/.bash_profile
- เพิ่ม script สำหรับรัน X server โดยเพิ่ม flag nocursor เข้าไปเพื่อให้มันซ่อน mouse cursor
startx -- -nocursor
- บันทึก bash_profile โดยกด Ctrl-o => Enter => Ctrl-X.
- ทดสอบรัน bash_profile จากนั้นก็ระบบก็จะ login เข้าสู่หน้า Desktop mode
source ~/.bash_profile
- reboot ระบบอีกครั้งแล้วรอดูผลลัพท์ได้เลยครับ
sudo reboot
วิธีออกไปหน้า console เราจะกด Ctrl + Alt + F1/F2 เพื่อ Switch mode นะครับ
[Optional] การหมุนหน้าจอใน Desktop mode
- แก้ไขไฟล์ /boot/config.txt
sudo nano /boot/config.txt
0 is the normal configuration. 1 is 90 degrees. 2 is 180 degress. 3 is 270 degrees.
If you are using the Official Raspberry Pi touch screen you can use “lcd_rotate” rather than “display_rotate”.
Save the file by using CTRL-X, Y then ENTER.
- Comment “dtoverlay=vc4-fkms-v3d” ออกไว้ด้วยนะครับเพราะมันจะต้องกลับไปใช้ Legacy mode ก่อน แล้วเพิ่ม display_rotate เข้าไปได้เลย
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
#dtoverlay=vc4-fkms-v3d
max_framebuffers=1
[all]
#dtoverlay=vc4-fkms-v3d
gpu_mem=256
display_rotate=3
- เสร็จแล้วก็ Reboot กันอีกรอบก็จะได้หน้าตาแบบนี้มา (อันนี้เป็นตัวอย่างนะครับ ผมรัน web server ไว้ให้มัน generate QRCode ออกมา)
เสร็จเรียบร้อย หากมีข้อสงสัยหรืออยากแนะนำมีอะไรเจ๋งๆ สามารถติดต่อมาที่ Facebook หรือ Linkedin ได้เลยนะครับ สำหรับวันนี้ขอบคุณและสวัสดีครับ 😉