디지털액자 (2)

먼저 하드웨어 세팅을 해 봅시다. 준비물은 다음과 같습니다.

  1. 남는? TV 또는 모니터
  2. 우분투가 올라가는 업보드/라즈베리파이/미니PC
  3. OS 설치용 USB 1개
  4. 유선 키보드, 마우스
  5. HDMI 케이블 1개

라즈베리파이는 라즈비안도 가능할 수 있습니다. 일단 크로미움이 깔리고 UI가 잘 뜨면 됩니다. 키보드/마우스는 무선이라도 블루투스가 아닌 unifying 수신기가 달린 제품이면 상관 없습니다.

우분투 버전은 Desktop 버전을 설치했습니다. 사용 이유는 일단 UI 가 설치되어 있어 구성의 편리함이 있을 것 같았습니다.

우선 우분투를 설치 안내에 따라 설치합니다. 그리고 kiosk 라는 사용자를 하나 만듭니다. 나중 관리를 위해 메인 계정은 살려두고 kiosk 로 자동 로그온이 되도록 할 겁니다.

우선 패키지를 업데이트 하고 몇개를 새로 설치할 겁니다. unclutter 패키지는 일정 시간이 지나면 마우스를 숨겨주는 패키지입니다.

sudo -s
apt update  && apt upgrade -y && apt install -y chromium-browser unclutter

그리고 자동 로그인을 위해 /etc/gdm3/custom.conf 파일을 편집합니다. gdm3 는 디스플레이 매니저 이름이며 다른 디스플레이 매니저를 쓴다면(lightdm 등) 그 설정 파일을 수정해주면 됩니다.

[daemon]
AutomaticLoginEnable=true # <-- 여기
AutomaticLogin=kiosk # <-- 여기

그리고 kiosk 홈 디렉토리에 chromium 을 실행하는 스크립트를 하나 만듭니다. kiosk.sh

#!/bin/bash

# Run this script in display 0 - the monitor
export DISPLAY=:0

# Hide the mouse from the display
unclutter &

# If Chromium crashes (usually due to rebooting), clear the crash #flag so we don't have the annoying warning bar
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/kiosk/.config/chromium/Default/Preferences

# Run Chromium and open tabs
/usr/bin/chromium-browser --window-size=1920,1080 --kiosk --incognito --window-position=0,0 http://URL &

크로미움에는 키오스크 모드가 있습니다. 맥도날드 같은 곳에 설치된 키오스크 를 의미합니다. 전체 화면으로 실행되며 개발자 모드 비활성화, 알림 억제 등의 효과가 있습니다. 키오스크 모드라고 해서 어떤 동작을 해야 한다 라는게 명세되어 있지는 않고 각 브라우저마다 동작이 다 다릅니다. 일단 지금 상황에서는 전체화면으로 실행되고 주소 바만 없으면 되므로 키오스크 플래그를 줘서 실행합니다.

그리고 방문 기록 등 쓰레기 파일을 남기고 싶지 않으므로 incognito(private mode) 플래그를 줘서 실행합니다. URL 칸에는 URL 을 입력하면 됩니다.

다음은 kiosk.sh 를 자동 실행하게 하는 파일을 작성합니다. 디스플레이 매니저마다 설정이 다를 수 있습니다. home/kiosk/.config/ 아래에 autostart 디렉토리를 만들어 줍니다. 그리고 kiosk.desktop 를 파일을 만들고 편집합니다.

[Desktop Entry]
Type=Application
Name=Kiosk
Exec=/home/kiosk/kiosk.sh
X-GNOME-Autostart-enabled=true
StartupNotify=true
Terminal=false
kiosk 모드 작동 영상(타임랩스)

다음은 디스플레이에 표시될 웹 서버를 작성하도록 하겠습니다.

댓글 남기기