50
Qplus®/Esto® Version 2.0 CE (Consumer Electronics) Edition Installation Guide 2005 4 1 임베디드 S/W 연구단 Copyright (c) 2005 ETRI 문서는 임의로 무단 전재 또는 복사할 없으며, 내용을 부분적으로 이용 또는 전재할 경우, 반드시 저자인 한국전자통신연구원 임베디드 S/W 연구단의 서면 허락을 취득하여야 합니다.

Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

Qplus®/Esto®

Version 2.0

CE (Consumer Electronics) Edition

Installation Guide

2005년 4월 1일

임베디드 S/W연구단

Copyright (c) 2005 ETRI

이 문서는 임의로 무단 전재 또는 복사할 수 없으며, 본 내용을 부분적으로 이용 또는 전재할

경우, 반드시 저자인 한국전자통신연구원 임베디드 S/W 연구단의 서면 허락을 취득하여야 합니다.

Page 2: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 2 -

목 차

1. 개요 ................................................................................................................................................................ 4

1.1. 이 문서에 대하여.................................................................................................................................. 4

1.2. QPLUS 개발 환경................................................................................................................................... 4

1.3. 타겟 빌더(TARGET BUILDER) 소개 ....................................................................................................... 5

1.4. ESTO 소개............................................................................................................................................... 6

2. QPLUS/ESTO 의 설치................................................................................................................................. 8

2.1. 설치 환경 ............................................................................................................................................... 8

2.2. 설치 순서 ............................................................................................................................................... 9

2.2.1. 설치 소프트웨어 준비 ................................................................................................................. 9

2.2.2. Qplus/Esto 설치 ............................................................................................................................. 9

2.2.3. Qplus BSP(Board Support Packages) 설치 ..................................................................................11

2.2.4. 설치 삭제..................................................................................................................................... 12

2.3. QPLUS/ESTO 실행 ................................................................................................................................. 12

3. QPLUS 타겟 빌더의 실행 ....................................................................................................................... 13

3.1. 타겟 빌더의 실행................................................................................................................................ 13

3.2. 프로젝트의 생성 ................................................................................................................................. 13

3.3. 타겟 빌더의 GUI ................................................................................................................................ 15

3.4. 찾기 기능 ............................................................................................................................................. 17

3.5. 의존성 규칙 보기................................................................................................................................ 17

3.6. 설정값의 저장과 로드........................................................................................................................ 17

3.7. 라이브러리 최적화 ............................................................................................................................. 18

3.8. 타겟 적재 방식의 결정 ...................................................................................................................... 18

3.9. 빌드....................................................................................................................................................... 18

3.10. 타겟 이미지의 설치와 부팅 .......................................................................................................... 18

4. 커널 패치와 그 적용................................................................................................................................. 23

4.1. 실시간 지원 ......................................................................................................................................... 23

4.2. ACPI (ADVANCED CONFIGURATION AND POWER INTERFACE) 지원 ..................................................... 28

4.3. 빠른 부팅 ............................................................................................................................................. 29

4.4. 부팅 시간 테스팅 툴 .......................................................................................................................... 30

4.5. TV OUT 기능 지원 ............................................................................................................................. 32

5. ESTO 사용 .................................................................................................................................................. 34

Page 3: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 3 -

5.1. 타겟 에이전트 실행............................................................................................................................ 34

5.2. 소스 프로젝트 생성 및 임포트......................................................................................................... 34

5.3. 원격 실행 ............................................................................................................................................. 38

5.4. 원격 디버깅 ......................................................................................................................................... 39

6. 그래픽 윈도우 설치 및 실행................................................................................................................... 42

6.1. TINY-X 설정 ......................................................................................................................................... 42

6.2. MATCHBOX 설치 및 실행 ................................................................................................................... 42

6.3. GPE 설치 및 실행 .............................................................................................................................. 43

6.4. GTK+ 응용 테스트 및 컴파일 방법................................................................................................. 44

부록 A. QPLUS/ESTO CE EDITION 의 버전 정보 ..................................................................................... 45

부록 B. QPLUS/ESTO CE EDITION 의 타겟보드 사양 ............................................................................. 48

부록 C. QPLUS/ESTO CE EDITION 의 개발 용 패키지 ........................................................................... 49

Page 4: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 4 -

1. 개요 본 문서는 한국전자통신연구원에서 개발한 리눅스 기반의 임베디드 운영체제와 개발도구인

Qplus/Esto 의 설치 방법을 기술합니다. 설치에 앞서 본 문서를 읽어 보시기 바랍니다. 제 1 장에서

는 본 문서에서 설명하는 범위와 임베디드 시스템의 개요, 임베디드 운영체제인 Qplus, 응용 프로

그램 개발을 위한 개발도구인 Esto 에 대해 설명하고 개발 환경에 대해 기술합니다.

1.1. 이 문서에 대하여

본 문서는 한국전자통신연구원에서 개발한 리눅스 기반의 임베디드 운영체제와 개발도구인

Qplus/Esto 의 설치를 위한 절차를 기술합니다. 또한 사용자의 설치를 돕기 위해 Qplus/Esto 의 전반

적인 구성을 설명합니다. 제 1 장에서는 임베디드 운영체제 Qplus 와 개발도구인 Esto 에 대해 간단

히 설명하고, 설치 환경을 설명합니다. 제 2 장에서는 Qplus/Esto 의 설치 방법을 자세히 설명하고,

제 3 장에서는 정보가전기기에 적재될 시스템 소프트웨어들을 개발하는 과정을 도와주는 Qplus 타

겟 빌더(Target Builder)의 주요 특징에 대해 살펴 보고, 다음으로 제 4 장에서는 개발도구인 Esto 의

기능에 대해 둘러본 다음, 제 5 장에서는 그래픽 라이브러리 등에 대해 추가적인 설치 방법을 설

명합니다.

1.2. Qplus 개발 환경

Qplus 는 한국전자통신연구원 임베디드 S/W 연구단에서 개발한 임베디드 리눅스 기반의 운영

체제입니다. Red Hat 등의 리눅스 버전에서 임베디드 시스템에 사용하기에 부족한 실시간 스케줄링,

저전력 관리, 멀티미디어 처리 기능, 관련 디바이스 드라이버 등을 보완하여 확장 개발한 임베디

드 시스템 용 리눅스 운영체제입니다.

컴퓨터의 개념이 정보통신 기술 발전으로 빠르게 확장되어 퍼스널 컴퓨터(Personal Computer,

PC)의 개념을 넘어 휴대폰이나 PDA 등의 이동 단말이나 셋탑박스, 지능형 디지털 TV, 인터넷 냉

장고 등으로 발전하고 있습니다. 이러한 시스템을 통틀어 임베디드 시스템이라 부르는데 범용의

PC 와 달리 한정된 특정 기능 만을 수행하는 것이 일반적이기 때문에 PC 보다 성능 면에서 낮은

사양을 가지고 있는 것이 대부분입니다. 그러므로 PC 에서처럼 많은 기능을 시스템 내부에 가지고

있는 것이 아니라 특정 임베디드 시스템에 맞는 기능 만을 만들어 시스템에 올리게 됩니다.

이렇게 하기 위해서는 크로스 개발(cross development) 환경이 필요합니다. 크로스 개발 환경은

(그림 1)과 같이 호스트 시스템(host system)과 타겟 시스템(target system)의 두 가지 시스템으로 구

성됩니다. 호스트 시스템은 임베디드 시스템인 타겟 시스템에 필요한 프로그램을 개발하는 컴퓨터

Page 5: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 5 -

