Home

Yocto Reference Manual

image

Contents

1. Name Company Address Return to PHYTEC Messtechnik GmbH Postfach 100403 D 55135 Mainz Germany Fax 49 6131 9221 33 PHYTEC Messtechnik GmbH 2015 L 813e_2 Published by Pin WWE PHYTEC Messtechnik GmbH 2015 Ordering No L 813e_2 Printed in Germany
2. Pin EG Yocto Reference Manual Document No L 813e_2 Release No AM335x PD15 1 x i MX 6 PD15 1 x PD15 2 x Edition September 2015 A product of a PHYTEC Technology Holding company Yocto Reference Manual Copyrighted products are not explicitly indicated in this manual The absence of the trademark or and copyright symbols does not imply that a product is not protected Additionally registered patents and trademarks are similarly not expressly indicated in this manual The information in this document has been carefully checked and is considered to be entirely reliable However PHYTEC Messtechnik GmbH assumes no responsibility for any inaccuracies PHYTEC Messtechnik GmbH neither gives any guarantee nor accepts any liability whatsoever for consequential damages resulting from the use of this manual or its associated product PHYTEC Messtechnik GmbH reserves the right to alter the information contained herein without prior notification and accepts no responsibility for any damages that might result Additionally PHYTEC Messtechnik GmbH offers no guarantee nor accepts any liability for damages arising from the improper usage or improper installation of the hardware or software PHYTEC Messtechnik GmbH further reserves the right to alter the layout and or design of the hardware without prior notification and accepts no Liability for doing so Copyright 2015 PHYTEC Messtechnik GmbH D 55129 Mainz Rights
3. user name lt Your Name gt email lt Your Mail gt phytec de core editor vim merge tool vimdiff alias co checkout br branch ci commit st status unstage reset HEAD last log 1 HEAD push default current color ui auto sendemail smtpserver idefix phytec de smtpserverport 25 8 PHYTEC Messtechnik GmbH 2015 L 813e_2 Installation You should at least set name and email in your Git configuration otherwise Bitbake will complain on the first build You can use the two commands to set them directly without editing gitconfig manually git config global user email your_email example com git config global user name name surname 4 3 site conf Setup Before starting the Yocto build it is advisable to configure the development setup Two things are most important the download directory and the cache directory It is not a precondition to do this but strongly recommended as it will reduce the compile time of consequent builds The download directory is a place where Yocto stores all sources fetched from the internet It can contain tar gz Git mirror or anything else It is very useful to set this to a common shared location on the machine Create this directory with 777 access rights To be able to share this directory between different users all files need to have group write access This will most probably be in conflict with default umask settings One possible s
4. The Yocto Project 1 4 Poky Poky is the reference system to define Yocto Project compatibility It combines several subprojects into releases Bitbake Toaster OpenEmbedded Core Yocto Documentation Yocto Reference BSP 1 4 1 Bitbake Bitbake is the task scheduler It is written in Python and interprets recipes which contain code in Bitbake s own programming language Python and bash code The official documentation can be found here http www yoctoproject org docs current bitbake user manual bitbake user manual html 1 4 2 Toaster Toaster is a web frontend for Bitbake to investigate the build history and statistics It is planned that it grows into a build management frontend for Bitbake It is not yet complete in its features and under heavy development but you can already keep an eye on the project http www yoctoproject org docs current toaster manual toaster manual html toaster manual intro 1 5 Official Documentation For more general questions about Bitbake and Poky consult the mega manual http www yoctoproject org docs latest mega manual mega manual html PHYTEC Messtechnik GmbH 2015 L 813e 2 3 Yocto Reference Manual 2 Compatible Linux Distributions To build Yocto you need a compatible Linux host development machine The list of supported distributions can be found in the reference manual for the specific Yocto version For 1 7 it can be found here http www yoctoproject org docs 1 7 ref ma
5. 12 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 Working with Poky and Bitbake 6 1 Start the Build After you downloaded all the meta data with phyLinux init you have to set up the shell environment variables This needs to be done every time you open a new shell for starting builds We use the shell script provided by Poky in its default configuration From the root of your project directory type source sources poky oe init build env The abbreviation for the source command is a single dot sources poky oe init build env The current working directory of the shell should change to build and you are now ready to build your first image We suggest to start with our hardware bring up image to see if everything is working correctly If you want you can separate the download process from the compile process to identify problems of your internet connection With bitbake c fetchall phytec hwbringup image all external source repositories get pulled into the download directory With du sh lt DL_DIR gt you can see what the download volume was Now start the compile process bitbake phytec hwbringup image The first compile process takes about 40 minutes on a modern Intel Core i7 All subsequent builds will use the filled caches and should take about 3 minutes 6 2 Images If everything went fine the images can be found under cd deploy images lt MACHINE gt The easiest way to test your image is to ju
6. auto loading you can do it intuitively with KERNEL_MODULE_AUTOLOAD your module KERNEL_MODULE_PROBECONF your module module_conf_your module blacklist your module 34 PHYTEC Messtechnik GmbH 2015 L 813e 2 Yocto Documentation 7 Yocto Documentation The most important piece of the documentation for a BSP user is probably the developer manual http www yoctoproject org docs current dev manual dev manual html Especially the chapter about common tasks is a good starting point http www yoctoproject org docs current dev manual dev manual html extendpoky The complete documentation is available in one single html page which is good for searching for a feature or a variable name http www yoctoproject org docs current mega manual mega manual html PHYTEC Messtechnik GmbH 2015 L 813e_2 35 Yocto Reference Manual 8 Revision History Changes in this manual 1 4 08 2015 Manual First edition L 813e_1 Describes the Phytec BSP release PD15 1 0 for i MX6 and AM335x products 16 09 2015 Manual Second edition L 813e_2 Describes the Phytec BSP release PD15 1 x and PD15 2 x for i MX 6 and PD15 1 x for AM335x products 36 PHYTEC Messtechnik GmbH 2015 L 813e 2 Suggestions for Improvement Document Yocto Reference Manual Document number L 813e_2 September 2015 How would you improve this manual Did you find any mistakes in this manual page Submitted by Customer number
7. explained in the output Using externalsrc breaks a lot of Yocto s internal dependency mechanism It is not guaranteed that any changes to the source directory are automatically picked up by the build process and incorporated into the A o root filesystem or SD card image You have to always use force E g to compile the barebox and redeploy it to deploy images lt machine gt execute bitbake barebox c compile force bitbake barebox c deploy To update the SD card image with a new kernel or image first force the compilation of it and then force a rebuild of the root filesystem Use bitbake phytec qt5demo image c rootfs force Also note that the buildsystem is not modifying the external source directory If you want to apply all patches the Yocto recipe is carrying to the external source directory run the line SRCTREECOVEREDTASKS BB_ENV_EXTRAWHITE BB_ENV_EXTRAWHITE SRCTREECOVEREDTASKS bitbake lt recipe gt c patch 16 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 6 Customizing the BSP To get you started with the BSP we summarize some basic tasks from the Yocto official documentation It describes how to add additional software to the image changeg the kernel and bootloader configuration and integrate patches for kernel and bootloader Minor modifications such as adding software are done in the file build conf local conf There you can overwrite global config variables an
8. if the layer is available in the build configuration by executing host bitbake layers show layers If there is an error like ERROR Layer security depends on layer perl layer but this layer is not enabled in your configuration the layer that you want to add here meta secunty depends on another layer which you need to enable first E g the dependence required here is a layer in meta openembedded In the Phytec BSP itis in the path sources meta openembedded meta perl To enable it also add the following line to build conf bblayers conf file build conf bblayers conf BBLAYERS BSPDIR sources meta openembedded meta per1 PHYTEC Messtechnik GmbH 2015 L 813e 2 19 Yocto Reference Manual Now the command bitbake layers show layers should print a list of all enabled layers including meta security and meta perl After the layer is included you can install additional software from it as already described above The easiest way is to add the following line here the package nmap file build conf local conf IMAGE_INSTALL_append nmap to your build conf local conf Do not forget to rebuild the image e g host bitbake phytec qt5demo image 6 6 4 How to create your own Layer Creating your layer should be one of the first tasks when customizing the BSP You have two basic options You could either copy and rename our meta yogurt or you can create a new layer which will contain your changes Whic
9. including those of translation reprint broadcast photomechanical or similar reproduction and storage or processing in computer systems in whole or in part are reserved No reproduction may occur without the express written consent from PHYTEC Messtechnik GmbH EUROPE NORTH AMERICA FRANCE Address PHYTEC Messtechnik GmbH PHYTEC America LLC PHYTEC France Robert Koch Str 39 203 Parfitt Way SW 17 place Saint Etienne D 55129 Mainz Bainbridge Island WA 98110 F 72140 Sill le Guillaume GERMANY USA FRANCE Sales 49 6131 9221 32 1 800 278 9913 33 2 43 29 22 33 i sales phytec de sales phytec com info phytec fr Technical 49 6131 9221 31 1 206 780 9047 Support support phytec de support phytec com support phytec fr Fax 49 6131 9221 33 1 206 780 9135 33 2 43 29 22 34 oer http www phytec de Web Site http www phytec eu http www phytec com http www phytec fr INDIA CHINA Address PHYTEC Embedded Pvt Ltd PHYTEC Information Technology Shenzhen Co Ltd 16 9C 3rd Main 3rd Floor 8th Block Suite 2611 Floor 26 Anlian Plaza Opp Police Station Koramangala 4018 Jin Tian Road Bangalore 560095 Futian District Shenzhen INDIA CHINA 518026 Sales 91 80 4086 7046 48 86 755 3395 5875 sales phytec in sales phytec cn Technical 91 80 4086 7047 Support support phytec in support phytec cn Fax 86 755 3395 5999 Web Site http www phytec in http www phytec cn 1
10. is not a Linux distribution It contains the tools to create a Linux distribution specially fitted to the product requirements The most important step to bring order in the set of tools is to define a common versioning scheme and a reference system All subprojects have then to comply with the reference system and the versioning scheme The release process is similar to the Linux Kernel Yocto increases its version number every six month and gives the release a name The release list can be found here https wiki yoctoproject org wiki Releases 1 2 Core Components The most important tools or subprojects of the Yocto Project are e Bitbake build engine a task scheduler like make interprets metadata e OpenEmbedded Core a set of base layers containing metadata of software no sources e Yocto Kernel Optimized for embedded devices Includes many subprojects rt kernel vendor patches Infrastructure provided by Wind River Alternative classic kernel we use classic and not Yocto kernel e Yocto Reference BSP beagleboneblack minnow max e Poky the reference system a collection of projects and tools used to bootstrap a new distribution based on Yocto PHYTEC Messtechnik GmbH 2015 L 813e_2 1 Yocto Reference Manual 1 3 Vocabulary 1 3 1 Recipes Recipes contain information about the software project author homepage and license A recipe is versioned defines dependencies contains the URL of the source code des
11. the command a shell window opens The current working directory of the shell will be changed to the source directory of the recipe Here you can use your favorite editor e g vim or emacs or anything graphical to alter the source code When you are finished exit the devshell by typing exit After leaving the devshell you can recompile the package host bitbake barebox c compile force or linux mainline linux ti PHYTEC Messtechnik GmbH 2015 L 813e_2 25 Yocto Reference Manual The extra argument force is important because Yocto does not recognize that the source code was changed You cannot execute the Bitbake command in the devshell You have to leave it first If the build fails execute the devshell command again and fix it If the build is successful you can deploy the package and create a new SD card image host bitbake barbox c deploy new barebox in e g deploy images phyflex imx6 2 barebox bin host bitbake phytec hwbringup image new sdcard image in e g deploy images phyflex imx6 2 phytec hwbringup image phyflex imx6 2 sdcard as If you execute a clean e g bitbake barebox c clean or if Yocto refetches the source code all your changes are lost To avoid this you can create a patch and add it to a bbappend file It is the same workflow as in the section about changing the configuration You have to create the patch in the devshell Execute these commands in the dev
12. 3 19 5 phy4 The version of the barebox recipe is 2015 02 0 phy2 If your machine has an AM335x Module the output of bitbake s contains a line starting with linux ti PHYTEC Messtechnik GmbH 2015 L 813e_2 21 Yocto Reference Manual 6 6 6 How to configure the Kernel or Bootloader Luckily the bootloader used by Phytec the barebox uses the same build system as the Linux kernel Therefore all commands in this section can be used to configure the kernel and bootloader To configure the kernel or bootloader execute one of the following commands host bitbake c menuconfig virtual kernel Using the virtual provider name host bitbake c menuconfig linux ti Or use the recipe name directly If you use an AM335x Module host bitbake c menuconfig linux mainline Or use the recipe name directly If you use an i MX6 Module host bitbake c menuconfig barebox Or change the configuration of the bootloader After that you can recompile and redeploy the kernel or bootloader by executing host bitbake virtual kernel c compile f Or barebox for the bootloader host bitbake virtual kernel c deploy Or barebox for the bootloader host bitbake phytec hwbringup image To update the kernel bootloader and modules in the rootfs and SD Card In the last command you can replace the image name with the name of an image of your choice The new images and binaries are in build deploy images lt machine gt The build configurat
13. Edition September 2015 PHYTEC Messtechnik GmbH 2015 L 813e_2 Contents Listof FIGUIES iiiiiierissssviinereiiianiin seere rsr E araser E srra s satsa ji Conventions Abbreviations and Acronyms sessesscsscsscsscsscssossossoseossosecesoesosessessessesees iii 1 The Yocto PIO GCE sicisciiessicirensssrisesarreerariradrimrrierrenrin oaaao iiaa aea ii 1 1 1 IntroduchON zesnseonssessvuseeasneaanranpaaaeeaanbaanbaabeaabbaasbansbansean sian aba aban biavessvesseesee 1 T2 RE COMPONENTS oeeaaeaii ctpguie vcteuietsaeteete eugene aneunsieersauennerenvonrrroes 1 T3 Vocabular a occecteceee eee seer bperaberaberaneteb ane ECEE A EAE AEAEE eea O EEEE ER EPEE LE REET EG REGGERE 2 13 RECIPES e E R E R rr rer err re rr rer errr re 2 I yaa cr ee ee eee ee ee Seer res 2 Dig N E E i siptasassacinruiicicz ice cele lcic aioe teehee tell lence lee eleiualateelelc legen lcelceleeulloe eee eueeean 2 Mee WUE EEEE EEEE 2 135 DISO eE EEEE rer errr rrr err rer errr errr Terr Terr err EEEE REETA 2 14 POOKY caoasoeressnnnnnsnesrenucausbansseebensnahuananseeoenchaabanaaeeeednuabuabaneeebeebiaahaeeeeeeeeraateeee 3 aA E E i A E ccc cece cease eeeeteteeemeeeate 3 14 2 Loy 10 aerrrreerererrrererrrrrrrrererrrrrrreererrrrrrrerrrrrrrerrerrrrrrrerrrrrrr rer errr rreery cere 3 1 5 Official DOCUMENTATION sesssessessessesssssesessessessesscssessessessessessessessessessessesee 3 Compatible Linux DistributiONns ccccccccsssssessessscsesssesvesseeseesessv
14. Saved WaN GI build tmp glibc work lt machine gt lt package gt You have to commit every change before recompiling For each change the toolchain compiles everything from scratch avoidable with ccache First you need a local clone of the Git repository of either barebox or kernel If you do not have one use the commands host mkdir git host cd git host git clone git git phytec de barebox host cd barebox host git checkout b v2015 02 0 phy remotes origin v2015 02 0 phy Add the following snippet to the file build conf local conf Use your own path to the git repository NOTE Branche name in variable BRANCH_pn barebox should be the same as the branch which is used in the repository folder Otherwise your commits won t be recognized later BRANCH_pn barebox v2015 02 0 phy SRC_URI_pn barebox git HOME git barebox branch BRANCH SRCREV_pn barebox AUTOREV You also have to set the correct BRANCH name in the file Either you create your own branch in the Git repository or you use the default here v2015 02 0 phy Now you should recompile the barebox from your own source host bitbake barebox c clean host bitbake barebox c compile Build should be successful because the source was not changed yet You can alter the source in git barebox or for example the default defconfig e g git barebox arch arm configs imx_v7_defconfig After you are satisfied with y
15. age example with a simple C file named bumpRTS c host source opt poky 1 7 environment setup cortexa8t2hf vfp neon poky linux gnueabi host make bumpRTS Creates an arm binary host file bumpRTS bumpRTS ELF 32 bit LSB executable ARM EABI5 version 1 SYSV dynamically linked uses shared libs for GNU Linux 2 6 32 BuildID sha1 42d4aa389d09ade2023364e4eef9021080f610F9 not stripped 6 4 Accessing Development States between Releases Special release manifests exist to give you access to current development states of the Yocto BSP They will not be displayed in the phyLinux selection menu but need to be selected manually This can be done by the following command line phyLinux r dizzy This will initialize a BSP which will track the latest development state From now on running repo sync in this folder will pull all the latest changes from our Git repositories 14 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 5 BSP Features of meta phytec and meta yogurt 6 5 1 Buildinfo The buildinfo task is a feature in our recipes which prints instructions to fetch the source code from the public repositories So you do not have to look into the recipes yourself To see the instructions e g for the barebox package execute bitbake barebox c buildinfo in your shell This will print something like mini HOWTO Use a local git repository to build barebox To get source code for this packag
16. al source mirror for generating the dl_dir and because of that some archives will be linked locally First we need to copy all files resolving symbolic links into the new mirror directory rsync vaL lt dl_dir gt TOPDIR src_mirror Now we clean the build directory by deleting everything except build conf but including build conf sanity We change site conf as follows SOURCE_MIRROR_URL file TOPDIR src_mirror n INHERIT own mirrors BB_NO NETWORK 1 SCONF_VERSION 1 The BSP directory can now be compressed with tar cfJ lt filename gt tar xz lt folder gt where filename and folder should be the full BSP name 6 7 3 Compiling on the Target To your local conf add IMAGE_FEATURES_ append tools sdk dev pkgs 32 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 7 4 Different Toolchains There are several ways to create a toolchain installer in Poky First of all you can run bitbake meta toolchain This will generate a toolchain installer in build deploy sdk which can be used for cross compiling of target applications However the installer does not include libraries added to your image so it is a bare GCC compiler only This is suited for bootloader and kernel development Secondly you can run bitbake c populate _sdk lt your_image gt This will generate a toolchain installer containing all necessary development packages of the software installed on t
17. alic indicates proper names of development tools and corresponding controls windows tabs commands file paths etc used within the development tool no interaction takes place VACARE Shows the result of any user interaction command program execution etc NX This is a warning It helps you to avoid annoying problems Ye You can find useful supplementary information about the topic PHYTEC Messtechnik GmbH 2015 L 813e_2 ii Yocto Reference Manual PHYTEC Messtechnik GmbH 2015 L 813e_2 The Yocto Project 1 The Yocto Project 1 1 Introduction Yocto is the smallest SI metric system prefix Like m stands for milli 10 3 so is yocto y 10 24 Yocto is also a project working group of the Linux foundation and therefore backed up by several major companies in the field On the project website http www yoctoproject org you can read the official introduction The Yocto Project is an open source collaboration project that provides templates tools and methods to help you create custom Linux based systems for embedded products regardless of the hardware architecture It was founded in 2010 as a collaboration among many hardware manufacturers open source operating systems vendors and electronics companies to bring some order to the chaos of embedded Linux development As said the project wants to provide toolsets for embedded developers It builds on top of the long lasting OpenEmbedded project It
18. bbappend in your layer or write yourself a recipe for your repository For more information about the externalsrc class see chapter 6 5 1 6 6 10 Adding existing Software Part 2 Now that you have created your own layer you have a second option to add existing software to existing image definitions Our standard image is defined in meta yogurt in meta yogurt recipes images images phytec hwbringup image bb In your layer you can now modify the recipe with a bbappend without modifying any BSP code meta racer recipes images images phytec hwbringup image bbappend The append will be parsed together with the base recipe As a result you can easily overwrite all variables set in the base recipe which is not always what you want If we want to include additional software we need to append to the IMAGE_INSTALL variable IMAGE_INSTALL_append rsync PHYTEC Messtechnik GmbH 2015 L 813e 2 29 Yocto Reference Manual 6 6 11 Inspect Your Configuration Poky includes several tools to inspect your build layout You can inspect the commands of the layer tool host bitbake layers It can for example be used to view in which layer a specific recipe gets modified host bitbake layers show appends You should now see an entry for the phytec hwbringup image bb recipe which has an append in the meta racer layer You are now ready to create kernel patches and configurations and add them with appends in your layer 30 PHYTEC Messte
19. bove edit the bbappend file in the layer here sources meta yogurt recipes kernel linux linux mainline_ bbappend and add the following lines contents of the file linux mainline_ bbappend FILESEXTRAPATHS_prepend THISDIR features SRC_URI_append file defconfig Acs Do not forget to use the correct bbappend filenames linux ti_ bbappend for the linux ti recipe and barebox_ bbappend for the bootloader in the folder recipes bsp barebox After that rebuild your image as the changes are picked up automatically host bitbake phytec hwbringup image Or another image name 6 6 7 How to patch the Kernel or Bootloader the simple Way Apart from using the standard versions of kernel and bootloader which are provided in the recipes you can modify the source code or use our own repositories to build your customized kernel Pro Contra No overhead no extra Changes are easily overwritten by Yocto configuration Everything is lost Toolchain does not have to recompile everything It is possible to alter the source code before Bitbake configures and compiles the recipe You have to start with a clean build so all working directories are on your disk Just build any image and you are fine Use Bitbake s devshell command to jump into the source directory of the recipe Here it is the barebox recipe host bitbake barebox c devshell or linux mainline linux ti After executing
20. chnik GmbH 2015 L 813e 2 Working with Poky and Bitbake 6 7 Common Tasks 6 7 1 Debugging a Userspace Application The phytec qt5demo image can be cross debugged without any change For cross debugging you just have to match the host sysroot with the image in use So you need to create a toolchain for your image with bitbake c populate_sdk phytec qt5demo image Additionally if you want to have full debug and backtrace capabilities for all programs and libraries in the image you could add DEBUG_BUILD 1 to the conf local conf This is not necessary in all cases The compiler options will then be switched from FULL_OPTIMIZATION to DEBUG_OPTIMIZATION Have a look at the Poky source code for the default assignment of DEBUG_OPTIMIZATION To start a cross debug session install the SDK as mentioned previously source the SDK environment and run Qtcreator in the same shell If you do not use Qtcreator you can directly call the arm lt gt gdb debugger instead which should be in your path after sourcing the environment script If you work with Qtcreator have a look in the appropriate documentation delivered with your product either QuickStart or Application Guide for information on how how to set up the toolchain When starting the debugger with your user space application you will get a SIGILL an illegal instruction from the libcrypto Openssl probes for the system capabilities by trapping illegal instructions which will trig
21. cribes how to fetch configure and compile the sources It describes how to package the software e g into different deb packages which then contain the installation path Recipes are basically written in Bitbake s own programming language which has a simple syntax However a recipe can contain Python as wellas bash code 1 3 2 Classes Classes combine functionality used inside recipes into reusable blocks 1 3 3 Layers A layer is a collection of recipes classes and configuration metadata A layer can depend on other layers and can be included or excluded one by one It encapsulates a specific functionality and fulfills a specific purpose Each layer falls into a specific category Base Machine BSP Software Distribution Miscellaneous Yocto s versioning scheme is reflected in every layer as version branches For each Yocto version every layer has a named branch in its Git repository You can add one or many layers of each category in your build A collection of OpenEmbedded layers can be found here the search function is very helpful to see if a software package can be retrieved and integrated easily http layers openembedded org layerindex branch master layers 1 3 4 Machine Machines are configuration variables which describe the aspects of the target hardware 1 3 5 Distro A distribution describes the software configuration and comes with a set of software features 2 PHYTEC Messtechnik GmbH 2015 L 813e_2
22. d Version First you should know which kernel and version is used for your target machine Phytec provides two kernel recipes linux mainline and linux ti The first one provides support for the Phytec s i MX6 Modules and is based on the Linux kernel stable releases from kernel org The second one provides support for Phytec s AM335x Modules and is based on the TI vendor kernel The Git repositories URLs are e linux ti git git phytec de linux ti e linux mainline git git phytec de linux mainline To know your kernel provider execute the following command host bitbake virtual kernel e grep PREFERRED_PROVIDER_virtual kernel The command prints the value of the variable PREFERRED_PROVIDER_virtual kernel The variable is used in the internal Yocto build process to select the kernel recipe to use The following two lines are two different outputs you might see PREFERRED_PROVIDER_virtual kernel linux mainline PREFERRED_PROVIDER_virtual kernel linux ti To know which version is used execute bitbake s For example host bitbake s egrep e linux mainline linux ti barebox The parameter s prints the version of all recipes The output contains the recipe name on the left and the version on the right barebox 2015 02 0 phy2 r3 linux mainline 3 19 5 phy4 r0 As you can see the recipe linux mainline has the version 3 19 5 phy4 r0 In the Phytecs linux mainline Git repository you will find a corresponding tag v
23. d make small modifications to recipes For major changes you have generally to ways Either create your own layer and use bbappends or add everything to Phytec s Distro layer meta yogurt How you can create your own layer is describe in section 6 6 4 6 6 1 How to disable the Qt Demo By default the BSP image phytec qt5demo image starts a nice Qt5 Demo application on the display or monitor attached If you want to stop the demo and use the Linux framebuffer console behind it connect per serial or ssh to the target and execute the shell command target systemctl stop qt5demo service The command stops the demo temporally To start it again reboot the board or execute target systemctl start qt5demo service You can disable the service permanently so it does not start on boot by executing target systemctl disable qt5demo service N The last command only disables the service It does not stop it immediately JF To see the current status execute target systemctl status qt5demo service If you want to disable the service by default edit the file build conf local conf and add the following line file build conf local conf SYSTEMD_AUTO_ENABLE_pn qt5demo autostarter disable After that rebuild the image by executing host bitbake phytec qt5demo image PHYTEC Messtechnik GmbH 2015 L 813e_2 17 Yocto Reference Manual 6 6 2 How to add additional Software to the BSP Image To add another software to the image
24. der in the folder recipes bsp barebox After saving the bbappend file you have to rebuild the image Yocto should pick up the recipe changes automatically and generate a new image host bitbake phytec hwbringup image Or another image name 6 6 6 2 How to add a Complete default Configuration defconfig to a Recipe This approach is as above but instead of adding a fragment a defconfig is used First create the necessary folders in the layer you want to use Your own layer or meta yogurt E g host mkdir p sources meta yogurt recipes kernel linux features For both linux mainline and linux ti host mkdir p sources meta yogurt recipes bsp barebox features Or for the bootloader Then you have to create a suitable defconfig file Make your configuration changes using menuconfig and then save the defconfig file to the layer E g For example host bitbake linux mainline c menuconfig Or use recipe name linux ti or barebox host bitbake linux mainline c savedefconfig Create file defconfig temp in the work directory host bitbake linux mainline c devshell Start the devshell host devshell cd Goto work directory host devshell cp defconfig temp lt your yocto build gt sources meta yogurt recipes kernel linux features defconfig Copy new defconfig to layer host devshell exit Exit devshell again 24 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake Then as a
25. don not run Repo sync Also if you store stuff for the archives you need to include the complete repo folder Repo expects a Git repository which will be parsed from the command line In case of our BSP we called it phyocto derived from Phytec s Yocto phyyocto phy octo In this repository the whole information about a software BSP release is stored in the form of a Repo xml manifest This data structure defines URLs of Git servers called remotes and Git repositories and their states called projects The Git repositories can be checked out in different states The revision field can be a branch tag or commit id of a repository So the state of the software is not necessarily unique e g the HEAD of a branch and can change over time That is the reason we use only tags or commit ids for our releases The state of the working directory is therefore unique and does not change The manifests for the releases have the same name as the release itself It is a unique identifier for the complete BSP The releases are sorted by SOC platform That is why you have to choose the SOC you are using The selected SOC will define the branch of the phy octo Git repository which will be checked out for the manifest selection PHYTEC Messtechnik GmbH 2015 L 813e 2 5 Yocto Reference Manual 3 1 2 BSP Meta Data We include several third party layers in our BSP to get a complete Linux distribution up and running without the need of integrating externa
26. e and version barebox 2014 11 0 phy2 execute mkdir p git cd git git clone ssh git git phytec de barebox dev barebox cd git barebox git checkout b v2014 11 0 phy2 local_development 57b87aedbf0b6ae0eb0b858dd0c83411097c777a You now have two possible workflows for your changes 1 Work inside the git repository Copy and paste the following snippet to your local conf SRC_URI_pn barebox git HOME git barebox branch BRANCH SRCREV_pn barebox AUTOREV BRANCH_pn barebox v2014 11 0 phy2 local_development After that you can recompile and deploy the package with bitbake barebox c compile bitbake barebox c deploy Note You have to commit all your changes Otherwise yocto doesn t pick them up 2 Work and compile from the local working directory To work and compile in an external source directoy you can use the externalsrc bbclass To use it copy and paste the following snippet to your local conf INHERIT phyexternalsrc EXTERNALSRC_pn barebox HOME git barebox EXTERNALSRC_BUILD_pn barebox HOME git barebox PHYTEC Messtechnik GmbH 2015 L 813e_2 Yocto Reference Manual Note All the compiling is done in the EXTERNALSRC directory Everytime you build an Image the package will be recompiled and build NOTE Tasks Summary Attempted 1 tasks of which 0 didn t need to be rerun and all succeeded NOTE Writing buildhistory As you can see everything is
27. e to adjust the directories and names for the specific recipe linux mainline linux ti or barebox sources lt layer gt recipes kernel linux linux mainline_ bbappend For the recipe linux mainline sources lt layer gt recipes kernel linux linux ti_ bbappend For the recipe linux ti sources lt layer gt recipes bsp barebox barebox_ bbappend For the recipe barebox Replace the string layer with your own layer created as shown above e g meta racer or just use meta yogurt First create the directory for the config fragment and give it a new name here enable r8169 cfg and move the fragment to the layer host mkdir p sources meta yogurt recipes kernel linux features copy the path from the output of diffconfig host cp home lt path gt build tmp glibc work phyflex_imx6_2 phytec linux gnueabi linux mainline 3 19 5 phy4 re fragment cfg sources meta yogurt recipes kernel linux features enable r8169 cfg PHYTEC Messtechnik GmbH 2015 L 813e_2 23 Yocto Reference Manual Then open the bbappend file in this case sources meta yogurt recipes kernel linux linux mainline_ bbappend with your favorite editor and add the following lines contents of the file linux mainline_ bbappend FILESEXTRAPATHS_prepend THISDIR features SRC_URI_append file enable r8169 cfg Do not forget to use the correct bbappend filenames linux ti_ bbappend for the linux ti recipe and barebox_ bbappend for the bootloa
28. eesessosesessoseseosesessesesseseseese 32 6 7 4 Different Toolchains sessessessessessessessessesossossosessessessessessessessessessess 33 6 7 5 Working with Kernel Modules cssccsccsscescscceccsscescescescesecescesceees 33 Yocto Documentation scsscsscsecssessccscoscoscoscososscoscssosscssossosescosecsecsecsecseosessessesoo 35 REVISION HIStONY sccsscescccssccssccsstccscesssesssesssssssesscesscesscesseasseassesbsesbesetadcsancseacesasdeses 36 List of Figures Figure 1 BSP Yocto Repository Graph ooo 6 PHYTEC Messtechnik GmbH 2015 L 813e_2 Conventions Abbreviations and Acronyms Conventions Abbreviations and Acronyms This hardware manual describes the PB 00802 xxx Single Board Computer SBC in the following referred to as phyBOARD Wega AM335x The manual specifies the phyBOARD Wega AM335x s design and function Precise specifications for the Texas Instruments AM335x microcontrollers can be found in the Texas Instrumenten s AM335x Data Sheet and Technical Reference Manual Conventions The conventions used in this manual are as follows Text in blue italic indicates a hyperlink within or external to the document Click these links to quickly jump to the applicable URL part chapter table or figure Text in bold italic indicates an interaction by the user which is defined on the screen Textin Consolas indicates an input by the user without a premade text or button to click on Text in it
29. esoceseeseeseessesseeseeses 4 Introduction to the Phytec BSP eseoseoseoseoscsscsscossscsscsecsscssoscosecsecsessessessessessesoe 5 Sal BSP Str ct re isssassassaasersicancasaarensnnasnsscusensenaauenveansenssunsuvveusenseuasaueauennsnnseadue 5 3 1 1 BSP Management ips scecvcsnnsnuvesncsausenscsnsncvssxssnnns see 5 E a S a E o E ai D csssnuccnvsnvansnnvvnenasucnssssenureeeascsssan ences saseesaunnaaaaneasenas 5 311 2 Repi sssi E E EEEa 5 Sele BSP Met Date asepsssnrsnesncsacssvornenncnncsunsrrerrurisasuerseeriemasuuerpernennnieenes 6 B A TIPO E E EE 6 3 1 2 2 meta openembedded sccc cescsscsuaseasessoseaaaasasaasassaasannaeasenseasaunans 6 3 1 23 WBCATOCS cicsccnnavacengasanstensncsnansasccazeasecaceaseueeeaseuaanasaneeeaceneeaees 6 Bile AME CAH PATE osscsosencennenn E E 7 3 1 2 5 meta phytec meta phy lt SOC gt siccccccceccesecsesevsesevseseversstccescccascee 7 3 1 2 6 meta yogurt sessssesesessssesesessesesessesesossesesoesesesossesesossesesesse 7 3 2 Build Configuration sseseseesesessosessoseseesesessosessosesessosessososesessesessosesessesesseses 7 A Installa tiO N sreeee scence reeeucunecunceaceencsacesadeuecasasdsesdscnousecunsodscodscsssevsredsnecsndeuseesecesedes 8 Al Seting Up the HOSt ssissssssvsvceveesssswvseuecvesesssnsvensesswseusawvsusesseerssuvswevsescveusenvens 8 4 2 Git COUMAUT AION icasesedcaeawnnnunesneesennnsuneneensesuannnnveddeusunanninrsesemnneneddediesees 8 AS SICESCOMP SEtUPessesiss ssis iss
30. essessess 17 6 6 2 Howto add additional Software to the BSP Imag csscseceeecesceeeees 18 6 6 3 Howto add an additional Layer essessesseseesssssssessessessessessessessessessess 19 6 6 4 Howto create your own Layer sesssssssssseseseseseseseseseseseseseseseseseseseses 20 6 6 5 Howto know your Kernel and Bootloader Recipe and Version ssceee 21 6 6 6 Howto configure the Kernel or Bootloade csececcsscesceeceeecesceseeees 22 6 6 6 1 Howto add a Configuration Fragment to a RECIPC ceeceeceees 23 6 6 6 2 How to add a Complete default Configuration defconfig toa Reape sea E A pac E e uni nnnnammnnenne 24 6 6 7 Howto patch the Kernel or Bootloader the simple Way secseecesceeceees 25 6 6 8 Howto work with the Kernel and Bootloader using SRC_URT in local conf 28 6 6 9 Howto work with the Kernel and Bootloader using externalsrc cesce0e 29 6 6 10 Addingexistng Software Part 2 saucvjsyzeauvensssysaweessonsaasvensenianssanenmsonsnnse 29 6 6 11 Inspect Your Configuration sessesessosesseseseesesessosessesososesessosesseseseese 30 6 7 Common cc eee eee ee nee cn ee nc en eee men en nenn AAAA NARE EEEE E E E tenn ener ter 31 6 7 1 Debugging a Userspace Application ccsccsscsscesceecescscescceeeescesceees 31 6 7 2 Generating Source Mirrors Working Offline ceeccesecesecesceseeeeeeees 32 6 7 3 Compiling Of the Target sessesessesesesseses
31. ger GDB You can ignore this and hit continue c command You can permanently ignore this stop by adding handle SIGILL nostop to your GDB startup script or in the Qtcreator GDB configuration panel Secondly you might need to disable a security feature by adding set auto load safe path to the same startup script which will enable automatic loading of libraries from any location If you need to have native debugging you might want to install the debug symbols on the target You can do this by adding the following line to your conf local conf EXTRA_IMAGE_FEATURES dbg pkgs For cross debugging this is not required as the debug symbols will be loaded from the host side and the dbg pkgs are included in the SDK of your image anyway PHYTEC Messtechnik GmbH 2015 L 813e 2 31 Yocto Reference Manual 6 7 2 Generating Source Mirrors Working Offline Modify your site conf or local conf if you do not use a site conf as follows DL_DIR don t set it It will default to a directory inside build SOURCE_MIRROR_URL file home share yocto_downloads n INHERIT own mirrors BB_GENERATE_MIRROR_TARBALLS 1 Now runa bitbake c fetchall lt image gt for all images and for all machines you want to provide sources for This will create all necessary tar archives We can remove all SCM subfolders as they are duplicated with the tarballs rm rf build download git2 CTC ssn Please consider that we used a loc
32. h sources meta yogurt recipes bsp barebox barebox_ bbappend aod Pay attention to your current work directory You have to execute the commands in the BSP top level directory Not in the build directory After that use your favorite editor to add the following snipped into the bbappend file here sources meta yogurt recipes bsp barebox barebox_ bbappend contents of the file barebox_ bbappend FILESEXTRAPATHS_prepend THISDIR features SRC_URI_append file 0001 important modification patch Save the file and rebuild the barebox recipe with host bitbake barebox c clean Or linux ti linux mainline host bitbake barebox If the build is successful you can rebuild the final image with host bitbake phytec hwbringup image Or another image name Further Resources The Yocto Project has already some documentation for software developers You should especially check the Kernel Development Manual for more information about how to configure the kernel e Yocto Kernel Development Manual e Yocto Development Manual e http www yoctoproject org docs 1 7 2 dev manual dev manual html modifying temporary source code PHYTEC Messtechnik GmbH 2015 L 813e_2 27 Yocto Reference Manual 6 6 8 How to work with the Kernel and Bootloader using SRC_URI in local conf Here we present a second option to make kernel and bootloader changes Pro Contra Many working directories in pecenaliges are
33. h way is the better solution depends on your use case meta yogurt is our example of how to create a custom Linux distribution and will be updated in future If you want to benefit from those changes and are in general satisfied with the user space configuration it could be the best solution to create your own layer on top of Yogurt If you need to rework a lot of stuff and only need the basic hardware support from Phytec better copy meta yogurt rename it and adapt it to your needs You can also have a look at the OpenEmbedded layer index to find different distribution layers If you just need to add your own application to the image create your own layer In the following chapter we assume that we have an embedded project called racer which we will implement using our Yogurt Linux distribution First we need to create a new layer Yocto provides a script for that If you set up the BSP and the shellis ready type host yocto layer create racer Default options are fine for now Move the layer to the source directory host mv meta racer sources Create a Git repository in this layer to track your changes host cd sources meta racer host git init amp amp git add amp amp git commit s Now you can add the layer to your build conf bblayers conf BBLAYERS BSPDIR sources meta racer 20 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 6 5 How to know your Kernel and Bootloader Recipe an
34. have a look at the OpenEmbedded layer index at http layers openembedded org layerindex You can search for a software project name and find out in which layer it can be found In the simple case the program is in meta openembedded or Poky which means that the recipe is already in your build tree This section describes how to add additional software in this case If the package is in another layer see the next section You can also search the list of available recipes by executing host bitbake s grep lt program name gt fill in programm name like in host bitbake s grep lsof When the recipe for the program is already in the Yocto build you can simply add it by appending a configuration option to your file build conf local conf The general syntax to add additional software to an image is file build conf local conf IMAGE_INSTALL_append lt package1 gt lt package2 gt as Please note the leading whitespace which is necessary for the append command For example the next line file build conf local conf IMAGE_INSTALL_append ldd strace file lsof installs some little helper programs on the target image All configuration options in local conf apply to all images So now the tools are included in both images pyhtec hwbringup image and pyhtec qt5demo image If you can not find your the software in the layers provided in the folder sources see the next section to include another layer in
35. he rootfs of the target This installer can be handed over to the user space application development team and includes all necessary parts to develop an application If the image contains the Qt libraries all of those will be available in the installer too The third option would be to create the ADT Application Development Toolkit installer It will contain the cross toolchain and additionally some tools to aid the software developers e g an Eclipse plugin and a QEMU target simulator bitbake adt installer The ADT is untested for our BSP at the time of printing this Yocto Reference Manual 6 7 5 Working with Kernel Modules You will come to the point where you either need to set some options for a kernel module or you want to blacklist a module Those things are handled by udev and go into conf files in etc modprobe d conf If you want to specify an option at buildtime there are three relevant variables If you just want to auto load a module which has e g no auto load capabilities add it to KERNEL_MODULE_AUTOLOAD your module either in the kernel recipe or in the global variable scope If you need to specify options for a module you can do so with KERNEL_MODULE_AUTOLOAD your module KERNEL_MODULE_PROBECONF your module module _conf_your module options your module parametername parametervalue PHYTEC Messtechnik GmbH 2015 L 813e 2 33 Yocto Reference Manual If you want to blacklist a module from
36. ill be removed after the clean up Calling phyLinux not from an empty directory will result in the following warning This current directory is not empty It could lead to errors in the BSP configuration process if you continue from here At least you have to check your build directory for settings in bblayers conf and local conf which will not be handled correctly in all cases It is advisable to start from an empty directory of call phyLinux clean Do you really wantto continue from here yes no On the first initialization the phyLinux script will ask you to install the Repo tool in your ust local bin directory During the execution of the init command you need to choose your processor platform Phytec s BSP release number and the hardware you are working on e g kkxkxkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Please choose one of the available Machines beagleboneblack 1 Hardware Revision A5C 2GiB eMMC phyboard maia am335x 1 PB 00702 002 phyboard wega am335x 1 PB 00802 0200C PB 00802 0101C PEB AV 01 phyboard wega am335x 2 PB 00802 008 PB 00802 010 PEB AV 02 phycore am335x 1 PCM 051 12102F0C A1 KPCM 953 Kit phycore am335x 2 1GiB RAM 1GiB NAND variant phyflex am335x 1 PFL A 03 12113F8I A1 PBA B 01 If you cannot identify your board with the information given in the selector have a look at the invoice of the product After the configuration is done you can always run to see
37. ion is not permanent yet Executing e g bitbake virtual kernel c clean will remove everything To make your changes permanent in the build system you have to integrate your configuration modifications into a layer For the configuration you have two options Either include only a configuration fragment a minimal diff between the old and new configuration or a complete default configuration defconfig after your modifications 22 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 6 6 1 Howto add a Configuration Fragment to a Recipe The following steps can be used for both kernels and bootloader Just replace the recipe name linux mainline in the commands with linux ti or barebox for the bootloader Restore a clean build Otherwise the diff of the configuration maybe wrong host bitbake linux mainline c clean host bitbake linux mainline c menuconfig Make your configuration changes in the menu and generate a config fragment with host bitbake linux mainline c diffconfig which prints the path of the written file Config fragment has been dumped into home lt path gt build tmp glibc work phyflex_imx6_2 phytec linux gnueabi linux mainline 3 19 5 phy4 r fragment cfg All config changes are in the file fragment cfg It should only consist of some lines The following example shows how to create a bbappend file and how to add the necessary lines for the config fragment You just hav
38. l projects at the beginning All used repositories are shown on the left of Figure 1 and are described in the following section bitbake yocto docs meta yocto oe core Phytec s BSP Yocto AM335x i MX6 Git Repositories Dependency Graph gt combined with yocto s combo layer gt repo s manifest repository poky meta openembedded meta qt5 Legend gt normal git clone operation by repo phy2octo meta phytec meta phyimx6 meta phyam335x meta yogurt repo 6x manifest xml repo 6x manifest xml BSP Yocto i MX6 BSP Yocto AM335x External Repositories git git yoctoproject org yocto docs Phytec Repositories git git phytec de meta phytec git git yoctoproject org meta yocto git git phytec de meta phyimx6 git git yoctoproject org poky git git phytec de meta am335x git github com meta qt5 meta qt5 git git phytec de meta yogurt git git openembedded org meta openembedded git git phytec de phy2octo git git openembedded org bitbake git git openembedded org openembedded core Figure 1 BSP Yocto Repository Graph 3 1 2 1 Poky The Phytec BSP is build on top of Poky It comes with a specific version of it defined in Repo manifest It comes with a specific version of Bitbake The OpenEmbedded core layer meta is used as a base for our Linux system 3 1 2 2 meta openembedded OpenEmbedded is a collection of different layers containing the meta description for a lot of
39. mper your board for booting from SD card and to flash the build image to the SD card sudo dd if phytec hwbringup image lt MACHINE gt sdcard of dev lt your_device gt bs 1MB conv fsync Here lt your_device gt could be sde for example depending on your system Be very careful when selecting the right drive Selecting the wrong drive can erase your hard drive The parameter conv fsync forces a data buffer write to the device before dd returns PHYTEC Messtechnik GmbH 2015 L 813e 2 13 Yocto Reference Manual After booting you can login using a serial cable or over ssh There is no root password That is because of the debug settings in conf local conf If you comment out the line EXTRA_IMAGE_FEATURES debug tweaks the debug settings like setting an empty root password will not be applied 6 3 Installing the SDK To install the SDK for a machine and image type you can create an SDK installer with Bitbake in the BSP itself Ensure that the correct target machine is set You also need to pass the image type you want to create the SDK for host bitbake lt image gt c populate_sdk This takes 1 5 hours depending on the image type and host machine like building a BSP After that you may find the installer in your Yocto directory under build deploy sdk Install the SDK with example host cd build deploy sdk host poky glibc x86_64 phytec qt4demo image cortexa8t2hf vfp neon toolchain 1 7 sh Us
40. n get all the BSP sources without the need of interacting with Repo or Git The phyLinux script has only one real dependency It requires the wget tool installed on your host It will also install the Repo tool in a global path usr local bin on your host PC You can install it to a different location manually Repo will be automatically detected by phyLinux if it is found in the PATH The Repo tool will be used to manage the different Git repositories of the Yocto BSP 5 1 Get phyLinux The phyLinux script can be found on the PHYTEC ftp server 5 2 Basic Usage For the basic usage of phyLinux type usage phyLinux h v verbose init info clean This Programs sets up an environment to work with The Yocto Project on Phytecs Development Kits Use phyLinx lt command gt h to display the help text for the available commands positional arguments init info clean commands init init the phytec bsp in the current directory info print info about the phytec bsp in the current directory clean Clean up the current working directory optional arguments h help show this help message and exit v version show program s version number and exit verbose 10 PHYTEC Messtechnik GmbH 2015 L 813e_2 phyLinux Documentation 5 3 Initialization Create a fresh project folder e g and run phyLinux from the new folder A clean folder is important because phyLinux will clean its working directory So all files w
41. nual ref manual html detailed supported distros 4 PHYTEC Messtechnik GmbH 2015 L 813e 2 Introduction to Phytec s BSP 3 Introduction to the Phytec BSP 3 1 BSP Structure The BSP consists roughly of three parts BSP management BSP meta data and BSP content The management consists of repo and phyLinux the meta data depends on the soc and describes how to build the software and the content are Phytec s Git repositories and external sources 3 1 1 BSP Management Yocto is an umbrella project Naturally this will force the user to base his work on several external repositories They need to be managed in a deterministic way The Repo tool is one way of managing Git repository tasks in a more comfortable way Phytec s Yocto BSP is managed with Repo This provides us with a method to deliver fixed releases as well as rolling releases 3 1 1 1 phyLinux phyLinux is a wrapper for Repo to handle downloading an setting up the BSP with an out of the box experience 3 1 1 2 Repo Repo is a wrapper around the Repo tool set The phyLinux script will install the wrapper in a global path This is only a wrapper though Whenever you run repo init u lt url gt you first download the Repo tools from Googles Git server in a specific version to the repo repo directory Next time you run Repo all the commands will be available So be aware of the fact that the Repo version in different build directories can drift apart over the years if you
42. olution would be to use ACLs for this directory sudo apt get install acl sudo setfacl R d m g rwx lt dl_dir gt If you already created a download directory and want to fix the permissions afterwards you can do so with sudo find home share perm u w perm g w exec chmod g w sudo find home share perm u w perm g w exec chown gtw G sudo find home share perm u r perm g r exec chmod gtr MY 3 The cache directory stores all stages of the build process Poky has quite an involved caching infrastructure It is also advisable to create a shared directory as all builds can access this cache directory called shared state cache Create the two directories on a drive where you have approximately 50 GB of space and assign the following two variables in your build conf local conf DL_DIR lt your_directory gt yocto_downloads SSTATE_DIR lt your_directory gt yocto_sstate If you want to know more about configuring your build have a look at the documented example settings sources poky meta yocto conf local conf sample sources poky meta yocto conf local conf sample extended PHYTEC Messtechnik GmbH 2015 L 813e 2 9 Yocto Reference Manual 5 phyLinux Documentation Documentation for version PD15 1 0 The phyLinux script is a basic management tool for Phytec Yocto BSP releases written in Python by Stefan Muller Klieser It is mainly a helper to get started with the BSP structure You ca
43. open source software projects We ship all OpenEmbedded layers with our BSP but not all of them are activated Our example images pull several software packages generated from OpenEmbedded recipes 3 1 2 3 meta qt5 This layer provides a community supported integration of qt5 in Poky based rootfs and is integrated in our BSP 6 PHYTEC Messtechnik GmbH 2015 L 813e_2 Introduction to Phytec s BSP 3 1 2 4 meta phytec This layer contains common features for all our BSPs And is the core of our BSP together with the SOC layers Only those two parts are required if you want to integrate our BSP in your existing Yocto workflow 3 1 2 5 meta phytec meta phy lt SOC gt Those layers define the barebox kernel and software configuration for specific boards The boards get defined in the machine config files in conf machine 3 1 2 6 meta yogurt This is our example distribution It extends the basic configuration of Poky with software projects described by all the other BSP components It provides a base for some development scenarios A configuration for systemd is provided 3 2 Build Configuration The BSP initializes a build folder which will contain all files you create by running Bitbake commands It contains a conf folder which handles build input variables e bblayers conf defines activated meta layers e local lonf defines build input variables specific to your build e site conf defines build input variables specific to the devel
44. opment host The two topmost build input variables are DISTRO and MACHINE they will be preconfigured in local conf when you check out the BSP using phyLinux In short DISTRO defines the software configuration MACHINE defines the hardware configuration As DISTRO we deliver yogurt with our BSP This distribution will be preselected and gives you a starting point for implementing your own configuration A MACHINE defines a binary image which supports specific hardware combinations of module and baseboard Have a look at the machine conf file or our webpage for a description of the hardware PHYTEC Messtechnik GmbH 2015 L 813e 2 7 Yocto Reference Manual 4 Installation 4 1 Setting up the Host You need to have a running Linux distribution at your hand It should be running on a powerful machine as a lot of compiling will be done on it Yocto needs a handful of additional packages on your host For Ubuntu 14 04 you need sudo apt get install gawk wget git core diffstat unzip texinfo gcc multilib build essential chrpath socat libsd1l1 2 dev xterm For the other distributions you can find information in the Yocto Quickstart http www yoctoproject org docs latest yocto project qs yocto project qs html 4 2 Git Configuration The BSP is heavily based on Git Git needs some information from you as a user to be able to identify which changes were done by whom If you do not have one create a gitconfig Here is an example
45. our changes you have to make a dummy commit for Yocto If you don t do that Yocto will not notice that the source code was modified 28 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake So execute something like host git status show modified files host git diff show changed lines host git commit a m dummy commit for yocto This command is important in your repository folder e g git barebox Try to compile your new changes Yocto will automatically notice that the source code was changed and fetches and configures everything from scratch host bitbake barebox c compile If the build fails go back to the source directory fix the problem and recommit your changes If the build was successful you can deploy the barebox and even create a new SD card image host bitbake barbox c deploy new barebox in e g deploy images phyflex imx6 2 barebox phyflex imx6 2 bin host bitbake phytec hwbringup image new sd card image in e g deploy images phyflex imx6 2 phytec hwbringup image phyflex imx6 2 sdcard If you want to make additional changes just make another commit in the repository and rebuild the barebox again 6 6 9 How to work with the Kernel and Bootloader using externalsrc This is a third option how to customize the kernel and bootloader source code It is only useful for the development process After your changes to the kernel are completed you should put the patches into a
46. s sists is stss stss t sE st CCE sest E CEt EEE TEELE EREE EEEk 9 5 PAYLIN DOCUMENTATION ss csiasceascsaseasetaneiesiaasteaaeaeateeetiriidciadddiddddddddddddddansenanenens 10 51 EGE ary nin sssr nsn E IENEI N ENE NARE EN EE EEEE E E 10 ee Basic Sade sascccesanssuassercresrvsussuereentueensadaseneauseiessuessmanaasessaesnaaaseasaaeeeaaa 10 5 3 MMM DANO eeaeee enaena enaena eaae EEE EEE eee sees 11 54 Advanced Usage scescsswssunsnvevavacsseunendedesssasevuveassensistnnmnscaasannnnninenansaaiacnnnaineas 12 6 Working with Poky and Bitbake ccccccccsscccsccssccssccssccsccceccesccssccsccsscsescoeees 13 Gol Start the DUNG sesers ets seers ness eeesncesneesnees eb eeseeecbencenstenstenceencaeeeeueteeosneesseeenes 13 6 2 IMAGES Jiissseracsecrsssneeaseesraransraranensaconasiadinn swnapemnnnupsmmnabsanmaunsauanuasbuneeueuneueNes 13 6 3 Installing TIE SDK siseses sessen scese na a A Aa SARRAR EN SASS aie 14 6 4 Accessing Development States between Releases csccsecsscesccescescesceecescseeees 14 6 5 BSP Features of meta phytec and meta yogUrt sessessessessessssessessessessesseseessesee 15 6 5 1 BUMN O ciiiiesereicireiiciceicieececiiciiiiec ii i R 15 PHYTEC Messtechnik GmbH 2015 L 813e_2 i Yocto Reference Manual 7 8 6 6 Customizing the or seu ges peu senee ase cnceuadueedaceuneunsaddeceancanccaddedbanmpsnnonnanspsnrsrnsnnss 17 6 6 1 Howto disable the Qt Demo ssssssssssssssessssesssssessessessessessosessessess
47. shell host bitbake barebox c devshell Or linux mainline linux ti host devshell git status Show changes files host devshell git add lt file gt Add a special file to the saging area host devshell git commit m important modification Creates a commit with a not so useful commit message host devshell git format patch 1 o Creates a patch of the last commit and saves it in your home folder home lt user gt Q001 important modification patch Git prints the path of the written patch file host devshell exit After you have created the patch you must create a bbappend file for it The locations for the three different recipes linux mainline linux ti and barebox are sources lt layer gt recipes kernel linux linux mainline_ bbappend _ For the recipe linux mainline sources lt layer gt recipes kernel linux linux ti_ bbappend For the recipe linux ti sources lt layer gt recipes bsp barebox barebox_ bbappend For the recipe barebox The following example is for the recipe barebox You have to adjust the paths 26 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake First create the folders and move the patch to it Then create the bbappend file host mkdir p sources meta yogurt recipes bsp barebox features Or use your own layer instead of meta yogurt host cp 001 important modification patch sources meta yogurt recipes bsp barebox features copy patch host touc
48. to the Yocto build References Yocto 1 7 2 Docu Customizing Images Using local conf 18 PHYTEC Messtechnik GmbH 2015 L 813e_2 Working with Poky and Bitbake 6 6 3 How to add an additional Layer This is a step by step guide how to add another layer to your Yocto build and installe additional software from it As an example we include the network security scanner nmap in the layer meta security First you must locate in the layer which software is hosted Checkout the OpenEmbedded MetaData Index and guess a little bit The network scanner nmap is in the meta security layer See meta secunty on layers openembedded org To integrate it into the Yocto build you have to checkout out the repository and then switch to the correct stable branch Since the BSP is based on the Yocto dizzy build you should try to use the dizzy branch in the layer too but other branches may also work host cd sources host git clone git git yoctoproject org meta security host git branch r All available remote branches will show up Usually there should be daisy dizzy fido master host git checkout fido As there is no dizzy branch in meta security we try the next stable branch from dizzy which is fido Now we add the directory of the layer to the file build conf bblayers conf by appending the line file build conf bblayers conf BBLAYERS BSPDIR sources meta security to the end of the file After that you can check
49. which BSP and Machine is selected in the current workspace PHYTEC Messtechnik GmbH 2015 L 813e_2 11 Yocto Reference Manual If you do not want to use the selector phyLinux also supports command line arguments for the several settings e g phyLinux init p am335x r PD14 1 rc1 m phycore am335x 1 or view the help command for more information phyLinux init help usage phyLinux init h verbose no init o REPOREPO x XML u URL p PLATFORM r RELEASE optional arguments h help show this help message and exit verbose no init dont execute init after fetch oREPOREPO Use repo tool from another url x XML Use a local XML manifest u URL Manifest git url p PLATFORM Processor platform r RELEASE Release version After the execution of the init command phyLinux will print a few important notes and also information for the next steps in the build process 5 4 Advanced Usage phyLinux can be used to transport software states over any medium The state of the software is uniquely identified by the manifest xml You can create a manifest send it to another place and recover the software state with phyLinux init x manifest xml You can also create a Git repository containing your software states The Git repository needs to have branches other than master as we reserved the master branch for a different usage Use phyLinux to check out the states phyLinux u lt url of your git repo gt

Download Pdf Manuals

image

Related Search

Related Contents

印刷用PDFを表示  ProxUSB (módulo OEM) Manual del usuario  

Copyright © All rights reserved.
Failed to retrieve file