28
1 2016-01-31 FOSDEM https://wiki.tizen.org/wiki/Yocto Connected Bringing to your connected devices using the Yocto Project. Philippe Coval Samsung Open Source Group / SRUK [email protected] Leon Anavi Konsulko Group [email protected] [email protected]

Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

Embed Size (px)

Citation preview

Page 1: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

1 2016-01-31 FOSDEM https://wiki.tizen.org/wiki/Yocto

Connected

Bringing to your connected devices

using the Yocto Project.

Philippe Coval Samsung Open Source Group / SRUK

[email protected]

Leon Anavi Konsulko Group [email protected] [email protected]

Page 2: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

2

Agenda

• Introduction to Tizen

• Building Tizen using Yocto/OE

• Connected device with IoTivity

• Showcases

• Contributing to Tizen

Page 3: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

3

Tizen

• Free and open source software platform

• Uses mainline Linux Kernel

• Introduces a profile concept

• Multiple architectures (32/64 bits, ARM/x86)

• Cross graphics system (Wayland/X11)

• Supports native applications (EFL)

• or HTML5 web apps

Page 4: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

4

Tizen 3 Profiles

• Tizen:Common

• IVI (automotive)

• Wearable

• Mobile

• TV

• Micro (headless)

Page 5: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

5

How to build Tizen from scratch?

• GBS (Git Build System)

• Supported workflow : GBS, MIC …

• Uses tizen Infra (OBS)

• Yocto / OpenEmbedded (OE)

• Alternative build system

• Standalone

Page 6: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

6

The Yocto Project

Linux foundation collaborative project

• create custom Linux-based systems

• for embedded devices

• use OpenEmbedded framework

• Industry & community support

Page 7: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

7

Tizen on Yocto

Project which aims at

building Tizen images

using the tools provided by the Yocto Project

Tizen distribution layer (meta-tizen)

for Yocto/OpenEmbedded

Easy to setup for ARM or Intel

Page 8: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

8

Building Tizen Yocto/OE (1/3)

• Download tizen-distro

• Download meta layers:

• with board support packages (BSP)

• Initialize build environment

git clone git://review.tizen.org/scm/bb/tizen-distro

cd tizen-distro

source ./tizen-common-init-build-env build-common

Page 9: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

9

Building Tizen Yocto/OE (2/3)

• Configure conf/local.conf

• Add BSP meta layer(s) to conf/bblayers.conf

MACHINE ??= "intel-corei7-64"

PARALLEL_MAKE ?= "-j 8"

BB_NUMBER_THREADS ?= "8"

...

...

BBLAYERS += ".../meta-${bsp}"

BBLAYERS_NON_REMOVABLE += ".../meta-${bsp}"

Page 10: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

10

Building Tizen Yocto/OE (3/3)

• Build an image using bitbake

• Get some coffee…

• Install the generated image from

• tmp-glibc/deploy/images/${MACHINE}

Page 11: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

11

Connectivity

• Interoperability, Cloud services : Convergence?

• Provided by Tizen stack with High level APIs

• Networking, Bluetooth, Telephony, NFC.

• Based on FLOSS, Connman, wpa_s, Bluez, ofono (IVI)

• Open to any other/future FLOSS technology

• Hint : Use contrib repository

• IoT: OIC's IoTivity…

Page 12: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

12

IoTivity

• Reference implementation lib (C/C++, binding)

• Standard: Open Interconnect Consortium (OIC)

• FLOSS: Apache-2.0, Linux Foundation

• Services: Interop, comm, discovery, sec, plugins…

• Cross platform : Linux, Tizen, Android, Arduino…

• Strategy: just add meta-oic layer

• linux or tizen target OS : Kernel .config fragments

BBLAYERS += ".../meta-oic"

Page 13: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

13

Showcase More live demos at booth (K)

Page 14: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

14

Raspberry Pi

• Any Raspberry Pi model and versions

• meta-raspberrypi BSP

• + GPU/DRI patches

• Initial porting efforts by Samsung OSG

• Used as reference for Tizen:Micro

• Demo : IoTivity phone controling fan

Page 15: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