로 컴파일러 등의 개발 환경을 포함하고 있습니다. 즉, 타겟 시스템에 올라갈 모든 프로그램을 호

스트 시스템에서 만들어야 되는데, 이를 위해서는 타겟 시스템의 사양에 맞는 설정이 미리 되어

있어야 나중에 타겟 시스템에 올릴 때 문제가 없습니다. 이러한 과정을 크로스 개발이라고 하며

호스트에서 타겟에 올라가는 프로그램을 컴파일 할 때 이를 크로스 컴파일(cross compile)이라 합니

다. 호스트에는 타겟이 x86 칩셋(chip set)인지 ARM 칩셋인지 MIPS 칩셋인지에 따라 적당한 크로

스 컴파일이 수행되어야 함으로 여러 가지 컴파일러를 모두 가지고 있게 됩니다.

현재의 Qplus/Esto CE edition 을 위한 호스트는 Red Hat 리눅스 9.0 이상의 성능을 갖는 일반적

인 PC 나 Workstation 정도로 충분합니다. 호스트 시스템에서 크로스 컴파일로 만든 프로그램을 타

겟 시스템의 부팅할 수 있는 저장 매체의 종류에 따라 ROM 이나 플래시 메모리, 하드 디스크에

이식하게 됩니다. Qplus/Esto CE edition 을 위한 개발 버전은 부록 A 에 기술되어 있습니다. 예를 들

어 현재 테스트 된 VIA EPIA 보드는 x86 계열 보드로 CD-ROM 과 하드디스크를 달 수 있기 때문

에 호스트에서 만든 타겟에 대한 Qplus 운영체제의 이미지는 CD 로 만들어 타겟에서 부팅함으로

써 설치할 수 있습니다.

(그림 1) 크로스 컴파일 환경

1.3. 타겟 빌더(Target Builder) 소개

위와 같이 호스트 시스템에서 프로그램을 개발하고 코드를 컴파일하고 필요한 라이브러리를

선택하는 것뿐 아니라 타겟에서 실행될 커널을 타겟 특성에 맞게 구성하는 과정은 매우 복잡하고

힘든 과정입니다. 이러한 과정을 개발자가 쉽게 하도록 하기 위해서 개발된 도구 프로그램이 타겟

빌더(Target Builder)와 Esto 입니다. 타겟빌더는 Eclipse 기반에서 GUI(Graphical User Interface) 방식으

로 동작하는 임베디드 리눅스 개발 도구입니다. 개발자가 설정을 필요로 하는 커널과 응용 프로그

램의 각종 선택 사항들을 GUI 옵션으로 보여주어 선택할 수 있으며 그 옵션들간의 의존성 검사와

< Host >

< Target >

< Local Network >

< Serial cable >

Qplus OS

Target Builder

Page 6: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 6 -

필요한 정보를 즉각적으로 보여줌으로써 올바른 설정을 할 수 있도록 돕고 최종적으로 타겟 시스

템에 적재될 Qplus 운영체제 전체를 하나의 이미지 형태로 만들 수 있습니다.

(그림 1)에서처럼 호스트의 타겟빌더에서 타겟 시스템에 맞는 커널에 대한 옵션을 선택하고

타겟에서 사용될 응용 프로그램들을 선택합니다. 그리고 타겟 빌더 메뉴에서 크로스 컴파일을 수

행하고 적재(deploy) 메뉴를 통해 타겟 이미지를 생성합니다. 타겟의 종류에 따라 CD-ROM 이나

하드 디스크가 있으면, 부트 이미지를 CD 로 만들어 타겟의 하드 디스크에 넣고, 타겟이 부트

ROM 을 가지고 있고 NFS(Network File System)가 가능하면 LAN 을 통해 설치할 수 있습니다. 타겟

에 설치된 Qplus 운영체제를 실행하면서 나오는 메시지는 시리얼 콘솔(serial console)을 통해 호스

트에서 볼 수 있습니다. 타겟빌더는 다음과 같은 기능을 제공합니다.

커널과 응용 패키지의 설정 가능 사항의 옵션화를 통한 미세설정 지원

각 옵션간의 의존성 자동 검사

커널과 응용의 동시 설정을 통한 커널과 응용간의 의존성에 대한 자동 검사

타겟에 탑재 될 파일들의 리스트를 설정 가능하게 하고 라이브러리의 사이즈를 최적화 시킴으로써 최종 탑재 이미지의 사이즈를 줄임

유저가 쉽게 설정을 하게 도와주는 GUI 방식의 유저 인터페이스

타겟에 탑재 될 루트파일시스템 이미지의 자동 생성

타겟의 초기화 스크립트와 네트워크 주소, 유저정보와 같은 기본 설정사항의 자동 생성

1.4. Esto 소개

Esto(Embedded Systems Tool)는 Qplus 플랫폼에서 수행되는 펌웨어, 디바이스 드라이버, 응용 등

의 임베디드 소프트웨어 개발을 보다 쉽고 빠르게 개발할 수 있는 통합 개발 환경을 말합니다.

Esto 는 Eclipse 기반의 통합 개발 환경(Integrated Development Environment)으로써, 프로그램 개발자

가 호스트 상에서 소스 프로그램 작성, 컴파일, 실행, 디버깅, 모니터링을 하나의 단일화된 통합

환경에서 수행할 수 있도록 하여 개발자에게 프로그램 개발의 편의성을 증가시킵니다.

Esto 에는 다음과 같은 기능이 있습니다.

Esto IDE: 프로젝트 기반으로 C/C++ 소스 프로그램 편집, 크로스 컴파일, 원격 실행, Qplus 패키지 익스포트(export)/임포트(import)를 지원하는 도구.

Esto 디버거: Esto IDE 를 통하여 작성된 프로그램을 디버깅하는 도구이며, 정지점 기반의 디버깅과 프로그램을 정지시키지 않고 디버깅하는 추적점 기반의 디버깅을 지원.

JTAG 기반 디버거: 타겟 보드의 JTAG 포트와 JTAG 어댑터를 사용하여 펌웨어 프로그램을 디버깅하는 도구.

디바이스 드라이버 개발 도구: 타겟 보드에 장착되는 PCI, USB, IEEE1394 등의 디바이스

Page 7: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 7 -

드라이버 프로그램을 개발해주는 도구.

최적화 및 분석 도구: 임베디드 소프트웨어를 루프 수준에서 최적화하고, 최적화된 결과를 전력 소모량, 성능, 코드 크기 측면에서 분석하는 도구.

실시간성 분석 도구: TMO 기반의 실시간성 프로그램에 대한 최악 실행 시간과 스케줄 가능성을 분석해주는 도구.

모니터링 도구: 타겟 시스템의 메모리, 프로세스, 자원, 배터리 소모량 등의 정보를 보여주는 도구.

편재형 환경 시뮬레이터: 편재형 환경의 센서 노드들의 네트워크 환경을 시뮬레이션해주는 도구.

타겟에이전트: 타겟에서 수행되며 호스트와 연동하여 파일 전송, 원격 실행과 같은 기능을 제공하는 도구.

Page 8: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 8 -

2. Qplus/Esto 의 설치 본 장에서는 Qplus/Esto 을 설치하기 위한 방법을 설명합니다. 설치 파일을 받기 위해서는

http://www.qplus.or.kr의 “Support & Download” 메뉴에서 Qplus/Esto 의 최신 버전을 다운 받아야 합니

다.

2.1. 설치 환경

Qplus/Esto CE Edition 의 최신 버전을 설치하기 위해서는 다음과 같은 시스템 요구사항을 만족

해야 하며 (그림 2)와 같은 환경으로 설치해야 합니다.

