yocto for i.mx and power architectures - qoriq sdk - dwf

121
TM Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Upload: harish-ramasamy

Post on 01-Jan-2016

731 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 2: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

ScopeScope

• This training material intends to get users up to speed quickly with a Yocto/Poky based Linux distribution for quickly with a Yocto/Poky based Linux distribution for Freescale's QorIQ and i.MX6 products

• It covers the topics required so as to be able to :It covers the topics required so as to be able to :

− install the software on a Linux host machine

− build standard images for a supported target boardbuild standard images for a supported target board

− customize images

− add packagesadd packages

• BSP or distro developers should review the Yocto, BitBake and OpenEmbedded community documentation for additional details

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

33

Page 3: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 4: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• "An open source collaboration project that provides "An open source collaboration project that provides templates, tools and methods to help you create custom templates, tools and methods to help you create custom LinuxLinux--based systems for embedded products regardless based systems for embedded products regardless LinuxLinux based systems for embedded products regardless based systems for embedded products regardless of the hardware architecture."of the hardware architecture."

• Many individuals as well as companies (e.g. Freescale, Intel, TI, Wind River, Mentor, etc.) are contributing to the Yocto project

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

55

Page 5: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Consists of several separate projects :

−− BitbakeBitbake : parses metadata and runs tasks

−− OpenEmbeddedOpenEmbedded CoreCore : core metadata and build information to build baseline embeddedsystemsy

−− PokyPoky : Yocto example distribution which integrates all the required pieces andmakes an official releasemakes an official release

−− hobhob : GUI tool to select packages to build and easily create custom image

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

66

Page 6: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

77

Page 7: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 8: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Freescale is an active part of the upstream community

• Freescale has created architecture specific layers for QorIQ and i.MX6 , that can be "plugged" into the Yoctobuild system (""dylandylan"" release) allowing users to build build system ( dylandylan   release), allowing users to build for Freescale target machines

−− QorIQ :QorIQ :pre-integrated in an SDK release (currently 1.4) Q QQ Q p g ( y )

−− iMXiMX :: community repository fslfsl‐‐communitycommunity‐‐bspbsp‐‐platformplatform

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

99

Page 9: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

Host Host Distro'sDistro's

• Yocto runs on most recent Linux distributions with Python 2 6/2 7 like 2.6/2.7, like ...

Tested Host DistributionsTested Host Distributions

CentOS 5.x/6.xDebian 6.07Fedora Core 13/17/18/19OpenSUSE 11.4 / 12.1RHEL 5 7RHEL 5.7Ubuntu 10.04/12.04/13.04

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1010

Page 10: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

ISO ImagesISO Images

• Always install the SOURCE ISO image :

QorIQQorIQ‐‐SDKSDK‐‐<version><version>‐‐SOURCESOURCE‐‐<date><date>‐‐yocto.isoyocto.iso− source tar balls and recipes allowing full non-cache builds from

source for any coresource for any core.− this ISO also contains all SDK documentation.

• Binary CACHE ISO (per architecture) :• Binary CACHE ISO (per architecture) :

QorIQQorIQ‐‐SDKSDK‐‐<version><version>‐‐CACHECACHE‐‐<date><date>‐‐yocto.isoyocto.iso− installs pre-compiled installable package RPMsinstalls pre compiled installable package RPMs

• Pre-built IMAGES ISO (per architecture)

QorIQQorIQ‐‐SDKSDK‐‐<version><version>‐‐IMAGESIMAGES‐‐<date><date>‐‐yocto.iso yocto.iso − contains pre-built images ready for target deployment

boot loader/kernel/rfs/ucode/dtb/hv

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1111

boot loader/kernel/rfs/ucode/dtb/hv

Page 11: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• For each ISO image or physical DVD :

$$ sudosudo mount mount ‐‐o loop o loop \\QorIQQorIQ‐‐SDKSDK‐‐<version><version>‐‐[SOURCE|<core>][SOURCE|<core>]‐‐<date><date>‐‐yocto.iso yocto.iso \\//mntmnt//cdromcdrom//mntmnt//cdromcdrom

• As a non-root user (*), run the install script :

$$ //mntmnt//cdromcdrom/install/install

• In the installation path run the script to prepare the p p p penvironment (Internet access may be required) :

$ $ cdcd QorIQQorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yoctoyocto$$ . ./scripts/host. ./scripts/host‐‐prepare.shprepare.sh

(*) Note however you may be required to enable sudo root permission

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1212

Page 12: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The fslfsl‐‐setupsetup‐‐pokypoky script sets up a build environment for a chosen target machine :for a chosen target machine :[QorIQ[QorIQ‐‐SDK] $SDK] $ . ./. ./fslfsl‐‐setupsetup‐‐poky poky ‐‐hh

Usage: source /Usage: source /fslfsl setupsetup poky <poky < m machine>m machine>

[QorIQ[QorIQ‐‐SDK] $SDK] $ . ./. ./fslfsl‐‐setupsetup‐‐poky poky ‐‐hh

Usage: source /Usage: source /fslfsl setupsetup poky <poky < m machine>m machine>Usage: source ./Usage: source ./fslfsl‐‐setupsetup‐‐poky <poky <‐‐m machine>m machine>Optional parameters: Optional parameters: [[‐‐j jobs] [j jobs] [‐‐t tasks] [t tasks] [‐‐s path] [s path] [‐‐p] [p] [‐‐l] [l] [‐‐h]h]Supported ppc machines:b4420qdsSupported ppc machines:b4420qds‐‐64b b4420qds b4860qds64b b4420qds b4860qds‐‐64b b4860qds 64b b4860qds 

bsc9131rdb bsc9132qds p1010rdb p1020rdb p1021rdb p1022ds p1023rdb p1025twr bsc9131rdb bsc9132qds p1010rdb p1020rdb p1021rdb p1022ds p1023rdb p1025twr p2020ds p2020rdb p2041rdb p3041ds p4080ds p5020dsp2020ds p2020rdb p2041rdb p3041ds p4080ds p5020ds 64b p5020ds p5040ds64b p5020ds p5040ds 64b64b

Usage: source ./Usage: source ./fslfsl‐‐setupsetup‐‐poky <poky <‐‐m machine>m machine>Optional parameters: Optional parameters: [[‐‐j jobs] [j jobs] [‐‐t tasks] [t tasks] [‐‐s path] [s path] [‐‐p] [p] [‐‐l] [l] [‐‐h]h]Supported ppc machines:b4420qdsSupported ppc machines:b4420qds‐‐64b b4420qds b4860qds64b b4420qds b4860qds‐‐64b b4860qds 64b b4860qds 

bsc9131rdb bsc9132qds p1010rdb p1020rdb p1021rdb p1022ds p1023rdb p1025twr bsc9131rdb bsc9132qds p1010rdb p1020rdb p1021rdb p1022ds p1023rdb p1025twr p2020ds p2020rdb p2041rdb p3041ds p4080ds p5020dsp2020ds p2020rdb p2041rdb p3041ds p4080ds p5020ds 64b p5020ds p5040ds64b p5020ds p5040ds 64b64bp2020ds p2020rdb p2041rdb p3041ds p4080ds p5020dsp2020ds p2020rdb p2041rdb p3041ds p4080ds p5020ds‐‐64b p5020ds p5040ds64b p5020ds p5040ds‐‐64b 64b p5040ds t4160qdsp5040ds t4160qds‐‐64b t4160qds t4240qds64b t4160qds t4240qds‐‐64b t4240qds64b t4240qds

* [* [‐‐j jobs]:  number of jobs for make to spawn during the compilation stage.j jobs]:  number of jobs for make to spawn during the compilation stage.* [* [‐‐t tasks]: number oft tasks]: number of BitBakeBitBake tasks that can be issued in parallel.tasks that can be issued in parallel.

p2020ds p2020rdb p2041rdb p3041ds p4080ds p5020dsp2020ds p2020rdb p2041rdb p3041ds p4080ds p5020ds‐‐64b p5020ds p5040ds64b p5020ds p5040ds‐‐64b 64b p5040ds t4160qdsp5040ds t4160qds‐‐64b t4160qds t4240qds64b t4160qds t4240qds‐‐64b t4240qds64b t4240qds

* [* [‐‐j jobs]:  number of jobs for make to spawn during the compilation stage.j jobs]:  number of jobs for make to spawn during the compilation stage.* [* [‐‐t tasks]: number oft tasks]: number of BitBakeBitBake tasks that can be issued in parallel.tasks that can be issued in parallel. [ [ t tasks]: number of t tasks]: number of BitBakeBitBake tasks that can be issued in parallel.tasks that can be issued in parallel.* [* [‐‐d path]:  nond path]:  non‐‐default DL_DIR path (download dir)default DL_DIR path (download dir)* [* [‐‐c path]:  nonc path]:  non‐‐default SSTATE_DIR path (shared state Cache dir)default SSTATE_DIR path (shared state Cache dir)* [* [‐‐b path]:  nonb path]:  non‐‐default build dir locationdefault build dir location* [* [‐‐s path]:  append an extra path to s path]:  append an extra path to build_machine_releasebuild_machine_release folderfolder* [* [ l]:l]: litelite mode To help conserve disk space deletes the buildingmode To help conserve disk space deletes the building

 [ [ t tasks]: number of t tasks]: number of BitBakeBitBake tasks that can be issued in parallel.tasks that can be issued in parallel.* [* [‐‐d path]:  nond path]:  non‐‐default DL_DIR path (download dir)default DL_DIR path (download dir)* [* [‐‐c path]:  nonc path]:  non‐‐default SSTATE_DIR path (shared state Cache dir)default SSTATE_DIR path (shared state Cache dir)* [* [‐‐b path]:  nonb path]:  non‐‐default build dir locationdefault build dir location* [* [‐‐s path]:  append an extra path to s path]:  append an extra path to build_machine_releasebuild_machine_release folderfolder* [* [ l]:l]: litelite mode To help conserve disk space deletes the buildingmode To help conserve disk space deletes the building* [* [‐‐l]:       l]:       litelite mode. To help conserve disk space, deletes the building mode. To help conserve disk space, deletes the building 

directory once the package is built.directory once the package is built.* [* [‐‐p]:       append cache and source mirrors (For FSL Internal Use Only)p]:       append cache and source mirrors (For FSL Internal Use Only)* [* [‐‐h]:       helph]:       help

* [* [‐‐l]:       l]:       litelite mode. To help conserve disk space, deletes the building mode. To help conserve disk space, deletes the building directory once the package is built.directory once the package is built.

* [* [‐‐p]:       append cache and source mirrors (For FSL Internal Use Only)p]:       append cache and source mirrors (For FSL Internal Use Only)* [* [‐‐h]:       helph]:       help

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1414

Page 13: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

$$ . ./. ./fslfsl‐‐setupsetup‐‐poky poky ‐‐m p4080ds m p4080ds ‐‐j 4 j 4 ‐‐t 2 t 2 ‐‐llConfiguring for p4080ds board typeConfiguring for p4080ds board type$$ . ./. ./fslfsl‐‐setupsetup‐‐poky poky ‐‐m p4080ds m p4080ds ‐‐j 4 j 4 ‐‐t 2 t 2 ‐‐llConfiguring for p4080ds board typeConfiguring for p4080ds board typeConfiguring for p4080ds board typeConfiguring for p4080ds board typeCreating an Creating an yoctoyocto build output at <...>/QorIQbuild output at <...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/build_p4080ds_releaseyocto/build_p4080ds_releaseRun the following commands to start a build:Run the following commands to start a build:

Configuring for p4080ds board typeConfiguring for p4080ds board typeCreating an Creating an yoctoyocto build output at <...>/QorIQbuild output at <...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/build_p4080ds_releaseyocto/build_p4080ds_releaseRun the following commands to start a build:Run the following commands to start a build:Run the following commands to start a build:Run the following commands to start a build:

bitbake bitbake fslfsl‐‐imageimage‐‐lsblsb‐‐sdksdkbitbake bitbake fslfsl‐‐imageimage‐‐kvmkvmbitbake bitbake fslfsl‐‐imageimage‐‐fullfull

Run the following commands to start a build:Run the following commands to start a build:bitbake bitbake fslfsl‐‐imageimage‐‐lsblsb‐‐sdksdkbitbake bitbake fslfsl‐‐imageimage‐‐kvmkvmbitbake bitbake fslfsl‐‐imageimage‐‐fullfull

Image build commands

ggbitbake bitbake fslfsl‐‐imageimage‐‐flashflashbitbake bitbake fslfsl‐‐imageimage‐‐minimalminimalbitbake bitbake fslfsl‐‐imageimage‐‐corecore

ggbitbake bitbake fslfsl‐‐imageimage‐‐flashflashbitbake bitbake fslfsl‐‐imageimage‐‐minimalminimalbitbake bitbake fslfsl‐‐imageimage‐‐corecoregg

To return to this build environment later please run:To return to this build environment later please run:source <...>/QorIQsource <...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/build p4080ds release/SOURCE THISyocto/build p4080ds release/SOURCE THIS

gg

To return to this build environment later please run:To return to this build environment later please run:source <...>/QorIQsource <...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/build p4080ds release/SOURCE THISyocto/build p4080ds release/SOURCE THIS

• To create multiple build environments use [[‐‐s path]s path] , e g build p4080ds releasebuild p4080ds release version1version1

yocto/build_p4080ds_release/SOURCE_THISyocto/build_p4080ds_release/SOURCE_THISyocto/build_p4080ds_release/SOURCE_THISyocto/build_p4080ds_release/SOURCE_THIS

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1515

e.g. build_p4080ds_releasebuild_p4080ds_release_version1_version1

Page 14: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

QorIQQorIQ SDKSDKQorIQQorIQ SDKSDK

SDK installation folder(shortened name used from here on)

bitbake installationQorIQQorIQ‐‐SDKSDK├── bitbake├── bitbake├── build_p4080ds_release├── build_p4080ds_release├── documentation├── documentation

QorIQQorIQ‐‐SDKSDK├── bitbake├── bitbake├── build_p4080ds_release├── build_p4080ds_release├── documentation├── documentation

Build environmentsbuild_<machine>_<suffix>build_<machine>_<suffix>

├  documentation├  documentation├── meta├── meta├── meta├── meta‐‐fslfsl‐‐networkingnetworking├── meta├── meta‐‐fslfsl‐‐ppcppc

├  documentation├  documentation├── meta├── meta├── meta├── meta‐‐fslfsl‐‐networkingnetworking├── meta├── meta‐‐fslfsl‐‐ppcppc

Community documentation

├  meta├  meta fslfsl ppcppc├── meta├── meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain├── meta├── meta‐‐hobhob├── meta├── meta‐‐oeoe

├  meta├  meta fslfsl ppcppc├── meta├── meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain├── meta├── meta‐‐hobhob├── meta├── meta‐‐oeoe

SDK layers├├├── meta├── meta‐‐skeletonskeleton├── meta├── meta‐‐virtualizationvirtualization├── meta├── meta‐‐yoctoyocto

├├├── meta├── meta‐‐skeletonskeleton├── meta├── meta‐‐virtualizationvirtualization├── meta├── meta‐‐yoctoyoctoScripts ├├ yy├── meta├── meta‐‐yoctoyocto‐‐bspbsp├── scripts├── scripts├── sources├── sources└└

├├ yy├── meta├── meta‐‐yoctoyocto‐‐bspbsp├── scripts├── scripts├── sources├── sources└└

Common source archives

Sh d t t h

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1717

└── └── sstatesstate‐‐cachecache└── └── sstatesstate‐‐cachecacheShared state cache

Page 15: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• After creating a new build environment or returning t i ti th h ll' t ki to an existing one, the shell's current working directory is changed to ...

build build or build_<machine>_<suffix>build_<machine>_<suffix>

... from which bitbakebitbake must be invoked

Some naming conventions used in the remaining material :• a build environment folder <project><project>• a build environment folder <project><project>• a package name <pkg><pkg>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

1919

Page 16: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

$ $ grepgrep ‐‐v v ‐‐e "^#" e "^#" local.conflocal.confDISTRO ?= "poky"DISTRO ?= "poky"

$ $ grepgrep ‐‐v v ‐‐e "^#" e "^#" local.conflocal.confDISTRO ?= "poky"DISTRO ?= "poky"DISTRO ?=  pokyDISTRO ?=  pokyPACKAGE_CLASSES ?= "PACKAGE_CLASSES ?= "package_rpmpackage_rpm""EXTRA_IMAGE_FEATURES = "debugEXTRA_IMAGE_FEATURES = "debug‐‐tweaks"tweaks"USER_CLASSES ?= " USER_CLASSES ?= " buildstatsbuildstats imageimage‐‐mklibsmklibs imageimage‐‐prelinkprelink ""PATCHRESOLVE = "PATCHRESOLVE = "noopnoop""

DISTRO ?=  pokyDISTRO ?=  pokyPACKAGE_CLASSES ?= "PACKAGE_CLASSES ?= "package_rpmpackage_rpm""EXTRA_IMAGE_FEATURES = "debugEXTRA_IMAGE_FEATURES = "debug‐‐tweaks"tweaks"USER_CLASSES ?= " USER_CLASSES ?= " buildstatsbuildstats imageimage‐‐mklibsmklibs imageimage‐‐prelinkprelink ""PATCHRESOLVE = "PATCHRESOLVE = "noopnoop""

SDK uses rpm package management

PATCHRESOLVE   PATCHRESOLVE    noopnoopCONF_VERSION = "1"CONF_VERSION = "1"MACHINE = "MACHINE = "p4080dsp4080ds""DISTRO = "DISTRO = "fslfsl‐‐networking"networking"BB_NUMBER_THREADS = "BB_NUMBER_THREADS = "22""

PATCHRESOLVE   PATCHRESOLVE    noopnoopCONF_VERSION = "1"CONF_VERSION = "1"MACHINE = "MACHINE = "p4080dsp4080ds""DISTRO = "DISTRO = "fslfsl‐‐networking"networking"BB_NUMBER_THREADS = "BB_NUMBER_THREADS = "22""

Set by :  ‐‐m <machine>m <machine>

_ __ _PARALLEL_MAKE = "PARALLEL_MAKE = "‐‐j 4j 4""DL_DIR = "DL_DIR = "/home//home/yt_sdksyt_sdks/QorIQ/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐20130625 20130625 yoctoyocto/build_p4080ds_release/../sources/build_p4080ds_release/../sources""SSTATE_DIR = "/SSTATE_DIR = "/home/home/yt_sdksyt_sdks/QorIQ/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/yocto/ build_p4080ds_release/../build_p4080ds_release/../sstatesstate‐‐cachecache""INHERIT += "ownINHERIT += "own‐‐mirrors"mirrors"

_ __ _PARALLEL_MAKE = "PARALLEL_MAKE = "‐‐j 4j 4""DL_DIR = "DL_DIR = "/home//home/yt_sdksyt_sdks/QorIQ/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐20130625 20130625 yoctoyocto/build_p4080ds_release/../sources/build_p4080ds_release/../sources""SSTATE_DIR = "/SSTATE_DIR = "/home/home/yt_sdksyt_sdks/QorIQ/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/yocto/ build_p4080ds_release/../build_p4080ds_release/../sstatesstate‐‐cachecache""INHERIT += "ownINHERIT += "own‐‐mirrors"mirrors"

Set by :  ‐‐t <threads> t <threads> ‐‐j <jobs>j <jobs>

SSTATE_MIRRORS = "file://.*/(.*)/(.*) file://native/SSTATE_MIRRORS = "file://.*/(.*)/(.*) file://native/\\1/1/\\2 2 \\n"n"BBFILE_PRIORITY_openembeddedBBFILE_PRIORITY_openembedded‐‐layer = "1"layer = "1"SSTATE_PKG_SUFFIX = "SSTATE_PKG_SUFFIX = "txztxz""SSTATE_PKG_TARZIPPROG = "SSTATE_PKG_TARZIPPROG = "xzxz""

SSTATE_MIRRORS = "file://.*/(.*)/(.*) file://native/SSTATE_MIRRORS = "file://.*/(.*)/(.*) file://native/\\1/1/\\2 2 \\n"n"BBFILE_PRIORITY_openembeddedBBFILE_PRIORITY_openembedded‐‐layer = "1"layer = "1"SSTATE_PKG_SUFFIX = "SSTATE_PKG_SUFFIX = "txztxz""SSTATE_PKG_TARZIPPROG = "SSTATE_PKG_TARZIPPROG = "xzxz""LICENSE_FLAGS_WHITELIST = "nonLICENSE_FLAGS_WHITELIST = "non‐‐commercial_netperfcommercial_netperf""COPY_LIC_MANIFEST = "1"COPY_LIC_MANIFEST = "1"COPY_LIC_DIRS = "1"COPY_LIC_DIRS = "1"INHERIT += "INHERIT += "rm_workrm_work""

LICENSE_FLAGS_WHITELIST = "nonLICENSE_FLAGS_WHITELIST = "non‐‐commercial_netperfcommercial_netperf""COPY_LIC_MANIFEST = "1"COPY_LIC_MANIFEST = "1"COPY_LIC_DIRS = "1"COPY_LIC_DIRS = "1"INHERIT += "INHERIT += "rm_workrm_work"" Set by :  ‐‐ll (lite mode)

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

2020

Page 17: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Touch conf/conf/local.conflocal.conf to force a reload of the cache