15

Tizen phone controls RPI’s fan

Samsung Open Source Group FOSDEM 2016

Page 16: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

16

Kontron M2M device

• Hardware: to embed in your car ?

• Atom, 3G Modem, CAN, 6LowPAN, 12V

• Support: BSP meta-intel / meta-fri2 (dizzy)

• Strategy: IVI or Micro ?

• Tizen:IVI : PVR GPU = SW Rendering on Wayland

• Tizen:Micro : profile for headless

• Demo : IoTivity observer that send SMS (ofono)

Page 17: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

17

Observe IoTivity resource by SMS

Samsung Open Source Group FOSDEM 2016

Page 18: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

18

HummingBoard (i.MX6 SoC)

• Support:

• BSP: meta-fsl-arm and meta-fsl-arm-extra

• Features:

• Hardware graphics acceleration for Wayland/Weston

• Standalone HTML5 applications

• https://wiki.tizen.org/wiki/HummingBoard

Page 19: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

19

Challenges

• Align meta-tizen

• with newer releases of Yocto Project / T.Common

• Support more hardware platforms

• Support BSP = Extend community

• SBCs: Odroids, Artik, RPI0, +MIPS...

• Test and fix meta-tizen (gcc5, security fw, …)

• Focus on Tizen:Micro (headless / IoT)

Page 20: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

20

Contributing to Tizen

• Git / Gerrit

• https://review.tizen.org/gerrit/

• JIRA

• https://bugs.tizen.org/

• Mailing lists

• https://www.tizen.org/community/mailing-lists

• Live online

• irc://irc.freenode.net/#tizen

Page 21: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

21

Contributing to Tizen on Yocto

• tizen-distro layers:

• bitbake, openembedded-core,

• meta-openembedded, meta-qt5

• meta-tizen: git://git.tizen.org/scm/bb/meta-tizen

• Combined using combo-layer script in:

• git://git.tizen.org/scm/bb/tizen-distro

Page 22: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

22

Contributing to Tizen on Yocto

• Exact steps: https://wiki.tizen.org/wiki/\ How_to_contribute_to_Tizen_on_Yocto_Project

• Any contributors welcome

• File bugs in TY Section

• Don't be shy, ask us for support

Page 23: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

23

Summary

• Cooperation between Tizen and Yocto/OE

• Flexibility:

• Autonomous build system

• Extensibility: Add any existing layer

• For supporting new hardware

• Or new IoT features like IoTivity (using meta-oic)

• Open to contributions

Page 24: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

24

Resources:

• https://wiki.tizen.org/wiki/Category:Yocto

• https://wiki.iotivity.org/tizen

• https://www.yoctoproject.org/documentation

• https://wiki.tizen.org/wiki/Build_Tizen_with_Yocto_Project

• http://wiki.tizen.org/wiki/ARM

• http://blogs.s-osg.org/category/tizen/

• http://elinux.org/FRI

• https://wiki.tizen.org/wiki/Tizen_Micro

Page 25: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

25

Q&A ?

Page 26: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

26 2016-01-31 FOSDEM https://wiki.tizen.org/wiki/Yocto

Thank You!

Samsung, Intel, Linux Foundation, JLR, Konsulko group, Eurogiciel/Intel bzh team, Olimex, Kontron, Atmel, Allwinner, Ingenic, SolidRun. Tizen, EFL, Yocto/OE, IoTivity contributors, Flaticons (CC BY 2.0), OSHW, FLOSS communities, FOSDEM team and volunteers...

Page 27: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

27

Demo Sources (WIP)

• meta-yocto-demos

• To stage changes, recipes and configurations

• Helper to build images with simpler “make” call

• Machines : rasberrypi2, odroidc1, …

• Request your SBC to be supported

• iotivity-example

• Minimal client/server + mraa + integration files

Page 28: Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Project

28

Hardware support & Devices

• X86 / x86_64 (Generic) :

• MinnowMAX (OSHW), Intel NUC, FRI2

• Your PC?

• ARM:

• RaspberryPi (ARMv6 / ARMv7)

• HummingBoard (i.MX6 SoC)

• …