호스트 시스템: Red Hat 리눅스 9.0 이상이 설치된 PC 나 Workstation

호스트 시스템은 가능한 고성능의 사양이 바람직함

타겟 시스템: VIA 칩셋의 EPIA 보드

호스트-타겟 연결: Ethernet 연결 (호스트 IP: 129.254.180.34, 타겟 IP: 129.254.180.25 로 가정)

(그림 2) Qplus/Esto CE Edition 설치를 위한 개발 환경

개발호스트

모니터

타겟보드 (VIA EPIA M)

OR

TV

Page 9: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 9 -

2.2. 설치 순서

http://www.qplus.or.kr의 “Support & Download” 메뉴에서 최신의 버전을 다운로드 합니다. CE

edition 설치는 수퍼유저(root) 권한으로 설치해야 하며, Qplus/Esto 설치 패키지는 Esto 와 타겟빌더

로 구성되는 호스트 개발 환경 Qplus/Esto 패키지와 Qplus 타겟 시스템에 의존적인 Qplus

BSP(Board Support Packages)로 구성됩니다. 설치는 다음과 같이 설치 소프트웨어 준비, Qplus/Esto

패키지 설치, Qplus BSP 패키지 설치 순으로 진행됩니다.

2.2.1. 설치 소프트웨어 준비

소프트웨어 다운로드: http://www.qplus.or.kr 사이트에서 qplus_esto.tgz, qplus_bsp.tgz 파일을

다운받습니다. qplus_esto.tgz 파일은 Qplus/Esto 설치 패키지이며, qplus_bsp.tgz 파일은 Qplus

BSP 설치 패키지입니다.

압축 풀기 : 다음 명령을 이용하여 받은 파일의 압축을 풉니다.

$ tar -xvfz qplus_esto.tgz; tar -xvfz qplus_bsp.tgz

CD 설치를 원하는 경우에는 qplus_esto.iso 파일과 qplus_bsp.iso 파일을 다운받아 두 파일

을 각각 CD 로 굽습니다.

2.2.2. Qplus/Esto 설치

설치 명령 수행 : qplus_esto 디렉토리로 이동하여 ./setup.bin 명령을 수행하면, 다음과 같은

설치 초기 화면이 나타납니다. (CD 를 사용하여 설치하는 경우에는 CD 를 삽입하고 CD 에

있는 setup.bin 파일을 수행합니다.)

위 위저드에서 계속 Next 버튼을 누르면서 설치를 진행합니다. 그리고 다음과 같은 설치

Page 10: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 10 -

전의 위저드에서 Install 버튼을 눌러 실제 설치를 시작합니다.

설치 중의 화면은 다음과 같습니다.

위 과정이 성공적으로 끝나면, 다음과 같은 설치 성공을 알리는 화면이 나타나며, 여기

서 Finish 버튼을 누릅니다.

Page 11: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 11 -

설치가 성공하면 마지막에 다음과 같은 화면이 나타납니다.

위 화면에서 Finish 를 선택하여 Qplus/Esto 설치를 종료합니다.

2.2.3. Qplus BSP(Board Support Packages) 설치

설치 명령 수행 : qplus_bsp 디렉토리로 이동하여 ./setup.bin 명령을 수행하면, 다음과 같은

설치 초기 화면이 나타납니다. (CD 를 사용하여 설치하는 경우에는 CD 를 삽입하고 CD 에

있는 setup.bin 파일을 수행합니다.)

Qplus/Esto 설치 패키지와 같은 방법으로 설치를 수행합니다.

Page 12: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 12 -

2.2.4. 설치 삭제

/opt/q+esto/_uninst 디렉토리로 이동하여 ./uninstaller.bin 명령을 수행하면, 다음과

같은 설치 삭제 초기 화면이 나타납니다.

패키지 설치와 같은 방법으로 설치 삭제를 수행합니다.

2.3. Qplus/Esto 실행

Qplus/Esto 와 BSP 설치가 성공적으로 수행된 경우에 다음과 같은 순서로 Qplus/Esto 를 실행합

니다.

설치 환경 반영 : Qplus/Esto 가 설치된 환경을 반영하기 위하여, 다음 명령을 수행합니다.

시스템에 다시 로그인하는 경우는 자동으로 /etc/profile 명령이 수행되므로 명령을 다시

수행할 필요는 없습니다.

$ source /etc/profile

실행 : esto 명령을 수행하여 Qplus/Esto 를 실행합니다. 또는 다시 로그인한 경우는 리눅

스 초기 화면의 시작 메뉴에서 <Programs>-<QplusEsto> 메뉴를 선택합니다.

설치 결과 다음과 같은 Qplus/Esto 초기 화면(워크벤치, workbench)이 나타납니다.

Page 13: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 13 -

3. Qplus 타겟 빌더의 실행 Qplus 타겟빌더는 GUI(Graphical User Interface) 방식으로 동작하는 임베디드 리눅스 개발 도구

이며, 개발자가 설정을 필요로 하는 커널 / 응용의 각종 사항들을 옵션화시키고 그 옵션들간의 의

존성 검사와 필요한 정보를 인터렉티브하게 보여줌으로써 올바른 설정을 할 수 있도록 돕고 최종

적으로 타겟 이미지에 적재되어 수행될 타겟 이미지를 자동 생성하는 기능을 제공합니다.

Qplus 타겟빌더가 동작하는 주요 기능에 대해 간단히 설명합니다. 좀 더 상세한 내용은

‘Qplus/Esto 사용자 가이드’를 참조하기 바랍니다.

3.1. 타겟 빌더의 실행

A. 타겟 빌더는 root 권한을 요구하므로 root 로 로그인합니다.

B. 다음과 같이 타겟 빌더를 실행합니다.

$ /opt/q+esto/esto/eclipse/eclipse

3.2. 프로젝트의 생성

타겟 빌더는 이클립스 기반의 플러그인으로 기본적인 사용법은 이클립스 사용 매뉴얼을 참조

하도록 합니다. 타겟빌더에서 작업을 하기 위해서는 타겟빌더 프로젝트를 생성하여 수행하도록 합

니다. 각 프로젝트는 별도의 설정 값을 가지고 다른 툴체인을 사용하게 됩니다.

A. File > New > Project 메뉴를 선택한 후, Q+ System Project (Kernel +

Rootfilesystem)을 선택합니다.

Page 14: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 14 -

B. 프로젝트가 설치될 디렉토리 이름을 지정하고 Next> 버튼을 누릅니다.

C. Architecture 와 Board를 지정하고 Next> 버튼을 누릅니다.

Page 15: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 15 -

D. 기본 설정 값 셋팅을 선택한 후 Finish 를 눌러 프로젝트를 생성합니다.1 Qplus CE Edition

Configure Mode (CE Edition DEMO)는 기본적으로 Qplus CE Edition 에 적합한 설정 값이 기

본으로 지정된 셋팅 값을 가지고 설정을 시작하고, Expert Mode 는 기본 셋팅 값만 셋팅

된 상황에서 설정을 시작하게 됩니다.

3.3. 타겟 빌더의 GUI

생성된 프로젝트는 지정한 보드의 기본적인 설정이 되어있는 상태이므로 특별한 설정을 요하

1 프로젝트 생성은 시스템에 따라 약 20 ~ 40 초 가량 소요된다.

Page 16: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 16 -

지 않습니다. 다음은 타겟빌더의 메인 화면입니다.

A. 중앙 설정 트리는 커널, 시스템 패키지, 타겟의 각종 아이템들을 설정해볼 수 있는 창입

니다.

B. 설정 아이템들을 마우스로 클릭하면 각종 정보를 볼 수 있으며, 설정 트리 우측 상단부

