diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-10-15 15:08:01 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-10-27 07:50:33 +0100 |
commit | 00e061b56455e8bc6ab937a8114386f921f53fa5 (patch) | |
tree | 4f9bc25e480b9cc73d6b39efe35a4ee92b8c0804 /documentation/yocto-project-qs | |
parent | 74e47d42d60161a3cab97c923e852a42e1ce5940 (diff) | |
download | openembedded-core-00e061b56455e8bc6ab937a8114386f921f53fa5.tar.gz openembedded-core-00e061b56455e8bc6ab937a8114386f921f53fa5.tar.bz2 openembedded-core-00e061b56455e8bc6ab937a8114386f921f53fa5.tar.xz openembedded-core-00e061b56455e8bc6ab937a8114386f921f53fa5.zip |
documentation: Add Yocto quickstart guide
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'documentation/yocto-project-qs')
-rw-r--r-- | documentation/yocto-project-qs/Makefile | 32 | ||||
-rwxr-xr-x | documentation/yocto-project-qs/figures/building-an-image.png | bin | 0 -> 13954 bytes | |||
-rwxr-xr-x | documentation/yocto-project-qs/figures/cropped-yocto-project-bw.png | bin | 0 -> 5453 bytes | |||
-rwxr-xr-x | documentation/yocto-project-qs/figures/using-a-pre-built-image.png | bin | 0 -> 12131 bytes | |||
-rwxr-xr-x | documentation/yocto-project-qs/figures/white-on-black.png | bin | 0 -> 18296 bytes | |||
-rwxr-xr-x | documentation/yocto-project-qs/figures/yocto-environment.png | bin | 0 -> 62764 bytes | |||
-rwxr-xr-x | documentation/yocto-project-qs/figures/yocto-project-transp.png | bin | 0 -> 8626 bytes | |||
-rw-r--r-- | documentation/yocto-project-qs/style.css | 963 | ||||
-rw-r--r-- | documentation/yocto-project-qs/yocto-project-qs-customization.xsl | 8 | ||||
-rw-r--r-- | documentation/yocto-project-qs/yocto-project-qs.xml | 307 |
10 files changed, 1310 insertions, 0 deletions
diff --git a/documentation/yocto-project-qs/Makefile b/documentation/yocto-project-qs/Makefile new file mode 100644 index 000000000..9f45058c5 --- /dev/null +++ b/documentation/yocto-project-qs/Makefile @@ -0,0 +1,32 @@ +XSLTOPTS = --stringparam html.stylesheet style.css \ + --xinclude + +XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current +XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl + +all: html tarball + +## +# These URI should be rewritten by your distribution's xml catalog to +# match your localy installed XSL stylesheets. + +html: +# See http://www.sagehill.net/docbookxsl/HtmlOutput.html + +# xsltproc $(XSLTOPTS) -o yocto-project-qs.html $(XSL_XHTML_URI) yocto-project-qs.xml + xsltproc $(XSLTOPTS) -o yocto-project-qs.html yocto-project-qs-customization.xsl yocto-project-qs.xml + +tarball: html + tar -cvzf yocto-project-qs.tgz yocto-project-qs.html style.css figures/yocto-environment.png figures/building-an-image.png figures/using-a-pre-built-image.png figures/yocto-project-transp.png + +validate: + xmllint --postvalid --xinclude --noout yocto-project-qs.xml + +OUTPUTS = yocto-project-qs.tgz yocto-project-qs.html +SOURCES = *.png *.xml *.css + +publish: + scp -r $(OUTPUTS) $(SOURCES) o-hand.com:/srv/www/pokylinux.org/doc/ + +clean: + rm -f $(OUTPUTS) diff --git a/documentation/yocto-project-qs/figures/building-an-image.png b/documentation/yocto-project-qs/figures/building-an-image.png Binary files differnew file mode 100755 index 000000000..eb0ee07a4 --- /dev/null +++ b/documentation/yocto-project-qs/figures/building-an-image.png diff --git a/documentation/yocto-project-qs/figures/cropped-yocto-project-bw.png b/documentation/yocto-project-qs/figures/cropped-yocto-project-bw.png Binary files differnew file mode 100755 index 000000000..561333b14 --- /dev/null +++ b/documentation/yocto-project-qs/figures/cropped-yocto-project-bw.png diff --git a/documentation/yocto-project-qs/figures/using-a-pre-built-image.png b/documentation/yocto-project-qs/figures/using-a-pre-built-image.png Binary files differnew file mode 100755 index 000000000..2e8f295ad --- /dev/null +++ b/documentation/yocto-project-qs/figures/using-a-pre-built-image.png diff --git a/documentation/yocto-project-qs/figures/white-on-black.png b/documentation/yocto-project-qs/figures/white-on-black.png Binary files differnew file mode 100755 index 000000000..075b4f294 --- /dev/null +++ b/documentation/yocto-project-qs/figures/white-on-black.png diff --git a/documentation/yocto-project-qs/figures/yocto-environment.png b/documentation/yocto-project-qs/figures/yocto-environment.png Binary files differnew file mode 100755 index 000000000..a3bf23e9c --- /dev/null +++ b/documentation/yocto-project-qs/figures/yocto-environment.png diff --git a/documentation/yocto-project-qs/figures/yocto-project-transp.png b/documentation/yocto-project-qs/figures/yocto-project-transp.png Binary files differnew file mode 100755 index 000000000..31d2b147f --- /dev/null +++ b/documentation/yocto-project-qs/figures/yocto-project-transp.png diff --git a/documentation/yocto-project-qs/style.css b/documentation/yocto-project-qs/style.css new file mode 100644 index 000000000..2abfa7b5b --- /dev/null +++ b/documentation/yocto-project-qs/style.css @@ -0,0 +1,963 @@ +/* + Generic XHTML / DocBook XHTML CSS Stylesheet. + + Browser wrangling and typographic design by + Oyvind Kolas / pippin@gimp.org + + Customised for Poky by + Matthew Allum / mallum@o-hand.com + + Thanks to: + Liam R. E. Quin + William Skaggs + Jakub Steiner + + Structure + --------- + + The stylesheet is divided into the following sections: + + Positioning + Margins, paddings, width, font-size, clearing. + Decorations + Borders, style + Colors + Colors + Graphics + Graphical backgrounds + Nasty IE tweaks + Workarounds needed to make it work in internet explorer, + currently makes the stylesheet non validating, but up until + this point it is validating. + Mozilla extensions + Transparency for footer + Rounded corners on boxes + +*/ + + + /*************** / + / Positioning / +/ ***************/ + +body { + font-family: Verdana, Sans, sans-serif; + + min-width: 640px; + width: 80%; + margin: 0em auto; + padding: 2em 5em 5em 5em; + color: #333; +} + +h1,h2,h3,h4,h5,h6,h7 { + font-family: Arial, Sans; + color:#999999; + clear: both; +} + +h1 { + font-size: 2em; + text-align: left; + padding: 0em 0em 0em 0em; + margin: 2em 0em 0em 0em; +} + +h2.subtitle { + margin: 0.10em 0em 3.0em 0em; + padding: 0em 0em 0em 0em; + font-size: 1.8em; + padding-left: 20%; + font-weight: normal; + font-style: italic; +} + +h2 { + margin: 2em 0em 0.66em 0em; + padding: 0.5em 0em 0em 0em; + font-size: 1.5em; + font-weight: normal; +} + +h3.subtitle { + margin: 0em 0em 1em 0em; + padding: 0em 0em 0em 0em; + font-size: 142.14%; + text-align: right; +} + +h3 { + margin: 1em 0em 0.5em 0em; + padding: 1em 0em 0em 0em; + font-size: 140%; + font-weight: normal; +} + +h4 { + margin: 1em 0em 0.5em 0em; + padding: 1em 0em 0em 0em; + font-size: 120%; + font-weight: normal; +} + +h5 { + margin: 1em 0em 0.5em 0em; + padding: 1em 0em 0em 0em; + font-size: 110.000%; + border-bottom: 1px solid black; +} + +h6 { + margin: 1em 0em 0em 0em; + padding: 1em 0em 0em 0em; + font-size: 80%; + font-weight: normal; +} + +.authorgroup { + background-color: transparent; + background-repeat: no-repeat; + padding-top: 256px; + background-image: url("../figures/yocto-project-bw.png"); + background-position: top; + margin-top: -256px; + padding-right: 50px; + margin-left: 50px; + text-align: center; + width: 600px; +} + +h3.author { + margin: 0em 0me 0em 0em; + padding: 0em 0em 0em 0em; + font-weight: normal; + font-size: 100%; + clear: both; +} + +.author tt.email { + font-size: 66%; +} + +.titlepage hr { + width: 0em; + clear: both; +} + +.revhistory { + padding-top: 2em; + clear: both; +} + +.toc, +.list-of-tables, +.list-of-examples, +.list-of-figures { + padding: 1.33em 0em 2.5em 0em; +} + +.toc p, +.list-of-tables p, +.list-of-figures p, +.list-of-examples p { + padding: 0em 0em 0em 0em; + padding: 0em 0em 0.3em; + margin: 1.5em 0em 0em 0em; +} + +.toc p b, +.list-of-tables p b, +.list-of-figures p b, +.list-of-examples p b{ + font-size: 100.0%; + font-weight: bold; +} + +.toc dl, +.list-of-tables dl, +.list-of-figures dl, +.list-of-examples dl { + margin: 0em 0em 0.5em 0em; + padding: 0em 0em 0em 0em; +} + +.toc dt { + margin: 0em 0em 0em 0em; + padding: 0em 0em 0em 0em; +} + +.toc dd { + margin: 0em 0em 0em 2.6em; + padding: 0em 0em 0em 0em; +} + +div.glossary dl, +div.variablelist dl { +} + +.glossary dl dt, +.variablelist dl dt, +.variablelist dl dt span.term { + font-weight: normal; + width: 20em; + text-align: right; +} + +.variablelist dl dt { + margin-top: 0.5em; +} + +.glossary dl dd, +.variablelist dl dd { + margin-top: -1em; + margin-left: 25.5em; +} + +.glossary dd p, +.variablelist dd p { + margin-top: 0em; + margin-bottom: 1em; +} + + +div.calloutlist table td { + padding: 0em 0em 0em 0em; + margin: 0em 0em 0em 0em; +} + +div.calloutlist table td p { + margin-top: 0em; + margin-bottom: 1em; +} + +div p.copyright { + text-align: left; +} + +div.legalnotice p.legalnotice-title { + margin-bottom: 0em; +} + +p { + line-height: 1.5em; + margin-top: 0em; + color: black; font-size: 100%; + +} + +dl { + padding-top: 0em; +} + +hr { + border: solid 1px; +} + + +.mediaobject, +.mediaobjectco { + text-align: center; +} + +img { + border: none; +} + +ul { + padding: 0em 0em 0em 1.5em; +} + +ul li { + padding: 0em 0em 0em 0em; +} + +ul li p { + text-align: left; +} + +table { + width :100%; +} + +th { + padding: 0.25em; + text-align: left; + font-weight: normal; + vertical-align: top; +} + +td { + padding: 0.25em; + vertical-align: top; +} + +p a[id] { + margin: 0px; + padding: 0px; + display: inline; + background-image: none; +} + +a { + text-decoration: underline; + color: #444; +} + +pre { + overflow: auto; +} + +a:hover { + text-decoration: underline; + /*font-weight: bold;*/ +} + + +div.informalfigure, +div.informalexample, +div.informaltable, +div.figure, +div.table, +div.example { + margin: 1em 0em; + padding: 1em; + page-break-inside: avoid; +} + + +div.informalfigure p.title b, +div.informalexample p.title b, +div.informaltable p.title b, +div.figure p.title b, +div.example p.title b, +div.table p.title b{ + padding-top: 0em; + margin-top: 0em; + font-size: 100%; + font-weight: normal; +} + +.mediaobject .caption, +.mediaobject .caption p { + text-align: center; + font-size: 80%; + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +.epigraph { + padding-left: 55%; + margin-bottom: 1em; +} + +.epigraph p { + text-align: left; +} + +.epigraph .quote { + font-style: italic; +} +.epigraph .attribution { + font-style: normal; + text-align: right; +} + +span.application { + font-style: italic; +} + +.programlisting { + font-family: monospace; + font-size: 80%; + white-space: pre; + margin: 1.33em 0em; + padding: 1.33em; +} + +.tip, +.warning, +.caution, +.note { + margin-top: 1em; + margin-bottom: 1em; + +} + +/* force full width of table within div */ +.tip table, +.warning table, +.caution table, +.note table { + border: none; + width: 100%; +} + + +.tip table th, +.warning table th, +.caution table th, +.note table th { + padding: 0.8em 0.0em 0.0em 0.0em; + margin : 0em 0em 0em 0em; +} + +.tip p, +.warning p, +.caution p, +.note p { + margin-top: 0.5em; + margin-bottom: 0.5em; + padding-right: 1em; + text-align: left; +} + +.acronym { + text-transform: uppercase; +} + +b.keycap, +.keycap { + padding: 0.09em 0.3em; + margin: 0em; +} + +.itemizedlist li { + clear: none; +} + +.filename { + font-size: medium; + font-family: Courier, monospace; +} + + +div.navheader, div.heading{ + position: absolute; + left: 0em; + top: 0em; + width: 100%; + background-color: #cdf; + width: 100%; +} + +div.navfooter, div.footing{ + position: fixed; + left: 0em; + bottom: 0em; + background-color: #eee; + width: 100%; +} + + +div.navheader td, +div.navfooter td { + font-size: 66%; +} + +div.navheader table th { + /*font-family: Georgia, Times, serif;*/ + /*font-size: x-large;*/ + font-size: 80%; +} + +div.navheader table { + border-left: 0em; + border-right: 0em; + border-top: 0em; + width: 100%; +} + +div.navfooter table { + border-left: 0em; + border-right: 0em; + border-bottom: 0em; + width: 100%; +} + +div.navheader table td a, +div.navfooter table td a { + color: #777; + text-decoration: none; +} + +/* normal text in the footer */ +div.navfooter table td { + color: black; +} + +div.navheader table td a:visited, +div.navfooter table td a:visited { + color: #444; +} + + +/* links in header and footer */ +div.navheader table td a:hover, +div.navfooter table td a:hover { + text-decoration: underline; + background-color: transparent; + color: #33a; +} + +div.navheader hr, +div.navfooter hr { + display: none; +} + + +.qandaset tr.question td p { + margin: 0em 0em 1em 0em; + padding: 0em 0em 0em 0em; +} + +.qandaset tr.answer td p { + margin: 0em 0em 1em 0em; + padding: 0em 0em 0em 0em; +} +.answer td { + padding-bottom: 1.5em; +} + +.emphasis { + font-weight: bold; +} + + + /************* / + / decorations / +/ *************/ + +.titlepage { +} + +.part .title { +} + +.subtitle { + border: none; +} + +/* +h1 { + border: none; +} + +h2 { + border-top: solid 0.2em; + border-bottom: solid 0.06em; +} + +h3 { + border-top: 0em; + border-bottom: solid 0.06em; +} + +h4 { + border: 0em; + border-bottom: solid 0.06em; +} + +h5 { + border: 0em; +} +*/ + +.programlisting { + border: solid 1px; +} + +div.figure, +div.table, +div.informalfigure, +div.informaltable, +div.informalexample, +div.example { + border: 1px solid; +} + + + +.tip, +.warning, +.caution, +.note { + border: 1px solid; +} + +.tip table th, +.warning table th, +.caution table th, +.note table th { + border-bottom: 1px solid; +} + +.question td { + border-top: 1px solid black; +} + +.answer { +} + + +b.keycap, +.keycap { + border: 1px solid; +} + + +div.navheader, div.heading{ + border-bottom: 1px solid; +} + + +div.navfooter, div.footing{ + border-top: 1px solid; +} + + /********* / + / colors / +/ *********/ + +body { + color: #333; + background: white; +} + +a { + background: transparent; +} + +a:hover { + background-color: #dedede; +} + + +h1, +h2, +h3, +h4, +h5, +h6, +h7, +h8 { + background-color: transparent; +} + +hr { + border-color: #aaa; +} + + +.tip, .warning, .caution, .note { + border-color: #aaa; +} + + +.tip table th, +.warning table th, +.caution table th, +.note table th { + border-bottom-color: #aaa; +} + + +.warning { + background-color: #fea; +} + +.caution { + background-color: #fea; +} + +.tip { + background-color: #eff; +} + +.note { + background-color: #dfc; +} + +.glossary dl dt, +.variablelist dl dt, +.variablelist dl dt span.term { + color: #044; +} + +div.figure, +div.table, +div.example, +div.informalfigure, +div.informaltable, +div.informalexample { + border-color: #aaa; +} + +pre.programlisting { + color: black; + background-color: #fff; + border-color: #aaa; + border-width: 2px; +} + +.guimenu, +.guilabel, +.guimenuitem { + background-color: #eee; +} + + +b.keycap, +.keycap { + background-color: #eee; + border-color: #999; +} + + +div.navheader { + border-color: black; +} + + +div.navfooter { + border-color: black; +} + + + /*********** / + / graphics / +/ ***********/ + +/* +body { + background-image: url("images/body_bg.jpg"); + background-attachment: fixed; +} + +.navheader, +.note, +.tip { + background-image: url("images/note_bg.jpg"); + background-attachment: fixed; +} + +.warning, +.caution { + background-image: url("images/warning_bg.jpg"); + background-attachment: fixed; +} + +.figure, +.informalfigure, +.example, +.informalexample, +.table, +.informaltable { + background-image: url("images/figure_bg.jpg"); + background-attachment: fixed; +} + +*/ +h1, +h2, +h3, +h4, +h5, +h6, +h7{ +} + +/* +Example of how to stick an image as part of the title. + +div.article .titlepage .title +{ + background-image: url("figures/white-on-black.png"); + background-position: center; + background-repeat: repeat-x; +} +*/ + +div.preface .titlepage .title, +div.colophon .title, +div.chapter .titlepage .title, +div.article .titlepage .title +{ +} + +div.section div.section .titlepage .title, +div.sect2 .titlepage .title { + background: none; +} + + +h1.title { + background-color: transparent; + background-image: url("figures/yocto-project-bw.png"); + background-repeat: no-repeat; + height: 256px; + text-indent: -9000px; + overflow:hidden; +} + +h2.subtitle { + background-color: transparent; + text-indent: -9000px; + overflow:hidden; + width: 0px; + display: none; +} + + /*************************************** / + / pippin.gimp.org specific alterations / +/ ***************************************/ + +/* +div.heading, div.navheader { + color: #777; + font-size: 80%; + padding: 0; + margin: 0; + text-align: left; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 50px; + background: url('/gfx/heading_bg.png') transparent; + background-repeat: repeat-x; + background-attachment: fixed; + border: none; +} + +div.heading a { + color: #444; +} + +div.footing, div.navfooter { + border: none; + color: #ddd; + font-size: 80%; + text-align:right; + + width: 100%; + padding-top: 10px; + position: absolute; + bottom: 0px; + left: 0px; + + background: url('/gfx/footing_bg.png') transparent; +} +*/ + + + + /****************** / + / nasty ie tweaks / +/ ******************/ + +/* +div.heading, div.navheader { + width:expression(document.body.clientWidth + "px"); +} + +div.footing, div.navfooter { + width:expression(document.body.clientWidth + "px"); + margin-left:expression("-5em"); +} +body { + padding:expression("4em 5em 0em 5em"); +} +*/ + + /**************************************** / + / mozilla vendor specific css extensions / +/ ****************************************/ +/* +div.navfooter, div.footing{ + -moz-opacity: 0.8em; +} + +div.figure, +div.table, +div.informalfigure, +div.informaltable, +div.informalexample, +div.example, +.tip, +.warning, +.caution, +.note { + -moz-border-radius: 0.5em; +} + +b.keycap, +.keycap { + -moz-border-radius: 0.3em; +} +*/ + +table tr td table tr td { + display: none; +} + + +hr { + display: none; +} + +table { + border: 0em; +} + + .photo { + float: right; + margin-left: 1.5em; + margin-bottom: 1.5em; + margin-top: 0em; + max-width: 17em; + border: 1px solid gray; + padding: 3px; + background: white; +} + .seperator { + padding-top: 2em; + clear: both; + } + + #validators { + margin-top: 5em; + text-align: right; + color: #777; + } + @media print { + body { + font-size: 8pt; + } + .noprint { + display: none; + } + } + + +.tip, +.note { + background: #91ae35; + color: #fff; + padding: 20px; + margin: 20px; +} + +.tip h3, +.note h3 { + padding: 0em; + margin: 0em; + font-size: 2em; + font-weight: bold; + color: #fff; +} + +.tip a, +.note a { + color: #fff; + text-decoration: underline; +} diff --git a/documentation/yocto-project-qs/yocto-project-qs-customization.xsl b/documentation/yocto-project-qs/yocto-project-qs-customization.xsl new file mode 100644 index 000000000..8e6ea34dd --- /dev/null +++ b/documentation/yocto-project-qs/yocto-project-qs-customization.xsl @@ -0,0 +1,8 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> + + <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" /> + + <xsl:param name="generate.toc" select="'article nop'"></xsl:param> + +</xsl:stylesheet> diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml new file mode 100644 index 000000000..d67ff41ed --- /dev/null +++ b/documentation/yocto-project-qs/yocto-project-qs.xml @@ -0,0 +1,307 @@ +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" +"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> + +<article id='intro'> + <imagedata fileref="figures/yocto-project-transp.png" width="6in" depth="1in" align="right" scale="25" /> + +<section id='fake-title'> + <title>Yocto Project Quick Start</title> +</section> + +<section id='welcome'> + <title>Welcome!</title> + <para> + Welcome to the Yocto Project! + The Yocto Project is an open-source Linux development environment. + This short document will give you some basic information about the environment as well as let you experience it in its simplest form. + After reading this document you will have a basic understanding of what the Yocto Project is and how to work within it. + This document also steps you through a simple example showing you how to build a small image and run it using the QEMU emulator. + </para> + <para> + For complete information on the Yocto Project you should check out the <ulink url='http://www.yoctolinux.org'>Public Yocto Website</ulink>. + You can find the latest builds, breaking news, full development documentation, and a rich Yocto Project Development Community into which you can tap. + </para> +</section> + +<section id='yp-intro'> + <title>Introducing the Yocto Project Development Environment</title> + + <para> + Yocto Project is an open source development environment that creates Linux-based images suitable for many types of devices (large or small) based on architectures such as x86, x86-64, Xeon, ARM, and MIPS as well as PowerPC and device emulation. + You can use Yocto Project to design, develop, build, debug, simulate, and test the complete software stack using Linux, the X Window System, GNOME Mobile-based application frameworks, and Qt frameworks. + </para> + + <para></para> + <para></para> + + <mediaobject> + <imageobject> + <imagedata fileref="figures/yocto-environment.png" format="PNG" align='center' scalefit='1'/> + </imageobject> + <caption> + <para>The Yocto Project Development Environment</para> + </caption> + </mediaobject> + + <para> + Yocto Project: + </para> + + <itemizedlist> + <listitem> + <para>Provides an open source Linux kernel along with a set of system commands and libraries suitable for the embedded environment.</para> + </listitem> + <listitem> + <para>Makes available system components such as X11, Matchbox, GTK+, Pimlico, Clutter, and Qt (among others) so you can create a richer user interface experience on devices that use displays or have a GUI. +For devices that don't have a GUI or display you simply would not employ these components.</para> + </listitem> + <listitem> + <para>Creates a focused and stable subset of OpenEmbedded on which you can easily and reliably build and develop.</para> + </listitem> + <listitem> + <para>Fully supports a wide range of hardware and device emulation through the QEMU Emulator or other supported emulators.</para> + </listitem> + </itemizedlist> + + <para> + Yocto Project generates file system images based on open source software such as the Kdrive X server, the Matchbox Window Manager, the GTK+ Toolkit and the D-Bus Message Bus System. + Yocto Project can generate images for many kinds of devices. + However, the standard example machines target QEMU full system emulation for x86, ARM, MIPS, and PPC based architectures as well as specific hardware such as the Intel Desktop Board DH55TC. + Because an image developed with Yocto Project can boot inside a QEMU emulator, the development environment works nicely as a test platform for developing embedded software. + </para> + + <para> + Another important Yocto Project feature is the Sato component. + The optional Sato component, a GNOME mobile-based user interface environment well suited for devices with restricted screen sizes, sits neatly on top of any device using the GNOME Mobile Stack providing a well defined user experience. + </para> +</section> + +<section id='resources'> + <title>What You Need and How You Get It</title> + + <para> + You need these things to develop in the Yocto Project environment: + </para> + + <itemizedlist> + <listitem> + <para>A host system running a supported Linux distribution. + For information on distributions on which you can use Yocto Project refer to the information found at <ulink url='http://wiki.openembedded.net/index.php/OEandYourDistro'>http://wiki.openembedded.net/index.php/OEandYourDistro</ulink>.</para> + </listitem> + <listitem> + <para>The right packages.</para> + </listitem> + <listitem> + <para>A release of Yocto Project.</para> + </listitem> + </itemizedlist> + + <section id='the-linux-distro'> + <title>The Linux Distribution</title> + + <para> + While this document assumes a Debian-based host system you can develop in the Yocto Linux environment using many other Linux distributions. + For Debian-based systems we recommend you use the Ubuntu Release 10.04 or later. + </para> + </section> + + <section id='packages'> + <title>The Packages</title> + + <para> + The packages you need for a Debian-based host are shown in the following command: + </para> + + <literallayout class='monospaced'> + Sudo apt-get install sed wget cvs subversion git-core coreutils + unzip texi2html texinfo libsdll.2-dev docbook-utils gawk + python-pysqlite2 diffstat help2man make gcc build-essential + g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev + libsdl1.2-dev + </literallayout> + + <para> + <emphasis>NOTE:</emphasis> Packages vary in number and name for other Linux distributions. + For package requirements on other Linux distributions refer to the information found at <ulink url='http://wiki.openembedded.net/index.php/OEandYourDistro'>http://wiki.openembedded.net/index.php/OEandYourDistro</ulink>. + </para> + </section> + + <section id='releases'> + <title>Yocto Project Release</title> + + <para> + The latest releases for Yocto Project are kept at http://yoctoproject.org/releases. + Nightly and developmental builds are also maintained. However, for this document a released version of Yocto Project is used. + </para> + </section> +</section> + +<section id='test-run'> + <title>A Quick Test Run</title> + + <para> + Now that you have your system requirements in order you can give Yocto Project a try. + This section presents some steps that let you do the following: + </para> + + <itemizedlist> + <listitem> + <para>Build an image and run it in the emulator</para> + </listitem> + <listitem> + <para>Or, use a pre-built image and run it in the emulator</para> + </listitem> + </itemizedlist> + + <section id='building-image'> + <title>Building an Image</title> + + <para> + In the development environment you will need to build an image whenever you change hardware support, add or change system libraries, or add or change services that have dependencies. + </para> + + <mediaobject> + <imageobject> + <imagedata fileref="figures/building-an-image.png" format="PNG" align='center' scalefit='1'/> + </imageobject> + <caption> + <para>Building an Image</para> + </caption> + </mediaobject> + + <para> + Use the following commands from a shell on your Debian-based host to build your image. + The build creates an entire Linux system including the Toolchain from the source. + </para> + + <para><emphasis>NOTE:</emphasis> The build process using Sato currently consumes 50GB of disk space. + To allow for vbariations in the build process and for future package expansion we recommend 100GB of free disk space. + </para> + + <para> + <literallayout class='monospaced'> + $ wget http://pokylinux.org/releases/poky-green-3.3.tar.bz2 + $ tar xjvf poky-green-3.3.tar.bz2 + $ cd green-3.3-build + $ source green-3.3/poky-init-build-env green-3.3-build + $ bitbake qemu-native + $ bitbake poky-image-sato + $ poky-qemu qemux86 + </literallayout> + </para> + + <para> + Here is some explanation for these commands: + </para> + + <itemizedlist> + <listitem> + <para> + The first two commands extract the Yocto Project files from the release area and place them into your build area (green-3.3-build in this example). + </para> + </listitem> + <listitem> + <para> + After changing to the build directory the source command sets up the Yocto Project build environment. + The build directory contains all the object files used during the build. + The default build directory is poky-dir/build. + </para> + </listitem> + <listitem> + <para> + The two bitbake commands build the OS image and the emulator for the target. + Here poky-image-sato is the name of the target. The qemu-native target is the customized QEMU Emulator.</para> + </listitem> + <listitem> + <para> + Finally, the poky-qemu command launches the customized QEMU. + </para> + </listitem> + </itemizedlist> + </section> + + <section id='using-pre-built'> + <title>Using a Pre-Built Linux Kernel for QEMU</title> + <para> + If hardware, libraries and services are stable you can use a pre-built image of the kernel and just run it on the target using the emulator QEMU. + This situation is perfect for developing application software. + </para> + + <para></para> + <para></para> + <para></para> + + <mediaobject> + <imageobject> + <imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/> + </imageobject> + <caption> + <para>Using a Pre-Built Image</para> + </caption> + </mediaobject> + + <para> + For this scenario you need to do three things: + </para> + + <itemizedlist> + <listitem> + <para> + Install the Yocto Project Scripts + </para> + </listitem> + <listitem> + <para> + Download the pre-built kernel that will run on QEMU. + You need to be sure to get the QEMU image that matches your target machine’s architecture (e.g. x86, ARM, etc.). + </para> + </listitem> + <listitem> + <para> + Download and decompress the file image system. + </para> + </listitem> + </itemizedlist> + + <para> + Use this command to install the patched Yocto Project QEMU scripts: + </para> + + <para> + <literallayout class='monospaced'> + $ apt-get install qemu poky-scripts + </literallayout> + </para> + + <para> + You can download the pre-built Linux kernel and the file image system from <ulink url='http://pokylinux.org/releases/blinky-3.0'></ulink>. + The kernel and file image system have the following forms, respectively: + </para> + + <literallayout class='monospaced'> + *zImage*qemu*.bin + poky-image-*-qemu*.ext2.bz2 + </literallayout> + + <para> + You must decompress the file image system using the following command: + </para> + + <literallayout class='monospaced'> + $ bzip2 -d + </literallayout> + + <para> + You can now start the emulator using this command: + </para> + + <literallayout class='monospaced'> + $ poky-qemu <<emphasis>kernel</emphasis>> <<emphasis>image</emphasis>> + </literallayout> + </section> +</section> + +</article> +<!-- +vim: expandtab tw=80 ts=4 +--> |