2017년 11월 11일 토요일

라즈베리파이를 이용한 GUI 개발용 최적 OS (KivyPie)

리눅스 기반 임베디드 OS에서 유려한 GUI 개발 하기 위한 진입 장벽이 제법 있는편인다.
X Window server 기반의 윈도우 메니저 까지 모두 올리다보면 시스템이 너무 무거워지고
부팅시간이 길게 되며 윈도우 메니져의 기본 기능에 따라서 현재 실행중인 키오스크 타입의 앱의 영역을 벗어나서 사용 할 수 있게 될 수 있다.

따라서 Yocto 또는 Buildroot 등을 사용하여 사용하는 기능만을 제외하고 모든 기능을 제거한 경량 리눅스를 별도로 빌드하여야 하는데, 리눅스 커널과 Root file system의 기본 기능들 까지 모두 다시 빌드하여야 하고 드라이버까지 포함하여야 하므로 매우 귀찮고 해당 경험이 충분하지 않다면 개발을 위한 기본 이미지를 생성하는 것 자체도 매우 힘들다.

임베디드 리눅스를 사용 가능한 SBC 보드들이 제법 있지만 이것을 장난감으로 사용하거나
다른사람들이 만들어 놓은 OS를 활용하는 것은 매우 쉽지만 어떠한 어플리케이션 전용 제품으로 활용하기는 생각보다 손이 많이 타게 된다.

QT / Mono (C#) / Java / NodeJs / Python등 리눅스만 올라가기만 해도 사용할 수 있는 language나 플랫폼은 많지만 가장 간단하면서 쉽고 상용 수준에 맞는 GUI를 개발하기 위해
여러가지 플랫폼을 검토해봤고 이 중에서 완전히 무료이면서 라이센스에 조금이라도 문제가 될 여지가 없는 완전한 플랫폼을 찾았는데 Kivy 이다.

기본 개발언어는 Python이지만 OpenGL ES 기반이므로 화려한 UI 구성이나 이펙트를 사용하여도 매우 속도가 빠르고 개발하다 보면 생각보다 가볍다는 생각이 든다.

단순히 동작 속도만 보면 PC에서 돌리는 것과 별 차이가 없다고 느낄정도이니 매우 쓸만한 속도가 나온다.

하지만 이 플랫폼을 제품화 정도로 사용하기 위해서는 기본으로 Python 인터프리터와

기본 라이브러리들, EGL (opengl es) 드라이버가 포팅되어있는 기본 OS가 필요한데
(X window 및 Window manager가 제거된) 앞서 말한것처럼 이 기본 OS 자체를 만드는 과정이 쉽지 않다보니 삽질과 수정 빌드를 무수히 반복하는 삽질이 필요하게 되는데

Kivy를 기본으로 하는 순수한 OS를 누군가가 만들어서 배포하고 있으며, 기본적인 기능은 Raspbian을 그대로 유지하되 X window 와 window manager를 제거하고 파이썬 인터프리터를 추가해 놓은 좋은 OS를 발견하여 여기에 기록을 남긴다.

현재 1.0 버전까지 나와있으며, 특정 커맨드를 입력하여 WiFi 설정 등 기본 설정 등을 진행 할 수 있도록 스크립트가 추가되어 있다.

하기 사이트에서 다운로드 할 수 있으며 용량은 대략 1기가 (압축) 정도 된다.

http://kivypie.mitako.eu/

또한 FAQ가 매우 잘 작성되어 있어서 FAQ만 확인하여 설정만 조금 한다면 거의 상용레벨에 근접하는 플랫폼이 완성된다.

댓글 1개: