文前碎碎唸
應該很多人會將 Raspberry pi 用作網頁資訊展示或類似Kiosk機台之類的用途,但要成功的設定,其中的毛真的多到會讓人起笑,所以我就先將我在網路上四處蒐集並實測成功的流程整理一份在此,以防不時之需。
正文開始
【硬體及作業系統】
硬體部分使用的是Raspberry pi B+ 的型號,安裝的作業系統是Raspios Buster Lite (2020-12-02版本,原名Raspbian,Lite版本為不含圖形化桌面,純文字介面的版本)
系統安裝好以後,記得先到 raspi-config 做好基礎設定以及 apt-get 的更新。
【安裝最基礎圖形化環境】
雖說選擇的系統本身不帶圖型化的操作介面,但為了執行Chromium,還是必須要有最基礎的一些依賴程式,執行下面這行來做基本的程式(xserver)安裝
sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox
【安裝Chromium】
原因就不用說了吧,有了他你才能展示你的網頁
sudo apt-get install --no-install-recommends chromium-browser
【設定 xserver 啟動以後要做的事情】
這裡要做的,就是在告訴圖形介面啟動以後,應該駔哪些事情
請打開並編輯[ /etc/xdg/openbox/autostart ] 檔案,將下面的設定內容貼進去
# (PT1) Disable any form of screen saver / screen blanking / power management
xset s off
xset s noblank
xset -dpms
# (PT2) Allow quitting the X server with CTRL-ATL-Backspace
setxkbmap -option terminate:ctrl_alt_bksp
# (PT3) Start Chromium in kiosk mode
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
chromium-browser --disable-infobars --kiosk 'http://your-url-here'
(PT1) 關閉所有電源管理的選項,包含螢幕關閉或是螢幕保護程式等控制
(PT2) 允許使用鍵盤的CTRL-ATL-Backspace組合將圖形介面關閉
(PT3) 設定Chromium,並讓他以Kiosk模式開啟,最後一行--kiosk參數後,'http://your-url-here' 請換成你想展示的網頁網址
【開機自動執行Xserver】
執行下面的指令,編輯 .profile 檔案
sudo nano .profile
把這一句家到檔案最後面
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor
然後按ctrl+x,再按y儲存檔案
到這裡基本的Kiosk設定就完成了,但弔詭的地方來了,這些設定是要在登入使用者的帳密以後才會執行的,但我就是不想在每次開機的時候都輸入一次密碼,而在一開始 raspi-config 設定裡面,雖然有一個auto-login的選項,我就是沒辦法讓她起作用,最後我是用下面的方法來解決的,因為原文的說明較長,因此我只節錄程式修改的部分,有興趣請移駕至原文做參考。
首先開啟 /etc/inittab 設定檔
sudo nano /etc/inittab
在內容中找到 "1:2345:respawn:/sbin/getty 115200 tty1" 這一行 (裡面 115200 的數字可能會不一樣),然後在最前面加上 "#" 把它註解掉
# 1:2345:respawn:/sbin/getty 115200 tty1
在這行底下新增一行,並把下面的指令貼上去
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
這裡要注意一下,裡面 -f 後面的 pi 請換成你想登入的使用者名稱
最後用 sudo reboot 重新啟動以後,應該就可以了。
當初設定的時候真的傷透腦筋,尤其是最後卡在沒辦法自動登入的部分,真的處理到快吐血,不過也有可能是在下資質比較差,最後祝福大家都能順利設定成功~
設定指令部分參考資料
【實際效果】
【同場加映筆記】
如果長時間沒開機,時間跑掉,而且沒辦法自動調回來的話
首先,先打開系統的 "/etc/rc.local"
sudo nano /etc/rc.local
加上這一行:
sudo date -s "$(wget -qSO- --max-redirect=0 www.google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
這樣系統就會在每次開機,自動從 Google 抓新的時間,並設成現在的系統時間。
《全文。終了》