$ $ touch <project>/conf/touch <project>/conf/local.conflocal.conf$ $ bitbake <bitbake <image_recipeimage_recipe>>$ $ touch <project>/conf/touch <project>/conf/local.conflocal.conf$ $ bitbake <bitbake <image_recipeimage_recipe>>

This will force all configuration files and dependencies to be reparsed

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

2222

Page 18: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• A build environment has a ././tmptmp directory, or ${TMPDIR}${TMPDIR}, which receives all the build output<project>/<project>/tmptmp├── ├── buildstatsbuildstats├ h├ h

<project>/<project>/tmptmp├── ├── buildstatsbuildstats├ h├ h

which receives all the build output

├── cache├── cache├── ├── deploydeploy│   ├── │   ├── imagesimages│   ├── licenses│   ├── licenses│ ├──│ ├── rpmrpm

├── cache├── cache├── ├── deploydeploy│   ├── │   ├── imagesimages│   ├── licenses│   ├── licenses│ ├──│ ├── rpmrpm

Generated image files (kernel, u‐boot, rcw, rfs, ...)

Produced installable .rpm files of built packages│   ├  │   ├  rpmrpm│   └── │   └── sdksdk├── log ├── log ├── ├── pkgdatapkgdata├── ├── sstatesstate‐‐controlcontrol

│   ├  │   ├  rpmrpm│   └── │   └── sdksdk├── log ├── log ├── ├── pkgdatapkgdata├── ├── sstatesstate‐‐controlcontrol

g

├├├── stamps├── stamps├── ├── sysrootssysroots│   ├── p4080ds│   ├── p4080ds│   ├── p4080ds│   ├── p4080ds‐‐tcbootstraptcbootstrap│ └ 86 64│ └ 86 64 lili

├├├── stamps├── stamps├── ├── sysrootssysroots│   ├── p4080ds│   ├── p4080ds│   ├── p4080ds│   ├── p4080ds‐‐tcbootstraptcbootstrap│ └ 86 64│ └ 86 64 lili

Shared header files and libraries

│   └── x86_64│   └── x86_64‐‐linuxlinux├── work├── work└── work└── work‐‐sharedshared

│   └── x86_64│   └── x86_64‐‐linuxlinux├── work├── work└── work└── work‐‐sharedshared

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

2323

Page 19: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

<project>/<project>/tmptmp<project>/<project>/tmptmp− A working directory ${WORKDIR}${WORKDIR},

is created for each package p jp j pp├── ├── buildstatsbuildstats├── cache├── cache├── deploy├── deploy├── log├── log├├ k d tk d t

p jp j pp├── ├── buildstatsbuildstats├── cache├── cache├── deploy├── deploy├── log├── log├├ k d tk d t

is created for each package. All tasks execute from a work directory.Package working 

directories per architecture and board

├── ├── pkgdatapkgdata├── ├── sstatesstate‐‐controlcontrol├── stamps├── stamps├── ├── sysrootssysroots├──├── workwork

├── ├── pkgdatapkgdata├── ├── sstatesstate‐‐controlcontrol├── stamps├── stamps├── ├── sysrootssysroots├──├── workwork

− Working directories are grouped in sub-folders :

<machine><machine>‐‐fslfsl‐‐linuxlinux : board ├  ├  workwork│   │   ├── all├── all‐‐fsl_networkingfsl_networking‐‐linuxlinux│   │   ├── p4080ds├── p4080ds‐‐fsl_networkingfsl_networking‐‐linuxlinux│   │   ├── ppce500mc├── ppce500mc‐‐fsl_networkingfsl_networking‐‐linuxlinux│   │   ├── x86_64├── x86_64‐‐fslsdkfslsdk‐‐linuxlinux

├  ├  workwork│   │   ├── all├── all‐‐fsl_networkingfsl_networking‐‐linuxlinux│   │   ├── p4080ds├── p4080ds‐‐fsl_networkingfsl_networking‐‐linuxlinux│   │   ├── ppce500mc├── ppce500mc‐‐fsl_networkingfsl_networking‐‐linuxlinux│   │   ├── x86_64├── x86_64‐‐fslsdkfslsdk‐‐linuxlinux

< ac e>< ac e> ss uu boa dspecific target side packages like rcw, kernel, u-boot, ...

<core><core>‐‐fslfsl‐‐linuxlinux : non-board ││ ├ _├ _│   │   ├── x86_64├── x86_64‐‐linuxlinux│   │   └── x86_64└── x86_64‐‐nativesdknativesdk‐‐fslsdkfslsdk‐‐linuxlinux└── work└── work‐‐sharedshared

└── gcc└── gcc‐‐4.7.2+fsl4.7.2+fsl‐‐r19r19

││ ├ _├ _│   │   ├── x86_64├── x86_64‐‐linuxlinux│   │   └── x86_64└── x86_64‐‐nativesdknativesdk‐‐fslsdkfslsdk‐‐linuxlinux└── work└── work‐‐sharedshared

└── gcc└── gcc‐‐4.7.2+fsl4.7.2+fsl‐‐r19r19

<core><core> fslfsl linuxlinux : non board specific packages, compiled for the target architecture

<host><host>‐‐**<host><host>‐‐

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

2525

Page 20: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Images are generated by invoking bitbake for an image recipe e grecipe, e.g.

$$ bitbake bitbake fslfsl‐‐imageimage‐‐corecore

• By default multiple image file types are generated simultaneously, defined by :

[meta‐fsl‐networking/images/fsl‐image‐minimal.bb]IMAGE_FSTYPES ?= "tar.gz ext2.gz.uIMAGE_FSTYPES ?= "tar.gz ext2.gz.u‐‐boot jffs2 boot jffs2 ubiubi""

• A *.*.rootfs.tar.gzrootfs.tar.gz image file contains an archive of the file system, suitable for deployment :

to external media, like hard drive

as an NFS-mounted rootfs

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

2727

Page 21: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• fslfsl‐‐imageimage‐‐minimalminimal :: Basic just packages to boot up a board; suitable as a starting pointfor a custom image

•• fslfsl‐‐imageimage‐‐corecore :: fsl‐image‐minimal + FSL-specific packages

•• fslfsl‐‐imageimage‐‐flashflash :: To recover fsl‐image‐full to SD/USB/HD media

•• fslfsl‐‐imageimage‐‐fullfull :: All packages + self-hosted tool chain; deploy to mass storage

•• fslfsl‐‐imageimage‐‐kvmkvm :: fsl‐image‐minimal + KVM + QEMU

•• fslfsl‐‐imageimage‐‐lsblsb‐‐sdksdk :: *unused*

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

2929

gg

Page 22: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

build_p4080dsbuild_p4080ds‐‐release/release/tmptmp/deploy/images//deploy/images/├── fsl_fman_ucode_p4080_r2.0_106_2_9.bin├── fsl_fman_ucode_p4080_r2.0_106_2_9.bin├├

build_p4080dsbuild_p4080ds‐‐release/release/tmptmp/deploy/images//deploy/images/├── fsl_fman_ucode_p4080_r2.0_106_2_9.bin├── fsl_fman_ucode_p4080_r2.0_106_2_9.bin├├

FManFMan microcodemicrocode├── fsl_fman_ucode_p4080_r3.0_106_2_9.bin├── fsl_fman_ucode_p4080_r3.0_106_2_9.bin├── fsl├── fsl‐‐imageimage‐‐fullfull‐‐p4080dsp4080ds‐‐20130826143000.rootfs.tar.gz20130826143000.rootfs.tar.gz├── fsl├── fsl‐‐imageimage‐‐fullfull‐‐p4080ds.tar.gz p4080ds.tar.gz ‐‐> fsl> fsl‐‐imageimage‐‐fullfull‐‐p4080dsp4080ds‐‐20130826143000.rootfs.tar.gz20130826143000.rootfs.tar.gz├── ├── hvhv│   ├── [...]│   ├── [...]│   ├── │   ├── hv.uImagehv.uImage│ └│ └ h i fih i fi

├── fsl_fman_ucode_p4080_r3.0_106_2_9.bin├── fsl_fman_ucode_p4080_r3.0_106_2_9.bin├── fsl├── fsl‐‐imageimage‐‐fullfull‐‐p4080dsp4080ds‐‐20130826143000.rootfs.tar.gz20130826143000.rootfs.tar.gz├── fsl├── fsl‐‐imageimage‐‐fullfull‐‐p4080ds.tar.gz p4080ds.tar.gz ‐‐> fsl> fsl‐‐imageimage‐‐fullfull‐‐p4080dsp4080ds‐‐20130826143000.rootfs.tar.gz20130826143000.rootfs.tar.gz├── ├── hvhv│   ├── [...]│   ├── [...]│   ├── │   ├── hv.uImagehv.uImage│ └│ └ h i fih i fi

RFS image files and RFS image files and symlinkssymlinks

Embedded hypervisor imageEmbedded hypervisor image│   └── │   └── hypervisor.confighypervisor.config├── ├── hvhv‐‐cfgcfg│   ├── README│   ├── README│   └── R_PPSXX_0xe│   └── R_PPSXX_0xe│       └── hv│       └── hv‐‐2p2p‐‐lnxlnx‐‐lnx.dtblnx.dtb├── modules├── modules‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.tgz20130709102656.tgz├──├── rcwrcw

│   └── │   └── hypervisor.confighypervisor.config├── ├── hvhv‐‐cfgcfg│   ├── README│   ├── README│   └── R_PPSXX_0xe│   └── R_PPSXX_0xe│       └── hv│       └── hv‐‐2p2p‐‐lnxlnx‐‐lnx.dtblnx.dtb├── modules├── modules‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.tgz20130709102656.tgz├──├── rcwrcw

HV configuration device treeHV configuration device tree

├  ├  rcwrcw│   ├── README│   ├── README│   ├── R_PPPNN_0x5│   ├── R_PPPNN_0x5│   ├── R_PPSXN_0x10│   ├── R_PPSXN_0x10│   │   ├── rcw_13g_1500mhz_rev2.bin│   │   ├── rcw_13g_1500mhz_rev2.bin│   │   ├── [...]│   │   ├── [...]│   │   └── rcw 5g 1500mhz rev3.bin│   │   └── rcw 5g 1500mhz rev3.bin

├  ├  rcwrcw│   ├── README│   ├── README│   ├── R_PPPNN_0x5│   ├── R_PPPNN_0x5│   ├── R_PPSXN_0x10│   ├── R_PPSXN_0x10│   │   ├── rcw_13g_1500mhz_rev2.bin│   │   ├── rcw_13g_1500mhz_rev2.bin│   │   ├── [...]│   │   ├── [...]│   │   └── rcw 5g 1500mhz rev3.bin│   │   └── rcw 5g 1500mhz rev3.bin

Reset Configuration Word imagesReset Configuration Word images

│ │ _ g_ _│ │ _ g_ _│   ├── R_PPSXX_0xe│   ├── R_PPSXX_0xe│   └── R_RRRSS_0x16│   └── R_RRRSS_0x16├── ├── README_README_‐‐_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt├── u├── u‐‐bootboot‐‐P4080DS.bin P4080DS.bin ‐‐> u> u‐‐bootboot‐‐P4080DSP4080DS‐‐gitgit‐‐r33.binr33.bin├── u├── u‐‐bootboot‐‐P4080DSP4080DS‐‐gitgit‐‐r33.binr33.bin├── [...]├── [...]├├

│ │ _ g_ _│ │ _ g_ _│   ├── R_PPSXX_0xe│   ├── R_PPSXX_0xe│   └── R_RRRSS_0x16│   └── R_RRRSS_0x16├── ├── README_README_‐‐_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt├── u├── u‐‐bootboot‐‐P4080DS.bin P4080DS.bin ‐‐> u> u‐‐bootboot‐‐P4080DSP4080DS‐‐gitgit‐‐r33.binr33.bin├── u├── u‐‐bootboot‐‐P4080DSP4080DS‐‐gitgit‐‐r33.binr33.bin├── [...]├── [...]├├

uu--boot images and boot images and symlinkssymlinks

├── u├── u‐‐bootboot‐‐spispi‐‐P4080DS_SPIFLASHP4080DS_SPIFLASH‐‐gitgit‐‐r33.binr33.bin├── ├── uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.bin20130709102656.bin├── ├── uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.dtb20130709102656.dtb├── ├── uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐usdpaausdpaa‐‐20130709102656.dtb20130709102656.dtb├── uImage├── uImage‐‐p4080ds.bin p4080ds.bin ‐‐> > uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.bin20130709102656.bin├── uImage├── uImage‐‐p4080ds.dtb p4080ds.dtb ‐‐> > uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.dtb20130709102656.dtb└ I└ I 4080d4080d d dtbd dtb II 3 83 8 14 314 3 4080d4080d dd 20130709102656 dtb20130709102656 dtb

├── u├── u‐‐bootboot‐‐spispi‐‐P4080DS_SPIFLASHP4080DS_SPIFLASH‐‐gitgit‐‐r33.binr33.bin├── ├── uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.bin20130709102656.bin├── ├── uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.dtb20130709102656.dtb├── ├── uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐usdpaausdpaa‐‐20130709102656.dtb20130709102656.dtb├── uImage├── uImage‐‐p4080ds.bin p4080ds.bin ‐‐> > uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.bin20130709102656.bin├── uImage├── uImage‐‐p4080ds.dtb p4080ds.dtb ‐‐> > uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐20130709102656.dtb20130709102656.dtb└ I└ I 4080d4080d d dtbd dtb II 3 83 8 14 314 3 4080d4080d dd 20130709102656 dtb20130709102656 dtb

Kernel image, Kernel image, dtb'sdtb's and and symlinkssymlinks

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

3131

└── uImage└── uImage‐‐p4080dsp4080ds‐‐usdpaa.dtb usdpaa.dtb ‐‐> > uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐usdpaausdpaa‐‐20130709102656.dtb20130709102656.dtb└── uImage└── uImage‐‐p4080dsp4080ds‐‐usdpaa.dtb usdpaa.dtb ‐‐> > uImageuImage‐‐‐‐3.83.8‐‐r14.3r14.3‐‐p4080dsp4080ds‐‐usdpaausdpaa‐‐20130709102656.dtb20130709102656.dtb

Page 23: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

Working in a QorIQ Build EnvironmentWorking in a QorIQ Build Environment

<project>/<project>/tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/fsllinux/fsl‐‐imageimage‐‐minimalminimal‐‐1.01.0‐‐r0/r0/rootfsrootfs├── bin├── bin<project>/<project>/tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/fsllinux/fsl‐‐imageimage‐‐minimalminimal‐‐1.01.0‐‐r0/r0/rootfsrootfs├── bin├── bin├  bin├  bin├── boot├── boot├── dev├── dev├── etc├── etc

├  bin├  bin├── boot├── boot├── dev├── dev├── etc├── etc├├├── home├── home├── lib├── lib├── ├── linuxrclinuxrc ‐‐> ../bin/> ../bin/busyboxbusybox

├├├── home├── home├── lib├── lib├── ├── linuxrclinuxrc ‐‐> ../bin/> ../bin/busyboxbusybox├├ yy├── media├── media├── ├── mntmnt├── proc├── proc├├

├├ yy├── media├── media├── ├── mntmnt├── proc├── proc├├├── ├── sbinsbin├── sys├── sys├── ├── tmptmp├├

├── ├── sbinsbin├── sys├── sys├── ├── tmptmp├├├── ├── usrusr└── └── varvar├── ├── usrusr└── └── varvar

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

3333

Page 24: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

$$ bitbake bitbake ‐‐g g fslfsl‐‐imageimage‐‐<variant><variant>Parsing recipes: 100%Parsing recipes: 100%$$ bitbake bitbake ‐‐g g fslfsl‐‐imageimage‐‐<variant><variant>Parsing recipes: 100%Parsing recipes: 100%Parsing recipes: 100% Parsing recipes: 100% |################################################| Time: 00:00:18|################################################| Time: 00:00:18Parsing of 1239 .bb files complete (0 cached, 1239 parsed). 1587 Parsing of 1239 .bb files complete (0 cached, 1239 parsed). 1587 targets, 49 skipped, 0 masked, 0 errors.targets, 49 skipped, 0 masked, 0 errors.

Parsing recipes: 100% Parsing recipes: 100% |################################################| Time: 00:00:18|################################################| Time: 00:00:18Parsing of 1239 .bb files complete (0 cached, 1239 parsed). 1587 Parsing of 1239 .bb files complete (0 cached, 1239 parsed). 1587 targets, 49 skipped, 0 masked, 0 errors.targets, 49 skipped, 0 masked, 0 errors.NOTE: Resolving any missing task queue dependenciesNOTE: Resolving any missing task queue dependenciesNOTE: Preparing NOTE: Preparing runqueuerunqueueNOTE: PN dependencies saved to 'pnNOTE: PN dependencies saved to 'pn‐‐depends.dot'depends.dot'NOTE: Package dependencies saved to 'packageNOTE: Package dependencies saved to 'package‐‐depends dot'depends dot'

NOTE: Resolving any missing task queue dependenciesNOTE: Resolving any missing task queue dependenciesNOTE: Preparing NOTE: Preparing runqueuerunqueueNOTE: PN dependencies saved to 'pnNOTE: PN dependencies saved to 'pn‐‐depends.dot'depends.dot'NOTE: Package dependencies saved to 'packageNOTE: Package dependencies saved to 'package‐‐depends dot'depends dot'NOTE: Package dependencies saved to  packageNOTE: Package dependencies saved to  package‐‐depends.dotdepends.dotNOTE: Task dependencies saved to 'taskNOTE: Task dependencies saved to 'task‐‐depends.dot'depends.dot'

$$ cat pncat pn‐‐depends.dot | depends.dot | grepgrep ‐‐v v ‐‐e 'e '‐‐native' native' ‐‐e 'digraph' e 'digraph' \\

NOTE: Package dependencies saved to  packageNOTE: Package dependencies saved to  package‐‐depends.dotdepends.dotNOTE: Task dependencies saved to 'taskNOTE: Task dependencies saved to 'task‐‐depends.dot'depends.dot'

$$ cat pncat pn‐‐depends.dot | depends.dot | grepgrep ‐‐v v ‐‐e 'e '‐‐native' native' ‐‐e 'digraph' e 'digraph' \\‐‐e 'e '‐‐image' image' ‐‐e 'group' e 'group' ‐‐e 'cross' e 'cross' ‐‐e 'e 'opkgopkg' ' ‐‐e 'e 'postinstpostinst'|'|\\awkawk '{print $1}' | sort | '{print $1}' | sort | uniquniq | | trtr ‐‐d '"'d '"'‐‐e 'e '‐‐image' image' ‐‐e 'group' e 'group' ‐‐e 'cross' e 'cross' ‐‐e 'e 'opkgopkg' ' ‐‐e 'e 'postinstpostinst'|'|\\awkawk '{print $1}' | sort | '{print $1}' | sort | uniquniq | | trtr ‐‐d '"'d '"'

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

3535

Page 25: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

aclacl attrattr basebase‐‐filesfiles basebase‐‐passwdpasswd busyboxbusyboxeglibceglibc eglibceglibc‐‐initialinitial expatexpat gccgcc‐‐runtimeruntime gettextgettextglibglib‐‐2.02.0 initinit‐‐ifupdownifupdown initscriptsinitscripts kbdkbd keymapskeymapskmodkmod libffilibffi libgcclibgcc libusb1libusb1 libusblibusb‐‐compatcompatlinuxlinux‐‐qoriqqoriq‐‐sdksdk modutilsmodutils‐‐initscriptsinitscripts ncursesncurses netbasenetbasepciutilspciutils sysvinitsysvinit sysvinitsysvinit‐‐inittabinittab tinylogintinylogin udevudevudevudev extraconfextraconf updateupdate rc drc d usbutilsusbutils utilutil linuxlinux zlibzlibudevudev‐‐extraconfextraconf updateupdate‐‐rc.drc.d usbutilsusbutils utilutil‐‐linuxlinux zlibzlib

Note : Note : The conditional installation of core- or SoC-specific packages into a rootfs image is specified in :p g g p

metameta‐‐fslfsl‐‐networking/images/fslnetworking/images/fsl‐‐imageimage‐‐private.incprivate.inc

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

3636

Page 26: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• fslfsl‐‐imageimage‐‐flashflash = fslfsl‐‐imageimage‐‐minimalminimal + ...bashbash dosfstoolsdosfstools dropbeardropbear e2fsprogse2fsprogs fmfm‐‐ucodeucodehvhv‐‐cfgcfg hypervisorhypervisor lzolzo mtdmtd‐‐utilsutils netnet‐‐toolstoolsrcwrcw sysfsutilssysfsutils sysklogdsysklogd sysstatsysstat

