\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-. %| /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 \end{verbatim} Use \begin{verbatim} bitbake -c listtasks \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 \end{verbatim} Remove all saved state information: \begin{verbatim} bitbake -c cleansstate \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 \end{verbatim} Use the UI 'task explorer' to get an interactive interface about tasks. \begin{verbatim} bitbake -g -u taskexp \end{verbatim} \end{frame} \begin{frame}[fragile] \frametitle{Developer Shell} \begin{verbatim} bitbake -c devshell \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}