레이블이 PIXEL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 PIXEL인 게시물을 표시합니다. 모든 게시물 표시

2016년 10월 20일 목요일

RPi 벽걸이 캘린더

라즈베리 파이와 구글 캘린더를 이용하여 벽걸이 캘린더를 만드는 프로젝트가 있다. 요즘 수요일마다 참석하는 스터디 모임에서 일차적인 목표로 삼은 과제이다.

얼마 전에 구입한 RPi 3 Model B를 이용하여 이를 구현해보았다. Raspbian의 새로운 데스크톱 환경인 PIXEL에 기본으로 포함되는 Chromium 웹 브라우저를 사용했다.

Chromium에서 구글 캘린더를 열면 모바일 페이지가 뜨는 버그가 있는데, URL을 https://calendar.google.com/calendar/render로 변경함으로써 데스크톱용 캘린더 페이지를 열 수 있다(스터디에서는 버그를 피하기 위해 Chromium 대신 iceweasel(Firefox ESR) 브라우저를 설치하는 방법을 택했다. 따라서 아래의 내용을 참고하되 iceweasel에 맞도록 수정이 필요하다). Chromium에서 키보드의 F11 키를 누르면 전체 화면으로 바뀐다. 캘린더 보기는 "월"을 선택한다.

명령행에서 다음의 명령을 실행하면, Chromium을 전체화면으로 실행시키면서 구글 캘린더를 "월" 보기로 보여준다.
chromium-browser --kiosk "https://calendar.google.com/calendar/render#main_7|month"

이제, RPi를 켤 때마다 캘린더가 뜨도록 할 차례이다. 스터디에서는 ~/.config/lxsession/LXDE/autostart 파일을 이용하려고 했지만, 원격 접속의 문제인지 아니면 PIXEL로 바뀐 것 때문인지는 몰라도 예상대로 잘 되지 않는 것 같았다. 집에 와서 검색을 통해 다음과 같은 방법을 찾았다.
  1. 위의 명령을 실행하는 start-kiosk.sh 파일을 pi 사용자의 홈(~) 디렉터리에 만든다.
  2. 다음과 같은 설정으로 ~/.config/systemd/user/kiosk.service 파일을 만든다.
    [Unit]
    Description=Kiosk
    After=graphical.target
    
    [Service]
    ExecStart=/bin/bash /home/pi/start-kiosk.sh
    Environment=DISPLAY=:0
    Restart=always
    
    [Install]
    WantedBy=default.target
  3. 다음의 명령을 실행한다.
    systemctl --user enable kiosk
    systemctl --user start kiosk
  4. sudo reboot 명령으로 테스트해본다. Chromium이 제대로 종료되지 않은 것에 대한 팝업이 뜨는데, 이것을 숨기려면 start-kiosk.sh 파일의 chromium-brower 명령에 옵션을 추가한다.
    chromium-browser --kiosk --disable-session-crashed-bubble --disable-infobars "https://calendar.google.com/calendar/render#main_7|month"
  5. 화면이 꺼지거나 화면보호기가 뜨지 않도록 하려면 start-kiosk.sh에서 Chromium 실행 전에 다음과 같은 명령을 실행하도록 해준다.
    xset -dpms; xset s off

참고





2016년 10월 13일 목요일

RJ with PIXEL 설치 및 한글 설정

라즈베리 파이 3 모델 B를 구입했다(디바이스마트의 스타터 키트).

노트북에 Raspbian Jessie with PIXEL(2016-09-23) 이미지를 내려받아Win32DiskImager로 마이크로 SD 카드에 기록한 다음, 마이크로 SD 카드를 RPi에 꽂고, 모니터와 키보드・마우스도 연결하고서 RPi의 전원을 넣으니 금세 부팅이 되어 GUI 데스크탑으로 들어온다.

Raspberry Pi Configuration에서 몇 가지 설정을 하고, 리부트. 한 가지 주의할 점은, Localisation 탭에서 WiFi Country를 KR로 변경하면 안 된다.

라즈비안을 업그레이드하고,

$ sudo apt update
$ sudo apt upgrade


펌웨어를  업데이트하고,

$ sudo rpi-update


한글이 제대로 표시되도록 글꼴을 설치하고,

$ sudo apt install ttf-unfonts-core


한글 입력을 위해 fcitx-hangul도 설치했다.

$ sudo apt install fcitx-hangul

리부트.

$ sudo reboot


RPi에 직접 연결한 키보드를 사용할 때 영국식 키보드 배열이 되어서 기호 입력에 문제가 있었다(@와 #이 아닌 따옴표와 파운드 기호가 입력됨). Fcitx 설정에서 Input Method에 "키보드 - 영어(미국)"을 추가하고, Hangul 입력기의 Keyboard layout을 "한국어 - 한국어(101/104키 호환)"으로 설정하여 해결했다.

참고