• fslfsl‐‐imageimage‐‐corecore = fslfsl‐‐imageimage‐‐flashflash + ...alsaalsa‐‐liblib bluez4bluez4 bluezbluez‐‐hcidumphcidump bridgebridge‐‐utilsutils bzip2bzip2coreutilscoreutils dbdb dbusdbus dbusdbus‐‐glibglib debianutilsdebianutilslf illf il hh fifi h lh l filfil flflelfutilselfutils etheth‐‐configconfig ethtoolethtool filefile flexflexflibflib fmcfmc fmlibfmlib fslfsl‐‐tlutlu gawkgawkgdbmgdbm gmpgmp hdparmhdparm i2ci2c‐‐toolstools inetutilsinetutilsinputprotoinputproto iozone3iozone3 iperfiperf iproute2iproute2 ipsecipsec‐‐toolstoolsiptablesiptables iputilsiputils kbprotokbproto libcaplibcap libchecklibcheckiptablesiptables iputilsiputils kbprotokbproto libcaplibcap libchecklibchecklibeditlibedit libhugetlbfslibhugetlbfs libicelibice libnllibnl libpcaplibpcaplibppclibppc libpthreadlibpthread‐‐stubsstubs libsmlibsm libtoollibtool libx11libx11libxaulibxau libxcblibxcb libxdmcplibxdmcp libxml2libxml2 lmbenchlmbenchmdadmmdadm mergemerge‐‐filesfiles muxmux‐‐serverserver netperfnetperf opensslopensslgg pp ppperlperl pkgconfigpkgconfig pmepme‐‐toolstools optopt procpsprocpspsmiscpsmisc pythonpython qoriqqoriq‐‐debugdebug readlinereadline shadowshadowshadowshadow‐‐securettysecuretty shadowshadow‐‐sysrootsysroot skmmskmm kmmhostkmmhost sqlite3sqlite3statstat tcftcf‐‐qoriqdbgqoriqdbg tclaptclap tcpdumptcpdump sdpaasdpaa

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

3737

utilutil‐‐macrosmacros xcbxcb‐‐protoproto xextprotoxextproto xprotoxproto xtransxtrans

Page 27: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 28: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

‐‐‐‐versionversion show program's version number and exitshow program's version number and exit‐‐h, h, ‐‐‐‐helphelp show this help message and exitshow this help message and exit‐‐‐‐versionversion show program's version number and exitshow program's version number and exit‐‐h, h, ‐‐‐‐helphelp show this help message and exitshow this help message and exit‐‐k, k, ‐‐‐‐continuecontinue continuecontinue as much as possible after an erroras much as possible after an error..‐‐f, f, ‐‐‐‐forceforce forceforce run of specified run of specified cmdcmd, regardless of stamp status, regardless of stamp status‐‐c CMD, c CMD, ‐‐‐‐cmdcmd=CMD=CMD specify task to execute. specify task to execute. ‐‐v, v, ‐‐‐‐verboseverbose output more chitoutput more chit‐‐chat to the terminalchat to the terminal

‐‐k, k, ‐‐‐‐continuecontinue continuecontinue as much as possible after an erroras much as possible after an error..‐‐f, f, ‐‐‐‐forceforce forceforce run of specified run of specified cmdcmd, regardless of stamp status, regardless of stamp status‐‐c CMD, c CMD, ‐‐‐‐cmdcmd=CMD=CMD specify task to execute. specify task to execute. ‐‐v, v, ‐‐‐‐verboseverbose output more chitoutput more chit‐‐chat to the terminalchat to the terminal‐‐D, D, ‐‐‐‐debugdebug increase the debug level. increase the debug level. ‐‐n, n, ‐‐‐‐drydry‐‐runrun don't execute, just go through the motionsdon't execute, just go through the motions‐‐s, s, ‐‐‐‐showshow‐‐versionsversions show current and preferred versions of all packagesshow current and preferred versions of all packages‐‐e, e, ‐‐‐‐environmentenvironment show the global or pershow the global or per‐‐package environmentpackage environment

‐‐D, D, ‐‐‐‐debugdebug increase the debug level. increase the debug level. ‐‐n, n, ‐‐‐‐drydry‐‐runrun don't execute, just go through the motionsdon't execute, just go through the motions‐‐s, s, ‐‐‐‐showshow‐‐versionsversions show current and preferred versions of all packagesshow current and preferred versions of all packages‐‐e, e, ‐‐‐‐environmentenvironment show the global or pershow the global or per‐‐package environmentpackage environment‐‐g, g, ‐‐‐‐graphvizgraphviz emit the dependency trees of the specified packages in emit the dependency trees of the specified packages in 

the dot syntaxthe dot syntax‐‐u UI, u UI, ‐‐‐‐uiui=UI=UI user interface to useuser interface to use

‐‐g, g, ‐‐‐‐graphvizgraphviz emit the dependency trees of the specified packages in emit the dependency trees of the specified packages in the dot syntaxthe dot syntax

‐‐u UI, u UI, ‐‐‐‐uiui=UI=UI user interface to useuser interface to use

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4141

Page 29: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• bitbake must always be executed from within the <project><project> directory<project> <project> directory

• When bitbakebitbake (a Python script) runs :

it i d t k− it parses recipes and tasks

− determines task queue dependencies

d t f t k hi h f − prepares and executes a run queue of tasks, which perform the steps needed to obtain the desired result, e.g. image generation

• Any required earlier tasks will be run first(e.g. source will be installed before compilation)

d b b ld d '• To speed up subsequent builds, generated <pkg>.rpm<pkg>.rpm's are saved to the binary cache folders in :

<project>/<project>/tmptmp/deploy/rpm/deploy/rpm

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4242

<project>/<project>/tmptmp/deploy/rpm/deploy/rpm

Page 30: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Invoke bitbakebitbake to run a specific task specified in the recipe of a package or an image e grecipe of a package or an image. e.g.

− generate one of the defined image types

b ild n indi id l p k ge− build an individual package

− build the cross compiler toolchain

Optionally with <CMD><CMD> indicate a specific task to perform − Optionally with ‐‐c <CMD>c <CMD> indicate a specific task to perform

$$ bitbake [bitbake [‐‐c <CMD>] [options] <recipe>c <CMD>] [options] <recipe>

• An initial image built may take a significant amount of time, if many packages are not available in the binary

hcache

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4343

Page 31: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• For most any recipe :build build (default) cleanclean cleansstatecleansstate compilecompileconfigure configure  installinstall listtaskslisttasks patchpatchpopulate_sysrootpopulate_sysroot rm_workrm_work

• For fslfsl‐‐imageimage‐‐** recipes: buildallbuildall rootfsrootfs

• For kernel recipes :o e e ec pesbuildallbuildall compile_kernelmodulescompile_kernelmodules menuconfigmenuconfigsavedefconfigsavedefconfig sizechecksizecheck

• For non-image recipes : deploydeploy

• Task sequence run for generic 'bitbake <package>bitbake <package>' :

fetch fetch  unpack unpack  patch patch  configure configure  compile compile install install  package package  package_writepackage_write

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4444

Page 32: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• cleanclean : remove the work folder of the package

•• cleansstatecleansstate : cleanclean + delete the cached binary

when a known good package fails to build unexpectedly, or an image build fails with " F il d d d i "" F il d d d i " or an image build fails with "error: Failed dependencies""error: Failed dependencies", do ‐‐c c cleansstatecleansstate first on the failing package, then rebuild

•• patchpatch : install source including all patchespp g p

•• menuconfigmenuconfig : run kernel menuconfigmenuconfig

Not for regular use, so extreme caution is advised :

cleanallcleanall : delete the source archive from /sources/sources•• cleanallcleanall : delete the source archive from ../sources../sources

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4545

Page 33: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Assume :

− a package’s source files have been installed in its working directory

the user has directly modified one or more source files− the user has directly modified one or more source files

• In general, if a BitBake build depends on this package :

BitBake will not be able to determine if any local changes − BitBake will not be able to determine if any local changes were made to its source files, so a rebuild will not automatically be triggered.

− Always force clean the package when any source files have been changed : bitbake bitbake ––c clean c clean ––f <pkg>f <pkg>

"You touch it you clean it!""You touch it you clean it!""You touch it, you clean it!""You touch it, you clean it!"

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4646

Page 34: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Enable build output : ‐‐vv

• Generate bitbake debug output : ‐‐D, D, ‐‐DD, DD, ‐‐DDDDDD

• Force rerun of specified task : ‐‐f, f, ‐‐‐‐forceforce

• Dump the environment : ee environmentenvironment• Dump the environment : ‐‐e, e, ‐‐‐‐environmentenvironment

• Dump package dependency list : ‐‐g, g, ‐‐‐‐graphvizgraphviz

Continue even in case of error : kk titi• Continue even in case of error : ‐‐k, k, ‐‐‐‐continuecontinue

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4747

Page 35: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• For each executed bitbake task, log files are written to the package's temptemp folder e g for u boot’s deploydeploy task :the package s temptemp folder, e.g. for u‐boot s deploydeploy task :$ $ cdcd <project>/<project>/tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/ulinux/u‐‐boot/gitboot/git‐‐r33/tempr33/temp$ $ lsls ‐‐la | la | grepgrep deploydeployl 1 f l f l 27 A 26 16 07 l d d l t >lrwxrwxrwx 1 fsl fsl 27 Aug 26 16:07 log.do_deploy_setscene ‐> log.do_deploy_setscene.9178‐rw‐rw‐r‐‐ 1 fsl fsl 835 Aug 26 16:07 log.do_deploy_setscene.9178‐rw‐rw‐r‐‐ 1 fsl fsl 75 Aug 26 16:07 run.do_deploy_setscene.9178

• Whenever a bitbake task for a package fails, the path to the log file capturing the failure is displayed.

• To log output to console (e.g. from make) during the build, add the ‐‐v, v, ‐‐‐‐verboseverbose option

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

4848

Page 36: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

$$ bitbake bitbake fslfsl‐‐imageimage‐‐minimalminimalLoading cache: 100% |############################################################3####| ETA:  00:00:00Loading cache: 100% |############################################################3####| ETA:  00:00:00Loaded 1757 entries from dependency cache.Loaded 1757 entries from dependency cache.

$$ bitbake bitbake fslfsl‐‐imageimage‐‐minimalminimalLoading cache: 100% |############################################################3####| ETA:  00:00:00Loading cache: 100% |############################################################3####| ETA:  00:00:00Loaded 1757 entries from dependency cache.Loaded 1757 entries from dependency cache.

Build Configuration:Build Configuration:BB_VERSION        = "1.18.0"BB_VERSION        = "1.18.0"BUILD_SYS         = "x86_64BUILD_SYS         = "x86_64‐‐linux"linux"NATIVELSBSTRING   = "FedoraNATIVELSBSTRING   = "Fedora‐‐19"19"TARGET_SYS        = "powerpcTARGET_SYS        = "powerpc‐‐fsl_networkingfsl_networking‐‐linux"linux"

Build Configuration:Build Configuration:BB_VERSION        = "1.18.0"BB_VERSION        = "1.18.0"BUILD_SYS         = "x86_64BUILD_SYS         = "x86_64‐‐linux"linux"NATIVELSBSTRING   = "FedoraNATIVELSBSTRING   = "Fedora‐‐19"19"TARGET_SYS        = "powerpcTARGET_SYS        = "powerpc‐‐fsl_networkingfsl_networking‐‐linux"linux"MACHINE           = "MACHINE           = "p4080dsp4080ds""DISTRO            = "DISTRO            = "fslfsl‐‐networkingnetworking""DISTRO_VERSION    = "1.4"DISTRO_VERSION    = "1.4"TUNE_FEATURES     = "m32 TUNE_FEATURES     = "m32 fpufpu‐‐hard hard ppce500mcppce500mc""TARGET_FPU        = "hard"TARGET_FPU        = "hard"metameta

MACHINE           = "MACHINE           = "p4080dsp4080ds""DISTRO            = "DISTRO            = "fslfsl‐‐networkingnetworking""DISTRO_VERSION    = "1.4"DISTRO_VERSION    = "1.4"TUNE_FEATURES     = "m32 TUNE_FEATURES     = "m32 fpufpu‐‐hard hard ppce500mcppce500mc""TARGET_FPU        = "hard"TARGET_FPU        = "hard"metametameta              meta              metameta‐‐yoctoyoctometameta‐‐yoctoyocto‐‐bspbsp = "sdk= "sdk‐‐v1.4.x:5a7532143a49f59a5c85b08d3daf574fb1eccd8d"v1.4.x:5a7532143a49f59a5c85b08d3daf574fb1eccd8d"metameta‐‐fslfsl‐‐ppc      = "sdkppc      = "sdk‐‐v1.4.x:7e0d7796a10d4810242fb25791fc7bc47baeaf7c"v1.4.x:7e0d7796a10d4810242fb25791fc7bc47baeaf7c"metameta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain = "sdk= "sdk‐‐v1.4.x:8ec94cec04527cb971c125b1ddd2c5375034d723"v1.4.x:8ec94cec04527cb971c125b1ddd2c5375034d723"metameta‐‐virtualization = "sdkvirtualization = "sdk‐‐v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93"v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93"

meta              meta              metameta‐‐yoctoyoctometameta‐‐yoctoyocto‐‐bspbsp = "sdk= "sdk‐‐v1.4.x:5a7532143a49f59a5c85b08d3daf574fb1eccd8d"v1.4.x:5a7532143a49f59a5c85b08d3daf574fb1eccd8d"metameta‐‐fslfsl‐‐ppc      = "sdkppc      = "sdk‐‐v1.4.x:7e0d7796a10d4810242fb25791fc7bc47baeaf7c"v1.4.x:7e0d7796a10d4810242fb25791fc7bc47baeaf7c"metameta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain = "sdk= "sdk‐‐v1.4.x:8ec94cec04527cb971c125b1ddd2c5375034d723"v1.4.x:8ec94cec04527cb971c125b1ddd2c5375034d723"metameta‐‐virtualization = "sdkvirtualization = "sdk‐‐v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93"v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93"metameta virtualization    sdkvirtualization    sdk v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93metameta‐‐fslfsl‐‐networking = "(detachedfrom00f7a53):00f7a535029ca7ef8c96ba8e9916d4742166bab0"networking = "(detachedfrom00f7a53):00f7a535029ca7ef8c96ba8e9916d4742166bab0"metameta‐‐oeoemetameta‐‐networking   = "sdknetworking   = "sdk‐‐v1.4.x:7c8dd8f096b64a709175d37a08a4fb02ca263616"v1.4.x:7c8dd8f096b64a709175d37a08a4fb02ca263616"

NOTE: Resolving any missing task queue dependenciesNOTE: Resolving any missing task queue dependencies

metameta virtualization    sdkvirtualization    sdk v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93v1.4.x:ad6df4f59cd7646f61db29e8fa51f878329d6f93metameta‐‐fslfsl‐‐networking = "(detachedfrom00f7a53):00f7a535029ca7ef8c96ba8e9916d4742166bab0"networking = "(detachedfrom00f7a53):00f7a535029ca7ef8c96ba8e9916d4742166bab0"metameta‐‐oeoemetameta‐‐networking   = "sdknetworking   = "sdk‐‐v1.4.x:7c8dd8f096b64a709175d37a08a4fb02ca263616"v1.4.x:7c8dd8f096b64a709175d37a08a4fb02ca263616"

NOTE: Resolving any missing task queue dependenciesNOTE: Resolving any missing task queue dependenciesNOTE: Preparing NOTE: Preparing runqueuerunqueueNOTE: Executing NOTE: Executing SetSceneSetScene TasksTasksNOTE: Executing NOTE: Executing RunQueueRunQueue TasksTasksNOTE: Tasks Summary: NOTE: Tasks Summary: Attempted 1643 tasks of which 1641 didn't need to be rerun and all succeeded.Attempted 1643 tasks of which 1641 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shownSummary: There was 1 WARNING message shown

NOTE: Preparing NOTE: Preparing runqueuerunqueueNOTE: Executing NOTE: Executing SetSceneSetScene TasksTasksNOTE: Executing NOTE: Executing RunQueueRunQueue TasksTasksNOTE: Tasks Summary: NOTE: Tasks Summary: Attempted 1643 tasks of which 1641 didn't need to be rerun and all succeeded.Attempted 1643 tasks of which 1641 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shownSummary: There was 1 WARNING message shown

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

5050

Summary: There was 1 WARNING message shown.Summary: There was 1 WARNING message shown.Summary: There was 1 WARNING message shown.Summary: There was 1 WARNING message shown.

Page 37: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• To install the sources of a package :

$$ bitbake bitbake ‐‐c patch <pkg>c patch <pkg>

Any earlier tasks that must be completed before d hd h ill b i li itl t d fi tdo_patchdo_patch will be implicitly executed first

• Eventually, sources will be installed into :

${WORKDIR}/<${WORKDIR}/<srcsrc folder>folder>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

5252

Page 38: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

$$ cdcd build p4080ds releasebuild p4080ds release$$ cdcd build p4080ds releasebuild p4080ds release$$ cdcd build_p4080ds_releasebuild_p4080ds_release$$ bitbake bitbake ‐‐c patch uc patch u‐‐bootboot[...][...]$$ cdcd tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/ulinux/u‐‐boot/gitboot/git‐‐r33r33

$$ cdcd build_p4080ds_releasebuild_p4080ds_release$$ bitbake bitbake ‐‐c patch uc patch u‐‐bootboot[...][...]$$ cdcd tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/ulinux/u‐‐boot/gitboot/git‐‐r33r33$$ cdcd tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/ulinux/u‐‐boot/gitboot/git‐‐r33r33$$ lslsdeploydeploy‐‐rpmsrpms packagepackage sstatesstate‐‐installinstall‐‐deploydeploy sstatesstate‐‐installinstall‐‐populatepopulate‐‐liclicdeploydeploy‐‐uu‐‐bootboot packagespackages‐‐splitsplit sstatesstate‐‐installinstall‐‐deploydeploy‐‐rpmrpm sstatesstate‐‐installinstall‐‐populatepopulate‐‐sysrootsysrootgitgit pkgdatapkgdata sstatesstate‐‐installinstall‐‐packagepackage sysrootsysroot‐‐destdirdestdir

$$ cdcd tmptmp/work/p4080ds/work/p4080ds‐‐fslfsl‐‐linux/ulinux/u‐‐boot/gitboot/git‐‐r33r33$$ lslsdeploydeploy‐‐rpmsrpms packagepackage sstatesstate‐‐installinstall‐‐deploydeploy sstatesstate‐‐installinstall‐‐populatepopulate‐‐liclicdeploydeploy‐‐uu‐‐bootboot packagespackages‐‐splitsplit sstatesstate‐‐installinstall‐‐deploydeploy‐‐rpmrpm sstatesstate‐‐installinstall‐‐populatepopulate‐‐sysrootsysrootgitgit pkgdatapkgdata sstatesstate‐‐installinstall‐‐packagepackage sysrootsysroot‐‐destdirdestdirgitgit pkgdatapkgdata sstatesstate‐‐installinstall‐‐packagepackage sysrootsysroot‐‐destdirdestdirlicenselicense‐‐destdirdestdir pseudopseudo sstatesstate‐‐installinstall‐‐packagedatapackagedata temptempgitgit pkgdatapkgdata sstatesstate‐‐installinstall‐‐packagepackage sysrootsysroot‐‐destdirdestdirlicenselicense‐‐destdirdestdir pseudopseudo sstatesstate‐‐installinstall‐‐packagedatapackagedata temptemp

u‐boot supplied as a git repo tar ballsource folder is called gitgit

$$ lsls gitgitapiapi config.mk  drivers    include      config.mk  drivers    include      mkconfigmkconfig rules.mkrules.mkarch COPYING dts libarch COPYING dts lib nand splnand spl snapshot commitsnapshot commit

$$ lsls gitgitapiapi config.mk  drivers    include      config.mk  drivers    include      mkconfigmkconfig rules.mkrules.mkarch COPYING dts libarch COPYING dts lib nand splnand spl snapshot commitsnapshot commitarch        COPYING    dts        lib          arch        COPYING    dts        lib          nand_splnand_spl snapshot.commitsnapshot.commitboard       CREDITS    examples   MAINTAINERS  net       board       CREDITS    examples   MAINTAINERS  net       splsplboards.cfg  disk       fs         MAKEALL      post      testboards.cfg  disk       fs         MAKEALL      post      testcommon      doc        helper.mk  common      doc        helper.mk  MakefileMakefile README    toolsREADME    tools

arch        COPYING    dts        lib          arch        COPYING    dts        lib          nand_splnand_spl snapshot.commitsnapshot.commitboard       CREDITS    examples   MAINTAINERS  net       board       CREDITS    examples   MAINTAINERS  net       splsplboards.cfg  disk       fs         MAKEALL      post      testboards.cfg  disk       fs         MAKEALL      post      testcommon      doc        helper.mk  common      doc        helper.mk  MakefileMakefile README    toolsREADME    tools

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

5353

Page 39: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Machine specific configuration :metameta‐‐fslfsl‐‐ppc/confppc/conf└── machine└── machine

├ i├ i

metameta‐‐fslfsl‐‐ppc/confppc/conf└── machine└── machine

├ i├ ip g

− Shared hardware tuning definitions: <core>.inc<core>.inc files

├── e500mc.inc├── e500mc.inc├── e500v2.inc├── e500v2.inc├── e5500├── e5500‐‐64b.inc64b.inc├── e5500.inc├── e5500.inc├├ b ib i

├── e500mc.inc├── e500mc.inc├── e500v2.inc├── e500v2.inc├── e5500├── e5500‐‐64b.inc64b.inc├── e5500.inc├── e5500.inc├├ b ib i

− Machine specific config meta-data :<machine>.conf<machine>.conf files

Example : P4080DS

├── e6500├── e6500‐‐64b.inc64b.inc├── e6500.inc├── e6500.inc├── mpc8536ds.conf├── mpc8536ds.conf

[...][...]├ 4080d f├ 4080d f

