"Session ID: BUD17-412
Session Name: OpenSDK OE Builds on 96Boards - BUD17-412
Speaker: Andrey Konovalov
Track: LHG
★ Session Summary ★
One year ago, LHG launched an effort to organize the LHG components in the OE layer and create public builds. This presentation summarizes the work to add LHG specific features via meta-lhg and merge with support from 96Boards OE meta layers. The specific meta-lhg contents are described and how they are combined to create the LHG OE builds on 96Boards targets.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-412/
Presentation: https://www.slideshare.net/linaroorg/bud17412-opensdk-oe-builds-on-96boards
Video: https://youtu.be/SoGL8ZEW_LQ
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
Keyword: 96Boards, OpenSDK, OE, LHG
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
2. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenSDK OE Builds on 96Boards
● Use the same OE build system as Reference Platform Builds do
● meta-lhg layer contains components developed inside LHG
● The builds are running in jenkins.
Only one image (per every supported board) is built: Weston with Chromium
browser included into the image
● The images produced by these builds are published at snapshots.linaro.org
● Boards supported: DragonBoard-410c, HiKey, Beagle X15
3. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenSDK OE Builds: key components
● HW accelerated graphics: BSP layers (meta-96boards, meta-qcom, meta-ti)
● gstreamer, mesa: Linaro’s meta-backports layer
Current versions: gstreamer 1.10.3, mesa 13.0.4
● OPTEE: Linaro’s meta-linaro/meta-optee
Current version: OPTEE 2.3.0
● Chromium + OpenCDM: LHG’s fork of meta-browser layer
Current version: chromium_v45
● AES descriptor TA: meta-lhg
4. ENGINEERS AND DEVICES
WORKING TOGETHER
Meta-lhg structure
https://github.com/linaro-home/meta-lhg
● meta-lhg layer:
The OpenEmbedded layer for LHG specific components.
lhg-westeros-wpe-image and rpb-westonchromium-image recipes,
optee-aes-decryptor recipe, chromium and portmap bbappends (needed
by OpenCDM), nss_3.19 needed by the (old) chromium version used
● meta-lhg-integration:
This layer contains fixes or workarounds needed to integrate components
external to LHG into public LHG OE builds.
Mostly weston and ti-sgx-ddk-um (powervr userland driver) bbappends
needed to enable this driver in weston, and couple other bbappends
5. ENGINEERS AND DEVICES
WORKING TOGETHER
LHG contributes to meta-rpb and meta-96boards
(or why meta-lhg is that small)
About a year ago meta-lhg was considerably bigger than it is now. Its content was
reviewed, the components which are useful outside LHG have been moved to
proper layers.
E.g.
conf/distro/include/egl.inc in meta-rpb
- selects the proper EGL/GLES provider
meta-96boards/recipes-graphics/mali-userland in meta-96boards
- added public Mali450 userland driver
6. ENGINEERS AND DEVICES
WORKING TOGETHER
Next Steps
● chromium is be updated to a more recent version, the OpenCDM plugin
included
● fix HW accelerated playback in gstreamer with waylandsink (rendering issue)
● ...
7. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenSDK pre-built images
● Jenkins jobs:
○ https://ci.linaro.org/view/All/job/lhg-oe-build/ aka “stable”
May miss most recent changes or have workarounds for the issues which
couldn’t be resolved in short term.
This is the choice for those who need it working out of the box.
○ https://ci.linaro.org/view/All/job/lhg-oe-build-next/ aka “staging”
Uses the tips of the relevant trees
The both builds are based on current yocto release, Morty atm.
● Pre-built images:
“stable” - http://snapshots.linaro.org/openembedded/pre-built/lhg/morty/
“staging” -
http://snapshots.linaro.org/openembedded/pre-built/lhg/morty-staging/
8. ENGINEERS AND DEVICES
WORKING TOGETHER
Building OpenSDK images
See https://github.com/linaro-home/lhg-oe-manifests (the README.md)
Check the “Required Packages” section in Yocto Project Reference Manual.
This is essentially:
repo init -u https://github.com/linaro-home/lhg-oe-manifests.git -b morty
repo sync
source setup-environment
bitbake rpb-westonchromium-image
Two common issues faced when doing an OE build first time:
● Doing it on a VM with 1GB of RAM
● Download (do_fetch) failures when downloading from behind a proxy
An rpb-westonchromium-image build needs approx. 10GB of (virtual) RAM and
100GB of free disk space
10. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenSDK OE Builds on 96Boards
● Use the same OE build system as Reference Platform Builds do
● meta-lhg layer contains components developed inside LHG
● The builds are running in jenkins.
Only one image (per every supported board) is built: Weston with Chromium
browser included into the image
● The images produced by these builds are published at snapshots.linaro.org
● Boards supported: DragonBoard-410c, HiKey, Beagle X15
11. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenSDK OE Builds: key components
● HW accelerated graphics: BSP layers (meta-96boards, meta-qcom, meta-ti)
● gstreamer, mesa: Linaro’s meta-backports layer
Current versions: gstreamer 1.10.3, mesa 13.0.4
● OPTEE: Linaro’s meta-linaro/meta-optee
Current version: OPTEE 2.3.0
● Chromium + OpenCDM: LHG’s fork of meta-browser layer
Current version: chromium_v45
● AES descriptor TA: meta-lhg
12. ENGINEERS AND DEVICES
WORKING TOGETHER
Meta-lhg structure
https://github.com/linaro-home/meta-lhg
● meta-lhg layer:
The OpenEmbedded layer for LHG specific components.
lhg-westeros-wpe-image and rpb-westonchromium-image recipes,
optee-aes-decryptor recipe, chromium and portmap bbappends (needed
by OpenCDM), nss_3.19 needed by the (old) chromium version used
● meta-lhg-integration:
This layer contains fixes or workarounds needed to integrate components
external to LHG into public LHG OE builds.
Mostly weston and ti-sgx-ddk-um (powervr userland driver) bbappends
needed to enable this driver in weston, and couple other bbappends
13. ENGINEERS AND DEVICES
WORKING TOGETHER
LHG contributes to meta-rpb and meta-96boards
(or why meta-lhg is that small)
About a year ago meta-lhg was considerably bigger than it is now. Its content was
reviewed, the components which are useful outside LHG have been moved to
proper layers.
E.g.
conf/distro/include/egl.inc in meta-rpb
- selects the proper EGL/GLES provider
meta-96boards/recipes-graphics/mali-userland in meta-96boards
- added public Mali450 userland driver
14. ENGINEERS AND DEVICES
WORKING TOGETHER
Next Steps
● chromium is be updated to a more recent version, the OpenCDM plugin
included
● fix HW accelerated playback in gstreamer with waylandsink (rendering issue)
● ...
15. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenSDK pre-built images
● Jenkins jobs:
○ https://ci.linaro.org/view/All/job/lhg-oe-build/ aka “stable”
May miss most recent changes or have workarounds for the issues which
couldn’t be resolved in short term.
This is the choice for those who need it working out of the box.
○ https://ci.linaro.org/view/All/job/lhg-oe-build-next/ aka “staging”
Uses the tips of the relevant trees
The both builds are based on current yocto release, Morty atm.
● Pre-built images:
“stable” - http://snapshots.linaro.org/openembedded/pre-built/lhg/morty/
“staging” -
http://snapshots.linaro.org/openembedded/pre-built/lhg/morty-staging/
16. ENGINEERS AND DEVICES
WORKING TOGETHER
Building OpenSDK images
See https://github.com/linaro-home/lhg-oe-manifests (the README.md)
Check the “Required Packages” section in Yocto Project Reference Manual.
This is essentially:
repo init -u https://github.com/linaro-home/lhg-oe-manifests.git -b morty
repo sync
source setup-environment
bitbake rpb-westonchromium-image
Two common issues faced when doing an OE build first time:
● Doing it on a VM with 1GB of RAM
● Download (do_fetch) failures when downloading from behind a proxy
An rpb-westonchromium-image build needs approx. 10GB of (virtual) RAM and
100GB of free disk space