Appears to be confusion in the automotive community about the Yocto Project.What is is, what it can oﬀer and so on.We were invited by the LF to come here and clarify what Yocto is.So, the Yocto Project is...
We support all of the big architectures.oe-core builds for qemu machines for all of these architecturesEnsures that the core builds for everythingOptional BSPs for speciﬁc platform supportEverything is cross compiled, so no "but it worked for x86" problems
YP is Linux for embedded, from a small ARM board to mission critical xeon clustersBuilds a custom distro suited to your needsEasy to add, remove, or change componentsOpen development process, no code drops or license complications
Some are easy to hack on,but you’ll regret it later
Especially if your target is x86, its easy to start with adesktop distribution and chop pieces outBuilding new pieces and rebuilding the pieces that need changesBut when you need to change hardware, or rebuild with diﬀerent compiler ﬂagsIts not that easy any more
Yocto is designed for long term useSix monthly release cycle but maintained release branchesCommercial support from OSVsTools to help do the mundane distribution building- Generate package repos and disk images- Static release archives for license compliance
Yocto wont surprise you late in product developmentReproducable builds for the entire systemClear process for updates - easy to make the changesand publish a new image or repoGPL compliant - trivial to public source *and* build instructions
ﬁnally should mention the advisory board.Yocto is a project at the Linux Foundation, not owned by anyparticular companyThe advisory board is comprised of reps from member companiesworking on YoctoThe boards ﬁrst action was to name itself "advisory board" ratherthan "steering group" to reﬂect that it oﬀers advice and input anddoesnt control the project technical direction entirely in thehands of the architects and maintainers
unless you happy with a qemu emulated machine youll need a bspIntel hardware BSP, such as cedar trail (atom, netbook/industrial), ﬁsh riverisland 2 (atom, digital signage, smart services), jasper forest (xeon, server)
$ wget http://downloads.yoctoproject.org/… /poky-denzil-7.0.tar.bz2$ tar xjf poky-denzil-7.0.tar.bz2$ cd poky-denzil-7.0
One of the downloads from the Yocto Project is Poky, a referencedistribution. This is basically Bitbake, oe-core, and meta-yoctoglued together for convenience Grabbing and extracting the tarballof the 7.0 "denzil" release is as youd expect
$ ./oe-init-build-env### Shell environment set up for builds.### You can now run bitbake <target>‘Common targets are: core-image-minimal core-image-sato…$ emacs conf/local.conf
First you need to source a shell script to setup the environment.Now lets have a quick look at the conﬁguration ﬁle
Just a small fragment of the options available. Defaults are allreasonable and it will successfully build out of the box.For a faster build, change the parallel options. My build machine isa quad core with hyperthreading, so I set both of those to 8 to keepit busyDefault target is x86 on qemu. This is trivially changed by simplychanging the MACHINE variable.Other options include where to keep downloaded tarballs; location ofany mirrors; features to enable such as multiarch, installing thetoolchain in the image for development, what package format to use,and more.
Then, you can run bitbake with the name of the target you wantTargets can be anything - images, packages, or operations.Lets build core-image-minimal, a small system that boots to aconsole good start to build up from if youre making asingle-purpose system
While bitbake is running youll see a report of what its doing,something like this. This isnt actually the output fromcore-image-minimal but a colleagues world build that happened to berunning when I was writing the slides. Poor guy is in for a longwait, webkit and two qt builds.
$ ls tmp/deploy/images/…core-image-minimal-atom-pc-20120918205848.hddimgcore-image-minimal-atom-pc-20120918205848.isocore-image-minimal-atom-pc-20120918205848.rootfs.cpio.gzcore-image-minimal-atom-pc-20120918205848.rootfs.ext3
When it ﬁnishes building the results are in the deploy directoryHere we can see the constructed root ﬁle system as a cpio archive,a bare ﬁlesystem, a bootable ISO image, and a disk image.Generally Id be writing the disk image to a fast USB stick with ddand booting from that for testing.The build output is conﬁgurable per build and per machine. Thisbuild was for a fairly standard Intel system so the ﬁnal output istypically bootable on those. Build for a say beagleboard and youllget kernel, bootloader and rootfs tarballs to write a SD card.alongside the images directory there is the package repository thatwas used to construct the root fs. This can be shared on the networkand used as a normal repository, ie install some development ordebug symbol packages to ﬁx a bug.
Hob is a graphical interface to bitbakedemo gremlins have decided to break hob on this laptop - works on my build machine1st iteration, gtk+ application to conﬁgure an image and monitor the build2nd iteration, web-based. currently under development.
I expect virtualisation to be common in next-generation automotivesystems as individual processors become more powerful and logicallyseparate systems are ran in virtual machines on fewer physicalprocessors.Because systems built by Yocto can be trivially tuned to be exactlywhat is required and nothing else they are a good match forvirtualised systems, both as a minimal host that does simply managesthe virtual machines, or as a specialized virtual machine itself.
Creditscars2.jpghttp://www.ﬂickr.com/photos/15443451@N00/516336421/Creative Commons 2.0 BY-NC-SA (C) Piyapat Ch.cables.jpggroup.jpgtumble.jpgumbrella.jpg(C) David Stewart, All Rights Reserved, Used with Permission.tools.jpghttp://www.ﬂickr.com/photos/22749993@N08/5386712834/Creative Commons 2.0 BY (C) Jim Pennuccicpus.jpghttp://www.ﬂickr.com/photos/17642817@N00/4553998825/Creative Commons 2.0 BY (C) Jason Rogerspeople.jpghttp://www.ﬂickr.com/photos/29370225@N03/6292167005/Creative Commons 2.0 BY (C) Roberto Trmminiﬁgs.jpghttp://www.ﬂickr.com/photos/40646519@N00/305410323/Creative Commons 2.0 BY (C) peter duttonengineer.jpg