RDK Migration to Yocto/OE

RDK Migration to Yocto/OE
Lessons Learned
Presented by
Khem Raj
Sanjay Dorairaj
Date
February
13th
2015
Topics
●
●
●
●
●
●
●
●
RDK Overview
RDK Software Stack
Legacy Build Framework
Challenges with the legacy build framework
Moving to Yocto/OE – What was involved?
Challenges with Yocto/OE
Tools
Coming Soon…
RDK Overview
•
•
•
•
•
RDK – Reference Design Kit for set-tops
Development started in 2012
Managed by RDK-LLC and licensed to a community of
close to 200 members
Linux based software stack
Platform for the Comcast X1 experience and deployed on
more than 5 million set-tops
RDK Software Stack
Motivation & Technical Aspects
of the legacy build framework
●
●
Motivation
o Orchestration framework to build RDK-based binary distributions
o Component level build scripts
o Allow for strict access control policies at multiple granularities
o Separation of fetch & build processes
Technical aspects
o Written using Python
o SVN/Git using Gclient
o Nexus Repository for binary artifacts
Legacy build framework
Challenges with legacy build
system
●
●
●
●
●
●
●
●
●
Scalability
Maintainability
Standards Compliance
Build consistency
Build performance
Collaboration
Documentation & Knowledge base
Proven build system
Common framework
Move to Yocto/OE
- What was involved?
●
●
●
●
●
●
●
●
●
●
●
●
Layered Architecture
Repository Structure
Repo integration
Autotools/Bitbake Migration
Binary Management
sstate cache
Component refactoring
Development workflow
Release workflow
Firmware nomenclature
Code size optimization
Training & Documentation
Challenges with Yocto/OE
●
●
●
●
●
●
●
Developer workflow
Resource intensive
Enhanced prebuilt support
Paradigm shift in development – bitbake, Git, patch management
Adoption challenges
Upstreaming
Component Yocto’ization
Tools
●
●
●
●
●
●
●
●
●
●
Git/Gerrit Integration
Nexus Repository for binary management
Jenkins for build orchestration
RDK Portal – centralized dashboard and build status aggregator
Cache – sstate/opensource
AWS and Openstack server farm
Automated Test and Coverity Integration
Gerrit Dashboard
Changes Management
Release Management
Coming soon…
●
●
●
●
●
●
●
Upgrade to Yocto 1.8
Bitbake optimization
Locked sstate support
Workflow refinements
Toaster integration
More architecture support – ARM, MIPS,x86 (aarch64?)
Tools 2.0