diff options
Diffstat (limited to 'distribution/yocto-basic')
| -rw-r--r-- | distribution/yocto-basic/pres_yocto-basic.tex | 3 | ||||
| -rw-r--r-- | distribution/yocto-basic/yocto-adt.tex | 109 | ||||
| -rw-r--r-- | distribution/yocto-basic/yocto-imgbuild2.tex | 6 | ||||
| -rw-r--r-- | distribution/yocto-basic/yocto-workflow.tex | 79 |
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} |
