![Page 1: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/1.jpg)
Tizen IVI “from scratch”Customizing, building and testing
Stéphane DesneuxSenior Software EngineerEurogiciel<[email protected]>
![Page 2: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/2.jpg)
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
![Page 3: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/3.jpg)
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 !
![Page 4: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/4.jpg)
Tizen: a short introduction
![Page 5: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/5.jpg)
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
![Page 6: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/6.jpg)
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
![Page 7: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/7.jpg)
From source code …… to target devices
![Page 8: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/8.jpg)
8 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
1: Source code
Remote
Local
Developers
GIT Repositories
Clone source repo
![Page 9: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/9.jpg)
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
NewBinary
![Page 10: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/10.jpg)
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
NewBinary
![Page 11: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/11.jpg)
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
Acceptand
Merge
GIT Repositories
Buildrequest
![Page 12: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/12.jpg)
12 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
5: Centralized build
Reviewers
Acceptand
Merge
GIT RepositoriesOBS & Workers
Buildrequest
Release Managers
Accept build request
Build
![Page 13: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/13.jpg)
13 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
6: Publish repositoriesOBS & Workers
Release Managers
Accept build request
RPM Repository
BuildPublish
![Page 14: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/14.jpg)
14 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
7: Assemble binary images
RPM Repository
Publish
Assemble binary image(MIC)
Assemble binary image(MIC)
Hard DiskCreated by Andrew Fitzsimon
Snapshot Images
QA Images
+ QA RPMs
![Page 15: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/15.jpg)
15 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
8: installation on a target device
Assemble binary image(MIC)
Hard DiskCreated by Andrew Fitzsimon
Snapshot Images
QA Images
Flash / Install
Flash / Install
Target device
![Page 16: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/16.jpg)
16 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
9: QA report & bugs
QA Engineers
Flash / Install
Target device
Bug Tracker
QA Report
Bug Reports
Release Images
![Page 17: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/17.jpg)
Customize
![Page 18: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/18.jpg)
18 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
Why customizing ?
● Many reasons !
● On the software side, the vendor has tokeep control from end to end:
● Private sources● Custom hardware● Custom middleware● Extra APIs● Custom applications● Custom release & upgrade procedures
![Page 19: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/19.jpg)
19 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
Tizen Architecture
ManufacturerAdaptationInterface
SMACK
![Page 20: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/20.jpg)
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
![Page 21: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/21.jpg)
21 FOSDEM'14 Automotive devroom – Tizen “from scratch” : customize, build, test !
A proposal for a private infrastructureUpstream GIT
Private git
Developers build
Target deviceclone
& rebase
QA Team
review
![Page 22: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/22.jpg)
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
![Page 23: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/23.jpg)
Build system
![Page 24: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/24.jpg)
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.
![Page 25: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/25.jpg)
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
![Page 26: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/26.jpg)
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
![Page 27: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/27.jpg)
Flash, Run, Test !
![Page 28: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/28.jpg)
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
![Page 29: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/29.jpg)
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 other teams.
● The target devices can be installed manually
● Useful for development and manual QA tests
![Page 30: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/30.jpg)
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 !
![Page 31: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/31.jpg)
Q & A
Gulf of Morbihan, south of Brittany, France
![Page 32: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/32.jpg)
Pointers
![Page 33: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/33.jpg)
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
![Page 34: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/34.jpg)
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
![Page 35: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/35.jpg)
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
![Page 36: Tizen IVI “from scratch” Customizing, building and testing · 2014-02-04 · Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer](https://reader034.vdocuments.net/reader034/viewer/2022042223/5eca468fce74ca60fc41e13a/html5/thumbnails/36.jpg)
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 ...