5.2 Wayland
5.2.1 Introduction
Wayland는 컴포지터가 클라이언트와 통신하기 위한 프로토콜이다. 이 프로토콜은 C 라이브러리로 구현되어 있다. 컴포지터는 Linux Kernel mode setting, evdev 입력 디바이스, X 애플리케이션이나 Wayland 클라이언트 자체로 실행되는 독립 실행형 디스플레이 서버가 될 수 있다. 클라이언트는 기존 애플리케이션, X 서버나 다른 디스플레이 서버가 될 수 있다.
Wayland 프로젝트의 일부는 Wayland 컴포지터의 Weston 레퍼런스 구현이기도 하다. Weston 컴포지터는 작고 빠른 컴포지터이며, 많은 임베디드와 모바일 사례에 사용이 적합하다.
이 장에서는 i.MX 시리즈 디바이스에서 Wayland/Weston 지원을 활성화하는 방법을 설명한다.
5.2.2 Software Operation
이 릴리즈는 Wayland 1.16 버전과 Weston 5.0.0 버전을 기반으로 한다.
5.2.3 Yocto Build Instructions
Yocto Project 빌드 순서는 다음과 같다 :
- Yocto 빌드 디렉토리를 준비하고 DISTRO Wayland를 위한 i.MX Yocto Project User`s Guide (IMXLXYOCTOUG)의 설정 지침을 따른다.
- 빌드 디렉토리에서 Wayland용으로 Yocto를 설정한다 :
$ MACHINE = <your-machine> DISTRO=fsl-imx-xwayland source imx-setup-release.sh -b build-wayland
- 이미지 빌드한다.
$ bitbake imx-image-multimedia
5.2.4 Customizing Weston
i.MX Weston은 2개의 컴포지터가 포함되어 있다. 하나는 3D 코어로 가속되는 EGL3D 컴포지터이다. 다른 하나는 2D BLT 엔진으로 가속되는 G2D 컴포지터이다.
Weston 옵션은 "etc/init.d/weston" 파일에서 업데이트할 수 있다.
Table 53. Common options for Weston
Weston option | Description |
tty | 현재 tty 기본값 |
device | 기본 프레임 버퍼는 "dev/fb0"이고, G2D 컴포지터로 지원되는 다중 디스플레이 |
use-gl | EGL 가속기, 기본값 "1"이다. |
use-g2d | G2D 가속기, 기본값 "0"이다. |
idle-time | 초 단위의 idle time |
Multi display supported in Weston
다중 디스플레이는 G2D 컴포지터에서만 지원된다. Weston을 시작하려면 다음 옵션을 추가한다 :
weston --tty=1 --device=/dev/fb0,/dev/fb2 --use-g2d=1 &
Multi buffer supported in Weston
Weston 서버는 단일 버퍼링과 다중 버퍼링을 모두 지원한다. 단일 버퍼링에서 손상 영역은 offscreen surface로 렌더링되고 front buffer(출력 버퍼)로 blit(비트 블록 전송) 된다. offscreen surface는 flicker(깜박임)를 피하기 위해 사용된다. 기본적으로 Weston 서버는 단일 버퍼링으로 시작한다.
다중 버퍼링에서는 offscreen으로 렌더링하는 대신에 손상 영역을 back buffer로 렌더링하고 flip을 수행한다. 하지만 프레임 속도는 디스플레이 속도로 제한된다. 최대 3개의 버퍼가 지원된다.
Weston 서버를 시작하기 전에 FB_MULTI_BUFFER를 내보내어 사용할 버퍼 수를 컨트롤한다.
단일 버퍼링을 위한 환경 변수 :
export FB_MULTI_BUFFER=1
이중 버퍼링을 윈한 환경 변수 :
export FB_MULTI_BUFFER=2
5.2.5 Running Weston
Weston을 실행하려면 다음 작업들을 수행한다 :
- i.MX 디바이스를 부팅한다.
- 클라이언트를 실행하려면, 상단 표시줄 두 번째 버튼으로 클라이언트를 실행할 수 있는 weston-terminal을 실행한다. Weston 빌드 디렉토리에는 사용가능한 몇 가지 데모 클라이언트가 있지만, 모두 매우 간단하며 대부분 Wayland 프로토콜의 특정 기능을 테스트하기 위한 것이다 :
- 'weston-terminal'는 간단한 터미널 에뮬레이터로 호환성은 좋지 않지만 bash에서 충분히 잘 작동한다.
- 'weston-flower'는 화면에 꽃을 그려서 프레임 프로토콜을 테스트한다.
- 'weston-smoke'는 SHM 버퍼 공유를 테스트한다.
- 'weston-image'는 커맨드 라인에 전달된 이미지 파일을 로드하여 보여준다.
※ blit (bit block transfer) : 비트 블록 전송. 그래픽에서 한 이미지를 다른 이미지로 복사하는 것. 한 메모링에서 다른 메모리로 그래픽을 전송하는 것.
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual (0) | 2022.06.28 |
---|---|
i.MX Linux Reference Manual - Graphics - X Windows Acceleration (0) | 2022.06.27 |
i.MX Linux Reference Manual - Graphics - Graphics Processing Unit (GPU) (0) | 2022.06.24 |
i.MX Linux Reference Manual - Graphics (0) | 2022.06.24 |
i.MX Linux Reference Manual - Introduction - References (0) | 2022.06.24 |