창에 다음과 같은 정보가 나타납니다.

Symbol name: 타겟 빌더의 각 아이템이 내부적으로 사용하는 이름으로 사용

자에게는 큰 의미가 없음.

Prompt Message: 아이템에 대한 간단한 설명

Type: 아이템의 타입

Value: 아이템의 현재 값

Help: 설정 아이템의 자세한 설명

Dependency: 아이템간의 의존성 내용 및 내역

C. 각 아이템의 값을 설정하기 위해서는 설정 트리 우측의 Value 창에서 설정하거나 트리

Page 17: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 17 -

메뉴를 더블클릭하여 설정 값을 변경 시킬 수 있습니다.

3.4. 찾기 기능

타겟 빌더는 각 아이템의 symbol 을 검색하는 기능을 제공합니다.

A. 중앙 설정 트리 창 우측 상단 Search 를 선택해서 입력창에 찾고자 하는 문자열을 입력

함으로써 수행합니다. 예를 들어 ‘SOUND’라는 문자열을 입력해 봅니다.

B. 검색된 아이템이 자동적으로 트리에서 선택되어 보여집니다.

3.5. 의존성 규칙 보기

타겟빌더의 각 아이템은 의존성을 가지고 있는 경우가 있는데, 예를 들어 tiny-x 아이템은

‘unix domain socket’아이템이 선택된 경우에만 올바로 작동합니다. 타겟 빌더는 각 아이템의 의존성

을 의존성 탭에 표시해주며, 각 아이템의 값을 변경시 관련된 의존성 정보가 올바르지 않을 경우

그 값을 바꾸지 못하게 합니다.

A. 타겟 빌더의 설정 트리상에서 Package Configuration > User Interface > X >

tiny-x 를 선택한 후 우측 하단의 Dependency 창을 확인하여 의존성을 확인 할 수 있

습니다. 다음과 같은 의존성이 표시됩니다. “UNIX = y”. 이는 tiny-x 각 선택되기

위해서는 커널 내의 ‘UNIX’라는 아이템이 먼저 선택되어야 함을 의미합니다.

B. Dependency 창의 하위 의존성 아이템 목록을 클릭하여 트리상에서 자동으로 해당 아이

템으로 이동할 수 있으며, 이를 이용하여 ‘unix domain socket’의 상태를 확인할 수

있습니다.

C. 의존성이 충족되지 않으면, 의존성이 충족되지 않은 메뉴가 보이지 않게 되어 의존성 문

제로 인한 시스템 작동 불능 상태를 근본적으로 막아 줍니다.

D. Target Builder 하위 메뉴인 Normal View, Package Expert View, Kernel Expert View, All Expert

Mode 로 메뉴 표시 옵션을 변경하면 의존성이 충족되지 않아, 보이지 않는 아이템도 트리

에 표시할 수 있습니다.

3.6. 설정 값의 저장과 로드

타겟 빌더의 각 프로젝트는 설정 상태를 프로젝트 디렉토리의 project.conf 파일에 저장하며 프

로젝트를 새로 오픈 할 때 이 파일에 저장된 설정 값을 읽어 오게 됩니다. 현재 설정 값은 프로젝

트의 종료, 빌드의 시작시에 자동으로 저장되며, 메뉴의 File > Save 를 통해 강제적으로 저장하게

할 수 있습니다.

Page 18: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 18 -

3.7. 라이브러리 최적화

타겟 빌더는 타겟에 적재될 최종 루트 파일시스템의 사이즈를 최적화 시키는데, 이는 빌드후

타겟에 최종 적재될 이미지를 만들 때 행해지게 됩니다.

A. 설정 트리상에서 Target configuration > Library Optimization Configuration 을 선택합니다.

3.8. 타겟 적재 방식의 결정

EPIA bsp 는 타겟에의 적재 방식으로 CD install 방식과 NFS 를 이용한 두 가지 방식을 제공합

니다. 여기서는 CD install 을 이용한 적재에 대해서 설명합니다.2

A. Target Configuration> Target deploy methods config > Target Deploy

method를 선택합니다.

B. 하위 메뉴중 ‘make CD install’ 옵션을 선택하고 그 하위 옵션들을 설정합니다.

3.9. 빌드

설정된 값에 따라 커널과 각 응용을 빌드하고 적재 가능한 이미지로 변환하는 과정입니다.

A. 메뉴의 Target Builder > Build All(A) 항목을 선택합니다.3

B. 이상 없이 컴파일 된 경우 Target Build > Install (I) 메뉴를 선택합니다.

C. 빌드가 무사히 끝난 경우 프로젝트 디렉토리의 deploy/rootfs 에 타겟이 적재된 파일

시스템이 생성되며, 수동으로 수정할 내용이 있으면 deploy/rootfs 디렉토리를 수정합

니다.

D. 준비가 끝나면 Target Builder > Deploy (D)를 선택하여 CD 이미지를 생성합니다.

E. 생성된 CD 이미지는 프로젝트 디렉토리의 deploy/cdinstall.iso 파일로 생성되며 CD 레코더

를 이용하여 인스톨 CD 를 제작합니다.

3.10. 타겟 이미지의 설치와 부팅

Qplus CE edition 은 빌드된 타겟 이미지의 설치를 CD 와 네트워크를 통해서 설치 할 수 있도록

지원합니다. 본 장에서는 CD 를 이용한 타겟 이미지의 설치에 대해서 기술합니다.

설치 프로그램을 이용하기 전에 앞서 주의해야 할 점은 다음과 같습니다.

2 그 위에 타겟 시스템의 여러 사항을 설정해 볼 수 있지만 다른 값은 기본 설정을 사용한다고 가정한다. 3 타겟빌더는 빌드시 예전값과 비교를 통해 재컴파일을 요하는 경우만 컴파일을 하게 된다. 설정

내용에 따라서 커널과 패키지를 컴파일 하므로 수분~수시간의 시간이 소요될 수 있다.

Page 19: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 19 -

설치 프로그램은 하드 디스크에 타겟을 설치 하는 것을 가정하고 있습니다. IDE 형태의

하드 디스크에 설치되는 것을 전제로 하여 프로그램이 작성되어 있는 상태입니다. DOM

형태의 플래시 메모리 디스크의 경우 IDE 를 통하여 하드 디스크로 인식되므로 문제가

없지만, 일반적인 플래시 메모리에는 설치가 되지 않습니다. (차기 버전에서 차차 지원할

예정입니다.)

설치 프로그램은 하드디스크의 파티션을 지원하지 않습니다. 타겟의 이미지는 /dev/hda,

즉 Primary master 가 되는 하드디스크에 설치 되며, 파티션을 지원하지 않게 되므로 기존

의 데이터가 보존이 되지 않습니다. 필요한 데이터의 백업은 필수적이며, 가급적이면 다

른 목적으로 사용하지 않는 하드디스크에 설치하는 것을 권장합니다.

설치할 하드 디스크의 제원에 대해서 알아야 합니다. 현재 설치 프로그램은 하드 디스크

설정을 실린더 단위로 할 수 있도록 되어 있습니다. 자신의 하드디스크의 제원을 참조하

여 알맞은 파티션의 크기를 실린더 단위로 계산해 둡니다.

빌드된 타겟의 이미지는 다음과 같은 과정을 통해서 설치 됩니다.

Build 가 끝난후 deploy 된 ISO 이미지를 가지고 CD 를 굽습니다. CD Writer 가 달려있는

호스트의 경우 ‘cdrecord’ 명령을 이용해서 호스트에서 직접 CD 를 구울 수도 있습니다.

