\begin{frame}[fragile]
\frametitle{Start the Image}
\begin{verbatim}
$ runqemu qemux86 core-image-minimal
\end{verbatim}
\end{frame}

%\begin{frame}[fragile]
%\frametitle{Inspect the Build}
%\begin{verbatim}
%tmp/
%├── buildstats
%├── cache
%├── deploy
%├── log
%├── sstate-control
%├── stamps
%├── sysroots
%├── work
%└── work-shared
%\end{verbatim}
%\end{frame}

%\begin{frame}[fragile]
%\frametitle{Inspect the Build}
%\begin{verbatim}
%tmp/buildstats/core-image-minimal-qemux86/201408271416/
%├── acl-2.2.52-r0
%├── acl-native-2.2.52-r0
%├── alsa-lib-native-1.0.27.2-r0
%├── attr-2.4.47-r0
%├── attr-native-2.4.47-r0
%├── autoconf-native-2.69-r11
%...
%\end{verbatim}
%\end{frame}

%\begin{frame}[fragile]
%\frametitle{Inspect the Build}
%\begin{verbatim}
%tmp/buildstats/core-image-minimal-qemux86/201408271416/acl-2.2.52-r0/
%├── do_compile
%├── do_compile_ptest_base
%├── do_configure
%├── do_configure_ptest_base
%├── do_fetch
%├── do_install
%├── do_install_ptest_base
%├── do_package
%├── do_packagedata
%├── do_package_write_rpm
%├── do_patch
%├── do_populate_lic
%├── do_populate_sysroot
%└── do_unpack
%\end{verbatim}
%\end{frame}

%\begin{frame}[fragile]
%\frametitle{Inspect the Build}
%\begin{verbatim}
%408271416/acl-2.2.52-r0/do_unpack
%Event: TaskStarted
%Started: 1409143746.65
%acl-2.2.52-r0: do_unpack: Elapsed time: 0.22 seconds
%CPU usage: 7.1%
%EndIOinProgress: 0
%EndReadsComp: 973062
%EndReadsMerged: 543875573
%EndSectRead: 36860156
%EndSectWrite: 1158945211
%EndTimeIO: 30104972
%EndTimeReads: 5545878
%EndTimeWrite: 1455538600
%...
%StartWritesComp: 12202741
%Status: PASSED
%Ended: 1409143746.87
%\end{verbatim}
%\end{frame}

%\begin{frame}[fragile]
%\frametitle{Inspect the Build}
%\begin{verbatim}
%tmp/
%├── buildstats
%├── cache
%├── deploy
%├── log
%├── sstate-control
%├── stamps
%├── sysroots
%├── work
%└── work-shared
%\end{verbatim}
%\end{frame}

\begin{frame}[fragile]
\frametitle{Inspect the Build}
\begin{verbatim}
tmp/deploy/
├── images
│   └── qemux86
│       ├── bzImage -> bzImage--3.14+git0+09424...
│       ├── core-image-minimal-qemux86-20140827121546.rootfs.ext3
│       ├── core-image-minimal-qemux86-20140827121546.rootfs.manifest
│       ├── core-image-minimal-qemux86-20140827121546.rootfs.tar.bz2
│       ├── core-image-minimal-qemux86.ext3 -> core-image...
│       ├── ...
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
\frametitle{Inspect the Build}
\begin{verbatim}
tmp/deploy/
├── licenses
│   ├── acl
│   │   ├── COPYING
│   │   ├── COPYING.LGPL
│   │   ├── generic_GPLv2
│   │   └── generic_LGPLv2.1
│   ├── acl-native
│   ├── alsa-lib-native
│   ├── apr-native
│   ├── ..
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
\frametitle{Inspect the Build}
\begin{verbatim}
tmp/deploy/
└── rpm
    ├── all
    │   ├── packagegroup-core-standalone-sdk-target-1.0-r8.all.rpm
    │   ├── packagegroup-core-standalone-sdk-target-dbg-1.0-r8.all.rpm
    │   ├── packagegroup-core-standalone-sdk-target-dev-1.0-r8.all.rpm
    │   ├── repodata
    │   ├── run-postinsts-1.0-r9.all.rpm
    │   ├── ...
    ├── i586
    ├── qemux86
    └── x86_64_nativesdk