├── e6500├── e6500‐‐64b.inc64b.inc├── e6500.inc├── e6500.inc├── mpc8536ds.conf├── mpc8536ds.conf

[...][...]├ 4080d f├ 4080d f• Example : P4080DS

[meta[meta‐‐fslfsl‐‐ppc/conf/machine/p4080ds.conf]ppc/conf/machine/p4080ds.conf]require require e500mc.ince500mc.inc[meta[meta‐‐fslfsl‐‐ppc/conf/machine/p4080ds.conf]ppc/conf/machine/p4080ds.conf]require require e500mc.ince500mc.inc

├── p4080ds.conf├── p4080ds.conf├── [...]├── [...]└── t4240qds.conf└── t4240qds.conf

├── p4080ds.conf├── p4080ds.conf├── [...]├── [...]└── t4240qds.conf└── t4240qds.conf

require require conf/machine/include/socconf/machine/include/soc‐‐family.incfamily.inc

SOC_FAMILY = "p4080" SOC_FAMILY = "p4080" UBOOT_MACHINES = UBOOT_MACHINES = "P4080DS P4080DS_SECURE_BOOT P4080DS_SDCARD P4080DS_SPIFLASH ""P4080DS P4080DS_SECURE_BOOT P4080DS_SDCARD P4080DS_SPIFLASH "KERNEL DEVICETREEKERNEL DEVICETREE "${S}/ h/ /b t/dt / 4080d dt"${S}/ h/ /b t/dt / 4080d dt \\

require require conf/machine/include/socconf/machine/include/soc‐‐family.incfamily.inc

SOC_FAMILY = "p4080" SOC_FAMILY = "p4080" UBOOT_MACHINES = UBOOT_MACHINES = "P4080DS P4080DS_SECURE_BOOT P4080DS_SDCARD P4080DS_SPIFLASH ""P4080DS P4080DS_SECURE_BOOT P4080DS_SDCARD P4080DS_SPIFLASH "KERNEL DEVICETREEKERNEL DEVICETREE "${S}/ h/ /b t/dt / 4080d dt"${S}/ h/ /b t/dt / 4080d dt \\KERNEL_DEVICETREE = KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p4080ds.dts "${S}/arch/powerpc/boot/dts/p4080ds.dts \\

${S}/arch/powerpc/boot/dts/p4080ds${S}/arch/powerpc/boot/dts/p4080ds‐‐usdpaa.dts"usdpaa.dts"KERNEL_DEFCONFIG = KERNEL_DEFCONFIG = "${S}/arch/powerpc/"${S}/arch/powerpc/configsconfigs/corenet32_smp_defconfig"/corenet32_smp_defconfig"[...][...]

KERNEL_DEVICETREE = KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p4080ds.dts "${S}/arch/powerpc/boot/dts/p4080ds.dts \\${S}/arch/powerpc/boot/dts/p4080ds${S}/arch/powerpc/boot/dts/p4080ds‐‐usdpaa.dts"usdpaa.dts"

KERNEL_DEFCONFIG = KERNEL_DEFCONFIG = "${S}/arch/powerpc/"${S}/arch/powerpc/configsconfigs/corenet32_smp_defconfig"/corenet32_smp_defconfig"[...][...]

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

5555

Page 40: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• UBOOT_MACHINES UBOOT_MACHINES : enumeration of u-boot configs to build

− check u-boot <source tree>/boards.cfg<source tree>/boards.cfg for available configs :

$ $ grepgrep P4080DS boards.cfgP4080DS boards.cfg$ $ grepgrep P4080DS boards.cfgP4080DS boards.cfgP4080DS P4080DS  powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescaleP4080DS_SDCARDP4080DS_SDCARD powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SECURE_BOOTP4080DS_SECURE_BOOT powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SPIFLASHP4080DS_SPIFLASH powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]

P4080DS P4080DS  powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescaleP4080DS_SDCARDP4080DS_SDCARD powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SECURE_BOOTP4080DS_SECURE_BOOT powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SPIFLASHP4080DS_SPIFLASH powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SRIOBOOT_MASTERP4080DS_SRIOBOOT_MASTER powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SRIOBOOT_SLAVEP4080DS_SRIOBOOT_SLAVE powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SRIOBOOT_MASTERP4080DS_SRIOBOOT_MASTER powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]P4080DS_SRIOBOOT_SLAVEP4080DS_SRIOBOOT_SLAVE powerpcpowerpc mpc85xxmpc85xx corenet_dscorenet_ds freescalefreescale [...][...]

− Add any board configs needed to UBOOT_MACHINESUBOOT_MACHINES

− All board configs will be built, with a separate output folder for each in the gitgit source foldereach in the gitgit source folder

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

5757

Page 41: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• JFFS2_ERASEBLOCKJFFS2_ERASEBLOCK : the flash JFFS2 erase block size

•• KERNEL_DEFCONFIG KERNEL_DEFCONFIG : maybe be present to define the default kernel defconfigdefconfig

d f lt d i t•• KERNEL_DEVICETREEKERNEL_DEVICETREE : one or more default device trees,all of which will be built

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

5959

Page 42: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• To add a new custom board to a Yocto/Poky installation :

− create a custom layer (more on that later), to keep your original work separate from original release meta-data

copy a known good <machine> conf<machine> conf to <<new machinenew machine> conf> conf− copy a known good <machine>.conf<machine>.conf to <<new_machinenew_machine>.conf>.conf

− change the <new<new‐‐machine>.confmachine>.conf as needed

update the script used for setting up a build environment− update the script used for setting up a build environment

− as a test set up a build environment for the new board config

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6060

Page 43: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

metameta‐‐fslfsl‐‐ppcppc├ f├ fmetameta‐‐fslfsl‐‐ppcppc├ f├ f├── conf├── conf│ [...]│ [...]│   └── machine│   └── machine│     [...]│     [...]│ ├── p4080ds conf│ ├── p4080ds conf

├── conf├── conf│ [...]│ [...]│   └── machine│   └── machine│     [...]│     [...]│ ├── p4080ds conf│ ├── p4080ds conf

Default kernel config and device treeKERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p4080ds.dts \

${S}/arch/powerpc/boot/dts/p4080ds‐usdpaa.dts"│       ├── p4080ds.conf│       ├── p4080ds.conf│     [...]│     [...]└── recipes└── recipes‐‐kernelkernel

└── linux└── linux├── files├── files

│       ├── p4080ds.conf│       ├── p4080ds.conf│     [...]│     [...]└── recipes└── recipes‐‐kernelkernel

└── linux└── linux├── files├── files

KERNEL_DEFCONFIG = "${S}/arch/powerpc/configs/corenet32_smp_defconfig"