(리눅스의 man 페이지나 cdrecord 명령의 도움말을 참조하시기 바랍니다.)

Install CD 를 타겟 시스템에 넣고 타겟을 부팅 시킵니다. 부팅 과정이 끝난 후에 다음과

같은 인스톨 프로그램의 첫 화면을 볼 수가 있습니다. OK 를 선택하여 다음 과정으로 넘

어갑니다.

Page 20: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 20 -

타겟의 설치 과정에 앞서서 한번 더 시스템과 설치하고자 하는 하드 디스크에 대해서 확

인을 마친 후에 Yes 를 선택하여 설치를 시작하도록 합니다. No 를 선택하게 되면, 시스템

을 재부팅 하게 됩니다.

타겟 이미지 설치를 위해서 설치할 하드디스크 파티션의 크기를 입력하는 부분입니다. 현

재는 하나의 파티션을 만들고 그 크기를 조정하도록 하는 과정입니다. 사용할 하드디스크

의 파티션 크기를 입력하면 됩니다. 단, 주의할 점은 실린더 단위로 입력을 하여야 한다

는 점입니다. 앞서 말씀 드린 설치 전의 준비 사항에서 하드 디스크의 제원을 참조하여

정한 실린더 개수를 입력하면 됩니다. 아무것도 입력하지 않으면, 하드디스크 전체를 하

나의 파티션으로 설정하게 됩니다. 설치를 원하지 않는다면, Cancel 을 선택하면 됩니다.

본 작업 이후는 자동으로 설치가 진행되오니 설치 전에 한번 더 확인하기 바랍니다.

Page 21: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 21 -

파티션 작업이 끝나면 실제 설치 작업이 시작됩니다. OK 를 선택하면 빌드된 타겟의 루트

파일시스템의 설치가 시작됩니다.

빌드된 타겟의 루트 파일 시스템의 설치가 끝나고, 커널의 설치가 자동적으로 수행됩니다.

커널의 설치가 끝난 후, 다음과 같은 화면을 볼 수 있습니다. Lilo 실행을 통해서 타겟 시

스템을 부팅 가능하게 하도록 하는 과정입니다. Yes 를 선택해서, 타겟을 부팅 가능하게

만듭니다.

Page 22: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 22 -

이제 모든 설치 과정이 완료 되었습니다. CD 를 시스템에서 제거하시고 OK 를 선택하면,

시스템이 재부팅 되며, 타겟 시스템을 통해서 부팅이 되는 것을 확인할 수 있습니다.

Page 23: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 23 -

4. 커널 패치와 그 적용

VIA EPIA-M 보드용 Qplus CE Edition 커널에 적용된 커널은 리눅스 커널 버전 2.6.6 을 기반으

로 아래와 같은 기능들이 추가됩니다. 그 기본 기능들을 CELF(Consumer Electronics Linux Forum)의

릴리즈 커널 패치를 참고했습니다.

4.1. 실시간 지원

선점형 커널 설정 (커널 변수: CONFIG_PREEMPT)

리눅스 커널 버전 2.4.x 까지는 선점형 커널 기능을 지원하지 않는 모놀리틱(Monolithic) 커널

이었습니다. 그로 인하여 처리량(Throughput) 향상은 기대 할 수 있었으나, 실시간성 지원을 위한

높은 응답성(Responsibility)은 기대하기 어려웠습니다. 그러나, 리눅스 커널 버전 2.6.x 에서부터는

선점형 커널이 지원되어 사용자 모드뿐만 아니라, 커널 모드에서도 태스크의 선점이 가능하게 되

어 높은 응답성을 지원할 수 있게 되었습니다. Qplus CE Edition 에서는 리눅스 커널 2.6.6 에서 지원

하는 선점형 커널 기능을 기본 설정 변수로 지정하여 사용합니다. 아래는 이와 관련된 설정 관련

그림이며, “Processor type and features” “Preemptible Kernel”을 설정함으로써 사용할 수 있습니다. 만일

이 기능을 사용하고 싶지 않다면 이 기능을 해제하면 됩니다.

Page 24: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 24 -

락 브레이킹 기능 지원 (커널 변수: CONFIG_LOCK_BREAK)

선점형 커널 기능이 설정되어 커널에서 지원이 된다 하더라도, 아직도 커널 내에서 많은 구간

에서 커널이 필요한 경우 바로 응답할 수 없는 긴 구간들이 존재합니다. 이에 대한 부분적인 응답

성 향상을 위해 락 브레이킹 기능을 지원합니다. 락 브레이킹 기능은 선점형 커널의 설정에 의존

적이며, 아래의 그림과 같이 설정이 가능합니다. “Processor type and features” “Break Selected Locks”를

설정하면 되며, Qplus CE Edition 에서는 기본 설정되어 있습니다.

Page 25: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 25 -

POSIX 고해상도 타이머 지원 (커널 변수: CONFIG_HIGH_RES_TIMERS)

기존 리눅스 커널에서는 POSIX 에서 정의하는 고해상도 타이머를 지원하지 못하지만, Qplus

CE Edition 커널에서는 x86 에 지원되는 POSIX 고해상도 타이머를 지원합니다. 설정은 아래의 그

림과 같이 “Processor type and features” “Clock/timer options”에서 “Configure High-Resolution-Timers”를

선택합니다.

Page 26: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 26 -

그리고, 아래의 그림과 같이 “Processor type and features” “High-Resolution-Timer resolution

(nanoseconds)” 값을 설정합니다. 이 값은 사용할 타이머의 해상도로 사용됩니다. 시스템에서 지원

되는 이상의 해상도를 지원할 수 없는데 테스트 결과 10usec 까지 설정 가능합니다. Qplus CE

Edition 커널에서는 기본적으로 100usec 로 설정되어 있으며, 이 경우 입력해야 하는 값은 100000

입니다.

Page 27: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 27 -

그리고, 아래의 그림과 같이 “Processor type and features” “High res timer clock source?” 에서는

“Timer-stamp-counter/TSC” 값을 설정하여 시스템의 TSC 를 사용하도록 합니다.

Page 28: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 28 -

4.2. ACPI (Advanced Configuration and Power Interface) 지원

관련 커널 Symbol : ACPI, ACPI_BUTTON

관련 패키지: acpid

ACPI 및 ACPI daemon 을 통하여 시스템의 전원 버튼을 눌렀을 때 정상적인 power off 루틴을

수행하여 시스템이 안정적으로 shutdown 되도록 합니다. 이를 위해 커널에서 ACPI 및

ACPI_BUTTON 설정을 추가하였고 user level 에서는 acpid 를 부팅시에 수행하도록 하였습니다. 전

원 버튼이 눌러졌을 경우에는 /proc/acpi/event 파일에 ‘button power’가 write 되며 acpid 는 이 파일을

모니터링 하여 특정 값(power button)이 write 되면 /etc/acpi/powerbtn.conf 파일에 있는 action 을 수행

합니다. 현재 action 값은 /sbin/poweroff 로 설정되어 있으며, 따라서 전원버튼이 눌러졌을 경우에는

/sbin/poweroff 가 수행되어 시스템이 안정적으로 shutdown 됩니다.

주의할 점은 전원버튼을 통해 시스템 shutdown 을 하기 위해서는 BIOS 에서 ACPI 를 지원해야

하며 또한 ACPI 전원버튼 옵션을 ‘4 seconds delay’로 설정 되어 있어야 합니다. 이 옵션이 ‘instant

off’로 설정되면 전원버튼이 눌러졌을 때 poweroff 루틴을 수행하지 않고 바로 시스템의 전원이 차

Page 29: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 29 -

단 됩니다.

4.3. 빠른 부팅

