라즈베리 파이를 키오스크 모드로 돌리는 방법을 알아본다.

라즈비안 다운로드

부팅시 화면 회전

sudo vi /boot/config.txt
add display_rotate=3 ( 이와 같이 작성하면 화면이 시계 방향으로 90도 회전 )

disable_overscan=1
overscan_left=-150
overscan_right=-150

부팅 로그 감추기

sudo vi /boot/cmdline.txt

부팅 이미지 표시하기

sudo apt-get install fbi
vi asplashscreen

아래 do_start 부분에서 이미지 경로를 원하는 이미지로 변경한다.

#! /bin/sh
### BEGIN INIT INFO
# Provides:          asplashscreen
# Required-Start:
# Required-Stop:
# Should-Start:      
# Default-Start:     S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description:       Show custom splashscreen
### END INIT INFO

do_start () {
    /usr/bin/fbi -T 1 -noverbose -a /etc/sample.png    
    exit 0
}

case "$1" in
  start|"")
    do_start
    ;;
  restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
  stop)
    # No-op
    ;;
  status)
    exit 0
    ;;
  *)
    echo "Usage: asplashscreen [start|stop]" >&2
    exit 3
    ;;
esac
:
sudo mv asplashscreen /etc/init.d/asplashscreen
sudo chmod a+x /etc/init.d/asplashscreen
sudo insserv /etc/init.d/asplashscreen

만약 바로 위 코드 실행시 current start runlevel(s) (2 3 4 5) of script `asplashscreen’ overrides LSB defaults (S). 라는 에러가 발생한다면, 다음 명령을 실행한다.

sudo insserv -d /etc/init.d/asplashscreen

라즈비안 GPU 메모리 올리기

sudo raspi-config
Advanced Options > Memory Split > 128

재시동

마지막으로 라즈비안을 재시동한다.

sudo reboot

라즈비안 자동 로그인 하기

systemd 사용 하는 경우

ln -fs /lib/systemd/system/getty@.service  /etc/systemd/system/getty.target.wants/getty@tty1.service
To switch back to automatic login, do:
ln -fs /etc/systemd/system/autologin@.service  /etc/systemd/system/getty.target.wants/getty@tty1.service

inittab 사용 하는 경우

 vi /etc/inittab
 1:2345:respawn:/sbin/getty --autologin {USERNAME} --noclear 38400 tty1

x window 설치하기

리눅스에서 디스플레이창을 표시하고 마우스와 키보드와 상호작용하는 GUI 환경을 위한 프레임웍이 x window 이다. 이를 설치해야만 크로미움이 화면에 표시될 수 있다.

sudo apt-get install matchbox-window-manager unclutter xinit xserver-xorg xserver-xorg-legacy x11-xserver-utils

크로미움 설치하기

wget http://launchpadlibrarian.net/237755896/libgcrypt11_1.5.3-2ubuntu4.3_armhf.deb
wget http://launchpadlibrarian.net/263322754/chromium-codecs-ffmpeg-extra_51.0.2704.79-0ubuntu0.14.04.1.1121_armhf.deb
wget http://launchpadlibrarian.net/263322752/chromium-browser_51.0.2704.79-0ubuntu0.14.04.1.1121_armhf.deb

sudo dpkg -i libgcrypt11_1.5.3-2ubuntu4.3_armhf.deb
sudo dpkg -i chromium-codecs-ffmpeg-extra_51.0.2704.79-0ubuntu0.14.04.1.1121_armhf.deb
sudo dpkg -i chromium-browser_51.0.2704.79-0ubuntu0.14.04.1.1121_armhf.deb

만약 마지막 chromium-browser_51.0.2704.79-0ubuntu0.14.04.1.1121_armhf.deb 설치시 의존성 에러가 발생하면 아래 명령어를 실행한다.

apt-get -f install 실행

크로미움 필요라이브러리 설치

sudo apt install libnss3
sudo apt install -f

한글 설치

sudo apt install ttf-unfonts-core

크로미움 자동 시작 스크립트 만들기

vi /home/pi/startkiosk.sh
#!/bin/bash

# disable DPMS (Energy Star) features.
xset -dpms

# disable screen saver
xset s off

# don't blank the video device
xset s noblank

# disable mouse pointer
unclutter -idle 0 -root &

# run window manager
matchbox-window-manager -use_cursor no -use_titlebar no  &

# run chromuim
#chromium-browser --noerrdialogs --kiosk --incognito https://www.google.co.kr/
if [ $# -ne 0 ];
then
        chromium-browser --noerrdialogs --kiosk --incognito $1
else
        chromium-browser --noerrdialogs --incognito https://www.google.co.kr/
fi
chmod +x /home/pi/startkiosk.sh

실행하기 위해서는 아래 처럼 한다.

vi /home/pi/.bashrc
if [ -z "${SSH_TTY}" ]; then
  xinit ~/startkiosk.sh
fi

재시동

마지막으로 라즈비안을 재시동한다.

sudo reboot