do_configure_prepend() {# copy desired defconfig so we pick it up for the real kernel_do_configure├├

├── linux├── linux‐‐qoriqqoriq‐‐sdk.bbsdk.bb├── linux├── linux‐‐qoriqqoriq‐‐sdksdk‐‐headers.bbheaders.bb└── linux└── linux‐‐qoriqqoriq‐‐sdk.incsdk.inc

├├├── linux├── linux‐‐qoriqqoriq‐‐sdk.bbsdk.bb├── linux├── linux‐‐qoriqqoriq‐‐sdksdk‐‐headers.bbheaders.bb└── linux└── linux‐‐qoriqqoriq‐‐sdk.incsdk.inc

cp ${KERNEL_DEFCONFIG} ${B}/.config

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6161

Page 44: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• To configure the Linux kernel :$$ bitbake bitbake ‐‐c c menuconfigmenuconfig virtual/kernelvirtual/kernel or$$ bitbake bitbake ‐‐c c menuconfigmenuconfig linuxlinux‐‐qoriqqoriq‐‐sdksdk

• The kernel menuconfigmenuconfig screen is shown in a new console :

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6363

Page 45: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• After a configuration change it is always recommended to :− Force a kernel rebuild :

$ $ bitbake bitbake ‐‐f f ‐‐c c cleansstatecleansstate virtual/kernelvirtual/kernel$ $ bitbake bitbake ‐‐f f ‐‐c c buildallbuildall virtual/kernelvirtual/kernel$ $ bitbake bitbake ‐‐f f ‐‐c c cleansstatecleansstate virtual/kernelvirtual/kernel$ $ bitbake bitbake ‐‐f f ‐‐c c buildallbuildall virtual/kernelvirtual/kernel

− Then optionally regenerate the rootfs image :$ $ bitbake bitbake ‐‐f f ‐‐c clean c clean fslfsl‐‐imageimage‐‐<variant><variant>$ $ bitbake bitbake ‐‐f f ‐‐c clean c clean fslfsl‐‐imageimage‐‐<variant><variant>$$ bitbake bitbake ‐‐f f fslfsl‐‐imageimage‐‐<variant><variant>$$ bitbake bitbake ‐‐f f fslfsl‐‐imageimage‐‐<variant><variant>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6565

Page 46: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Freescale-specific packages, such as kernel and u-boot, are no longer supplied as pristine tar balls plus patchesare no longer supplied as pristine tar balls plus patches.

• Instead, gitgit tar balls are provided, which include the entire patch commitcommit historyentire patch commitcommit history

• Yocto uses gitgit commands when needed, but hides these from the user

• To get started with gitgit :

−− gitgit project : gitgit‐‐scm.comscm.comgg p j gg

−− gitgit cheat sheet : git.jk.gsgit.jk.gs

−− gitkgitk repo browser : kernel.org/pub/software/kernel.org/pub/software/scmscm//gitgit/docs/gitk.html/docs/gitk.htmlgg p

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6666

Page 47: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• From within the package’s git folder, run gitk :

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6767

Page 48: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• For a package provide as a git repo, patches are identified in the git commit historyidentified in the git commit history

− For non-git packages patches may be contained in one of the package recipe foldersp g p

• To extract the patch files from an installed git tree :

− Install the package source from the git tar ballInstall the package source from the git tar ball

− Enter the installed package's gitgit folder

− List the commits with gitgit logloggg gg

− Identify the <since>..<until><since>..<until> commit range of interest

− Generate the patch files with gitgit formatformat‐‐patchpatchp gg pp

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6868

Page 49: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• From within the git folder, list the commits to find those of interest then generate the patchesof interest, then generate the patchesgitgit log log ‐‐‐‐decorate  [<commit limiting options>] | moredecorate  [<commit limiting options>] | more

gitgit formatformat‐‐patch [<since> | <revision range> ]patch [<since> | <revision range> ] ‐‐o <output dir>o <output dir>gitgit formatformat‐‐patch [<since> | <revision range> ] patch [<since> | <revision range> ] ‐‐o <output dir>o <output dir>

$$ gitgit log log ‐‐‐‐decorate decorate | more| more4b66366af2d77de68f4bd6548d07421e13d3df05 (4b66366af2d77de68f4bd6548d07421e13d3df05 (HEADHEAD tag: fsltag: fsl‐‐sdksdk‐‐v1 4 origin/sdkv1 4 origin/sdk‐‐v1 4 xv1 4 x$$ gitgit log log ‐‐‐‐decorate decorate | more| more4b66366af2d77de68f4bd6548d07421e13d3df05 (4b66366af2d77de68f4bd6548d07421e13d3df05 (HEADHEAD tag: fsltag: fsl‐‐sdksdk‐‐v1 4 origin/sdkv1 4 origin/sdk‐‐v1 4 xv1 4 x4b66366af2d77de68f4bd6548d07421e13d3df05 (4b66366af2d77de68f4bd6548d07421e13d3df05 (HEADHEAD, tag: fsl, tag: fsl sdksdk v1.4, origin/sdkv1.4, origin/sdk v1.4.x, v1.4.x, origin/sdkorigin/sdk‐‐v.1.4.x) Revert "v.1.4.x) Revert "fmdfmd: Conditionally set default MAX_FRAME_SIZE": Conditionally set default MAX_FRAME_SIZE"47a79e454a7f54b96b3133e139e707944375edca 47a79e454a7f54b96b3133e139e707944375edca dpaa_ethdpaa_eth: Switch compile: Switch compile‐‐time default optimizationtime default optimization[...][...]845a61c5447df2b0537bcdf2a477d383f2cc4ff9 845a61c5447df2b0537bcdf2a477d383f2cc4ff9 dpaa_ethdpaa_eth: export interface type in : export interface type in sysfssysfs89 315496398971 7215d2481 9d 99f1b0697f289 315496398971 7215d2481 9d 99f1b0697f2 M b h 'M b h ' tt ''

4b66366af2d77de68f4bd6548d07421e13d3df05 (4b66366af2d77de68f4bd6548d07421e13d3df05 (HEADHEAD, tag: fsl, tag: fsl sdksdk v1.4, origin/sdkv1.4, origin/sdk v1.4.x, v1.4.x, origin/sdkorigin/sdk‐‐v.1.4.x) Revert "v.1.4.x) Revert "fmdfmd: Conditionally set default MAX_FRAME_SIZE": Conditionally set default MAX_FRAME_SIZE"47a79e454a7f54b96b3133e139e707944375edca 47a79e454a7f54b96b3133e139e707944375edca dpaa_ethdpaa_eth: Switch compile: Switch compile‐‐time default optimizationtime default optimization[...][...]845a61c5447df2b0537bcdf2a477d383f2cc4ff9 845a61c5447df2b0537bcdf2a477d383f2cc4ff9 dpaa_ethdpaa_eth: export interface type in : export interface type in sysfssysfs89 315496398971 7215d2481 9d 99f1b0697f289 315496398971 7215d2481 9d 99f1b0697f2 M b h 'M b h ' tt ''89e315496398971e7215d2481c9dc99f1b0697f289e315496398971e7215d2481c9dc99f1b0697f2 Merge branch 'Merge branch 'rtmergertmerge''041f2bc64a985b30328de4cb596f04fd913a85de Merge v3.8.13041f2bc64a985b30328de4cb596f04fd913a85de Merge v3.8.13‐‐rt9 into rt9 into rtmergertmerge

$ $ gitgit formatformat‐‐patch 89e315496398971e7215d2481c9dc99f1b0697f2 patch 89e315496398971e7215d2481c9dc99f1b0697f2 ‐‐o patches/o patches/patches/0001patches/0001‐‐dpaa ethdpaa eth‐‐exportexport‐‐interfaceinterface‐‐typetype‐‐inin‐‐sysfs patchsysfs patch

89e315496398971e7215d2481c9dc99f1b0697f289e315496398971e7215d2481c9dc99f1b0697f2 Merge branch 'Merge branch 'rtmergertmerge''041f2bc64a985b30328de4cb596f04fd913a85de Merge v3.8.13041f2bc64a985b30328de4cb596f04fd913a85de Merge v3.8.13‐‐rt9 into rt9 into rtmergertmerge

$ $ gitgit formatformat‐‐patch 89e315496398971e7215d2481c9dc99f1b0697f2 patch 89e315496398971e7215d2481c9dc99f1b0697f2 ‐‐o patches/o patches/patches/0001patches/0001‐‐dpaa ethdpaa eth‐‐exportexport‐‐interfaceinterface‐‐typetype‐‐inin‐‐sysfs patchsysfs patchpatches/0001patches/0001‐‐dpaa_ethdpaa_eth‐‐exportexport‐‐interfaceinterface‐‐typetype‐‐inin‐‐sysfs.patchsysfs.patchpatches/0002patches/0002‐‐KVMKVM‐‐PPCPPC‐‐Book3eBook3e‐‐GetGet‐‐vcpuvcpu‐‐ss‐‐lastlast‐‐instructioninstruction‐‐forfor‐‐emula.patchemula.patch[...][...]patches/0028patches/0028‐‐RevertRevert‐‐fmdfmd‐‐ConditionallyConditionally‐‐setset‐‐defaultdefault‐‐MAX_FRAME_SIZE.patchMAX_FRAME_SIZE.patch

patches/0001patches/0001‐‐dpaa_ethdpaa_eth‐‐exportexport‐‐interfaceinterface‐‐typetype‐‐inin‐‐sysfs.patchsysfs.patchpatches/0002patches/0002‐‐KVMKVM‐‐PPCPPC‐‐Book3eBook3e‐‐GetGet‐‐vcpuvcpu‐‐ss‐‐lastlast‐‐instructioninstruction‐‐forfor‐‐emula.patchemula.patch[...][...]patches/0028patches/0028‐‐RevertRevert‐‐fmdfmd‐‐ConditionallyConditionally‐‐setset‐‐defaultdefault‐‐MAX_FRAME_SIZE.patchMAX_FRAME_SIZE.patch

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

6969

Page 50: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

PatchesPatches

• To query for all applied patches, delivered as patch files (not git commits) e g for busyboxbusybox :(not git commits) , e.g. for busyboxbusybox :

$ $ bitbake bitbake ‐‐e e busyboxbusybox | | grepgrep ^SRC_URI | ^SRC_URI | trtr ‐‐s ' ' 's ' ' '\\n' | n' | \\trtr ‐‐s 's '\\t' 't' '\\n' | n' | grepgrep patchpatch$ $ bitbake bitbake ‐‐e e busyboxbusybox | | grepgrep ^SRC_URI | ^SRC_URI | trtr ‐‐s ' ' 's ' ' '\\n' | n' | \\trtr ‐‐s 's '\\t' 't' '\\n' | n' | grepgrep patchpatch\\ \\ || g pg p ppfile://B921600.patchfile://B921600.patchfile://get_header_tar.patchfile://get_header_tar.patchfile://busyboxfile://busybox‐‐appletlibappletlib‐‐dependency.patchdependency.patch

\\ \\ || g pg p ppfile://B921600.patchfile://B921600.patchfile://get_header_tar.patchfile://get_header_tar.patchfile://busyboxfile://busybox‐‐appletlibappletlib‐‐dependency.patchdependency.patch[...][...]file://fail_on_no_media.patchfile://fail_on_no_media.patchfile://busyboxfile://busybox‐‐awkawk‐‐makemake‐‐‐‐FF‐‐STRSTR‐‐interpretinterpret‐‐escape.patchescape.patch

[...][...]file://fail_on_no_media.patchfile://fail_on_no_media.patchfile://busyboxfile://busybox‐‐awkawk‐‐makemake‐‐‐‐FF‐‐STRSTR‐‐interpretinterpret‐‐escape.patchescape.patch

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7070

Page 51: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• BitBake commands are issued from the Linux bashbash shellBitBake commands are issued from the Linux bashbash shell

• A separate interactive BitBake shell will be started for those BitBake tasks that require a UI, like :

−− menuconfigmenuconfig

−− devshelldevshell

• In a graphical environment like Gnome or KDE :

• interactive shells run in a new terminal or console windowinteractive shells run in a new terminal or console window

• In a non-graphical environment (telnettelnet , sshssh or a local text console) :− the screenscreen utility is used to allow connecting the current

console to the bitbake interactive shell

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7171

Page 52: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The OE_TERMINALOE_TERMINAL variable must be appropriately configured to allow correct operation of interactive BitBake shellsto allow correct operation of interactive BitBake shells

− defines the terminal configuration as one of the followings :

(d f l )(d f l ) ff k lk l(d f l )(d f l ) ff k lk lautoauto (default), gnome, (default), gnome, xfcexfce, , rxvtrxvt, screen, , screen, konsolekonsole(KDE 3.x only), none(KDE 3.x only), noneautoauto (default), gnome, (default), gnome, xfcexfce, , rxvtrxvt, screen, , screen, konsolekonsole(KDE 3.x only), none(KDE 3.x only), none

• To explicitly configure for a non-default terminal configuration, change OE_TERMINALOE_TERMINAL in conf/conf/local.conflocal.conf

When using BitBake from within a non graphical • When using BitBake from within a non-graphical environment, set OE_TERMINALOE_TERMINAL as follows :

OE TERMINALOE TERMINALOE TERMINALOE TERMINALOE_TERMINAL=OE_TERMINAL=screenscreenOE_TERMINAL=OE_TERMINAL=screenscreen

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7272

Page 53: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• An architecture specific cross compiler toolchain and libcare built and installed per build project and invoked by are built and installed per build project and invoked by BitBake tasks as needed.

− An external compiler tool chain can be configured for use by An external compiler tool chain can be configured for use by Yocto as described in: www.openembedded.org/wiki/Adding_a_secondary_toolchain

A il t l h i f t id f BitB k• An cross compiler tool chain for use outside of BitBakecan be generated as follows :

$$ bitbakebitbake fslfsl‐‐toolchaintoolchain$$ bitbake bitbake fslfsl toolchaintoolchainor

$$ bitbake metabitbake meta‐‐toolchaintoolchain

• An installable tar file will be installed here :

<project>/<project>/tmptmp/deploy//deploy/sdksdk

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7373

Page 54: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 55: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• .bb.bb and ..bbappendbbappend files : recipes

− structured collections of instructions which tell BitBake what to build ...

M t d tM t d tM t d tBitBakeBitBakeBitBake

busyboxbusybox

glibcglibc

sysvinitsysvinit

inetutilsinetutils

MetadataMetadatabusybox

glibc

sysvinit

inetutils

Metadata

inetutilsinetutils

mtdutilsmtdutils

inetutils

mtdutils

confconf files : configuration files•• .conf.conf files : configuration files

•• ..bbclassbbclass files : classes

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7575

Page 56: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• A bitbakebitbake recipe is a .bb.bb file, that defines all the tasks that apply to building a package or imagethat apply to building a package or image

• The defined tasks for a recipe can be listed (unsorted), e.g. for uu‐‐bootboot :g

$$ bitbake bitbake ‐‐c c listtaskslisttasks uu‐‐bootboot[...][...]NOTE: package uNOTE: package u‐‐bootboot‐‐gitgit‐‐r26: task r26: task do_listtasksdo_listtasks: Started: Started

$$ bitbake bitbake ‐‐c c listtaskslisttasks uu‐‐bootboot[...][...]NOTE: package uNOTE: package u‐‐bootboot‐‐gitgit‐‐r26: task r26: task do_listtasksdo_listtasks: Started: Starteddo_fetchalldo_fetchalldo_builddo_builddo_devshelldo_devshelldo_cleansstatedo_cleansstatedo_configuredo_configure[ ][ ]

do_fetchalldo_fetchalldo_builddo_builddo_devshelldo_devshelldo_cleansstatedo_cleansstatedo_configuredo_configure[ ][ ][...][...]do_cleando_cleando_package_write_rpm_setscenedo_package_write_rpm_setscenedo_rm_workdo_rm_workdo_packagedo_packagedo unpackdo unpack

[...][...]do_cleando_cleando_package_write_rpm_setscenedo_package_write_rpm_setscenedo_rm_workdo_rm_workdo_packagedo_packagedo unpackdo unpackdo_unpackdo_unpackdo_installdo_installdo_populate_sysroot_setscenedo_populate_sysroot_setscenedo_rm_work_alldo_rm_work_alldo_checkurialldo_checkuriallNOTE: package uNOTE: package u bootboot gitgit r30: taskr30: task do listtasksdo listtasks: Succeeded: Succeeded

do_unpackdo_unpackdo_installdo_installdo_populate_sysroot_setscenedo_populate_sysroot_setscenedo_rm_work_alldo_rm_work_alldo_checkurialldo_checkuriallNOTE: package uNOTE: package u bootboot gitgit r30: taskr30: task do listtasksdo listtasks: Succeeded: Succeeded

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7676

NOTE: package uNOTE: package u‐‐bootboot‐‐gitgit‐‐r30: task r30: task do_listtasksdo_listtasks: Succeeded: SucceededNOTE: package uNOTE: package u‐‐bootboot‐‐gitgit‐‐r30: task r30: task do_listtasksdo_listtasks: Succeeded: Succeeded

Page 57: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The contents of the specified file will be inserted at that location and parsed by bitbakebitbakelocation and parsed by bitbakebitbake

• The file name convention for an include file : .inc.inc

Th h ifi d i l i d h fi f d • The path specified is relative and the first one found within BBPATH

•• requirerequire raises a ParseErrorParseError if the file is not found •• requirerequire raises a ParseErrorParseError if the file is not found, includeinclude does not

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7777

Page 58: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Example : P1010RDB machine requires configuration for an e500v2 architecturean e500v2 architecture[meta[meta‐‐fslfsl‐‐ppc/conf/machine/p1010rdb.conf]ppc/conf/machine/p1010rdb.conf]#@TYPE: Machine#@TYPE: Machine[meta[meta‐‐fslfsl‐‐ppc/conf/machine/p1010rdb.conf]ppc/conf/machine/p1010rdb.conf]#@TYPE: Machine#@TYPE: Machine#@Name: Freescale P1010RDB#@Name: Freescale P1010RDB#@DESCRIPTION: Machine configuration for the Freescale P1010RDB#@DESCRIPTION: Machine configuration for the Freescale P1010RDB

require e500v2 increquire e500v2 inc

#@Name: Freescale P1010RDB#@Name: Freescale P1010RDB#@DESCRIPTION: Machine configuration for the Freescale P1010RDB#@DESCRIPTION: Machine configuration for the Freescale P1010RDB

require e500v2 increquire e500v2 increquire e500v2.increquire e500v2.increquire conf/machine/include/socrequire conf/machine/include/soc‐‐family.incfamily.inc

UBOOT_MACHINES = "P1010RDB_NAND P1010RDB_NOR"UBOOT_MACHINES = "P1010RDB_NAND P1010RDB_NOR"

require e500v2.increquire e500v2.increquire conf/machine/include/socrequire conf/machine/include/soc‐‐family.incfamily.inc

UBOOT_MACHINES = "P1010RDB_NAND P1010RDB_NOR"UBOOT_MACHINES = "P1010RDB_NAND P1010RDB_NOR"KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p1010rdb.dts"KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p1010rdb.dts"KERNEL_DEFCONFIG = "${S}/arch/powerpc/KERNEL_DEFCONFIG = "${S}/arch/powerpc/configsconfigs/mpc85xx_defconfig"/mpc85xx_defconfig"

JFFS2 ERASEBLOCK = "0x20000"JFFS2 ERASEBLOCK = "0x20000"

KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p1010rdb.dts"KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/p1010rdb.dts"KERNEL_DEFCONFIG = "${S}/arch/powerpc/KERNEL_DEFCONFIG = "${S}/arch/powerpc/configsconfigs/mpc85xx_defconfig"/mpc85xx_defconfig"

JFFS2 ERASEBLOCK = "0x20000"JFFS2 ERASEBLOCK = "0x20000"JFFS2_ERASEBLOCK =  0x20000JFFS2_ERASEBLOCK =  0x20000JFFS2_ERASEBLOCK =  0x20000JFFS2_ERASEBLOCK =  0x20000

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7878

Page 59: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• DEPENDSDEPENDS : build time dependencies between .bb.bb files

•• RDEPENDSRDEPENDS : runtime dependencies

•• PROVIDESPROVIDES : specifies the functionality a .bb.bb file provides

•• PREFERRED_VERSION_PREFERRED_VERSION_ :− if multiple .bb.bb files exist for a package, bitbake defaults to

the most recent version

− to specify a specific package version to use

E.g.:

PREFERRED_VERSION_<pkg> = "PREFERRED_VERSION_<pkg> = "x.yx.y""PREFERRED_VERSION_<pkg> = "PREFERRED_VERSION_<pkg> = "x.yx.y""

PREFERRED_VERSION_mypackagePREFERRED_VERSION_mypackage = "1.3"= "1.3" will select the recipe mypackagemypackage‐‐1.3.bb1.3.bb even over any more recent version

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

7979

Page 60: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

Operator Operation Example Resulting Value== Set to a value VAR1 = "value"VAR1 = "value" "value""value"== Set to a value VAR1 =  valueVAR1 =  value valuevalue

${VAR}${VAR} Expand VAR2 = "X${VAR1}Y"VAR2 = "X${VAR1}Y" "XvalueYXvalueY""

?=?=??=??=

Set to adefault value

VAR1 ?=  "VAR1 ?=  "defvaldefval""VAR1 ??= "VAR1 ??= "defvaldefval""

if VAR1VAR1 unassigned : ""defvaldefval""else VAR1VAR1 unchanged???? default value VAR1 ??  VAR1 ??   defvaldefval else VAR1VAR1 unchanged

:=:= Immediateexpansion

VAR1 =  "value"VAR1 =  "value"VAR1 := "${VAR1}appendVAR1 := "${VAR1}append

"value""value"""valueappendvalueappend""

+=+= Append VAR1 =  "value"VAR1 =  "value" "value""value"ppVAR1 += "Y"VAR1 += "Y" "value Y""value Y"

=+=+ Prepend VAR1 =  "value"VAR1 =  "value"VAR1 =+ "X"VAR1 =+ "X"

"value""value""X value""X value"

.=.= Append(no space)

VAR1 =  "value"VAR1 =  "value"VAR1 .= "Y"VAR1 .= "Y"

"value""value"""valueYvalueY""

=.=. Prepend VAR1 =  "value"VAR1 =  "value"VAR1 = "X"VAR1 = "X"

"value""value"""XvalueXvalue""VAR1 =.  XVAR1 =.  X XvalueXvalue

N/AN/A Append/prependconditional on OVERRIDESOVERRIDES

VAR1 = "X Y"VAR1 = "X Y"OVERRIDES = "A:B" OVERRIDES = "A:B" VAR1_append_A = " C"VAR1_append_A = " C"

VAR1VAR1 set to "X Y C""X Y C"

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8080

Page 61: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The OVERRIDESOVERRIDES variable contains a list of strings ...[meta/conf/[meta/conf/bitbake.confbitbake.conf]]OVERRIDESOVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:= "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:\\buildbuild‐‐${BUILD_OS}:${BUILD_OS}:pnpn‐‐${PN}:${MACHINEOVERRIDES}:${PN}:${MACHINEOVERRIDES}:\\${DISTROOVERRIDES}:${CLASSOVERRIDE} :${DISTROOVERRIDES}:${CLASSOVERRIDE} :forcevariableforcevariable""

[meta/conf/[meta/conf/bitbake.confbitbake.conf]]OVERRIDESOVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:= "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:\\buildbuild‐‐${BUILD_OS}:${BUILD_OS}:pnpn‐‐${PN}:${MACHINEOVERRIDES}:${PN}:${MACHINEOVERRIDES}:\\${DISTROOVERRIDES}:${CLASSOVERRIDE} :${DISTROOVERRIDES}:${CLASSOVERRIDE} :forcevariableforcevariable""${DISTROOVERRIDES}:${CLASSOVERRIDE} :${DISTROOVERRIDES}:${CLASSOVERRIDE} :forcevariableforcevariable

[meta/conf/[meta/conf/distrodistro/include/tclibc/include/tclibc‐‐eglibc.inc]eglibc.inc]LIBCOVERRIDE = ":LIBCOVERRIDE = ":libclibc‐‐glibcglibc""

${DISTROOVERRIDES}:${CLASSOVERRIDE} :${DISTROOVERRIDES}:${CLASSOVERRIDE} :forcevariableforcevariable

[meta/conf/[meta/conf/distrodistro/include/tclibc/include/tclibc‐‐eglibc.inc]eglibc.inc]LIBCOVERRIDE = ":LIBCOVERRIDE = ":libclibc‐‐glibcglibc""ggOVERRIDES OVERRIDES .= "${LIBCOVERRIDE}".= "${LIBCOVERRIDE}"

$ $ bitbake bitbake ‐‐e e fslfsl‐‐imageimage‐‐core  | core  | grepgrep ^OVERRIDES^OVERRIDESOVERRIDESOVERRIDES="="linux:powerpc:buildlinux:powerpc:build‐‐linux:pnlinux:pn‐‐fslfsl‐‐imageimage‐‐core:core:\\

ggOVERRIDES OVERRIDES .= "${LIBCOVERRIDE}".= "${LIBCOVERRIDE}"

$ $ bitbake bitbake ‐‐e e fslfsl‐‐imageimage‐‐core  | core  | grepgrep ^OVERRIDES^OVERRIDESOVERRIDESOVERRIDES="="linux:powerpc:buildlinux:powerpc:build‐‐linux:pnlinux:pn‐‐fslfsl‐‐imageimage‐‐core:core:\\

to match against for conditional appendappend or prependprepend

OVERRIDESOVERRIDES linux:powerpc:buildlinux:powerpc:build linux:pnlinux:pn fslfsl imageimage core:core:\\p4080:p4080ds:e500mc:fslmachine:fslp4080:p4080ds:e500mc:fslmachine:fsl‐‐networking:networking:\\classclass‐‐target:forcevariable:libctarget:forcevariable:libc‐‐glibcglibc""

OVERRIDESOVERRIDES linux:powerpc:buildlinux:powerpc:build linux:pnlinux:pn fslfsl imageimage core:core:\\p4080:p4080ds:e500mc:fslmachine:fslp4080:p4080ds:e500mc:fslmachine:fsl‐‐networking:networking:\\classclass‐‐target:forcevariable:libctarget:forcevariable:libc‐‐glibcglibc""

... to match against for conditional appendappend or prependprepend${VAR}${VAR}_append__append_<override string><override string> = "<string to append>"= "<string to append>"${VAR}${VAR}__prependprepend__<override string><override string> = "<string to = "<string to prependprepend>">"${VAR}${VAR}_append__append_<override string><override string> = "<string to append>"= "<string to append>"${VAR}${VAR}__prependprepend__<override string><override string> = "<string to = "<string to prependprepend>">"

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8181

Page 62: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• For an expression : VARIABLE ti lVARIABLE ti l t t it t iVARIABLE_operation_valueVARIABLE_operation_value operator stringoperator string

If OVERRIDESOVERRIDES contains valuevalue thenft ll d t h b li dafter all +=+= and =+=+ operators have been applied

apply operation (_append__append_ or __prependprepend__)

E l E l Example :

[meta[meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐kernel/ukernel/u‐‐boot/uboot/u‐‐boot_git.bb]boot_git.bb]TOOLCHAIN OPTIONS appendTOOLCHAIN OPTIONS append e5500e5500‐‐64b64b = "/ /lib32= "/ /lib32‐‐${MACHINE}"${MACHINE}"

Example :

[meta[meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐kernel/ukernel/u‐‐boot/uboot/u‐‐boot_git.bb]boot_git.bb]TOOLCHAIN OPTIONS appendTOOLCHAIN OPTIONS append e5500e5500‐‐64b64b = "/ /lib32= "/ /lib32‐‐${MACHINE}"${MACHINE}"TOOLCHAIN_OPTIONS_append_TOOLCHAIN_OPTIONS_append_e5500e5500‐‐64b64b =  /../lib32=  /../lib32‐‐${MACHINE}${MACHINE}

If OVERRIDESOVERRIDES contains e5500e5500‐‐64b64b thenappend "/../lib32"/../lib32‐‐${MACHINE}"${MACHINE}" to TOOLCHAIN_OPTIONSTOOLCHAIN_OPTIONS

TOOLCHAIN_OPTIONS_append_TOOLCHAIN_OPTIONS_append_e5500e5500‐‐64b64b =  /../lib32=  /../lib32‐‐${MACHINE}${MACHINE}

If OVERRIDESOVERRIDES contains e5500e5500‐‐64b64b thenappend "/../lib32"/../lib32‐‐${MACHINE}"${MACHINE}" to TOOLCHAIN_OPTIONSTOOLCHAIN_OPTIONS

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8282

Page 63: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Append specific changes to an existing <pkg>.bb<pkg>.bbi b ti kk bb dbb d filrecipe by creating a <pkg>.<pkg>.bbappendbbappend file

− use an identical basename

$ $ bitbakebitbake‐‐layers showlayers show‐‐appends | appends | grepgrep busyboxbusyboxParsing recipes..done.Parsing recipes..done.busybox_1.20.2.bbbusybox_1.20.2.bb::

$ $ bitbakebitbake‐‐layers showlayers show‐‐appends | appends | grepgrep busyboxbusyboxParsing recipes..done.Parsing recipes..done.busybox_1.20.2.bbbusybox_1.20.2.bb::

busybox package recipe

.../meta.../meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐yoctoyocto/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐fslfsl‐‐networking/recipesnetworking/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐yoctoyocto/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐fslfsl‐‐networking/recipesnetworking/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../meta.../meta‐‐virtualization/recipesvirtualization/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend.../meta.../meta‐‐virtualization/recipesvirtualization/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

changes to append to busybox.bb 

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8383

Page 64: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 65: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Yocto meta-data is organized into layerslayers, so that configurations can be kept isolated from each otherconfigurations can be kept isolated from each other

• The conf/conf/bblayers.confbblayers.conf file defines the layers BitBakewill parse, when determining which tasks to runwill parse, when determining which tasks to run

• Package recipes are organized in layer sub-folders

• In a BitBake command a packages may be fully qualified • In a BitBake command a packages may be fully qualified or specified by basename only

<pkg <pkg basenamebasename>[ <version>][.bb]>[ <version>][.bb]p gp g [_ ][ ][_ ][ ]

• Layers can have dependencies on other layers

S l −See also : www.openembedded.org/wiki/LayerIndexwww.openembedded.org/wiki/LayerIndex

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8585

Page 66: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

buildbuild└─ conf└─ conf

buildbuild└─ conf└─ conf conf conf

└──└──bblayer.confbblayer.conf

metameta‐‐<layer>/<layer>/

 conf conf└──└──bblayer.confbblayer.conf

metameta‐‐<layer>/<layer>/ layer directory

layers defined for the build env

y /y /├── conf├── conf│   └── │   └── layer.conflayer.conf├── images├── images

y /y /├── conf├── conf│   └── │   └── layer.conflayer.conf├── images├── images

layer configuration file

├├│   ├── │   ├── <image name>.bb<image name>.bb│ [...]│ [...]││├├

├├│   ├── │   ├── <image name>.bb<image name>.bb│ [...]│ [...]││├├

image recipe

├── recipes├── recipes‐‐<category><category>│   ├── <recipe folder>│   ├── <recipe folder>│   │   ├── files│   │   ├── files│ │ │ └ li i fil│ │ │ └ li i fil

├── recipes├── recipes‐‐<category><category>│   ├── <recipe folder>│   ├── <recipe folder>│   │   ├── files│   │   ├── files│ │ │ └ li i fil│ │ │ └ li i fil

recipe directory

recipe category directory

locally stored files directory

│   │   │       └── <explicit files>│   │   │       └── <explicit files>│   │   └── │   │   └── <recipe>.bb<recipe>.bb│ [...]│ [...]

[ ][ ]

│   │   │       └── <explicit files>│   │   │       └── <explicit files>│   │   └── │   │   └── <recipe>.bb<recipe>.bb│ [...]│ [...]

[ ][ ]

recipe .bb file

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8686

[...][...][...][...]

Page 67: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The SDK configuration includes the example Yoctodistribution based on the PokyPoky baseline, plus Freescale specific layers :

├── meta├── meta├── ├── metameta‐‐fslfsl‐‐networkingnetworking Freescale PPC layer (private)├── ├── metameta‐‐fslfsl‐‐ppcppc Freescale PPC hardware support metadata (public)├├ metameta fslfsl ppcppc toolchaintoolchain

├── meta├── meta├── ├── metameta‐‐fslfsl‐‐networkingnetworking Freescale PPC layer (private)├── ├── metameta‐‐fslfsl‐‐ppcppc Freescale PPC hardware support metadata (public)├├ metameta fslfsl ppcppc toolchaintoolchain├── ├── metameta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain├── meta├── meta‐‐hobhob├── meta├── meta‐‐oeoe├── meta├── meta‐‐skeletonskeleton├ meta├ meta virtualizationvirtualization

├── ├── metameta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain├── meta├── meta‐‐hobhob├── meta├── meta‐‐oeoe├── meta├── meta‐‐skeletonskeleton├ meta├ meta virtualizationvirtualization

• Public variants live here :

├── meta├── meta‐‐virtualizationvirtualization├── meta├── meta‐‐yoctoyocto├── meta├── meta‐‐yoctoyocto‐‐bspbsp

├── meta├── meta‐‐virtualizationvirtualization├── meta├── meta‐‐yoctoyocto├── meta├── meta‐‐yoctoyocto‐‐bspbsp

• Public variants live here :

−− git.freescale.comgit.freescale.com ... aligned with SDK releases

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8787

−− git.yoctoproject.orggit.yoctoproject.org ... aligned with Yocto releases

Page 68: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Adds basic support for all supported Freescale Q Q b dQorIQ boards

− recipes for all public Freescale projects :k l bkernel, u-boot, ..

−a subset is available in the Yocto project gitit repository :

git.yoctoproject.org/git.yoctoproject.org/cgitcgit/cgit.cgi/?q=/cgit.cgi/?q=fslfsl‐‐ppcppc

−pushed through git.freescale.comgit.freescale.com

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8888

Page 69: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

metameta‐‐fslfsl‐‐ppcppc Layer (public)Layer (public)metameta‐‐fslfsl‐‐ppcppc├── confconfmetameta‐‐fslfsl‐‐ppcppc├── confconf├  confconf│   ├── │   ├── layer.conflayer.conf│   └── machine│   └── machine│       ├── e500mc.inc│       ├── e500mc.inc│ │ [ ]│ │ [ ]

├  confconf│   ├── │   ├── layer.conflayer.conf│   └── machine│   └── machine│       ├── e500mc.inc│       ├── e500mc.inc│ │ [ ]│ │ [ ]

this layer's configurationthis layer's configuration

│       │   [...]│       │   [...]│       ├── e5500.inc│       ├── e5500.inc│       ├── mpc8536ds.conf│       ├── mpc8536ds.conf│       │   [...]│       │   [...]

│       │   [...]│       │   [...]│       ├── e5500.inc│       ├── e5500.inc│       ├── mpc8536ds.conf│       ├── mpc8536ds.conf│       │   [...]│       │   [...]

hardware tuning andhardware tuning andmachine configurationsmachine configurations

│ │ [ ]│ │ [ ]│       └── p5040ds.conf│       └── p5040ds.conf├── README├── README├── recipes├── recipes‐‐appendappend├ i├ i

│ │ [ ]│ │ [ ]│       └── p5040ds.conf│       └── p5040ds.conf├── README├── README├── recipes├── recipes‐‐appendappend├ i├ i├── recipes├── recipes‐‐corecore├── recipes├── recipes‐‐devtoolsdevtools├── recipes├── recipes‐‐graphicsgraphics├── recipes├── recipes‐‐kernelkernel

├── recipes├── recipes‐‐corecore├── recipes├── recipes‐‐devtoolsdevtools├── recipes├── recipes‐‐graphicsgraphics├── recipes├── recipes‐‐kernelkernel

recipe categoriesrecipe categories├ p├ p├── recipes├── recipes‐‐testtest├── recipes├── recipes‐‐toolstools└── recipes└── recipes‐‐ucodeucode

├ p├ p├── recipes├── recipes‐‐testtest├── recipes├── recipes‐‐toolstools└── recipes└── recipes‐‐ucodeucode

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

8989

Page 70: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

ii i iti it if dif d ddii i iti it if dif d ddrecipesrecipes‐‐core core :: initinit‐‐ifupdownifupdown udevudev

recipesrecipes‐‐devtoolsdevtools :: qemuqemu tclaptclap

recipesrecipes graphicsgraphics :: xorgxorg driverdriver xorgxorg xserverxserver

recipesrecipes‐‐core core :: initinit‐‐ifupdownifupdown udevudev

recipesrecipes‐‐devtoolsdevtools :: qemuqemu tclaptclap

recipesrecipes graphicsgraphics :: xorgxorg driverdriver xorgxorg xserverxserverrecipesrecipes‐‐graphics graphics :: xorgxorg‐‐driver driver xorgxorg‐‐xserverxserver

recipesrecipes‐‐kernel kernel :: asfasf cryptodevcryptodev linux linux qoriqqoriq‐‐debug udebug u‐‐bootboot

recipesrecipes‐‐testtest :: testfloattestfloat

recipesrecipes‐‐graphics graphics :: xorgxorg‐‐driver driver xorgxorg‐‐xserverxserver

recipesrecipes‐‐kernel kernel :: asfasf cryptodevcryptodev linux linux qoriqqoriq‐‐debug udebug u‐‐bootboot

recipesrecipes‐‐testtest :: testfloattestfloatrecipesrecipes test test :: testfloattestfloat

recipesrecipes‐‐tools tools :: bootboot‐‐format format cstcst embeddedembedded‐‐hvhv etheth‐‐configconfig flibflibhvhv‐‐cfgcfg muxmux‐‐server server rcwrcw skmmskmm usdpaausdpaawebweb‐‐sysmonsysmon

recipesrecipes test test :: testfloattestfloat

recipesrecipes‐‐tools tools :: bootboot‐‐format format cstcst embeddedembedded‐‐hvhv etheth‐‐configconfig flibflibhvhv‐‐cfgcfg muxmux‐‐server server rcwrcw skmmskmm usdpaausdpaawebweb‐‐sysmonsysmonwebweb sysmonsysmon

recipesrecipes‐‐ucodeucode :: fmcfmc fmlibfmlib fmfm‐‐ucodeucode

webweb sysmonsysmon

recipesrecipes‐‐ucodeucode :: fmcfmc fmlibfmlib fmfm‐‐ucodeucode

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9090

Page 71: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Adds support for all non-public Freescale-specific jprojects

− delivered through the SDK ISO release images, for legal reasons (not upstream)legal reasons (not upstream)

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9191

Page 72: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

metameta‐‐fslfsl‐‐networking/networking/├── conf├── confmetameta‐‐fslfsl‐‐networking/networking/├── conf├── conf├  conf├  conf│   └── │   └── layer.conflayer.conf├── custom├── custom‐‐licenseslicenses├── images├── images│ ├ f l│ ├ f l ii bbbb

├  conf├  conf│   └── │   └── layer.conflayer.conf├── custom├── custom‐‐licenseslicenses├── images├── images│ ├ f l│ ├ f l ii bbbb

this layer's configurationthis layer's configuration

│   ├── fsl│   ├── fsl‐‐imageimage‐‐core.bbcore.bb│ [...]│ [...]│   ├── fsl│   ├── fsl‐‐imageimage‐‐minimal.bbminimal.bb│ [...]│ [...]

│   ├── fsl│   ├── fsl‐‐imageimage‐‐core.bbcore.bb│ [...]│ [...]│   ├── fsl│   ├── fsl‐‐imageimage‐‐minimal.bbminimal.bb│ [...]│ [...]

image recipes which depend on image recipes which depend on FreescaleFreescale‐‐private packagesprivate packages

│ [ ]│ [ ]│   └── fsl│   └── fsl‐‐toolchain.bbtoolchain.bb├── ├── packagegroupspackagegroups├── recipes├── recipes‐‐appendappend├ i├ i bibi

│ [ ]│ [ ]│   └── fsl│   └── fsl‐‐toolchain.bbtoolchain.bb├── ├── packagegroupspackagegroups├── recipes├── recipes‐‐appendappend├ i├ i bibi├── recipes├── recipes‐‐binarybinary├── recipes├── recipes‐‐bspbsp├── recipes├── recipes‐‐connectivityconnectivity├── recipes├── recipes‐‐devtoolsdevtools

├── recipes├── recipes‐‐binarybinary├── recipes├── recipes‐‐bspbsp├── recipes├── recipes‐‐connectivityconnectivity├── recipes├── recipes‐‐devtoolsdevtools

recipe categoriesrecipe categories

├ p├ p├── recipes├── recipes‐‐extendedextended├── recipes├── recipes‐‐kernelkernel├── recipes├── recipes‐‐supportsupport└ i└ i t lt l

├ p├ p├── recipes├── recipes‐‐extendedextended├── recipes├── recipes‐‐kernelkernel├── recipes├── recipes‐‐supportsupport└ i└ i t lt l

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9292

└── recipes└── recipes‐‐toolstools└── recipes└── recipes‐‐toolstools

Page 73: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

ii bibi di tidi ti di kdi k ddii bibi di tidi ti di kdi k ddrecipesrecipes‐‐binarybinary :: diagnostic diagnostic edinkedink qeqe‐‐ucodeucodevsc7385vsc7385‐‐firmwarefirmware

recipesrecipes‐‐bspbsp :: cantestcantest fslfsl‐‐iptipt‐‐l7pm l7pm fslfsl‐‐pmepme fslfsl‐‐tlutlu

recipesrecipes‐‐binarybinary :: diagnostic diagnostic edinkedink qeqe‐‐ucodeucodevsc7385vsc7385‐‐firmwarefirmware

recipesrecipes‐‐bspbsp :: cantestcantest fslfsl‐‐iptipt‐‐l7pm l7pm fslfsl‐‐pmepme fslfsl‐‐tlutlui2ci2c‐‐flashflash‐‐util util ixxatixxat‐‐stackstack‐‐ptpptp rfrf‐‐utilutiltcftcf‐‐qoriqdbgqoriqdbg

recipesrecipes‐‐connectivityconnectivity :: ipsecipsec‐‐tools tools opensslopenssl

i2ci2c‐‐flashflash‐‐util util ixxatixxat‐‐stackstack‐‐ptpptp rfrf‐‐utilutiltcftcf‐‐qoriqdbgqoriqdbg

recipesrecipes‐‐connectivityconnectivity :: ipsecipsec‐‐tools tools opensslopenssl

recipesrecipes‐‐devtoolsdevtools :: valgrindvalgrind

recipesrecipes‐‐extendedextended :: shadowshadow

recipesrecipes‐‐devtoolsdevtools :: valgrindvalgrind

recipesrecipes‐‐extendedextended :: shadowshadow

recipesrecipes‐‐kernelkernel :: dtc dtc oprofileoprofile skmmhostskmmhost

recipesrecipes‐‐supportsupport :: dnsmasqdnsmasq

recipesrecipes‐‐kernelkernel :: dtc dtc oprofileoprofile skmmhostskmmhost

recipesrecipes‐‐supportsupport :: dnsmasqdnsmasq

recipesrecipes‐‐toolstools :: apptrkapptrk debugdebug‐‐print flashprint flash‐‐image image hvhv‐‐test test hyperrelayhyperrelay ipcipc libhugetlbfslibhugetlbfs libppclibppcmergemerge‐‐files files pmepme‐‐regexregex‐‐analyzer analyzer pmepme‐‐tools tools usimusim uspdcpuspdcp

recipesrecipes‐‐toolstools :: apptrkapptrk debugdebug‐‐print flashprint flash‐‐image image hvhv‐‐test test hyperrelayhyperrelay ipcipc libhugetlbfslibhugetlbfs libppclibppcmergemerge‐‐files files pmepme‐‐regexregex‐‐analyzer analyzer pmepme‐‐tools tools usimusim uspdcpuspdcp

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9393

usimusim uspdcpuspdcpusimusim uspdcpuspdcp

Page 74: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• showshow‐‐layerslayers : Shows the currently configured layers

$ $ bitbakebitbake‐‐layers layers show_layersshow_layerslayer                 path                                      prioritylayer                 path                                      priority

====================================================================================================================================================meta .../QorIQmeta .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta 5yocto/meta 5

$ $ bitbakebitbake‐‐layers layers show_layersshow_layerslayer                 path                                      prioritylayer                 path                                      priority

====================================================================================================================================================meta .../QorIQmeta .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta 5yocto/meta 5meta                  .../QorIQmeta                  .../QorIQ SDKSDK V1.4V1.4 2013062520130625 yocto/meta  5yocto/meta  5metameta‐‐yoctoyocto .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto 55metameta‐‐yoctoyocto‐‐bspbsp .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp 55metameta‐‐fslfsl‐‐ppc          .../QorIQppc          .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc  5ppc  5metameta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain 55metameta virtualization /QorIQvirtualization /QorIQ SDKSDK V1 4V1 4 2013062520130625 yocto/metayocto/meta virtualization 7virtualization 7

meta                  .../QorIQmeta                  .../QorIQ SDKSDK V1.4V1.4 2013062520130625 yocto/meta  5yocto/meta  5metameta‐‐yoctoyocto .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto 55metameta‐‐yoctoyocto‐‐bspbsp .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp 55metameta‐‐fslfsl‐‐ppc          .../QorIQppc          .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc  5ppc  5metameta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain 55metameta virtualization /QorIQvirtualization /QorIQ SDKSDK V1 4V1 4 2013062520130625 yocto/metayocto/meta virtualization 7virtualization 7metameta‐‐virtualization   .../QorIQvirtualization   .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization  7virtualization  7metameta‐‐fslfsl‐‐networking   .../QorIQnetworking   .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking  5networking  5metameta‐‐oeoe .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe 11metameta‐‐networking       .../QorIQnetworking       .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking  5networking  5

metameta‐‐virtualization   .../QorIQvirtualization   .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization  7virtualization  7metameta‐‐fslfsl‐‐networking   .../QorIQnetworking   .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking  5networking  5metameta‐‐oeoe .../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe 11metameta‐‐networking       .../QorIQnetworking       .../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking  5networking  5

•• flattenflatten : Builds a "flattened" directory from the currently configured layers, with overlayed recipes removed and

f l d d h d..bbappendbbappend files appended to their corresponding recipes$ $ bitbakebitbake‐‐layers flatten <directory>layers flatten <directory>$ $ bitbakebitbake‐‐layers flatten <directory>layers flatten <directory>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9595

Page 75: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• showshow‐‐layerslayers : Shows the currently configured layers

$ $ bitbakebitbake‐‐layers layers show_layersshow_layerslayerlayer path                                     path                                      prioritypriority================================================================================================================================================================metameta [ ]/[ ]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/poky/meta 5/sources/poky/meta 5

$ $ bitbakebitbake‐‐layers layers show_layersshow_layerslayerlayer path                                     path                                      prioritypriority================================================================================================================================================================metameta [ ]/[ ]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/poky/meta 5/sources/poky/meta 5metameta [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/poky/meta  5/sources/poky/meta  5metameta‐‐yoctoyocto [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/poky/meta/sources/poky/meta‐‐yoctoyocto 55metameta‐‐oeoe [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐openembeddedopenembedded/meta/meta‐‐oeoe 66metameta‐‐fslfsl‐‐arm arm  [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐fslfsl‐‐arm  5arm  5metameta‐‐fslfsl‐‐armarm‐‐extraextra [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐fslfsl‐‐armarm‐‐extra  4extra  4

metameta [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/poky/meta  5/sources/poky/meta  5metameta‐‐yoctoyocto [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/poky/meta/sources/poky/meta‐‐yoctoyocto 55metameta‐‐oeoe [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐openembeddedopenembedded/meta/meta‐‐oeoe 66metameta‐‐fslfsl‐‐arm arm  [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐fslfsl‐‐arm  5arm  5metameta‐‐fslfsl‐‐armarm‐‐extraextra [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐fslfsl‐‐armarm‐‐extra  4extra  4[ ][ ] yy ppmetameta‐‐fslfsl‐‐demosdemos [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐fslfsl‐‐demos  4demos  4

[ ][ ] yy ppmetameta‐‐fslfsl‐‐demosdemos [...]/[...]/fslfsl‐‐communitycommunity‐‐bspbsp/sources/meta/sources/meta‐‐fslfsl‐‐demos  4demos  4

•• flattenflatten : Builds a "flattened" directory from the currently configured layers, with overlayed recipes removed and bbappendbbappend files appended to their corresponding recipes..bbappendbbappend files appended to their corresponding recipes

$ $ bitbakebitbake‐‐layers flatten <directory>layers flatten <directory>$ $ bitbakebitbake‐‐layers flatten <directory>layers flatten <directory>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9696

Page 76: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

Layers Layers

•• show_appendsshow_appends : lists ..bbappendbbappend files and recipes they append toappend to

$ $ bitbakebitbake‐‐layers layers show_appendsshow_appendsParsing recipes..done.Parsing recipes..done.

A d d iA d d i

$ $ bitbakebitbake‐‐layers layers show_appendsshow_appendsParsing recipes..done.Parsing recipes..done.

A d d iA d d i=== Appended recipes ====== Appended recipes ===[...][...]busybox_1.20.2.bb:busybox_1.20.2.bb:

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

=== Appended recipes ====== Appended recipes ===[...][...]busybox_1.20.2.bb:busybox_1.20.2.bb:

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto/recipes/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/recipesnetworking/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization/recipesvirtualization/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend[...][...]

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/recipesnetworking/recipes‐‐append/append/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization/recipesvirtualization/recipes‐‐core/core/busyboxbusybox/busybox_1.20.2.bbappend/busybox_1.20.2.bbappend[...][...]

•• show_overlayedshow_overlayed : lists highest priority recipes with the recipes they overlay as sub-items

$ $ bitbakebitbake‐‐layers layers show_overlayedshow_overlayed$ $ bitbakebitbake‐‐layers layers show_overlayedshow_overlayed

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9797

Page 77: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 78: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• When modifying existing packages and images, or developing new ones :developing new ones :

!!! create and work in your own custom layer !!!!!! create and work in your own custom layer !!!

id h i t dif f th SDK id d l− avoids having to modify any of the SDK provided layers

− isolates your changes for released layers

Th f ll i i i l f ll i d • The following customization examples are fully contained within a new metameta‐‐customcustom layer

• This custom layer its recipes and source files are • This custom layer, its recipes and source files are available with this slide deck

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

9999

Page 79: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Make a new layer directory : <install<install‐‐dir>/metadir>/meta‐‐customcustom

• Create a new metameta‐‐custom/conf/custom/conf/layer.conflayer.conf file from a copy of metameta‐‐fslfsl‐‐<arch>/conf/<arch>/conf/layer.conflayer.conf and change as shown :shown :[meta[meta‐‐custom/conf/custom/conf/layer.conflayer.conf]]# We have a packages directory, add to BBFILES# We have a packages directory, add to BBFILESBBPATH := "${BBPATH}:${LAYERDIR}"BBPATH := "${BBPATH}:${LAYERDIR}"

[meta[meta‐‐custom/conf/custom/conf/layer.conflayer.conf]]# We have a packages directory, add to BBFILES# We have a packages directory, add to BBFILESBBPATH := "${BBPATH}:${LAYERDIR}"BBPATH := "${BBPATH}:${LAYERDIR}"BBPATH :=  ${BBPATH}:${LAYERDIR}BBPATH :=  ${BBPATH}:${LAYERDIR}

BBFILES += "${LAYERDIR}/recipesBBFILES += "${LAYERDIR}/recipes‐‐*/*/*.bb*"*/*/*.bb*"BBFILES += "${LAYERDIR}/images/*.bb*"BBFILES += "${LAYERDIR}/images/*.bb*"

BBPATH :=  ${BBPATH}:${LAYERDIR}BBPATH :=  ${BBPATH}:${LAYERDIR}

BBFILES += "${LAYERDIR}/recipesBBFILES += "${LAYERDIR}/recipes‐‐*/*/*.bb*"*/*/*.bb*"BBFILES += "${LAYERDIR}/images/*.bb*"BBFILES += "${LAYERDIR}/images/*.bb*"

BBFILE_COLLECTIONS += "BBFILE_COLLECTIONS += "customcustom""BBFILE_PATTERN_BBFILE_PATTERN_customcustom := "^${LAYERDIR}/":= "^${LAYERDIR}/"BBFILE PRIORITYBBFILE PRIORITY customcustom = "= "66""

BBFILE_COLLECTIONS += "BBFILE_COLLECTIONS += "customcustom""BBFILE_PATTERN_BBFILE_PATTERN_customcustom := "^${LAYERDIR}/":= "^${LAYERDIR}/"BBFILE PRIORITYBBFILE PRIORITY customcustom = "= "66""

Metadata from higher priority layers overrides same from lower priority layers.Execute "bitbake‐layers show‐layers" BBFILE_PRIORITY_BBFILE_PRIORITY_customcustom    66BBFILE_PRIORITY_BBFILE_PRIORITY_customcustom    66to see layer priorities

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

100100

Page 80: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

Creating a New Layer Creating a New Layer Enable the Custom LayerEnable the Custom Layer

• Edit the conf/conf/bblayers.confbblayers.conf file in the build project :# LAYER_CONF_VERSION is increased each time build/conf/# LAYER_CONF_VERSION is increased each time build/conf/bblayers.confbblayers.conf# changes incompatibly# changes incompatiblyLCONF_VERSION = "6"LCONF_VERSION = "6"

${ }${ }

# LAYER_CONF_VERSION is increased each time build/conf/# LAYER_CONF_VERSION is increased each time build/conf/bblayers.confbblayers.conf# changes incompatibly# changes incompatiblyLCONF_VERSION = "6"LCONF_VERSION = "6"

${ }${ }BBPATH = "${TOPDIR}"BBPATH = "${TOPDIR}"BBFILES ?= ""BBFILES ?= ""

BBLAYERS ?= " BBLAYERS ?= " \\< >/QorIQ< >/QorIQ SDKSDK V1 4V1 4 2013062520130625 yocto/metayocto/meta \\

BBPATH = "${TOPDIR}"BBPATH = "${TOPDIR}"BBFILES ?= ""BBFILES ?= ""

BBLAYERS ?= " BBLAYERS ?= " \\< >/QorIQ< >/QorIQ SDKSDK V1 4V1 4 2013062520130625 yocto/metayocto/meta \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta yocto/meta \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc ppc \\< >/QorIQ< >/QorIQ SDKSDK V1 4V1 4 2013062520130625 yocto/metayocto/meta fslfsl ppcppc toolchaintoolchain \\

<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta yocto/meta \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc ppc \\< >/QorIQ< >/QorIQ SDKSDK V1 4V1 4 2013062520130625 yocto/metayocto/meta fslfsl ppcppc toolchaintoolchain \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization virtualization \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking networking \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe \\< >/QorIQ< >/QorIQ‐‐SDKSDK‐‐V1 4V1 4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networkingnetworking \\

<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization virtualization \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking networking \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe \\< >/QorIQ< >/QorIQ‐‐SDKSDK‐‐V1 4V1 4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networkingnetworking \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking networking \\<...><...>/QorIQ/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐custom"custom"

BBLAYERS_NON_REMOVABLE ?= " BBLAYERS_NON_REMOVABLE ?= " \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta yocto/meta \\< >/QorIQ< >/QorIQ‐‐SDKSDK‐‐V1 4V1 4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto \\

<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking networking \\<...><...>/QorIQ/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐custom"custom"

BBLAYERS_NON_REMOVABLE ?= " BBLAYERS_NON_REMOVABLE ?= " \\<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta yocto/meta \\< >/QorIQ< >/QorIQ‐‐SDKSDK‐‐V1 4V1 4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto \\

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

101101

<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto \\""<...>/QorIQ<...>/QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto \\""

Page 81: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Copy the original image recipe to your custom layer:

$ $ cp cp metameta‐‐fslfsl‐‐<arch>/images/<arch>/images/fslfsl‐‐imageimage‐‐<variant>.bb <variant>.bb \\metameta‐‐custom/images/customcustom/images/custom‐‐image.bbimage.bb

Th i fili fil li i th i l The require <file>require <file> lines in the new recipe are no longer sourced from the current, so add images/images/ to their relative paths

[ t[ t i bb]i bb][ t[ t i bb]i bb]

• Edit the IMAGE_INSTALLIMAGE_INSTALL variable in customcustom‐‐image.bbimage.bb to add or

[custom[custom‐‐image.bb] image.bb] [...][...]IMAGE_INSTALL += " IMAGE_INSTALL += " \\

bridgebridge‐‐utilsutils \\

[custom[custom‐‐image.bb] image.bb] [...][...]IMAGE_INSTALL += " IMAGE_INSTALL += " \\

bridgebridge‐‐utilsutils \\ggremove packages

bridgebridge utilsutils \\coreutilscoreutils \\[...][...]perfperf \\

ii \\

bridgebridge utilsutils \\coreutilscoreutils \\[...][...]perfperf \\

ii \\• To build : psmiscpsmisc \\tcpdumptcpdump \\

""

psmiscpsmisc \\tcpdumptcpdump \\

""

$ $ bitbake bitbake ‐‐f customf custom‐‐imageimage$ $ bitbake bitbake ‐‐f customf custom‐‐imageimage

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

102102

Page 82: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Create a new image recipe

$ $ touch touch metameta‐‐custom/images/custom/images/customcustom‐‐requirerequire‐‐image.bbimage.bb

• Edit the new image recipe to require the settings from • Edit the new image recipe to require the settings from an existing image recipe, then customize :

PR .= ".1"PR .= ".1"IMAGE_INSTALL = "bridgeIMAGE_INSTALL = "bridge‐‐utilsutils""requirerequire images/images/fslfsl‐‐imageimage‐‐<variant>.<variant>.bbbb

• To build :

$$ bitbake custombitbake custom‐‐requirerequire‐‐image bbimage bb$ $ bitbake custombitbake custom‐‐requirerequire‐‐image.bbimage.bb

• It is not possible in the custom recipe to remove k d f d b h d l

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

103103

packages defined by the required external image recipe

Page 83: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Note : this is not a preferred method

• Add CORE_IMAGE_EXTRA_INSTALL = "<pkg> ..."CORE_IMAGE_EXTRA_INSTALL = "<pkg> ..."

− Specifies the list of packages to be added to the image

• Add IMAGE_INSTALL_appendIMAGE_INSTALL_append = " <pkg>"= " <pkg>"

− Note the leading space

− Check configuration result with :

$$ bitbake bitbake ‐‐e e fslfsl‐‐imageimage‐‐<variant> | <variant> | grepgrep IMAGE INSTALLIMAGE INSTALL$$ gg || g pg p __

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

104104

Page 84: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Add EXTRA_IMAGE_FEATURES = "<feature>" EXTRA_IMAGE_FEATURES = "<feature>" 

• Available image features :−− dbgdbg‐‐pkgspkgs ‐‐dbgdbg packages for all installed packages

−− devdev‐‐pkgspkgs ‐‐devdev packages for all installed packages

−− toolstools‐‐sdksdk Development tools such as gccgcc, makemake, ...

−− toolstools‐‐debugdebug Debugging tools such as gdbgdb and stracestrace.

−− toolstools‐‐profileprofile Profiling tools such as oprofileoprofile, exmapexmap,lttnglttng and valgrindvalgrindlttnglttng and valgrindvalgrind

−− toolstools‐‐testappstestapps Testing tools such as ts_printts_print, aplayaplay, ...

debugdebug tweakstweaks Makes an image suitable for development−− debugdebug‐‐tweakstweaks Makes an image suitable for development

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

105105

Page 85: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

Customizing the Root File SystemCustomizing the Root File System

• Add in <layer>/images/<image>.bb<layer>/images/<image>.bb

IMAGE_INSTALL += "... taskIMAGE_INSTALL += "... task‐‐<some<some‐‐task>"task>"

• For information on creating custom tasks

− See Poky Reference Manual - 3 2 2− See Poky Reference Manual - 3.2.2

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

106106

Page 86: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• To modify RFS content after package installation :− add ROOTFS_POSTPROCESS_COMMANDROOTFS_POSTPROCESS_COMMAND variable to the image recipe,

specifying commands to execute before image generation

[meta[meta custom/images/customcustom/images/custom image bb]image bb][meta[meta custom/images/customcustom/images/custom image bb]image bb][meta[meta‐‐custom/images/customcustom/images/custom‐‐image.bb]image.bb]require require customcustom‐‐rootfs_post_process.incrootfs_post_process.inc

[custom[custom‐‐rootfs post process inc]rootfs post process inc]

[meta[meta‐‐custom/images/customcustom/images/custom‐‐image.bb]image.bb]require require customcustom‐‐rootfs_post_process.incrootfs_post_process.inc

[custom[custom‐‐rootfs post process inc]rootfs post process inc][custom[custom rootfs_post_process.inc]rootfs_post_process.inc]ROOTFS_POSTPROCESS_COMMAND += " ROOTFS_POSTPROCESS_COMMAND += " rmrm ‐‐rfrf ${IMAGE_ROOTFS}/boot ; ${IMAGE_ROOTFS}/boot ; \\rmrm ‐‐rfrf ${IMAGE_ROOTFS}/${IMAGE_ROOTFS}/usrusr/include ; /include ; \\rmrm ‐‐rfrf ${IMAGE_ROOTFS}/${IMAGE_ROOTFS}/usrusr/share/info ; /share/info ; \\( fi d ${IMAGE ROOTFS}( fi d ${IMAGE ROOTFS} t dt d " " |" " | ff )) \\

[custom[custom rootfs_post_process.inc]rootfs_post_process.inc]ROOTFS_POSTPROCESS_COMMAND += " ROOTFS_POSTPROCESS_COMMAND += " rmrm ‐‐rfrf ${IMAGE_ROOTFS}/boot ; ${IMAGE_ROOTFS}/boot ; \\rmrm ‐‐rfrf ${IMAGE_ROOTFS}/${IMAGE_ROOTFS}/usrusr/include ; /include ; \\rmrm ‐‐rfrf ${IMAGE_ROOTFS}/${IMAGE_ROOTFS}/usrusr/share/info ; /share/info ; \\( fi d ${IMAGE ROOTFS}( fi d ${IMAGE ROOTFS} t dt d " " |" " | ff )) \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐type d type d ‐‐name "man"   | name "man"   | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐type d type d ‐‐name "name "srcsrc"   | "   | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐type d type d ‐‐name "doc"   | name "doc"   | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "*python*"      | name "*python*"      | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\

( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐type d type d ‐‐name "man"   | name "man"   | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐type d type d ‐‐name "name "srcsrc"   | "   | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐type d type d ‐‐name "doc"   | name "doc"   | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "*python*"      | name "*python*"      | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "elf_*86*"      | name "elf_*86*"      | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "elf_*64*"      | name "elf_*64*"      | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "*name "*openbiosopenbios*"    | *"    | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE ROOTFS} ( find ${IMAGE ROOTFS} ‐‐name "powerpcname "powerpc‐‐fslfsl‐‐*" | *" | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\

( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "elf_*86*"      | name "elf_*86*"      | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "elf_*64*"      | name "elf_*64*"      | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE_ROOTFS} ( find ${IMAGE_ROOTFS} ‐‐name "*name "*openbiosopenbios*"    | *"    | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\( find ${IMAGE ROOTFS} ( find ${IMAGE ROOTFS} ‐‐name "powerpcname "powerpc‐‐fslfsl‐‐*" | *" | xargsxargs rmrm ‐‐rfrf ) ; ) ; \\

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

107107

( ${ _ }( ${ _ } p pp p || gg ) ;) ; \\""( ${ _ }( ${ _ } p pp p || gg ) ;) ; \\""

Page 87: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Add in <layer>/images/<image>.bb<layer>/images/<image>.bb

IMAGE_ROOTFS_EXTRA_SPACE = IMAGE_ROOTFS_EXTRA_SPACE = "<"<size_in_KBsize_in_KB>">"

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

108108

Page 88: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Unmanaged means : no recipe exists for creating and installing explicit files that must be deployedinstalling explicit files that must be deployed

• By using a mergemerge‐‐filesfiles recipe your selection of unmanaged files and directories :unmanaged files and directories :− will be packaged as an installable .rpm.rpm

− which will be deployed after all other packages and before which will be deployed after all other packages and before image files are created

• It is preferable to copy the provided mergemerge‐‐files.bbfiles.bbrecipe and make modifications there

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

109109

Page 89: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• By default no network interfaces are brought up automaticallyautomatically.

• Either manually configure after boot :

# # ip linkip link list available interfaceslist available interfaces[...][...]## ifconfigifconfig <<netifnetif name>name># # ifconfigifconfig <<netifnetif name> ...name> ...

• Or add an /etc/network/interfaces/etc/network/interfaces files to RFS./ / // / /

See also :manpages.debian.net/manpages.debian.net/cgicgi‐‐bin/bin/man.cgi?queryman.cgi?query=interfaces=interfacesmanpages.debian.net/manpages.debian.net/cgicgi bin/bin/man.cgi?queryman.cgi?query=interfaces=interfaces

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

110110

Page 90: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• System services to be launched t b t d/ d

[recipes[recipes‐‐core]core][recipes[recipes‐‐core]core]at boot and/or managed at runtime are defined in :

[...][...]├── init├── init‐‐ifupdownifupdown├── ├── initrdscriptsinitrdscripts├├ i it i ti it i t

[...][...]├── init├── init‐‐ifupdownifupdown├── ├── initrdscriptsinitrdscripts├├ i it i ti it i t

• To add additional services :− use .append.append file

├── ├── initscriptsinitscripts[...][...]

├── ├── systemdsystemd[ ][ ]

├── ├── initscriptsinitscripts[...][...]

├── ├── systemdsystemd[ ][ ]

pppp

• To add or remove services :

[...][...]├── ├── sysvinitsysvinit

[...] [...] 

[...][...]├── ├── sysvinitsysvinit

[...] [...] 

− use a custom recipe to override the default

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

111111

Page 91: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Prior to regenerating the RFS, make sure to clean the SSTATESSTATE f t ib ti k th t i SSTATESSTATE for any contributing package that requires a rebuild because of reconfiguration or source code change: g$ $ bitbake bitbake ‐‐c c cleansstatecleansstate <pkg><pkg> or$ $ bitbake bitbake ‐‐c c cleansstatecleansstate <image><image>

• Then invoke bitbakebitbake again :g$ $ bitbake <image>bitbake <image>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

112112

Page 92: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 93: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

metameta‐‐<layer>/recipes<layer>/recipes‐‐<name>/<pkg><name>/<pkg>├ k i bb├ k i bbmetameta‐‐<layer>/recipes<layer>/recipes‐‐<name>/<pkg><name>/<pkg>├ k i bb├ k i bb bitb k i├── <pkg>_<version>.bb├── <pkg>_<version>.bb└── files└── files

├── <pkg>.├── <pkg>.tar.gztar.gz├ <patch name> patch├ <patch name> patch

├── <pkg>_<version>.bb├── <pkg>_<version>.bb└── files└── files

├── <pkg>.├── <pkg>.tar.gztar.gz├ <patch name> patch├ <patch name> patch

source archive

local files folder

bitbake recipe

Patch file(s)├── <patch name>.patch├── <patch name>.patch└── [...]└── [...]├── <patch name>.patch├── <patch name>.patch└── [...]└── [...] Other locally stored files

Patch file(s)

•• _<version>_<version> will set the ${PV}${PV} variable, that may be used in the recipe. Note the leading underscore '__'

Y t ill l th hi h t i i b f • Yocto will always use the highest revision number of a package. To use a specific package version :

$$ bitbake [bitbake [‐‐c CMD] <pkg> <version>c CMD] <pkg> <version>$$ bitbake [bitbake [‐‐c CMD] <pkg> <version>c CMD] <pkg> <version>$ $ bitbake [bitbake [ c CMD] <pkg>_<version>c CMD] <pkg>_<version>$ $ bitbake [bitbake [ c CMD] <pkg>_<version>c CMD] <pkg>_<version>

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

114114

Page 94: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Make one or more directories to group your recipes,e g metameta custom/recipescustom/recipes customcustome.g. metameta--custom/recipescustom/recipes--customcustom

• Make a sub-directory for each recipe, e.g. simplesimple

it k i bbk i bb i i l bbi l bb− write a <pkg>_<version>.bb<pkg>_<version>.bb recipe, e.g. simple_1.0.bbsimple_1.0.bb

− populate with the required explicit files, tar balls and patches

metameta‐‐customcustom├── conf├── conf│   └── │   └── layer.conflayer.conf

metameta‐‐customcustom├── conf├── conf│   └── │   └── layer.conflayer.conf

new layer folder

layer.conf file for meta‐custom││ yy└── recipes└── recipes‐‐customcustom

└── simple└── simple├── files├── files│ └│ └

││ yy└── recipes└── recipes‐‐customcustom

└── simple└── simple├── files├── files│ └│ └

folder for custom recipes 

recipe folder

│   └── │   └── simple.csimple.c└── simple_1.0.bb└── simple_1.0.bb│   └── │   └── simple.csimple.c└── simple_1.0.bb└── simple_1.0.bb .bb recipe

explicit source file(s)

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

115115

Page 95: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• A recipe should define :−− DESCRIPTIONDESCRIPTION : package description (*)

−− LICENSELICENSE : list of package source licenses.For closed source packages use LICENSE="CLOSED"LICENSE="CLOSED"For closed source packages, use LICENSE= CLOSEDLICENSE= CLOSED

−− LIC_FILES_CHKSUMLIC_FILES_CHKSUM : checksums of the license text in the recipe source code

−− SECTIONSECTION : section where package should be put (*)

−− HOMEPAGEHOMEPAGE : website with info about package

−− AUTHORAUTHOR : email address used to contact the original author or authors in order to send patches, forward bugs, etc.

−− SRC_URISRC_URI : list of source files - local or remote

(*) used by package managers.

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

116116

Page 96: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• SRC_URISRC_URI variable must list the locally stored source files

• Write a do_compiledo_compile and do_installdo_install task[meta[meta‐‐custom/recipescustom/recipes‐‐custom/simple/simple_1.0.bb]custom/simple/simple_1.0.bb]DESCRIPTION =DESCRIPTION = "Simple application""Simple application"[meta[meta‐‐custom/recipescustom/recipes‐‐custom/simple/simple_1.0.bb]custom/simple/simple_1.0.bb]DESCRIPTION =DESCRIPTION = "Simple application""Simple application"DESCRIPTION = DESCRIPTION =  Simple applicationSimple applicationSECTION = "examples"SECTION = "examples"LICENSE = "MIT"LICENSE = "MIT"LIC_FILES_CHKSUM = LIC_FILES_CHKSUM = "file://${COMMON LICENSE DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302""file://${COMMON LICENSE DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

DESCRIPTION = DESCRIPTION =  Simple applicationSimple applicationSECTION = "examples"SECTION = "examples"LICENSE = "MIT"LICENSE = "MIT"LIC_FILES_CHKSUM = LIC_FILES_CHKSUM = "file://${COMMON LICENSE DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302""file://${COMMON LICENSE DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302

PR = "r0"PR = "r0"SRC_URI = SRC_URI = "file://simple.c""file://simple.c"S = S = "${WORKDIR}/simple""${WORKDIR}/simple"

file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302

PR = "r0"PR = "r0"SRC_URI = SRC_URI = "file://simple.c""file://simple.c"S = S = "${WORKDIR}/simple""${WORKDIR}/simple"

.c.c source from local filesfiles folderOutput folder{ } p{ } p

do_compiledo_compile()() {{${CC} ${WORKDIR}/${CC} ${WORKDIR}/simple.csimple.c ‐‐o ${S}/simpleo ${S}/simple}}

{ } p{ } p

do_compiledo_compile()() {{${CC} ${WORKDIR}/${CC} ${WORKDIR}/simple.csimple.c ‐‐o ${S}/simpleo ${S}/simple}}

do_installdo_install()() {{install install ‐‐d ${D}${d ${D}${bindirbindir}}install install ‐‐m 0755 ${S}/simple ${D}${m 0755 ${S}/simple ${D}${bindirbindir}}}}

do_installdo_install()() {{install install ‐‐d ${D}${d ${D}${bindirbindir}}install install ‐‐m 0755 ${S}/simple ${D}${m 0755 ${S}/simple ${D}${bindirbindir}}}}

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

117117

}}}}

Page 97: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

ppce500mcppce500mc‐‐fsl_networkingfsl_networking‐‐linux/simple/1.0linux/simple/1.0‐‐r0/r0/├── deploy├── deploy‐‐rpmsrpms│ └│ └

ppce500mcppce500mc‐‐fsl_networkingfsl_networking‐‐linux/simple/1.0linux/simple/1.0‐‐r0/r0/├── deploy├── deploy‐‐rpmsrpms│ └│ └

${WORKDIR}${WORKDIR}

│   └── ppce500mc│   └── ppce500mc│       ├── │       ├── simplesimple‐‐1.01.0‐‐r0.ppce500mc.rpmr0.ppce500mc.rpm│       ├── simple│       ├── simple‐‐dbgdbg‐‐1.01.0‐‐r0.ppce500mc.rpmr0.ppce500mc.rpm│       └── simple│       └── simple‐‐devdev‐‐1.01.0‐‐r0.ppce500mc.rpmr0.ppce500mc.rpm├├

│   └── ppce500mc│   └── ppce500mc│       ├── │       ├── simplesimple‐‐1.01.0‐‐r0.ppce500mc.rpmr0.ppce500mc.rpm│       ├── simple│       ├── simple‐‐dbgdbg‐‐1.01.0‐‐r0.ppce500mc.rpmr0.ppce500mc.rpm│       └── simple│       └── simple‐‐devdev‐‐1.01.0‐‐r0.ppce500mc.rpmr0.ppce500mc.rpm├├

Installable binary .rpm.rpm

├── image├── image│   └──│   └── usrusr││ └── bin└── bin││ └── simple└── simple├├

├── image├── image│   └──│   └── usrusr││ └── bin└── bin││ └── simple└── simple├├

Location in rootfs image

├── license├── license‐‐destdirdestdir│   └── │   └── simplesimple├── package├── package├── packages├── packages‐‐splitsplit├├

├── license├── license‐‐destdirdestdir│   └── │   └── simplesimple├── package├── package├── packages├── packages‐‐splitsplit├├├── ├── pkgdatapkgdata├── pseudo├── pseudo├── simple├── simple│   └── │   └── simplesimple├├

├── ├── pkgdatapkgdata├── pseudo├── pseudo├── simple├── simple│   └── │   └── simplesimple├├

Compiled binary

├──├── simple.csimple.c├── ├── simple.specsimple.spec├── ├── sysrootsysroot‐‐destdirdestdir└── temp└── temp

├──├── simple.csimple.c├── ├── simple.specsimple.spec├── ├── sysrootsysroot‐‐destdirdestdir└── temp└── temp

Source file

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

118118

Page 98: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• SRC_URISRC_URI variable must list the source archive

• Use inherit inherit autotoolsautotools

• E.g. for the GNU hellohello package( hi i t l t d th GNU i ) (source archive is remotely stored on the GNU mirror) :

[meta[meta‐‐custom/recipescustom/recipes‐‐custom/hello/hello_2.8.bb]custom/hello/hello_2.8.bb]DESCRIPTION = "GNUDESCRIPTION = "GNU HelloworldHelloworld application"application"[meta[meta‐‐custom/recipescustom/recipes‐‐custom/hello/hello_2.8.bb]custom/hello/hello_2.8.bb]DESCRIPTION = "GNUDESCRIPTION = "GNU HelloworldHelloworld application"application"DESCRIPTION =  GNU DESCRIPTION =  GNU HelloworldHelloworld applicationapplicationSECTION = "examples"SECTION = "examples"LICENSE = "GPLv2+"LICENSE = "GPLv2+"LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 "LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 "PR = "r0"PR = "r0"

DESCRIPTION =  GNU DESCRIPTION =  GNU HelloworldHelloworld applicationapplicationSECTION = "examples"SECTION = "examples"LICENSE = "GPLv2+"LICENSE = "GPLv2+"LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 "LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 "PR = "r0"PR = "r0"PR    r0PR    r0SRC_URI = SRC_URI = "${GNU_MIRROR}/hello/hello"${GNU_MIRROR}/hello/hello‐‐${PV}.${PV}.tar.gztar.gz""SRC_URI[md5sum] = SRC_URI[md5sum] = "6a67cbbbc0420061ef938a9a2736fbd6""6a67cbbbc0420061ef938a9a2736fbd6"SRC_URI[sha256sum] = SRC_URI[sha256sum] = "e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73""e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73"

PR    r0PR    r0SRC_URI = SRC_URI = "${GNU_MIRROR}/hello/hello"${GNU_MIRROR}/hello/hello‐‐${PV}.${PV}.tar.gztar.gz""SRC_URI[md5sum] = SRC_URI[md5sum] = "6a67cbbbc0420061ef938a9a2736fbd6""6a67cbbbc0420061ef938a9a2736fbd6"SRC_URI[sha256sum] = SRC_URI[sha256sum] = "e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73""e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73"e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73

inherit inherit autotoolsautotools gettextgettext

e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73

inherit inherit autotoolsautotools gettextgettext

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

119119

Page 99: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Recipe must :− list source archive in the SRC_URISRC_URI variable

− store additional make options in the EXTRA_OEMAKEEXTRA_OEMAKE variable

− provide manually written do_installdo_install task

• The following example :− pulls mtdmtd‐‐utilsutils v1.5.0v1.5.0 from upstream git and builds the

package using its Makefile

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

120120

Page 100: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

[meta[meta‐‐custom/recipescustom/recipes‐‐custom/custom/mtdmtd‐‐utilsutils‐‐upstream/mtdupstream/mtd‐‐utilsutils‐‐upstream_1.5.0.bb]upstream_1.5.0.bb]DESCRIPTION = "Tools for managing memory technology devices."DESCRIPTION = "Tools for managing memory technology devices."

"b ""b "

[meta[meta‐‐custom/recipescustom/recipes‐‐custom/custom/mtdmtd‐‐utilsutils‐‐upstream/mtdupstream/mtd‐‐utilsutils‐‐upstream_1.5.0.bb]upstream_1.5.0.bb]DESCRIPTION = "Tools for managing memory technology devices."DESCRIPTION = "Tools for managing memory technology devices."

"b ""b "SECTION = "base"SECTION = "base"HOMEPAGE = "http://www.linuxHOMEPAGE = "http://www.linux‐‐mtd.infradead.org/"mtd.infradead.org/"

LICENSE = "GPLv2"LICENSE = "GPLv2"LIC FILES CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3LIC FILES CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \\

SECTION = "base"SECTION = "base"HOMEPAGE = "http://www.linuxHOMEPAGE = "http://www.linux‐‐mtd.infradead.org/"mtd.infradead.org/"

LICENSE = "GPLv2"LICENSE = "GPLv2"LIC FILES CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3LIC FILES CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \\LIC_FILES_CHKSUM =  file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 LIC_FILES_CHKSUM =  file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \\file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"

DEPENDS = DEPENDS = ""zlibzlib lzolzo e2fsprogs e2fsprogs utilutil‐‐linux"linux"SRC URI = SRC URI = "git://git.infradead.org/mtd"git://git.infradead.org/mtd‐‐utils.git;protocol=git;tag=v${PV}"utils.git;protocol=git;tag=v${PV}"

LIC_FILES_CHKSUM =  file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 LIC_FILES_CHKSUM =  file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \\file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"

DEPENDS = DEPENDS = ""zlibzlib lzolzo e2fsprogs e2fsprogs utilutil‐‐linux"linux"SRC URI = SRC URI = "git://git.infradead.org/mtd"git://git.infradead.org/mtd‐‐utils.git;protocol=git;tag=v${PV}"utils.git;protocol=git;tag=v${PV}"__ g g gg g g g ;p g ; g { }g ;p g ; g { }S = "${WORKDIR}/S = "${WORKDIR}/gitgit/"/"

EXTRA_OEMAKE = EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} "'CC=${CC}' 'CFLAGS=${CFLAGS} ‐‐I${S}/include I${S}/include \\‐‐DWITHOUT_XATTR' 'BUILDDIR=${S}'"DWITHOUT_XATTR' 'BUILDDIR=${S}'"

__ g g gg g g g ;p g ; g { }g ;p g ; g { }S = "${WORKDIR}/S = "${WORKDIR}/gitgit/"/"

EXTRA_OEMAKE = EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} "'CC=${CC}' 'CFLAGS=${CFLAGS} ‐‐I${S}/include I${S}/include \\‐‐DWITHOUT_XATTR' 'BUILDDIR=${S}'"DWITHOUT_XATTR' 'BUILDDIR=${S}'"

do_installdo_install () {() {oe_runmakeoe_runmake install DESTDIR=${D} SBINDIR=${install DESTDIR=${D} SBINDIR=${sbindirsbindir} MANDIR=${} MANDIR=${mandirmandir} } \\INCLUDEDIR=${INCLUDEDIR=${includedirincludedir}}installinstall ‐‐d ${D}${d ${D}${includedirincludedir}/}/mtdmtd//

do_installdo_install () {() {oe_runmakeoe_runmake install DESTDIR=${D} SBINDIR=${install DESTDIR=${D} SBINDIR=${sbindirsbindir} MANDIR=${} MANDIR=${mandirmandir} } \\INCLUDEDIR=${INCLUDEDIR=${includedirincludedir}}installinstall ‐‐d ${D}${d ${D}${includedirincludedir}/}/mtdmtd//install install ‐‐d ${D}${d ${D}${includedirincludedir}/}/mtdmtd//for f in ${S}/include/for f in ${S}/include/mtdmtd/*.h; do/*.h; do

install install ‐‐m 0644 $f ${D}${m 0644 $f ${D}${includedirincludedir}/}/mtdmtd//donedone}}

install install ‐‐d ${D}${d ${D}${includedirincludedir}/}/mtdmtd//for f in ${S}/include/for f in ${S}/include/mtdmtd/*.h; do/*.h; do

install install ‐‐m 0644 $f ${D}${m 0644 $f ${D}${includedirincludedir}/}/mtdmtd//donedone}}

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

121121

}}}}

Page 101: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Unmanaged you have not created a recipe

• By using a mergemerge‐‐filesfiles recipe your selection of unmanaged files and directories :

ill b k d i t ll bl − will be packaged as an installable .rpm.rpm

− which will be deployed after all other packages and before image files are createdimage files are created

• It is preferable to make a custom copy of the SDK-provided mergemerge‐‐filesfiles recipe and make modifications there

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

122122

Page 102: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Make a copy of the mergemerge‐‐filesfiles recipe provided by the fslfsl ppcppc private layerprivate layer :fslfsl‐‐ppcppc‐‐private layerprivate layer :

$ $ cp cp ‐‐a metaa meta‐‐fslfsl‐‐ppcppc‐‐private/recipesprivate/recipes‐‐tools/mergetools/merge‐‐files files \\metameta‐‐custom/mergecustom/merge‐‐filesfiles‐‐customcustom$ $ cp cp ‐‐a metaa meta‐‐fslfsl‐‐ppcppc‐‐private/recipesprivate/recipes‐‐tools/mergetools/merge‐‐files files \\metameta‐‐custom/mergecustom/merge‐‐filesfiles‐‐customcustom

• Rename the .bb.bb file :

metameta custom/mergecustom/merge filesfiles customcustommetameta custom/mergecustom/merge filesfiles customcustom

$$$$$ $ cdcd metameta‐‐custom/mergecustom/merge‐‐filesfiles‐‐customcustom$ $ mvmv mergemerge‐‐files_1.0.bb mergefiles_1.0.bb merge‐‐filesfiles‐‐custom_1.0.bbcustom_1.0.bb$ $ cdcd metameta‐‐custom/mergecustom/merge‐‐filesfiles‐‐customcustom$ $ mvmv mergemerge‐‐files_1.0.bb mergefiles_1.0.bb merge‐‐filesfiles‐‐custom_1.0.bbcustom_1.0.bb

• Copy the unmanaged file and directory content into ./files/merge ./files/merge 

$ $ cp cp ‐‐a <source location> ./files/mergea <source location> ./files/merge$ $ cp cp ‐‐a <source location> ./files/mergea <source location> ./files/merge

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

123123

Page 103: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The recipe folder now has this layout :metameta‐‐custom/recipescustom/recipes‐‐custom/mergecustom/merge‐‐filesfiles‐‐custom/custom/├── files├── files│   └── merge│   └── merge│ ├│ ├

metameta‐‐custom/recipescustom/recipes‐‐custom/mergecustom/merge‐‐filesfiles‐‐custom/custom/├── files├── files│   └── merge│   └── merge│ ├│ ├│       ├── <files...>│       ├── <files...>│       └── <folder>│       └── <folder>│          └── <files...>│          └── <files...>└└

│       ├── <files...>│       ├── <files...>│       └── <folder>│       └── <folder>│          └── <files...>│          └── <files...>└└

• Rebuild the mergemerge‐‐filesfiles‐‐customcustom package :

└── merge└── merge‐‐filesfiles‐‐custom_1.0.bbcustom_1.0.bb└── merge└── merge‐‐filesfiles‐‐custom_1.0.bbcustom_1.0.bb

gg p g

$$ bitbake bitbake ‐‐f mergef merge‐‐filesfiles‐‐customcustom$$ bitbake bitbake ‐‐f mergef merge‐‐filesfiles‐‐customcustom

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

124124

Page 104: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Add the mergemerge‐‐filesfiles‐‐customcustom package to a custom image

• Regenerate the image files

• As an alternative to copying individual files and di t i i t fil /fil /directories into files/mergefiles/merge :

− create a tar ball with an .md5sum file

− change the SRC_URISRC_URI in the mergemerge‐‐filesfiles‐‐customcustom recipe so that the archive is sourced

− update the tar ball and checksum when needed− update the tar ball and checksum when needed

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

125125

Page 105: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 106: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• To work interactively with a package :

• This opens a new terminal window with a shell prompt

$$ bitbake bitbake ‐‐c c devshelldevshell <pkg><pkg>$$ bitbake bitbake ‐‐c c devshelldevshell <pkg><pkg>

This opens a new terminal window with a shell prompt within the SDK environment : − with PATHPATH variable set to include the cross toolchain

−− pkgconfigpkgconfig variables find the correct .pc.pc files.

−− configureconfigure finds all the necessary files

− working directory is changed to the ${S}${S} directory

• Within this devshelldevshell you can manually execute configure commands or compile.

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

127127

Page 107: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Building the Linux kernel or u-boot using command line makemake allows very quick edit/build/test cyclesmakemake allows very quick edit/build/test cycles.

Doing so in a bitbake devshell avoids the overhead incurred by the bitbake build framework.incurred by the bitbake build framework.

• Requirements :

− An installed and configured source tree− An installed and configured source tree

No preparation is needed if a configured source tree already exists

Otherwise run bitbake bitbake ‐‐c <configure>c <configure>, so the source and build are gg ,set up for the correct platform

− Launch a devshell for the kernel or u‐boot package

• In a devshell one can optionally build a source tree copy that exists outside of the build environment

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

128128

Page 108: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

devshelldevshell

$$ bitbake bitbake ‐‐c configure virtual/kernelc configure virtual/kernel$$ bitbakebitbake cc devshelldevshell virtual/kernelvirtual/kernel$$ bitbake bitbake ‐‐c configure virtual/kernelc configure virtual/kernel$$ bitbakebitbake cc devshelldevshell virtual/kernelvirtual/kernel$$ bitbake bitbake ‐‐c c devshelldevshell virtual/kernelvirtual/kernel

## pwdpwd devshell console starts, prompt changes to '#'<...>/linux<...>/linux‐‐qoriqqoriq‐‐sdksdk/3.8/3.8‐‐r14.3/r14.3/gitgit

$$ bitbake bitbake ‐‐c c devshelldevshell virtual/kernelvirtual/kernel

## pwdpwd devshell console starts, prompt changes to '#'<...>/linux<...>/linux‐‐qoriqqoriq‐‐sdksdk/3.8/3.8‐‐r14.3/r14.3/gitgitq qq q gg

# # unset LDFLAGSunset LDFLAGS required

# # make make ‐‐j 32 allj 32 all

q qq q gg

# # unset LDFLAGSunset LDFLAGS required

# # make make ‐‐j 32 allj 32 alljj[...][...]

WRAP    arch/powerpc/boot/WRAP    arch/powerpc/boot/uImageuImageImage Name:   LinuxImage Name:   Linux‐‐3.8.133.8.13‐‐rt9rt9‐‐QorIQQorIQ‐‐SDKSDK‐‐V1.4V1.4

jj[...][...]

WRAP    arch/powerpc/boot/WRAP    arch/powerpc/boot/uImageuImageImage Name:   LinuxImage Name:   Linux‐‐3.8.133.8.13‐‐rt9rt9‐‐QorIQQorIQ‐‐SDKSDK‐‐V1.4V1.4Created:      Tue Sep  3 14:41:10 2013Created:      Tue Sep  3 14:41:10 2013Image Type:   PowerPC Linux Kernel Image (Image Type:   PowerPC Linux Kernel Image (gzipgzipcompressed)compressed)

Created:      Tue Sep  3 14:41:10 2013Created:      Tue Sep  3 14:41:10 2013Image Type:   PowerPC Linux Kernel Image (Image Type:   PowerPC Linux Kernel Image (gzipgzipcompressed)compressed)Data Size:    4199585 Bytes = 4101.16 Data Size:    4199585 Bytes = 4101.16 kBkB = 4.01 MB= 4.01 MBLoad Address: 00000000Load Address: 00000000Entry Point:  00000000Entry Point:  00000000

[ ][ ]

Data Size:    4199585 Bytes = 4101.16 Data Size:    4199585 Bytes = 4101.16 kBkB = 4.01 MB= 4.01 MBLoad Address: 00000000Load Address: 00000000Entry Point:  00000000Entry Point:  00000000

[ ][ ]

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

129129

[...][...][...][...]

Page 109: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

devshelldevshell

$ $ bitbake bitbake ‐‐c configure uc configure u‐‐bootboot$$ bitbakebitbake cc devshelldevshell uu bootboot$ $ bitbake bitbake ‐‐c configure uc configure u‐‐bootboot$$ bitbakebitbake cc devshelldevshell uu bootboot$ $ bitbake bitbake ‐‐c c devshelldevshell uu‐‐bootboot

# # pwdpwd devshell console starts, prompt changes to '##'## t LDFLAGSt LDFLAGS

$ $ bitbake bitbake ‐‐c c devshelldevshell uu‐‐bootboot

# # pwdpwd devshell console starts, prompt changes to '##'## t LDFLAGSt LDFLAGS# # unset LDFLAGSunset LDFLAGS# # eexpxport CROSS_COMPILE=powerpcort CROSS_COMPILE=powerpc‐‐fsl_networkingfsl_networking‐‐linuxlinux‐‐# # make P2041RDB_configmake P2041RDB_config optional manual configuration## makemake

# # unset LDFLAGSunset LDFLAGS# # eexpxport CROSS_COMPILE=powerpcort CROSS_COMPILE=powerpc‐‐fsl_networkingfsl_networking‐‐linuxlinux‐‐# # make P2041RDB_configmake P2041RDB_config optional manual configuration## makemake# # makemake# # makemake

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

131131

Page 110: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

•• $$ bitbake bitbake ‐‐g fslg fsl‐‐imageimage‐‐<variant> <variant> ‐‐u depexpu depexp

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

133133

Page 111: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

$ $ bitbake bitbake ‐‐e | e | grepgrep ‐‐e "^BBFILES" | e "^BBFILES" | trtr ' ' '' ' '\\n'n'BBFILES=".../QorIQBBFILES=".../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta/recipesyocto/meta/recipes‐‐*/*/*.bb*/*/*.bb.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto/recipes/recipes‐‐*/*/*.bb*/*/*.bb

$ $ bitbake bitbake ‐‐e | e | grepgrep ‐‐e "^BBFILES" | e "^BBFILES" | trtr ' ' '' ' '\\n'n'BBFILES=".../QorIQBBFILES=".../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/meta/recipesyocto/meta/recipes‐‐*/*/*.bb*/*/*.bb.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto/recipes/recipes‐‐*/*/*.bb*/*/*.bb/Q Q/Q Q y /y / yy / p/ p / // /.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto/recipes/recipes‐‐*/*/*.*/*/*.bbappendbbappend.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp/recipes/recipes‐‐*/*/*.bb*/*/*.bb.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp/recipes/recipes‐‐*/*/*.*/*/*.bbappendbbappend.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐*/*/*.bb**/*/*.bb*.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc/images/*.bb*ppc/images/*.bb*

/Q Q/Q Q y /y / yy / p/ p / // /.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto/recipes/recipes‐‐*/*/*.*/*/*.bbappendbbappend.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp/recipes/recipes‐‐*/*/*.bb*/*/*.bb.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp/recipes/recipes‐‐*/*/*.*/*/*.bbappendbbappend.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc/recipesppc/recipes‐‐*/*/*.bb**/*/*.bb*.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppc/images/*.bb*ppc/images/*.bb*.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain/recipes/recipes‐‐*/*/*.bb**/*/*.bb*.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization/recipes*/*/*.bbvirtualization/recipes*/*/*.bb.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization/recipes*/*/*.virtualization/recipes*/*/*.bbappendbbappend.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/recipesnetworking/recipes‐‐*/*/*.bb**/*/*.bb*.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/images/*.bb*networking/images/*.bb*

/QorIQ/QorIQ‐‐SDKSDK‐‐V1 4V1 4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/networking/packagegroupspackagegroups/* bb*/* bb*

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain/recipes/recipes‐‐*/*/*.bb**/*/*.bb*

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization/recipes*/*/*.bbvirtualization/recipes*/*/*.bb

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualization/recipes*/*/*.virtualization/recipes*/*/*.bbappendbbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/recipesnetworking/recipes‐‐*/*/*.bb**/*/*.bb*

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/images/*.bb*networking/images/*.bb*/QorIQ/QorIQ‐‐SDKSDK‐‐V1 4V1 4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/networking/packagegroupspackagegroups/* bb*/* bb*.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/networking/packagegroupspackagegroups/*.bb*/*.bb*

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐*/*/*.bb*/*/*.bb

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐*/*/*.*/*/*.bbappendbbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking/recipesnetworking/recipes‐‐*/*/*.bb*/*/*.bb

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking/recipesnetworking/recipes‐‐*/*/*.*/*/*.bbappendbbappend$$ bitbakebitbake ‐‐e |e | grepgrep ‐‐e "^BBPATH" |e "^BBPATH" | trtr ':' '':' '\\nn

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networking/networking/packagegroupspackagegroups/*.bb*/*.bb*

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐*/*/*.bb*/*/*.bb

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe/recipes/recipes‐‐*/*/*.*/*/*.bbappendbbappend

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking/recipesnetworking/recipes‐‐*/*/*.bb*/*/*.bb

.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networking/recipesnetworking/recipes‐‐*/*/*.*/*/*.bbappendbbappend$$ bitbakebitbake ‐‐e |e | grepgrep ‐‐e "^BBPATH" |e "^BBPATH" | trtr ':' '':' '\\nn$ $ bitbake bitbake  e | e | grepgrep e  BBPATH  | e  BBPATH  | trtr :  :   \\nn.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/build_p2041rdb_releaseyocto/build_p2041rdb_release.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchain

$ $ bitbake bitbake  e | e | grepgrep e  BBPATH  | e  BBPATH  | trtr :  :   \\nn.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/build_p2041rdb_releaseyocto/build_p2041rdb_release.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐yoctoyocto‐‐bspbsp.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐ppcppc‐‐toolchaintoolchainQ QQ Q yy pppp.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualizationvirtualization.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networkingnetworking.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networkingnetworking

Q QQ Q yy pppp.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐virtualizationvirtualization.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐fslfsl‐‐networkingnetworking.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐oeoe.../QorIQ.../QorIQ‐‐SDKSDK‐‐V1.4V1.4‐‐2013062520130625‐‐yocto/metayocto/meta‐‐oeoe/meta/meta‐‐networkingnetworking

BBFILESBBFILES = List of recipe files used by BitBake to build software

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

134134

BBFILESBBFILES List of recipe files used by BitBake to build software BBPATHBBPATH = Used by BitBake to locate .bbclass and configuration files, i.e. like a PATH variable

Page 112: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• If the project was not created with ‐l (lite mode)

− Append to <<project_dirproject_dir>/conf/>/conf/local.conflocal.conf :

# delete sources after build# delete sources after buildINHERIT += "INHERIT += "rm workrm work""INHERIT += INHERIT +=  rm_workrm_work

− When acutely running out of disk space during builds :

− Delete work directories for non-machine specific packages : − Delete work directories for non-machine specific packages :

$ $ rmrm tmptmp/work/x86_64/work/x86_64‐‐linux/*linux/*$ $ rmrm tmptmp/work/ppc*/work/ppc*‐‐fslfsl‐‐linux/*linux/*

− When multiple build projects exist, move their respective sysrootssysroots host binaries to a common folder, then create symlinks from each build project, e.g.: symlinks from each build project, e.g.: $ $ mvmv ‐‐a a tmptmp//sysrootssysroots/x86_64/x86_64‐‐linux ..linux ..$ $ lnln ‐‐s ../../../x86_64s ../../../x86_64‐‐linux linux tmptmp//sysrootssysroots/x86_64/x86_64‐‐linuxlinux

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

135135

Page 113: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Use

Onl

y U

se O

nly

cale

Inte

rnal

cale

Inte

rnal

Free

scFr

eesc

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

Page 114: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• Yocto Project website :

www.yoctoproject.orgwww.yoctoproject.org

• BitBake User Manual :

docs.openembedded.org/bitbake/htmldocs.openembedded.org/bitbake/html

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

137137

Page 115: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

138138

Page 116: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

139139

Page 117: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

140140

Page 118: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

141141PDF version : <SOURCE ISO>/Documentation/<SOURCE ISO>/Documentation/sdk_documentationsdk_documentation//pdfpdf/QorIQ_SDK_Infocenter.pdf/QorIQ_SDK_Infocenter.pdf

Page 119: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

• The SDK documentation bundles the Yocto community documentation files :documentation files :

[[sdk_documentationsdk_documentation//pdfpdf]]├ adt├ adt manual pdfmanual pdf[[sdk_documentationsdk_documentation//pdfpdf]]├ adt├ adt manual pdfmanual pdf├── adt├── adt‐‐manual.pdfmanual.pdf├── bsp├── bsp‐‐guide.pdfguide.pdf├── dev├── dev‐‐manual.pdfmanual.pdf├ k l├ k l l dfl df

├── adt├── adt‐‐manual.pdfmanual.pdf├── bsp├── bsp‐‐guide.pdfguide.pdf├── dev├── dev‐‐manual.pdfmanual.pdf├ k l├ k l l dfl df├── kernel├── kernel‐‐manual.pdfmanual.pdf└── poky└── poky‐‐refref‐‐manual.pdfmanual.pdf├── kernel├── kernel‐‐manual.pdfmanual.pdf└── poky└── poky‐‐refref‐‐manual.pdfmanual.pdf

TM

Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.

142142

Page 120: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM

Page 121: Yocto for i.mx and Power Architectures - QorIQ SDK - DwF

TM