한국어
오픈소스포럼
 이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.

webOS소개 및 Raspberry Pi 3 에서 실행

makersweb 2019.10.13 15:57 조회 수 : 3864

이글은 webOS의 간단한 소개와 webOS를 직접 빌드하여 Raspberry Pi 3 에서 실행해보는 내용을 다룬다.

 

webOS는 LG에서 개발하고 관리하는 휴대장치, TV를 위한 플랫폼이다. 이미 자사 다수의 스마트TV에 탑재되어 있다고 한다. LG는 webOS의 적극적인 오픈소스화를위해 Open Source Edition(이하 OSE)으로 공개하였고 현재(2019년 9월) webOS 1.10.1까지 릴리즈되었다. (LG의 큰그림인가... ) 어쨋든 오픈소스 프로젝트로써 기여 할 수 있는 방법, 절차에 대해서 홈페이지에 설명을 해놓았다. webOS의 공식 사이트는 다음과 같다. https://www.webosose.org/

 

webOS는 리눅스 커널 베이스에 응용프로그램 프레임워크로 Qt를, web App 프레임워크로 Enat를 사용한다. 또한 yocto프로젝트를 활용하여 배포판을 만들 수 있도록 관련 레이어를 제공한다. Open Source Edition라이센스는 Apache License 2.0에 따라 사용할 수 있다. Qt가 올라가져 있기 때문에 기존 Qt (QML)개발자는 쉽게 webOS용 응용프로그램을 개발 할 수 있을 것이라 생각한다.

 

webos-ose-architecture-20190409.png

▲webOS OSE Architecture Overview (출처 : wesOS 공식 사이트)

 

창과 입력을 관리하는 Luna Surface Manager(LSM)은 Wayland 프로토콜을 기반으로하는 Qt Wayland컴포지터를 사용하고 있다. 

 

LSM_image3.png

▲Wayland-related components (출처 : wesOS 공식 사이트)

 

다음 웹페이지에서 조금 더 디테일한 내용을 확인 할 수 있다.

https://www.webosose.org/docs/guides/core-topics/graphics-input/graphics-input-overview/

 

공식 사이트에서 webOS 개발자를 위한 webOS OSE의 SDK등을 제공한다. 또한 에뮬레이터나 라즈베리파이3 Model B 에서 개발, 사용해볼 수 있도록 개발환경도 제공한다.

 

라즈베리파이 3에서 webOS를 구동해보려면 먼저 리눅스기반의 빌드 시스템이 있어야한다. 

 

시스템 요구사항

 

다음은 빌드시스템에 대한 공식 권장 사양이다. (2019년 9월기준)

 

OS:

Ubuntu 16.04 LTS (Xenial Xerus) 64-bit

Ubuntu 18.04 LTS (Bionic Beaver) 64-bit (권장)

 

H/W:

CPU

최소: Intel Core i5 dual-core with 4 스레드

권장: Intel Core i7 quad-core with 8 스레드 또는 그 이상

 

RAM

최소: 8 GB

권장: 16 GB 또는 그 이상

 

Storage

최소: HDD with 100 GB 의 여유공간

권장: SSD with 100 GB 이상의 여유공간

 

개발 (호스트)시스템은 다음을 지원한다.

Linux: Ubuntu 14.04 LTS or higher

Windows: Windows 7 or higher

macOS: Mac OS X 10.6 Snow Leopard or higher

 

webOS 빌드

 

저장소 복제

$ git clone https://github.com/webosose/build-webos.git
$ cd build-webos

 

필요한 도구 및 라이브러리 설치

$ sudo scripts/prerequisites.sh

 

빌드구성

Raspberry Pi 3 또는 에뮬레이터중 선택해서 빌드할 수 있다.

 

