Tizen IVI from scratch Customizing, building and testing Stphane - - PowerPoint PPT Presentation

tizen ivi from scratch customizing building and testing
SMART_READER_LITE
LIVE PREVIEW

Tizen IVI from scratch Customizing, building and testing Stphane - - PowerPoint PPT Presentation

Tizen IVI from scratch Customizing, building and testing Stphane Desneux Senior Software Engineer Eurogiciel <stephane.desneux@open.eurogiciel.org> Eurogiciel Open source development and integration: Maintainers in


slide-1
SLIDE 1

Tizen IVI “from scratch” Customizing, building and testing

Stéphane Desneux Senior Software Engineer Eurogiciel <stephane.desneux@open.eurogiciel.org>

slide-2
SLIDE 2

2

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Eurogiciel

  • Open source development and integration:
  • Maintainers in multiple domains on tizen.org
  • Embedded systems for real-time multimedia:

▪ Widi/Miracast stack ▪ Wayland/Weston ▪ Webkit2 browser with HW acceleration

  • Applications: HTML5/CSS3, jquery, jqmobi, Cordova
  • Location : Vannes (Brittany), France
slide-3
SLIDE 3

3

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Agenda

  • Tizen & Tizen:IVI : short introduction
  • From source code to target devices
  • Customize
  • Build
  • Flash, Run, Test !
slide-4
SLIDE 4

Tizen: a short introduction

slide-5
SLIDE 5

5

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Definition

  • Open source project
  • Hosted at the Linux Foundation
  • Innovative Web-based platform for multiple devices
  • Sponsored by worldwide companies
  • Samsung & Intel are two big contributors
  • Built on industry standards:
  • GNU/Linux kernel, GNU libc
  • POSIX
  • W3C
  • Many upstream Open Source projects
slide-6
SLIDE 6

6

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Tizen Profiles

  • Multiple vertical profiles

(derived from Tizen:Generic)

  • IVI
  • Mobile
  • Future: other devices (TV, ...)
  • Each profile adds its own enhancements
  • Tizen packaging format: RPM
slide-7
SLIDE 7

From source code … … to target devices

slide-8
SLIDE 8

8

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

1: Source code

Remote Local

Developers GIT Repositories Clone source repo

slide-9
SLIDE 9

9

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

2: Developer local build

Developers GIT Repositories Clone source repo Patched sources + RPM Repository Local build (GBS) Build depends Build New Binary

slide-10
SLIDE 10

10

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

3: Verify & push for review

Patched sources + RPM Repository Local build (GBS) Build depends ? Test OK Developpers BAD Push for review Gerrit New Binary

slide-11
SLIDE 11

11

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

4: Review & Merge

? Test OK Developers BAD Push for review Gerrit Reviewers Review Reject Accept and Merge GIT Repositories Build request

slide-12
SLIDE 12

12

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

5: Centralized build

Reviewers Accept and Merge GIT Repositories OBS & Workers Build request Release Managers Accept build request Build

slide-13
SLIDE 13

13

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

6: Publish repositories

OBS & Workers Release Managers Accept build request RPM Repository Build P u b l i s h

slide-14
SLIDE 14

14

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

7: Assemble binary images

RPM Repository P u b l i s h Assemble binary image (MIC) Assemble binary image (MIC) Snapshot Images QA Images +

QA RPMs

slide-15
SLIDE 15

15

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

8: installation on a target device

Assemble binary image (MIC) Snapshot Images QA Images Flash / Install F l a s h / I n s t a l l Target device

slide-16
SLIDE 16

16

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

9: QA report & bugs

QA Engineers F l a s h / I n s t a l l Target device Bug Tracker QA Report Bug Reports Release Images

slide-17
SLIDE 17

Customize

slide-18
SLIDE 18

18

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Why customizing ?

  • Many reasons !
  • On the software side, the vendor has to

keep control from end to end:

  • Private sources
  • Custom hardware
  • Custom middleware
  • Extra APIs
  • Custom applications
  • Custom release & upgrade procedures
slide-19
SLIDE 19

19

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Tizen Architecture

Manufacturer Adaptation Interface

SMACK

slide-20
SLIDE 20

20

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

How to customize ?

Reference Apps R1 R2 ... Rn Tizen Middleware Tizen WRT Low Level APIs Adaptation Kernel bootloaders ... Custom applications C1 C2 ... Cn Custom Middleware Custom adaptation Kernel bootloaders ... Custom components Applications R1 R2 ... Rn Tizen Middleware Tizen WRT Low Level APIs Adaptation Kernel bootloaders ... Custom components C1 C2 ... Cn Custom Middleware

tizen.org private Customized profile

slide-21
SLIDE 21

21

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

A proposal for a private infrastructure

Upstream GIT Private git Developers build Target device clone & rebase QA Team

review

slide-22
SLIDE 22

