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

webOS소개 및 Raspberry Pi 3 에서 실행

makersweb 2019.10.13 15:57 조회 수 : 4633

이글은 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를 지원할 계획이라고한다.

번호 제목 글쓴이 날짜 조회 수
36 Wayland IVI Extension 간단 리뷰 file makersweb 2019.05.12 2988
35 GDBus 튜토리얼(GDBus tutorial) file makersweb 2019.06.30 11651
34 텔레그램(Telegram) Bot 개발 file makersweb 2019.07.21 6552
33 리눅스에서 SDL2 최신버전 컴파일과 Qt Creator로 개발환경 구성 file makersweb 2019.10.06 3771
» webOS소개 및 Raspberry Pi 3 에서 실행 file makersweb 2019.10.13 4633
31 도커(docker)설치 및 기본 명령어 makersweb 2019.12.02 1248
30 Pluma(C++ Plug-in Management Framework) 튜토리얼 file makersweb 2019.12.07 14697
29 [SDL2 와 OpenGL]윈도우 생성과 2D그래픽 file makersweb 2020.04.11 3839
28 ZeroMQ의 기본 메세지 패턴들 file makersweb 2020.07.31 9628
27 ZeroMQ 비동기 클라이언트/서버 패턴 file makersweb 2020.08.13 2630
26 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 1864
25 가볍고 쉬운 임베디드용 그래픽 라이브러리 - LVGL file makersweb 2020.09.16 4371
24 윈도우에서 안드로이드 flutter 프로그래밍 개발환경 구축(with Visual Studio Code) file makersweb 2020.09.16 1606
23 GENIVI DLT(Diagnostic Log and Trace) 활용 file makersweb 2020.11.19 10622
22 Dear ImGui, 경량의 C++ 용 GUI 및 Widget 라이브러리 file makersweb 2020.11.28 10235
21 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 1385
20 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2900
19 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 1460
18 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 1589
17 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 2594