44
바닥서부터 만들어보는 타이젠 우 상정

[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

Embed Size (px)

Citation preview

Page 1: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

바닥서부터만들어보는타이젠우 상정

Page 2: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

이번시간에는…

Page 3: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

이번시간에우리는

• 릴리즈된타이젠플렛폼설치하기

– 파티션 생성

– 부트로더, 펌웨어 설치

– 커널 컴파일 및 설치

– 다운로드한 타이젠 플렛폼 설치

• 타이젠플렛폼입맛에맞게만들기

– 최신 코드로 특정 패키지 교체

– 내가 만든 패키지 추가

– 불필요한 패키지 제거

Page 4: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

준비물

우분투 14.04 LTS- 인터넷 사용 가능- 10G 정도 공간

Page 5: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

준비물

우분투 14.04 LTS- 인터넷 사용 가능- 10G 정도 공간

라즈베리파이2 (Mobel B)- 8G MicroSD- USB to Serial Cable

Page 6: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

준비물

우분투 14.04 LTS- 인터넷 사용 가능- 10G 정도 공간

라즈베리파이2 (Mobel B)- 8G MicroSD- USB to Serial Cable

여러분의 손- 하고자 하는 의지- 반나절 정도의 잉여 시간- 여친 / 와이프 / 남친 / 서방의 무관심

Page 7: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

개발환경설정

• 필수도구

– minicom: Serial 통신 프로그램

– git: 소스코드 형상 관리 도구

– 커널 빌드를 위한 ARM toolchain

$ sudo apt-get install git-core minicom$ sudo apt-get install libc6-armel-cross libc6-dev-armel-cross$ sudo apt-get install binutils-arm-linux-gnueabi$ sudo apt-get install libncurses5-dev$ sudo apt-get install gcc-arm-linux-gnueabi$ sudo apt-get install g++-arm-linux-gnueabi

Page 8: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

개발환경설정

• Tizen 관련도구

– gbs (git build system)

– mic (Linux Image Creation Tool)

$ sudo add-apt-repository "deb http://download.tizen.org/tools/latest-release/Ubuntu_14.04 /"$ sudo apt-get update$ sudo apt-get install gbs mic

Page 9: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• 가정

– 8GB MicroSD 사용

– MicroSD가 Linux PC 연결시, /dev/sdc

– Automount disable

• 구성할파티션

Device Boot Start End Blocks Id System/dev/sdc1 * 2048 67583 32768 b W95 FAT32/dev/sdc2 67584 6359039 3145728 83 Linux/dev/sdc3 6359040 7407615 524288 83 Linux/dev/sdc4 7409664 15523839 4058112 83 Linux

Page 10: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• fdisk 실행

• 현재파티션확인및빈파티션테이블생성

$ sudo fdisk /dev/sdcCommand (m for help):

Command (m for help): p...

Device Boot Start End Blocks Id System/dev/sdc1 8192 15523839 7757824 b W95 FAT32Command (m for help): oBuilding a new DOS disklabel with disk identifier 0xcb2f8592.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Page 11: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• BOOT 파티션생성

– bootloader, Linux Kernel, 설정 파일

– FAT32 / BootableCommand (m for help): nPartition type

p primary (0 primary, 0 extended, 4 free)e extended (container for logical partitions)

Select (default p): pPartition number (1-4, default 1): // EnterFirst sector (2048-62521343, default 2048): // EnterLast sector, +sectors or +size{K,M,G,T,P} (2048-62521343, default 62521343): +32M

Created a new partition 1 of type 'Linux' and of size 32 MiB.Command (m for help): tSelected partition 1Partition type (type L to list all types): bChanged type of partition 'Linux' to 'W95 FAT32'.

Command (m for help): aPartition number (1-4): 1

Page 12: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• ROOTFS 파티션생성

– Tizen Platform

– EXT4

Command (m for help): nPartition type:

p primary (1 primary, 0 extended, 3 free)e extended

Select (default p): pPartition number (1-4, default 2): // EnterUsing default value 2First sector (67584-15523839, default 67584): // EnterUsing default value 67584Last sector, +sectors or +size{K,M,G} (67584-15523839, default 15523839): +3072M

Page 13: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• SYSTEMDATA 파티션생성

• USER 파티션생성

Command (m for help): nSelect (default p): pPartition number (1-4, default 3): // EnterUsing default value 3First sector (6359040-15523839, default 6359040): // EnterUsing default value 6359040Last sector, +sectors or +size{K,M,G} (6359040-15523839, default 15523839): +512M

Command (m for help): nSelect (default e): pSelected partition 4First sector (7407616-15523839, default 7407616): // EnterUsing default value 7407616Last sector, +sectors or +size{K,M,G} (7407616-15523839, default 15523839): // Enter Using default value 15523839

Page 14: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• 생성한파티션확인및저장

Command (m for help): p

Disk /dev/sdc: 7948 MB, 7948206080 bytes245 heads, 62 sectors/track, 1021 cylinders, total 15523840 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xef8a422d

Device Boot Start End Blocks Id System/dev/sdc1 * 2048 67583 32768 b W95 FAT32/dev/sdc2 67584 6359039 3145728 83 Linux/dev/sdc3 6359040 7407615 524288 83 Linux/dev/sdc4 7407616 15523839 4058112 83 Linux

Command (m for help): wThe partition table has been altered!

Page 15: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

파티션생성

• 파일시스템생성

$ sudo mkfs.vfat /dev/sdc1 -n BOOT$ sudo mkfs.ext4 /dev/sdc2 -L ROOTFS$ sudo mkfs.ext4 /dev/sdc3 -L SYSTEMDATA$ sudo mkfs.ext4 /dev/sdc4 -L USER

Page 16: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

부트로더 & 펌웨어

• 설치할바이너리파일

– 라즈베리파이 github

• bootcode.bin: Second stage bootloader

• start.elf: GPU firmware

• fixup.dat: GPU / CPU 사이의 SDRAM 설정 파일

• Kernel과 모듈은 직접 build하여 사용 예정

– 타이젠 라즈베리파이 github

• cmdline.txt: Linux Kernel의 boot parameter

• config.txt: 라즈베리파이의 BIOS 설정 파일

Page 17: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

부트로더 & 펌웨어

• 라즈베리파이 firmware git Download

• 타이젠라즈베리파이 git Download

• 바이너리파일설치

$ git clone https://github.com/raspberrypi/firmware rpi2-firmware$ cd rpi2-firmware$ git checkout 89881b54 -b tizen-rpi2

$ git clone https://github.com/krzk/tizen-tv-rpi-stuff

$ sudo mount /dev/sdc1 /mnt$ cd rpi2-firmware$ sudo cp ./boot/bootcode.bin /mnt$ sudo cp ./boot/fixup.dat /mnt$ sudo cp ./boot/start.elf /mnt$ cd ../tizen-tv-rpi-stuff$ sudo cp boot/cmdline.txt /mnt$ sudo cp boot/config.txt /mnt

Page 18: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

리눅스커널

• 라즈베리파이용 타이젠커널 Download

– 그래픽 관련 patch 적용 및 defconfig 정의

• 라즈베리파이 툴 Download

– 부트로더에서 커널 이미지 호환성을 체크하기 때문에,

mkknlimg로 Tagging 필요

$ git clone https://github.com/krzk/tizen-tv-rpi-linux.git

$ git clone https://github.com/raspberrypi/tools

Page 19: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

리눅스커널

• 커널컴파일

– 결과물• arch/arm/boot/zImage

• arch/arm/boot/dts/bcm2709-rpi-2-b.dtb

• mkknlimg로 Tagging

$ cd tizen-tv-rpi-linux$ export ARCH=arm$ export CROSS_COMPILE=arm-linux-gnueabi-$ make tizen_rpi2_defconfig$ make -j16

$ tools/mkimage/mkknlimg --dtok tizen-tv-rpi-linux/arch/arm/boot/zImage \tizen-tv-rpi-linux/arch/arm/boot/zImage

Page 20: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

리눅스커널

• 커널설치

• 설치된파일확인

$ sudo cp tizen-tv-rpi-linux/arch/arm/boot/zImage /mnt/kernel7.img$ sudo cp tizen-tv-rpi-linux/arch/arm/boot/dts/bcm2709-rpi-2-b.dtb /mnt

$ cd /mnt$ lsbcm2709-rpi-2-b.dtb bootcode.bin cmdline.txt config.txtfixup.dat kernel7.img start.elf$ cd$ sudo umount /mnt

Page 21: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

리눅스커널

• 필수커널옵션 (참고사항)

– System 관련• EPOLL, INOTIFY_USER, SIGNALFD, TIMERFD

• CGROUP_*

• SYSFS, PROC_FS, DEVTMPFS

• FHANDLE

– Security 관련• SECURITY_SMACK_*

Page 22: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼

• Released된 타이젠플렛폼 (Milestone 1)

– rootfs.img: Tizen Platform의 Root filesystem

– system-data.img: System 관련 설정 (/opt)

– user.img: 사용자 설정 (/opt/usr)

• download.tizen.org에서 이미지 download$ wget https://download.tizen.org/releases/milestone/tizen/tv-3.0.m1/latest/images/arm-wayland/tv-wayland-armv7l-odroidu3/tizen-tv_20150914.3_tv-wayland-armv7l-odroidu3.tar.gz$ tar xvzf tizen-tv_20150914.3_tv-wayland-armv7l-odroidu3.tar.gz rootfs.imguser.imgsystem-data.img

Page 23: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼

• Tizen 이미지 flashing

– 리눅스 PC에 microSD를 USB에 연결

– MicroSD는 /dev/sdc node에 연결$ sudo dd if=rootfs.img of=/dev/sdc2$ sudo dd if=system-data.img of=/dev/sdc3$ sudo dd if=user.img of=/dev/sdc4

Page 24: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼

• Booting

– SD카드를 라즈베라파이에 삽입

– USB to Serial 케이블 연결

– minicom을 setup 모드로 실행

– Serial 설정• Serial Device: /dev/ttyUSB0

• Speed (baud rate): 115200

• Bits: 8

• Parity: None

• Stop Bits: 1

• Flow Control: None

$ sudo minicom -s

Page 25: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼

• Booting 결과확인

– minicom 화면에 boot message가 출력

– Login시 root / tizen

Uncompressing Linux... done, booting the kernel.[ 0.000000] Booting Linux on physical CPU 0xf00[ 0.000000] Initializing cgroup subsys cpuset[ 0.000000] Initializing cgroup subsys cpu...Welcome to Tizen 3.0.0 (Tizen3/TV)!...[ OK ] Listening on cert-server.socket.[ OK ] Listening on MediaController Service socket....localhost login: rootPassword: // tizen 입력Welcome to Tizenroot@localhost:~#

Page 26: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼

• Booting 결과확인

- 동영상 URL: https://youtu.be/5qjGo29SNcA

Page 27: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼

• GPU 가속화 및DRM 활성화

– libdrm package 수정

– mesa package 수정

– efl package 수정• Tizen Wiki 참조

• Booting된 화면

Page 28: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• 내입맛에맞는최적화가능

– 특정 package 교체• sdbd 최신 코드를 git repo에서 받아 빌드 및 교체

– 신규 모듈을 Tizen 이미지에 추가• sample daemon을 개발 및 추가

– 필요 없는 모듈 제거

Page 29: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

특정패키지교체

• SDB (Smart Development Bridge)

– 개발용 디바이스 관리 도구

– Target의 명령어 실행, 파일 전송, 디버깅

– sdbd는 Target에서 수행하는 daemon process

• GBS (Git Build System)

– Tizen 패키지 개발 도구

– Git 기반으로 관리되는 코드를 개발 PC에서 빌드,

원격 빌드 시스템에 반영

Page 30: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

특정패키지교체

• gbs configuration 파일수정

– Home directory의 .gbs.conf 파일

[general]profile = profile.tizen

[profile.tizen]obs = obs.tizenrepos = repo.tizen_latest, repo.public_3.0_base_arm

[obs.tizen]url = https://api.tizen.org

[repo.public_3.0_base_arm]url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/

[repo.tizen_latest]url = http://download.tizen.org/snapshots/tizen/tv/latest/repos/arm-wayland/packages/

Page 31: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

특정패키지교체

• sdbd 코드 download

• 빌드및결과물확인

$ git clone ssh://[email protected]:29418/platform/core/system/sdbd$ cd sdbd/$ git checkout tizen

$ gbs build -A=armv7l...=== Total succeeded built packages: (1) ===info: generated html format report:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/index.htmlinfo: generated RPM packages can be found from local repo:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/RPMSinfo: generated source RPM packages can be found from local repo:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/SRPMSinfo: build logs can be found in:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/logsinfo: build roots located in:

/home/again4you/GBS-ROOT/local/BUILD-ROOTS/scratch.armv7l.*info: Done$ cd /home/again4you/GBS-ROOT/local/repos/tizen/armv7l/RPMS$ lssdbd-2.1.2-4.armv7l.rpm sdbd-debuginfo-2.1.2-4.armv7l.rpm sdbd-debugsource-2.1.2-4.armv7l.rpm

Page 32: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

신규패키지추가

• Sample project 개발

– 기본 동작• 1초에 1번씩 "sample daemon is alive" 메시지와 count를 출력

• Tizen booting 후, 자동으로 실행

• 비정상 종료 시, 자동으로 재실행

– Files

├── CMakeLists.txt

├── packaging

│ └── sample_proj.spec

├── sample_proj.c

└── sample_proj.service

Page 33: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

신규패키지추가

• sample_proj.c#include <errno.h>

#include <glib.h>

#include <systemd/sd-journal.h>

GMainLoop *loop = NULL;

gboolean timer_callback(gpointer data)

{

int *pcount = (int *)data;

sd_journal_print(LOG_NOTICE, "sample daemon is alive %d\n", (*pcount)++); // Log 메시지출력return TRUE;

}

int main()

{

int count = 0;

loop = g_main_loop_new(NULL, TRUE);

if (!loop)

return -ENOMEM;

g_timeout_add(1000, timer_callback, &count); // 1초에한번씩등록된 Callback 함수호출g_main_loop_run(loop);

}

Page 34: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

신규패키지추가

• sample_proj.service[Unit]Description=sample project daemon for Tizen Talk

[Service]ExecStart=/usr/bin/sample_projRestart=alwaysRestartSec=0

[Install]WantedBy=multi-user.target

Page 35: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

신규패키지추가

• sample_proj.specName: sample_proj

Summary: Sample project for Tizen Talk

Version: 1.0.0

Release: 1

License: Apache-2.0

Source0: %{name}-%{version}.tar.gz

BuildRequires: cmake

BuildRequires: pkgconfig(glib-2.0)

BuildRequires: pkgconfig(libsystemd-journal)

%build

%cmake .

make %{?jobs:-j%jobs}

%install

%make_install

%install_service multi-user.target.wants sample_proj.service

%files

%{_bindir}/sample_proj

%{_unitdir}/sample_proj.service

%{_unitdir}/multi-user.target.wants/sample_proj.service

Page 36: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

신규패키지추가

• 빌드및결과물확인$ gbs build -A=armv7l --include-all...=== Total succeeded built packages: (1) ===info: generated html format report:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/index.htmlinfo: generated RPM packages can be found from local repo:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/RPMSinfo: generated source RPM packages can be found from local repo:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/SRPMSinfo: build logs can be found in:

/home/again4you/GBS-ROOT/local/repos/tizen/armv7l/logsinfo: build roots located in:

/home/again4you/GBS-ROOT/local/BUILD-ROOTS/scratch.armv7l.*info: Done$ cd /home/again4you/GBS-ROOT/local/repos/tizen/armv7l/RPMS$ ls -ltotal 228-rw-r--r-- 1 again4you again4you 5059 1월 15 17:07 sample_proj-1.0.0-1.armv7l.rpm-rw-r--r-- 1 again4you again4you 5034 1월 15 17:07 sample_proj-debuginfo-1.0.0-1.armv7l.rpm-rw-r--r-- 1 again4you again4you 1840 1월 15 17:07 sample_proj-debugsource-1.0.0-1.armv7l.rpm-rw-r--r-- 1 again4you again4you 46130 1월 15 17:03 sdbd-2.1.2-4.armv7l.rpm-rw-r--r-- 1 again4you again4you 96632 1월 15 17:03 sdbd-debuginfo-2.1.2-4.armv7l.rpm-rw-r--r-- 1 again4you again4you 63819 1월 15 17:03 sdbd-debugsource-2.1.2-4.armv7l.rpm

Page 37: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• Kickstart 파일

– Redhat 설치 자동화 설정 파일

– Tizen Platform 이미지 생성에 사용• 파티션 설정

• 설치할 package 설정

• Root password, timezone 등의 시스템 설정

• 바이너리의 Kickstart 파일다운로드

– 압축된 이미지와 같은 경로에 존재

$ wget https://download.tizen.org/releases/milestone/tizen/tv-3.0.m1/latest/images/arm-

wayland/tv-wayland-armv7l-odroidu3/tizen-tv_20150914.3_tv-wayland-armv7l-odroidu3.ks

Page 38: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• Kickstart 파일수정

– 이미지 생성시, 로컬 빌드한 패키지를 우선 참조

lang en_US.UTF-8 keyboard us timezone --utc America/Los_Angelespart / --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label rootfs --fsoptions=defaults,noatimepart /opt --fstype="ext4" --size=512 --ondisk=mmcblk0 --label system-data --fsoptions=defaults,noatimepart /opt/usr --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label user --fsoptions=defaults,noatime

repo --name=local --baseurl=file:///home/again4you/GBS-ROOT/local/repos/tizen/armv7l --priority=1repo --name=tv-wayland_armv7l --baseurl=http://download.tizen.org/releases/milestone/tizen/tv-3.0.m1/tizen-tv_20150914.3/repos/arm-wayland/packages/ --ssl_verify=no --priority=99

Page 39: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• Kickstart 파일수정

– 불필요한 패키지 그룹 제거

…%packages

@Generic Base @TV Base @Generic Console Tools @Generic Packaging @Generic Adaptation @TV Adaptation @Generic Wayland @TV Wayland @TV Middleware …# @TV Bluetooth // Bluetooth와 Telephony 패키지 그룹을 제거# @TV Telephony

sample_proj // sample proj package 신규 추가

Page 40: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• mic 명령어로이미지생성

– 리눅스 이미지 생성/수정을 위한 도구

• Tizen 이미지 Flashing

$ sudo mic --verbose create loop \tizen-tv_20150914.3_tv-wayland-armv7l-odroidu3.ks \--tmpfs -A armv7l –shrink

$ tree mic-outmic-output├── manifest.json├── rootfs.img├── system-data.img├── tizen-tv_20150914.3_tv-wayland-armv7l-odroidu3-201601151725.xml└── user.img

$ sudo dd if=rootfs.img of=/dev/sdc2$ sudo dd if=system-data.img of=/dev/sdc3$ sudo dd if=user.img of=/dev/sdc5

Page 41: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• 동작확인localhost login: rootPassword: Welcome to Tizenroot@localhost:~# root@localhost:/usr/lib/systemd/system# rpm -qa | grep sample_projsample_proj-1.0.0-1.armv7l // sample_proj 패키지 설치

root@localhost:/usr/lib/systemd/system# ps -ef | grep sample_projroot 292 1 0 16:00 ? 00:00:00 /usr/bin/sample_projroot 792 579 0 16:06 ttyAMA0 00:00:00 grep sample_proj

root@localhost:/usr/lib/systemd/system# kill 292root@localhost:/usr/lib/systemd/system# ps -ef | grep sample_projroot 801 1 0 16:06 ? 00:00:00 /usr/bin/sample_proj // 비정상 종료시, 재실행root 804 579 0 16:06 ttyAMA0 00:00:00 grep sample_proj

root@localhost:/usr/lib/systemd/system# journalctl -a –f // 1초에 한번씩, 로그 출력Dec 31 16:06:47 localhost sample_proj[801]: sample daemon is alive 25Dec 31 16:06:48 localhost sample_proj[801]: sample daemon is alive 26Dec 31 16:06:49 localhost sample_proj[801]: sample daemon is alive 27

Page 42: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

타이젠플렛폼이미지생성

• 동작확인

- 동영상 URL: https://youtu.be/HEzSQi0Lvco

Page 43: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

마무리

• 이번시간에한일

– 릴리즈된 타이젠 플렛폼 설치하기

– 타이젠 플렛폼 입맛에 맞게 만들기

• 다음시간에는…

Page 44: [Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠

참고자료

• How to use Mesa with GL/EGL GPU acceleration and DRM for Tizen 3.0

TV profile (wayland backend) on RPI2– https://wiki.tizen.org/wiki/How_to_use_Mesa_with_GL/EGL_GPU_acceleration_and_DRM_f

or_Tizen_3.0_TV_profile_%28wayland_backend%29_on_RPI2#Installing_a_basic_FS

• Porting Tizen to open source hardware devices for beginners (BBB)– http://www.slideshare.net/leonanavi/tdc2014-porting-

tizentoopensourcehardwaredevicesforbeginners

• How to Build and Load Tizen on Odroid U3– https://wiki.tizen.org/wiki/How_to_Build_and_Load_Tizen_on_Odroid_U3