Raspberry Pi 3 (아래 명령에서 "number of physical CPU cores는 자신의 빌드 시스템 환경에 맞게 입력한다.)

$ ./mcf -p <number of physical CPU cores / 2> -b <number of physical CPU cores / 2> raspberrypi3

에뮬레이터

$ ./mcf -p <number of physical CPU cores / 2> -b <number of physical CPU cores / 2> qemux86

 

이미지는 다음과 같이 두가지 형태로 만들 수 있다.

webos-image : 개발 도구가 없는 이미지

webos-image-devel : 디버거등 개발 도구가 포함된 이미지

 

배포용 이미지

$ source oe-init-build-env
$ bitbake webos-image

개발용 이미지

$ source oe-init-build-env
$ bitbake webos-image-devel

 

빌드가 완료되면 다음의 위치에서 이미지를 확인 할 수 있다.

BUILD/deploy/images/raspberrypi3/

 

이미지쓰기

 

윈도우에서 하려면 Win32DiskImager 유틸리티를 사용하면된다. 리눅스에서는 다음의 방법으로 sd카드에 쓸 수 있다.

 

이미지 디렉토리로 이동

 

microSD card 장치 이름 확인

$ sudo fdisk -l

 

이미지 쓰기

$ sudo umount /dev/
$ sudo dd bs=4M if=./<**.rpi-sdimg> of=/dev/
$ sudo umount /dev/

 

예:

$ sudo dd bs=4M if=./webos-image-devel-raspberrypi3.rootfs.rpi-sdimg of=/dev/sdb
645+0 records in
645+0 records out
2705326080 bytes (2.7 GB, 2.5 GiB) copied, 156.256 s, 17.3 MB/s
$ sync

 

Screenshot from 2019-10-12 04-16-37.png

▲빌드중.. Qt5 레이어를 사용한다. (스레드가 두개라 아주 오래걸림..)

 

완료후 sd카드를 라즈베리파이3에 넣고 부팅하였다. 몇가지 기본 응용프로그램이 있다.

resize_screenshot-temp.png

 

브라우저로 웹사이트 접속도 잘된다. 가상키보드는 영어만 가능한듯..  

resize_screenshot-browser.png

 

유튜브를 실행하니... 하지만 되긴 된다. 부드러운 재생은 라즈베리파이3에서 무리인듯하다.

resize_screenshot-youtube.png

 

시스템정보

resize_screenshot-systeminfo.png

 

추후 간단한 Qt 예제 프로그램을 실행해 보려한다. 그리고 webOS OSE의 다음 공식 릴리스에서는 Raspberry Pi 4를 지원할 계획이라고한다.

번호 제목 글쓴이 날짜 조회 수
35 Pluma(C++ Plug-in Management Framework) 튜토리얼 file makersweb 2019.12.07 13964
34 GDBus 튜토리얼(GDBus tutorial) file makersweb 2019.06.30 10287
33 Dear ImGui, 경량의 C++ 용 GUI 및 Widget 라이브러리 file makersweb 2020.11.28 8994
32 ZeroMQ의 기본 메세지 패턴들 file makersweb 2020.07.31 8438
31 GENIVI DLT(Diagnostic Log and Trace) 활용 file makersweb 2020.11.19 8187
30 텔레그램(Telegram) Bot 개발 file makersweb 2019.07.21 5693
» webOS소개 및 Raspberry Pi 3 에서 실행 file makersweb 2019.10.13 3864
28 가볍고 쉬운 임베디드용 그래픽 라이브러리 - LVGL file makersweb 2020.09.16 3277
27 [SDL2 와 OpenGL]윈도우 생성과 2D그래픽 file makersweb 2020.04.11 3043
26 리눅스에서 SDL2 최신버전 컴파일과 Qt Creator로 개발환경 구성 file makersweb 2019.10.06 3023
25 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 2638
24 Wayland IVI Extension 간단 리뷰 file makersweb 2019.05.12 2248
23 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2040
22 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 1831
21 ZeroMQ 비동기 클라이언트/서버 패턴 file makersweb 2020.08.13 1749
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1657
19 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 1378
18 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 1134
17 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 1045
16 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 1020