summaryrefslogtreecommitdiff
path: root/distribution
diff options
context:
space:
mode:
Diffstat (limited to 'distribution')
-rw-r--r--distribution/yocto-basic/pres_yocto-basic.tex3
-rw-r--r--distribution/yocto-basic/yocto-adt.tex109
-rw-r--r--distribution/yocto-basic/yocto-imgbuild2.tex6
-rw-r--r--distribution/yocto-basic/yocto-workflow.tex79
4 files changed, 122 insertions, 75 deletions
diff --git a/distribution/yocto-basic/pres_yocto-basic.tex b/distribution/yocto-basic/pres_yocto-basic.tex
index b779a1d..f3b3b3b 100644
--- a/distribution/yocto-basic/pres_yocto-basic.tex
+++ b/distribution/yocto-basic/pres_yocto-basic.tex
@@ -1,13 +1,14 @@
\input{configpres}
\title{YOCTO - Basics}
+\date{}
\maketitle
\begin{frame}
\frametitle{Agenda}
\begin{itemize}
\item Workflow
-\item Variable asssignments
+\item Variable assignments
\item Recipes
\item Append files
\item Classes
diff --git a/distribution/yocto-basic/yocto-adt.tex b/distribution/yocto-basic/yocto-adt.tex
index 17d0733..250f6a9 100644
--- a/distribution/yocto-basic/yocto-adt.tex
+++ b/distribution/yocto-basic/yocto-adt.tex
@@ -1,6 +1,6 @@
\subsection{ADT}
\begin{frame}
-\frametitle{Yocto ADT (Application Development Kit}
+\frametitle{Yocto ADT (Application Development Kit)}
Core Components
\vspace{2em}
\begin{itemize}
@@ -45,13 +45,11 @@ poky/build % bitbake meta-toolchain
poky/build % bitbake -c populate_sdk core-image-minimal
\end{verbatim}
\vspace{2em}
-\pause
to install the toolchain:
\begin{verbatim}
% ./tmp/deploy/sdk/poky-glibc-x86\_64-meta-toolchain-i586-toolchain-2.0.sh
Enter target directory for SDK (default: /opt/poky/2.0): /home/devel/sdk
\end{verbatim}
-\pause
to use the toolchain:
\begin{verbatim}
source /home/devel/sdk/environment-setup-i586-poky-linux
@@ -75,58 +73,57 @@ poky/build % bitbake meta-ide-support
\vspace{2em}
\end{frame}
-\begin{frame}[fragile]
-\frametitle{build ADT installer script}
-\begin{verbatim}
-poky/build % bitbake adt-installer
-poky/build % cp tmp/deploy/sdk/adt_installer.tar.bz2 ~/
-poky/build % cd
-% cp tmp/deploy/sdk/adt_installer.tar.bz2 ~/
-% tar xjf adt_installer.tar.bz2
-% cd adt-installer
-\end{verbatim}
-\end{frame}
-
-\begin{frame}
-\frametitle{configure ADT installer}
-general configuration
-\begin{description}
-\item[YOCTOADT\_REPO] http repo with rootfs images and ipkg packages.
- Needs to match the layout from 'http://adtrepo.yoctoproject.org'
-\item[YOCTOADT\_TARGETS] machine target architectures to setup cross SDKs
-\item[YOCTOADT\_QEMU] install qemu? \[Y/N\]
-\item[YOCTOADT\_NFS\_UTIL] needed for eclipse \[Y/N\]
-\end{description}
-\end{frame}
-
-\begin{frame}
-\frametitle{configure ADT installer \#2}
-configuration for each supported BSP
-\begin{description}
-\item[YOCTOADT\_TARGET\_MACHINE\_<arch>] qemu that should be used, e.g. qemux86
-\item[YOCTOADT\_ROOTFS\_<arch>] rfs images that should be used, e.g. sato-sdk
-\item[YOCTOADT\_TARGET\_SYSROOT\_<arch>] needs to match above variable
-\item[YOCTOADT\_TARGET\_SYSROOT\_LOC\_<arch>] path where the sysroot will be
- stored
-\end{description}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{run ADT installer}
-\begin{verbatim}
-adt-installer % ./adt_installer
-Please enter the install location (default: /opt/poky/2.0): <return>
-...
-[ADT_INST] Please enter your selections here:
-S<return>
-...
-\end{verbatim}
-\pause
-to use the ADT, the environment needs to be sourced:
-\begin{verbatim}
-% . /opt/poky/2.0/environment-setup-i586-poky-linux
-\end{verbatim}
-\end{frame}
+%\begin{frame}[fragile]
+%\frametitle{build ADT installer script}
+%\begin{verbatim}
+%poky/build % bitbake adt-installer
+%poky/build % cp tmp/deploy/sdk/adt_installer.tar.bz2 ~/
+%poky/build % cd
+%% cp tmp/deploy/sdk/adt_installer.tar.bz2 ~/
+%% tar xjf adt_installer.tar.bz2
+%% cd adt-installer
+%\end{verbatim}
+%\end{frame}
+%
+%\begin{frame}
+%\frametitle{configure ADT installer}
+%general configuration
+%\begin{description}
+%\item[YOCTOADT\_REPO] http repo with rootfs images and ipkg packages.
+% Needs to match the layout from 'http://adtrepo.yoctoproject.org'
+%\item[YOCTOADT\_TARGETS] machine target architectures to setup cross SDKs
+%\item[YOCTOADT\_QEMU] install qemu? \[Y/N\]
+%\item[YOCTOADT\_NFS\_UTIL] needed for eclipse \[Y/N\]
+%\end{description}
+%\end{frame}
+%
+%\begin{frame}
+%\frametitle{configure ADT installer \#2}
+%configuration for each supported BSP
+%\begin{description}
+%\item[YOCTOADT\_TARGET\_MACHINE\_<arch>] qemu that should be used, e.g. qemux86
+%\item[YOCTOADT\_ROOTFS\_<arch>] rfs images that should be used, e.g. sato-sdk
+%\item[YOCTOADT\_TARGET\_SYSROOT\_<arch>] needs to match above variable
+%\item[YOCTOADT\_TARGET\_SYSROOT\_LOC\_<arch>] path where the sysroot will be
+% stored
+%\end{description}
+%\end{frame}
+%
+%\begin{frame}[fragile]
+%\frametitle{run ADT installer}
+%\begin{verbatim}
+%adt-installer % ./adt_installer
+%Please enter the install location (default: /opt/poky/2.0): <return>
+%...
+%[ADT_INST] Please enter your selections here:
+%S<return>
+%...
+%\end{verbatim}
+%to use the ADT, the environment needs to be sourced:
+%\begin{verbatim}
+%% . /opt/poky/2.0/environment-setup-i586-poky-linux
+%\end{verbatim}
+%\end{frame}
\begin{frame}[fragile]
\frametitle{ADT \& Eclipse}
@@ -136,7 +133,6 @@ install and start eclipse:
% tar xzf eclipse-*.tar.gz
% ./eclipse/eclipse
\end{verbatim}
-\pause
add the yocto update-site (Help, Install New Software, Add\dots)
\begin{verbatim}
http://downloads.yoctoproject.org/releases/eclipse-plugin/1.9/kepler/
@@ -145,7 +141,6 @@ select and install all components, by clicking
'Next, Next, Accept Licenses, Finish, Accept installing from insecure source,
and accept to restart eclipse'
-\pause
goto 'Help, Install New Software, Add\dots' again and
select 'Kepler' as update site and select 'Linux Tools' and
'Mobile and Device Development'; select 'Next' until you can
diff --git a/distribution/yocto-basic/yocto-imgbuild2.tex b/distribution/yocto-basic/yocto-imgbuild2.tex
index b6a04bb..e0a5e8c 100644
--- a/distribution/yocto-basic/yocto-imgbuild2.tex
+++ b/distribution/yocto-basic/yocto-imgbuild2.tex
@@ -153,11 +153,9 @@ tmp/deploy/
| /home/devel/poky/build/tmp/sysroots/x86_64-linux/usr/include/zlib.h
| /home/devel/poky/build/tmp/sysroots/x86_64-linux/usr/lib/libz.so.1
\end{verbatim}
-\pause
\begin{verbatim}
├── sysroots # for the differnet architectures
\end{verbatim}
-\pause
\begin{verbatim}
├── work # work directories / where the sources are built
| % ls tmp/work/qemux86-poky-linux/linux-yocto/3.14+gitAUTOINC+0942...
@@ -187,7 +185,6 @@ dependency graphs (sucks because they're really huge)
\begin{verbatim}
bitbake -g <target>
\end{verbatim}
-\pause
it is better to use the dependency explorer
\begin{verbatim}
bitbake -g -u depexp <target>
@@ -207,7 +204,6 @@ use ./configure and make to debug build issues
\begin{verbatim}
% bitbake -c clean core-image-minimal
\end{verbatim}
-\pause
\begin{itemize}
\item doesn't cleanup dependencies
\item doesn't remove deployed files
@@ -225,7 +221,6 @@ sstate-cache will be used.
\begin{verbatim}
% bitbake -c clean xserver-nodm-init
\end{verbatim}
-\pause
\begin{itemize}
\item doesn't cleanup dependencies
\item removes deployed files
@@ -241,7 +236,6 @@ sstate-cache will be used.
\begin{verbatim}
% bitbake -c cleanall xserver-nodm-init
\end{verbatim}
-\pause
\begin{itemize}
\item doesn't cleanup dependencies
\item removes deployed files
diff --git a/distribution/yocto-basic/yocto-workflow.tex b/distribution/yocto-basic/yocto-workflow.tex
index 3810acb..3d9651a 100644
--- a/distribution/yocto-basic/yocto-workflow.tex
+++ b/distribution/yocto-basic/yocto-workflow.tex
@@ -8,7 +8,7 @@
\begin{verbatim}
% git clone http://git.yoctoproject.org/git/poky
% cd poky
-% git checkout origin/krogoth -b krogoth -t
+% git checkout origin/pyro -b pyro -t
\end{verbatim}
\end{frame}
@@ -106,7 +106,6 @@ poky
\begin{verbatim}
VAR = "value"
\end{verbatim}
-\pause
\begin{itemize}
\item normal assignment
\item values need to be surrounded by double quotes
@@ -119,7 +118,6 @@ VAR = "value"
VAR ?= "1"
VAR ?= "2"
\end{verbatim}
-\pause
\begin{itemize}
\item VAR is set to "1" in this example
\item if there are multiple assignments using ?= the first one is used
@@ -132,7 +130,6 @@ VAR ?= "2"
VAR ??= "1"
VAR ??= "2"
\end{verbatim}
-\pause
\begin{itemize}
\item VAR is set to "2" in this example
\item if there are multiple assignments using ??= the last one is used
@@ -148,7 +145,6 @@ VAR_A ?= "34"
VAR_B ?= "12"
VAR_B ??= "34"
\end{verbatim}
-\pause
\begin{itemize}
\item VAR\_A contains "34"
\item VAR\_B contains "12"
@@ -164,7 +160,6 @@ VAR = "56"
VAR ?= "78"
VAR ??= "78"
\end{verbatim}
-\pause
\begin{itemize}
\item VAR contains "56"
\end{itemize}
@@ -180,7 +175,6 @@ VAR_C := "C:${VAR_A}"
VAR_A = "33"
echo ${VAR_A} ${VAR_B} ${VAR_C}
\end{verbatim}
-\pause
\begin{itemize}
\item 33 B:33 C:22
\item the content of VAR\_C is expanded immediately on assignment
@@ -196,7 +190,6 @@ VAR_A += "34"
VAR_B = "56"
VAR_B =+ "78"
\end{verbatim}
-\pause
\begin{itemize}
\item VAR\_A contains "12 34"
\item VAR\_B contains "78 56"
@@ -212,7 +205,6 @@ VAR_A .= "34"
VAR_B = "56"
VAR_B =. "78"
\end{verbatim}
-\pause
\begin{itemize}
\item VAR\_A contains "1234"
\item VAR\_B contains "7856"
@@ -232,6 +224,55 @@ FOO="456"
\end{verbatim}
\end{frame}
+\begin{frame}[fragile]
+\frametitle{prepend/append}
+\begin{verbatim}
+VAR = "34"
+VAR_append = "56"
+VAR_prepend = "12"
+\end{verbatim}
+\begin{itemize}
+ \item VAR contains "123456"
+ \item there are no spaces between the appended values
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{overrides}
+\begin{verbatim}
+OVERRIDES="string1:string2"
+VAR = "foo"
+VAR_string1 = "bar"
+\end{verbatim}
+\begin{itemize}
+ \item if string1 is listed in OVERRIDES, use "bar" for value of VAR, otherwise use "foo"
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{variable flags}
+\begin{verbatim}
+VAR[some_flag]="foo"
+\end{verbatim}
+\begin{itemize}
+ \item associate a subsidiary flag value to a variable
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Key Expansion}
+Key expansion happens when the BitBake datastore is finalized just before BitBake expands overrides.
+\begin{verbatim}
+A${B} = "X"
+B = "2"
+A2 = "Y"
+\end{verbatim}
+\begin{itemize}
+ \item Key expansion happens just before BitBake expands overrides.
+ \item A2 contains "X"
+\end{itemize}
+\end{frame}
+
\subsection{Recipes}
\begin{frame}
\frametitle{typical progressing}
@@ -319,7 +360,6 @@ which gives the developer an opportunity to review any license change.
\begin{verbatim}
SRC_URI = "<protocol>://<host>/<path>;<OptionA=xxx>;<OptionB=xxx>"
\end{verbatim}
-\pause
multiple urls can be set in a SRC\_URI variable:
\begin{verbatim}
SRC_URI = "<url1>;name=url1 <url2>;name=url2"
@@ -436,6 +476,23 @@ predefined classes are:
\end{itemize}
\end{frame}
+\begin{frame}
+\frametitle{include}
+Includes a complete file
+\begin{itemize}
+\item include examle-defs.inc
+\item includes the first file it can find within BBPATH
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{require}
+Same as include, but returns an error, if include file not found.
+\begin{itemize}
+\item includes the first file it can find within BBPATH
+\end{itemize}
+\end{frame}
+
\subsection{Append files}
\begin{frame}
\frametitle{basics}
@@ -469,7 +526,7 @@ an append file must be named after the base package:
\frametitle{basics}
\begin{itemize}
\item are defined and ordered in classes
- \item can be overriden by classes and recipes
+ \item can be overridden by classes and recipes
\end{itemize}
\end{frame}