PRESET LOOP PER JIFFY 기능 지원 (커널 변수: CONFIG_USE_PRESET_LPJ)

커널은 부팅될 때마다 빈 루프를 돌아 udelay 함수에서 사용되는 loops_per_lpj 값을 calibration

하여 얻게 됩니다. 한번 부팅하여 이 값을 알아내어 반복적으로 부팅될 때 calibration 하는 시간만

큼의 이득을 얻을 수 있는데, 아래의 그림과 같이 설정하여 부팅 시간을 단축 시킬 수 있습니다.

“General setup” “Fast boot options”를 설정하고 “Use preset loops_per_jiffy”를 설정하며 “Preset

loops_per_jiffy” 값을 넣어주면 됩니다. Qplus CE Edition 커널에서 그 값은 VIA EPIA-M 보드에 맞추

어 921600 으로 기본 설정되어 있으며, 계산하는 방법은 먼저 이 기능을 끄고 부팅을 하여

/proc/cpuinfo 의 BogoMIPS 값을 확인하여 BogoMIPS * 500 을 입력하면 됩니다. 테스트 결과 VIA

EPIA-M 보드에서는 약 350msec 정도의 부팅 시간을 단축하는 결과를 얻을 수 있습니다.

Page 30: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 30 -

4.4. 부팅 시간 테스팅 툴

타이밍 API 지원

많은 개발자들이 커널의 부팅 시간을 단축하기 위해 많은 노력을 기울이고 있는데, 먼저 테스

팅 도구가 있어야 하며, 이를 지원하기 위해 아래의 그림과 같이 “Kernel hacking”“Enable fast

timestamp support” 를 설정하고 “timestamp constant” 값을 설정해야 합니다. 이 값은 CPU 의 KHz 값

으로 먼저 커널을 부팅하여 /proc/cpuinfo 의 MHz 값에 1000 을 곱한 값을 입력하면 됩니다.

Page 31: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 31 -

타이밍 적용된 printk 지원 (커널 변수: CONFIG_PRINTK_TIMES)

부팅시에 커널 메시지마다 부팅 경과 시간을 알려줄 수 있도록 printk 를 패치하여 지원하고

있으며, 아래의 그림과 같이 “General setup” “Fast boot options”의 “Show timing information on printks”

를 설정하면 이 기능을 활성화 할 수 있습니다.

Page 32: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 32 -

4.5. TV OUT 기능 지원

커널 변수 : CONFIG_FB_CLE266_TVOUT

VIA EPIA-M 보드 지원 Qplus CE Edition 커널은 TV OUT 기능을 지원합니다. TV OUT 은 현재

기본 설정으로 720x480 의 해상도에 32bpp 모드를 지원하도록 되어 있으며, 아래의 그림과 같이

“Device Drivers” “Graphics support””VIA CLE266 support” ”VIA CLE266 TV OUT support”를 활성화 시키

면 됩니다.

Page 33: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 33 -

Page 34: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 34 -

5. Esto 사용 Esto 를 사용하여 이미 설치된 예제(/opt/q+esto/test/face)를 바탕으로 프로젝트 생성, 크로스 컴

파일, 원격 실행, 원격 디버깅 과정을 살펴봅니다. 본 예제는 텍스트 형태의 사람 얼굴 모습을 출

력하는 C++ 프로그램이다. Esto 와 관련된 보다 자세한 내용은 Esto 사용자 매뉴얼

(/opt/q+esto/doc/Esto-User-Guide.pdf)를 참조합니다.

5.1. 타겟 에이전트 실행

타겟 에이전트는 타겟에서 수행되면서, 호스트의 Esto 에게 원격 실행, 디버깅, 모니터링에 필

요한 타겟 서비스를 제공하는 데몬 프로그램입니다. 본 프로그램은 다음과 같이 수행합니다.

타겟 쉘 창에서 다음과 같이 tae 명령을 수행합니다.

5.2. 소스 프로젝트 생성 및 임포트

Esto 워크벤치에서 <File>-<New>-<Project>를 선택하면 다음과 같은 위저드가 나타납니다.

Page 35: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 35 -

위 위저드에서 <Esto Application>-<Esto C++ Project>를 선택하고, 하단의 Next 버튼을 누른

다음, 프로젝트 이름은 다음과 같이 “face”로 입력합니다.

Next 버튼을 누르고 다음과 같이 “Executable X86”을 선택합니다.

Page 36: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 36 -

Next 버튼을 누르고 다음 위저드에서 Finish 버튼을 눌러 face 프로젝트를 생성합니다.

기존 소스 파일을 face 프로젝트로 가져오기 위해서 Esto 워크벤치에서 <File>-<Import> 메

뉴를 선택하면, 다음과 같은 임포트 위저드가 나타나는데 여기서 다음과 같이 <File

System>을 선택하고 Next 버튼을 누릅니다.

생성된 위저드에서 다음과 같이 임포트 디렉토리를 “/opt/q+esto/test/face” 디렉토리로 지정

하여 디렉토리를 열고 Makefile 을 제외한 5 개의 소스 파일과 헤더 파일을 선택합니다.

그리고 Finish 버튼을 눌러 소스 프로그램을 face 프로젝트로 가져옵니다.

Page 37: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 37 -

소스 파일들이 임포트되면 자동으로 크로스 컴파일 되며, 임포트가 완료된 후, face 프로

젝트 트리의 main.cpp 파일을 클릭하여 열고, face 프로젝트를 다음과 같이 선택합니다.

Page 38: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 38 -

5.3. 원격 실행

원격 실행을 위하여 <Run>-<Run> 메뉴를 선택하면, 다음과 같은 실행 위저드가 나타납니

다.

“C/C++ Remote”를 선택하고 좌측 하단의 New 버튼을 누릅니다.

실행과 디버깅을 위하여 중앙의 Debugger 탭을 선택하여 다음과 같이 타겟 IP 를

129.254.180.25 로 선택하고, 공유 라이브러리를 경로를 /opt/q+esto/cdt/i386-linux 로 설정합

니다. (타겟 IP 는 사용자가 실제 설치된 타겟 IP 로 설정하면 되는데, 본 문서에는 타겟

IP 를 129.254.180.25 로 가정합니다.)

Page 39: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 39 -

우측 하단의 Run 버튼을 누르면 컴파일 된 실행 파일이 타겟으로 다운로드 되어 실행되

며, 실행 결과는 다음과 같습니다.

5.4. 원격 디버깅

원격 디버깅을 위하여 <Run>-<Debug> 메뉴를 선택하면, 다음과 같은 디버깅 위저드가 나

타납니다.

Page 40: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 40 -

우측 하단의 Debug 버튼을 눌러 다음과 같은 디버그 퍼스펙티브로 이동합니다.

프로그램은 현재 sceen_init() 함수에서 정지된 상태이며, <Run><Step Into> 메뉴를 선택하여

본 함수로 들어갑니다.

그리고 반복적으로 <Run>-<Step Into> 명령을 수행하면서 변수 x, y 값이 변하는 것을 확

인할 수 있는데, 보다 자세한 디버깅 기능은 Esto 사용자 가이드를 참조합니다.

Page 41: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 41 -

마지막으로 <Run><Terminate> 메뉴를 선택하여, 디버깅을 종료합니다.

Page 42: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 42 -

6. 그래픽 윈도우 설치 및 실행 본 장에서는 타겟 시스템에 설치되는 그래픽 라이브러리 및 윈도우 환경에 대해 설명합니다.

6.1. Tiny-X 설정

Qplus 의 그래픽 윈도우 환경은 Tiny-X 를 사용합니다. 현재 Tiny-X 는 Xfbdev 이고, 부팅 후

