Raspberry Pi w trybie kiosku
W ostatnim artykule dowiedzieliśmy się w jaki sposób podłączyć tani wyświetlacz do Raspberry Pi. Dziś pokażę Wam, jak skonfigurować malinkę, żeby pracowała w trybie kiosku – bez pulpitu, możliwości zwijania okienek i konfiguracji. Po prostu wyświetlamy jedną aplikację z której użytkownik ma prawo korzystać i koniec :)
W poradniku będę korzystał z obrazu systemu w wersji lite. Jeżeli chcecie wyświetlać obraz kiosku na ekranie ILI9341 to krok po kroku wykonajcie czynności z poprzedniego artykułu z pominięciem instalacji środowiska graficznego. Jeżeli natomiast Wasz kiosk ma być wyświetlany przez monitor podłączony do złącza HDMI możecie wystartować z czystym systemem.
Instalacja serwera X
Korzystamy z systemu w najbardziej okrojonej wersji, więc wszystko ponad podstawowe funkcje musimy doinstalować we własnym zakresie. Z tego też powodu musimy zainstalować serwer X, który będzie wyświetlał obraz na wybranym przez nas ekranie.
sudo apt-get update sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit
Program który chcemy wyświetlać
Będziemy musieli zainstalwoać w systemie program, który ma być naszym kioskiem. Może to być dowolny program. W tym artykule pokażę jak uruchomić przeglądarkę internetową, która będzie wyświetlała przygotowaną przez nas stronę www.
Zainstalujmy więc w systemie chromium:
sudo apt-get install --no-install-recommends chromium-browser
Menedżer okien
Dobrym i prostym w konfiguracji menedżerem okien będzie w naszym przypadku Openbox.
sudo apt-get install --no-install-recommends openbox
Konfiguracja
Kiedy mamy już poinstalowane wszystkie wymagane komponenty musimy powiedzieć Openboxowi co ma zrobić po uruchomieniu. W tym celu edytujemy plik autostartu:
sudo nano /etc/xdg/openbox/autostart
i wpisujemy do niego poniższą treść:
# Disable any form of screen saver / screen blanking / power management xset s off xset s noblank xset -dpms # Allow quitting the X server with CTRL-ATL-Backspace setxkbmap -option terminate:ctrl_alt_bksp # 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'
pamiętając, aby w ostatniej linijce ustawić adres WWW na przygotowaną przez nas stronę. Może to być strona z internetu lub np. lokalna. O tym jak postawić serwer www na malince możemy przeczytać tutaj.
Pierwsze trzy komendy zapewnią nas, że system nie włączy wygaszacza ekranu po pewnym czasie nieaktywności. Kolejna komenda zapewni opcję wyłączenia serwera X kombinacją klawiszy Ctrl + Alt + Backspace, natomiast ostatnie 3 to uruchomienie przeglądarki Chrome tak, żeby nie wyświetlała monitów o tym, że ostatnio została zamknięta niepoprawnie.
Wystartowanie serwera X podczas startu systemu
Pierwszym krokiem jest wystartownaie serwera X po zalogowaniu. W tym celu wpisujemy
sudo nano ~/.bash_profile
i uzupełniamy ten plik o odpowiednią treść w zależności od tego na którym monitorze chcemy wyświetlić obraz:
HDMI
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor
ILI9341
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && FRAMEBUFFER=/dev/fb1 startx -- -nocursor
Powyższe ustawienia wyświetlą nam interfejs bez kursora myszki. Jeżeli chcemy go mieć wystarczy usunąć z nich część -- -nocursor
Następnie musimy dokonać zmiany w konfiguracji RPi tak, żeby bootowało się ono do konsoli z automatycznym logowaniem.
sudo raspi-config
Wybieramy Boot Options > Desktop / CLI > Console Autologin
Następnie zapisujemy ustawienia i rebootujemy system.
Pozostałe kroki
Do zbudowania pełnoprawnego kiosku pozostało nam jeszcze napisanie własnej aplikacji (np. w Javie), która będzie bardziej zaawansowana niż strona WWW oraz dodanie obsługi ekranu dotykowego.
Źródło
Artykuł oparty o wpis na blogu die-antwort.eu z dnia 6 grudnia 2017.
Cześć.
Odwzorowałem Twój projekt. Wszystko działa już z dwa miesiące ale strona startowa którą sobie wyświetla się zmieniła a przeglądarka nie może jej odświeżyć. Jak wyczyścić jej kesza ?
A klasyczne Ctrl+F5 nie działa?