22

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Stability in movement

  • Use tizen.org as upstream for your private git repos
  • Add customizations:
  • new private repositories
  • private local branches on upstream projects
  • Get the benefits from continuous integration on

tizen.org and keep synced (git rebase).

  • Run a private build infrastructure
  • Generate private binary images for devices
  • Fast development cycles: build / run / test / fix
slide-23
SLIDE 23

Build system

slide-24
SLIDE 24

24

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Open Build Service (OBS)

  • Open and complete platform for building a whole

Linux distribution (used and maintained by openSuse)

  • Provides the infrastructure to build software packages

for various hardware architectures

  • Fast builds: builds are distributed on multiple workers.
  • Smart builds: coutinuous evaluation of the packages

dependencies inside the whole project. After a change on a given package, only the needed dependent packages are rebuilt.

slide-25
SLIDE 25

25

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Tizen build service

  • It's a public, online OBS (read only): build.tizen.org
  • Multiple HW architectures depending on the project:

Intel archs (x86_64, ia 32), ARM (armv7l, aarch64 soon)

  • Main projects:
  • Tizen:Generic X11
  • Tizen:Generic Wayland
  • Tizen:IVI
  • Tizen:Mobile
  • 1 git repo on review.tizen.org == 1 source package in OBS
  • Binary repos are available on download.tizen.org
slide-26
SLIDE 26

26

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Private setup: our experience

  • Used for more than 1 year to ease development of major Tizen

features when a lot of packages are involved : porting Web Runtime to x86_64, Tizen:Generic setup, Multiuser mode (Tizen 3), ...

  • 15 people, 15 desktop computers bought in 2012

(core i7 IvyBridge, 16GB RAM)

  • Server side: we used the official OBS Appliance
  • No dedicated workers. We use the developers' computers as

workers.

  • 15 x 8 cores = 120 cores availables for build most of the time
  • Reduced contention between desktop activity and build activity by

tuning workers config: cgroups, memory, ...

  • Benchmark : a Tizen profile is usually rebuilt from scratch in 4 hours
slide-27
SLIDE 27

Flash, Run, Test !

slide-28
SLIDE 28

28

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Binary Images

  • Binary images are automatically created when the

OBS finishes a build cycle and publishes a new RPM repository.

  • Special QA images are built with extra packages
  • Allow ssh and automatic login (no manual password)
  • Extra QA tools to run test suites automatically and

upload reports

slide-29
SLIDE 29

29

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Run & Test

  • Developers and QA teams can pick the images in

different formats:

  • RAW images (to be dumped on a HDD)
  • LiveUSB images (for USB sticks)
  • The images can be shared easily worldwide to
  • ther teams.
  • The target devices can be installed manually
  • Useful for development and manual QA tests
slide-30
SLIDE 30

30

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

QA automation: our experience

  • Dedicated target devices for automated tests
  • Boot on LAN on a custom Linux distro that runs a

flashing tool: the device is flashed with the fresh Tizen snapshot and rebooted.

  • At the end of the boot procedure, the QA tests start

automatically

  • A final test report is sent to a QAReport server
  • Useful to check: sanity, performances, power

consumption tests … on every snapshot !

slide-31
SLIDE 31

Q & A

Gulf of Morbihan, south of Brittany, France

slide-32
SLIDE 32

Pointers

slide-33
SLIDE 33

33

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Links – Tizen

  • Main site: tizen.org
  • Tizen Association: www.tizenassociation.org
  • Applications Development: developer.tizen.org
  • Platform Development: source.tizen.org
  • Snapshots: download.tizen.org
  • Documentation: developer.tizen.org/documentation
  • Wiki: wiki.tizen.org
  • Bugs: bugs.tizen.org
slide-34
SLIDE 34

34

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Links – Tizen IVI

  • General info: wiki.tizen.org/wiki/IVI
  • GENIVI: genivi.org
  • Bugs: bugs.tizen.org/jira/browse/TIVI
  • Mailing list: lists.tizen.org/listinfo/ivi
  • Releases and repositories:

download.tizen.org/snapshots/tizen/ivi

slide-35
SLIDE 35

35

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Links – Tizen build tools

  • Development tools : download.tizen.org/tools
  • GBS: source.tizen.org/documentation/reference/git-build-system
  • MIC : source.tizen.org/documentation/reference/mic-image-creator
  • OBS : openbuildservice.org
  • GERRIT: code.google.com/p/gerrit
  • GIT: git-scm.com
slide-36
SLIDE 36

36

FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !

Upstream projects

  • Linux Kernel, SMACK, systemd, dbus
  • OpenSSL, Sqlite
  • X, Wayland, EFL, Enlightenment, Cairo
  • Connman, BlueZ, oFono, wpa_supplicant
  • Gstreamer, PulseAudio
  • Webkit
  • Eclipse (SDK)
  • Qemu, U-boot (emulator)
  • GCC, llvm, cmake, git (build)
  • … and more ...