자동으로 실행됩니다. 실제 수행하는 부분을 수정하려면, 부팅 시 수행되는 스크립트를 바꿔야 합

니다. 타겟에서는 Xvia 를 선택하여 그래픽 가속 기능을 사용할 수 있는 옵션을 제공합니다.

타겟 시스템의 이미지 사이즈를 줄이기 위하여 트루타입 폰트 만을 사용하고 있습니다. 필요

하면 폰트 디렉토리에 기존의 폰트를 추가하여 사용할 수 있습니다. 응용 프로그램을 제작할 때는

가능하면 xft 를 사용하도록 권장하고 있습니다.

6.2. Matchbox 설치 및 실행

Qplus 에서 윈도우 매니저(window manager)는 Matchbox 를 사용합니다. Matchbox 는 제한된 플랫

폼을 위한 솔루션으로 matchbox-window-manager, matchbox-panel, matchbox-desktop 등을 포함합니다.

Matchbox window manager 는 바이너리 사이즈가 약 50KB 정도 되며 xlib 에만 있으면 실행할 수 있

습니다. X 와 GTK 라이브러리가 설치되었다면, 다음 명령을 실행하여 matchbox 를 설치합니다.

$/usr/bin/matchbox-window-manager &

$/usr/bin/matchbox-panel &

matchbox-window-manager 는 윈도우의 타이틀바 관리, 경계 그리기, 타이틀바 상의 메뉴 및 버

튼에 대한 이벤트 처리 등을 담당합니다. 테마를 적용한다면 이러한 구성 모양을 변경할 수 있습

니다. matchbox-panel 은 디스플레이의 하단에 나타나는 패널을 관리합니다. Matchbox 에서 제공하는

애플릿을 추가하거나 삭제하는 등의 관리를 할 수 있습니다. matchbox-desktop 은 matchbox-panel 과

함께 사용할 수 있는 데스크탑 매니저로서 파일 브라우저와 유사한 구성을 가지고 있습니다.

Matchbox-desktop 은 Qplus CE package 에는 포함되어 있지 않지만 별도로 설치하여 사용할 수 있습

니다.

Matchbox 에서 사용하는 설정 파일을 살펴보면 다음과 같습니다.

/etc/matchbox/kbdconfig : matchbox-window-manager 에서 그랩하고 싶은 키를 정의합니다. 이

파일에 정의된 키값이 발생하면 최상위 윈도우가 키를 처리하는 대신 이 파일에 정의된

Page 43: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 43 -

기능을 실행합니다.

/.matchbox/mbdock.session : matchbox-panel 에 등록된 애플릿의 목록을 관리합니다

Matchbox 에 대한 더 자세한 내용은 Matchbox Homepage(http://matchbox.handhelds.org.)의 문서를

참조합니다.

6.3. GPE 설치 및 실행

GPE 는 X 윈도우 상에서 동작하는 팜탑 및 이동기기를 위한 팜탑 환경으로, PIMS, 게임 등의

작은 응용들로 구성되며, matchbox 와 함께 사용할 때 가장 적합하지만 별개로도 실행은 가능합니

다. Qplus/Esto CE package 에서는 matchbox 와 함께 GPE 가 포함되어 있습니다.

Matchbox 를 실행한 뒤 다음 명령어로 GPE 를 실행합니다.

$/usr/bin/gpe-confd &

$/usr/bin/gpe-appmgr &

gpe-confd 는 GPE configuration daemon 으로 gpe-appmgr 에서 환경 설정을 할 때 필요합니다.

gpe-appmgr 은 GPE application manager 로서 사용자가 GPE 응용 및 환경을 사용할 수 있도록 제공

합니다. Gpe-appmgr 가 실행되면 기타 GPE 응용을 실행할 수 있는 환경이 구성되며, 사용자들은

GUI 상에서 직관적으로 응용들을 실행할 수 있습니다.

GPE 에서 사용하는 설정 파일을 살펴보면 다음과 같습니다.

/usr/share/applications : GPE 상에 나타나는 아이콘들을 정의하는 디렉토리이며, 응용을 새로

추가 하여 GPE 상에 아이콘을 만들고자 한다면 이 디렉토리에 *.desktop 이라는 파일을 생

성해주면 됩니다.

/usr/share/pixmaps : GPE 에서 사용하는 각종 이미지들이 저장된 디렉토리이며, 각 응용이

사용하는 툴바에 사용되는 이미지들 가운데는 /usr/share 에 응용 별로 관리되기도 합니다.

GPE 에 대한 더 자세한 내용은 Matchbox Homepage(http://gpe.handhelds.org/.) 의 문서를 참조 할

수 있다.

Page 44: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 44 -

6.4. GTK+ 응용 테스트 및 컴파일 방법

타겟 빌더를 통해 새로운 응용을 설치한다면 다음과 같이 실행하여 테스트 해 볼 수 있습니

다.

터미널 창을 열고 다음을 실행합니다.

$ /usr/local/bin/scribble-simple &

$ /usr/local/bin/progressbar &

GPE 상에 아이콘을 작성하여 실행할 경우 리부팅을 해야 아이콘 추가가 반영됩니다.

/usr/share/applications/newapp.deskop 을 편집한 다음 리부팅 후 아이콘을 클릭합니다.

GTK+ 응용 크로스 컴파일 방법은 다음 순서로 실행합니다.

타겟빌더에서 gtkplus 패키지 아이콘을 클릭하여 강제 빌드하면 /Project 디렉토리

/build/BUILD/gtk+-1.2.10 가 생성되고 gtk+ 라이브러리가 소스레벨에서 컴파일 됩

니다.

응용 예제 프로그램이 들어있는 디렉토리로 이동한 다음, 다음과 같이 크로스 컴파일을

통해 응용 프로그램을 컴파일 합니다.

$cd /Project디렉토리/build/BUILD/gtk+-1.2.10/examples

$export PATH=/opt/q+esto/cdt/arm-linux/bin:$PATH

$make CC=/opt/q+esto/cdt/bin/arm-linux-gcc

Page 45: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 45 -

부록 A. Qplus/Esto CE Edition 의 버전 정보

1) Qplus 커널 / 표준 라이브러리 항목 패키지 버전 특이사항 Kernel kernel 2.6.6-epia1 보드 관련 패치, 실시간 패치들

glibc 2.3.2 gcc 3.2.2

Cross Tool Chain binutils 2.13.2.1 Library Glibc 2.3.2

2) Utilities 항목 패키지 버전 특이사항 bootloader lilo 21.4.4 Shell busybox 0.60.5 /bin

cat, chgrp, chmod, chown, cp, cpio, date, dd, dmesg, echo, false, grep, gunzip, gzip, hostname, kill, ln, ls, mkdir, mknod, mktemp, more, mount, mv, pidof, ping, ps, pwd, rm, rmdir, sed, sh, sleep, sync, touch, umount, uname, usleep, vi, zcat /sbin freeramdisk, fsck.minix, halt, ifconfig, init, klogd, logread, mk.minix, mkfs.reiserfs, mkswap, pivot_root, poweroff, reboot, route, swapoff, swapon, syslogd

bash 2.4 init initscripts 0.0.1 inittab file and /etc/init.d scripts libsn 0.5 startup notification protocol startup-notification 0.6 startup notification protocol moduleinittools 3.1 config setup 2.4.7 e.g. passwd, group, profile login tinylogin 0.80 addgroup, adduser, delgroup, deluser, login, su, sulogin