\end{verbatim}
\end{frame}

%\begin{frame}[fragile]
%\frametitle{Inspect the Build}
%\begin{verbatim}
%├── % cat sstate-control/manifest-<pn>.<task>
%|    /home/devel/poky/build/tmp/sysroots/x86_64-linux/usr/include/zconf.h
%|    /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}
%\begin{verbatim}
%├── sysroots  # for the differnet architectures
%\end{verbatim}
%\begin{verbatim}
%├── work      # work directories / where the sources are built
%|     % ls tmp/work/qemux86-poky-linux/linux-yocto/3.14+gitAUTOINC+0942...
%|    deploy-linux-yocto  linux                         packages-split
%|    deploy-rpms         linux-qemux86-standard-build  pkgdata
%|    image               linux-yocto.spec              pseudo
%|    license-destdir     package                       sysroot-destdir
%|    temp
%\end{verbatim}
%\end{frame}

\subsection{Extra Tasks}

\begin{frame}[fragile]
\frametitle{Execute a Specific Task}
\begin{verbatim}
bitbake -c <task> <recipe>
\end{verbatim}
Use
\begin{verbatim}
bitbake -c listtasks <recipe>
\end{verbatim}
to get a list of all available tasks.
\end{frame}

\begin{frame}[fragile]
\frametitle{Cleaning}
Remove the contents of the WORKDIR:
\begin{verbatim}
bitbake -c clean <recipe>
\end{verbatim}
Remove all saved state information:
\begin{verbatim}
bitbake -c cleansstate <recipe>
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
\frametitle{Build Dependencies}
Save dependency tree information for the specified targets in the dot syntax.
\begin{verbatim}
bitbake -g <recipe>
\end{verbatim}
Use the UI 'task explorer' to get an interactive interface about tasks.
\begin{verbatim}
bitbake -g -u taskexp <recipe>
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
\frametitle{Developer Shell}
\begin{verbatim}
bitbake -c devshell <recipe>
\end{verbatim}
Use ./configure and make to debug build issues.
\end{frame}

%\begin{frame}[fragile]
%\frametitle{Cleanup}
%\begin{verbatim}
%% bitbake -c clean core-image-minimal
%\end{verbatim}
%\begin{itemize}
%\item doesn't cleanup dependencies
%\item doesn't remove deployed files
%\item triggers repackaging of all packages
%\end{itemize}
%
%\vspace{2em}
%To start from scratch backup the conf directory
%and remove everything from build. Otherwise
%sstate-cache will be used.
%\end{frame}

%\begin{frame}[fragile]
%\frametitle{Cleanup}
%\begin{verbatim}
%% bitbake -c clean xserver-nodm-init
%\end{verbatim}
%\begin{itemize}
%\item doesn't cleanup dependencies
%\item removes deployed files
%\item removes downloaded files
%\item removes data from work and sysroot directory
%\item doesn't remove data from sstate
%\item triggers restoring files from sstate-cache
%\end{itemize}
%\end{frame}

%\begin{frame}[fragile]
%\frametitle{Cleanup}
%\begin{verbatim}
%% bitbake -c cleanall xserver-nodm-init
%\end{verbatim}
%\begin{itemize}
%\item doesn't cleanup dependencies
%\item removes deployed files
%\item removes downloaded files
%\item removes data from work and sysroot directory
%\item removes data from sstate-cache
%\item triggers fetch, compilation and packaging of the component
%\item BUT changes will not be in the image
%\end{itemize}
%\end{frame}

\begin{frame}[fragile]
\frametitle{Force Tasks}
Force the compile task of the xserver-nodm-init recipe:
\begin{verbatim}
% bitbake -f -c compile xserver-nodm-init
\end{verbatim}
\begin{itemize}
\item changes are not in the image
\item and not in the package
\end{itemize}
\end{frame}
