greybus for iot - elce berlin 2016 - elinux.org · table of contents 1 introduction 2 greybus for...
TRANSCRIPT
![Page 1: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/1.jpg)
Greybus for IOT
Alexandre Bailon ELCE Berlin 2016
![Page 2: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/2.jpg)
Table of Contents
1 Introduction
2 Greybus for IOT
3 Greybus
4 Samples
5 Limitations / Know issues
![Page 3: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/3.jpg)
Project ARA
What is Project ARA ?
The goal of project ARA was:
to create a modular smartphone
Features
Interchangeable modules
Modules can be added or removed at runtime
There can be many types of modules:
ScreenCameraSpeakerE-ink...
Greybus
An RPC protocol to manage and control modules.
![Page 4: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/4.jpg)
Greybus
Features
hotplug / hot unplug
Modules discovery
Class and protocols to talk to modules
![Page 5: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/5.jpg)
Greybus
Main classes
Camera
Audio
HID
I2C
SPI
GPIO
SDIO
PWM
UART
![Page 6: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/6.jpg)
Greybus for IOT
Why Greybus may be useful for IOT ?
Free
Highly documented
Will be merged to mainline kernel soon (currently inlinux-next)
Keep the intelligence in the host
It just works!
![Page 7: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/7.jpg)
Greybus for IOT
CC26xx SensorTag
![Page 8: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/8.jpg)
Greybus for IOT
![Page 9: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/9.jpg)
Greybus: An application layer of UniPro
What is UniPro ?
UniPro is an interface to interconnect integrated circuits in mobilephone. It implements layer 1 to 4 of the OSI model.
UniPro applications layer
UFS: Universal Flash Storage
CSI-3: Camera Serial Interface
DSI-2: Display Serial Interface
Greybus
![Page 10: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/10.jpg)
Greybus: An application layer of UniPro
UniPro features
High speed physical interface
High bandwidth
Low power
But
Doesn’t support hotplug / hot unplug
Just a network
![Page 11: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/11.jpg)
Greybus / UniPro topology
![Page 12: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/12.jpg)
Greybus / IOT topology
![Page 13: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/13.jpg)
Greybus
![Page 14: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/14.jpg)
Greybus sysfs
sysfs layout
/sys/bus/greybus/devices/
1-1: module1-1.1: interface1-1.1.1: bundle 11-1.1.ctrl: control bundle
![Page 15: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/15.jpg)
Greybus manifest
[ man i f e s t−heade r ]v e r s i o n−major = 0v e r s i o n−minor = 1
[ i n t e r f a c e −d e s c r i p t o r ]vendor−s t r i n g−i d = 1product−s t r i n g−i d = 2
[ s t r i n g−d e s c r i p t o r 1 ]s t r i n g = BayL ib re
[ s t r i n g−d e s c r i p t o r 2 ]s t r i n g = Simple GPIO I n t e r f a c e
[ cpor t−d e s c r i p t o r 1 ]bund le = 1p r o t o c o l = 0x02
[ bundle−d e s c r i p t o r 1 ]c l a s s = 2
![Page 16: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/16.jpg)
Greybus GPIO sample
/sys/class/gpio
exportgpiochip506unexport
cat /sys/class/gpio/gpiochip506/label
greybus gpio
cat /sys/class/gpio/gpiochip506/ngpio
6
echo 506 >/sys/class/gpio/export
echo out >/sys/class/gpio/gpio506/direction
echo 1 >/sys/class/gpio/gpio506/value
![Page 17: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/17.jpg)
Firmware sample
u i n t 8 t g b g p i o d i r e c t i o n o u t ( s t r u c t g b op e r a t i o n ∗ op e r a t i o n ){
s t r u c t g b g p i o d i r e c t i o n o u t r e q u e s t ∗ r e q u e s t =g b o p e r a t i o n g e t r e q u e s t p a y l o a d ( o p e r a t i o n ) ;
g p i o d i r e c t i o n o u t ( r eque s t−>which , r eque s t−>v a l u e ) ;r e t u r n GB OP SUCCESS ;
}
u i n t 8 t g b g p i o s e t v a l u e ( s t r u c t g b op e r a t i o n ∗ op e r a t i o n ){
s t r u c t g b g p i o s e t v a l u e r e q u e s t ∗ r e q u e s t =g b o p e r a t i o n g e t r e q u e s t p a y l o a d ( o p e r a t i o n ) ;
g p i o s e t v a l u e ( r eque s t−>which , r eque s t−>v a l u e ) ;r e t u r n GB OP SUCCESS ;
}
![Page 18: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/18.jpg)
Limitations
Performances
Quite variable
Some protocols only execute one RPC at time
A high round trip latency will break down performances
Power Management
Incomplete
Remote wake up is missing
Protocol overhead
![Page 19: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/19.jpg)
Limitations
Security
No security (except the one provided by transport medium)
Not safe to use for some usages
Other
Need Greybus module on the host
Only work on local network
![Page 20: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/20.jpg)
Source code
Requirements
A Beagle Bone Black to run gbsim
A computer to run Greybus and gbridge
Sources
git clone https://github.com/anobli/gbridge.git -b ELCE
git clone https://github.com/anobli/greybus.git -b ELCE
git clone https://github.com/anobli/gbsim.git -b ELCE
![Page 21: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/21.jpg)
Next steps
Update gbridge and gbsim to work with the latest version ofGreybus
Port Greybus to an OS for MCU.
![Page 22: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/22.jpg)
Contribute
Greybus was driven by Google to develop a module phone
Now, we are free to do what ever we want
![Page 23: Greybus for IOT - ELCE Berlin 2016 - eLinux.org · Table of Contents 1 Introduction 2 Greybus for IOT 3 Greybus 4 Samples 5 Limitations / Know issues](https://reader031.vdocuments.site/reader031/viewer/2022021907/5bc90f6309d3f2ca288c3fe7/html5/thumbnails/23.jpg)
Thank you