tar 1.13.25 Archive unzip 5.50 bzip2 1.0.2 file fileutils 4.1 skellinux 0.0.1 Device files for linux system pciutils 2.1.8 setserial 2.17 telnet 0.17 telnet client and server ftp 0.17 ftp client iproute 2.4.7

device

devfiles 0.0.1 network rsync 2.4.6 linc 1.0.1

wuftp 2.7.0 ftp server tcpwrappers 7.6 xinetd 2.1.8.9pre14 nfs 0.3.3

Daemon

acpid 1.0.4

Page 46: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 46 -

strace 4.4.95 Debugger targetagent 1.0

3) Esto 항목 패키지 버전 특이사항 개발도구 Eclipse Esto 1.2.1

4) 그래픽 관련 라이브러리 및 윈도우 시스템 항목 패키지 버전 특이사항

glib 2.2.2 gtk 2.2.2 atk 1.2.4 pango 1.2.5 freetype 2.1.2 fontconfig 2.2.2 libjpeg 6b libpng 1.2.8 libtiff 3.5.5 ncurses 5.3 cairo 0.2.0 벡터그래픽 라이브러리 gnome-mime-data 2.4.1 gpe 0.9 libgcrypt 1.2.1 Cryptographic library renderext 0.8 xrender 0.8.3 required for pango xft 2.1.2 required for pango libpixman 0.1.2 libgpg-error 1.0

Graphic Library

dbus 0.11.91 tinyX 4.2.0 matchbox 0.9 libmatchbox 1.6

Window System

matchboxcommon 0.9.1

5) 기타 라이브러리 항목 패키지 버전 특이사항 expat 1.95.2 C library for parsing XML libcpp 6.1.2 Libstdc++ shared library openssl 0.9.7a zlib 1.1.4 libIDL 0.8.0 firefox에서 사용. libtermcap 2.0.8 termcap 11.0.1 libmimedir 1.2.1 FR2425 parsing library gmp 4.1.4 GNU MP Bignum library openbex 1.0.1 Object exchange protocol readline 4.3 sqlite 2.8.16

Page 47: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 47 -

6) 웹브라우저 & 미디어플레이어 항목 패키지 버전 특이사항 firefox 1.0.1 mplayer 1.0

Page 48: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 48 -

부록 B. Qplus/Esto CE Edition 의 타겟보드 사양

현재까지 논의 대상으로는 VIA EPIA M-Series Mini-ITX 메인보드이며 주요 디지털 응용들을 위

해 최적화된 x86 플랫폼입니다. 세계에서 가장 작은 17cm x 17cm 크기의 전용 x86 메인보드 플랫

폼으로 작은 사이즈를 요구하는 디지털홈 솔루션에 적당합니다. 주요 하드웨어 스펙은 다음과 같

습니다.

구성 스펙 Processor VIA C3 Chipset VIA CLE266 North Bridge

VT8235 South Bridge System Memory 1 DDR266 DIMM socket

Up to 1G memory size VGA Integrated VIA Unichrome AGP graphics with MPEG-2 Accelerator Expansion Slots 1 PCI Onboard IDE 2 x UltraDMA 133/100/66 connector Onboard Floppy 1 x FDD connector Onboard LAN VIA VT6103 10/100 Base-T Ethernet PHY Onboard Audio VIA VT1616 6 channel AC’97 Codec Onboard TV Out VIA VT1622 TV Out Onboard 1394 VIA VT6307S IEEE1394 Firewire Onboard I/O Connector 1 USB connectors for 2 additional USB 2.0 ports

2 1394 connectors for 2 1394 ports Front-panel audio connectors (Mic and Line Out) CD Audio-in connector FIR connector CIR connector Wake-on-LAN CPU/Sys FAN/Fan 3 1 SMBUS connector 1 LVDS connector (Optional) Serial port connector for second com port

Back Panel I/O 1 PS2 mouse port 1 PS2 keyboard port 1 Parallel port 1 RJ-45 LAN port 1 Serial port- 2 USB 2.0 ports 1 VGA port 1 RCA port (SPDIF or TV out) 1 S-Video port 3 Audio jacks: line-out, line-in and mic-in; can be switched to 6 channel output

BIOS Award BIOS 2/4Mbit flash memory

System Monitoring & Management

Wake-on-LAN, Keyboard-Power-on, Timer-Power-on- System power management AC power failure recovery

Form Factor Mini-ITX (4 layer) 17 cm x 17 cm

Page 49: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 49 -

부록 C. Qplus/Esto CE Edition 의 개발 용 패키지

Qplus/Esto CE Edition 개발용 패키지는 타겟시스템에 필요한 라이브러리 및 응용을 개발하기

위해 호스트에서 컴파일 시 사용할 라이브러리와 헤더 파일들을 포함하는 패키지를 말합니다. 개

발용 패키지들은 실제 타겟 시스템에서 사용할 라이브러리들과 일관성을 유지해야 하기 때문에,

호스트에 설치된 개발용 패키지들은 Qplus/Esto CE Edition 에 포함되는 패키지들과 버전이 일치하

며 동일한 크로스 툴체인에 의존하여 차례로 빌드되어 작성됩니다. 아래 표에 열거한 개발용 패키

지들은 크로스 개발환경에 맞추어 작성된 rpm 패키지로, 이를 통해서 개발된 타겟 시스템 용 라

이브러리들과 응용들은 정확한 하위 라이브러리들의 링크을 유지하고 있습니다.

패키지 버전 비고 qp-atk-i386devel qp-audiofile-i386devel qp-bzip2-i386devel qp-cairo-i386devel qp-dbus-i386devel qp-expat-i386devel qp-fontconfig-i386devel qp-freetype-i386devel qp-glib2-i386devel qp-gmp-i386devel qp-gnome-mime-data-i386devel qp-gtk2-i386devel qp-libIDL-i386devel qp-libgcrypt-i386devel qp-libgpg-error-i386devel qp-libjpeg-i386devel qp-libmatchbox-i386devel qp-libmimedir-i386devel qp-libpixman-i386devel qp-libpng-i386devel qp-libsvg-cairo-i386devel qp-libsvg-i386devel qp-libtermcap-i386devel qp-libtermcap-i386devel qp-libtiff-i386devel qp-libxml2-i386devel qp-libxsettings-client-i386devel qp-libxsettings-i386devel qp-ncurses-i386devel qp-openobex-i386devel qp-openssl-i386devel qp-pango-i386devel qp-renderext-i386devel qp-startup-notification-i386devel qp-tcp_wrappers-i386devel qp-tinyx-i386devel

1.2.4 0.2.6 1.0.2 0.2.0 0.11.91 1.95.5 2.2.2 2.1.2 2.2.2 4.1.4 2.4.1 2.2.2 0.8.0 1.2.1 1.0 6b 1.6 1.2.1 0.1.2 1.2.8 0.1.5 0.1.3 2.0.8 2.0.8-35 v3.5.5 2.6.16 0.10 0.10 5.3 1.0.1 0.9.7a 1.2.5 0.8 0.6 7.6 4.2.0

명명법: 호스트에서 설치되는 일반 패키지와 구분하기 위해 qplus를 의

미하는 ‘qp-‘ prefix 사용.

Page 50: Version 2.0 CE (Consumer Electronics) Edition · 2015-01-22 · Proprietary - 2 - 목 차 1. 개요..... 4 1.1. 이 문서에 대하여

ProprietaryProprietary - 50 -

qp-utempter-i386devel qp-xft-i386devel qp-xrender-i386devel qp-zlib-i386devel qp-readline-i386devel qp-sqlite-i386devel qp-libgpewidget-i386devel

0.5.2 2.1.2 0.8.3 1.1.4 4.3 2.8.16 0.9