summaryrefslogtreecommitdiff
path: root/distribution/yocto-basic/yocto-imgbuild2.tex
diff options
context:
space:
mode:
authorJan Altenberg <jan@linutronix.de>2016-05-20 19:02:57 +0200
committerJan Altenberg <jan@linutronix.de>2016-05-20 19:02:57 +0200
commitde3626497bba95b5d44550c9c23b99fd20a8d9c8 (patch)
treedeb98eff85fffccf9f7b2818bf837e6ab51d836a /distribution/yocto-basic/yocto-imgbuild2.tex
parent29bcbff58ced768f9f4edbc6f4d9d9604552f09e (diff)
parentf4af36737b6e0ca37f5b17434b8f37d04cf083d7 (diff)
Merge remote-tracking branch 'remotes/origin/devel/manut/yocto'
Integration of Manu's latest Yocto topics (autotools)
Diffstat (limited to 'distribution/yocto-basic/yocto-imgbuild2.tex')
-rw-r--r--distribution/yocto-basic/yocto-imgbuild2.tex265
1 files changed, 265 insertions, 0 deletions
diff --git a/distribution/yocto-basic/yocto-imgbuild2.tex b/distribution/yocto-basic/yocto-imgbuild2.tex
new file mode 100644
index 0000000..b6a04bb
--- /dev/null
+++ b/distribution/yocto-basic/yocto-imgbuild2.tex
@@ -0,0 +1,265 @@
+\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}
+\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...
+| 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}
+
+\begin{frame}[fragile]
+\frametitle{execute a specific task}
+\begin{verbatim}
+bitbake <recipe> -c <task>
+\end{verbatim}
+use
+\begin{verbatim}
+bitbake <recipe> -c listtasks
+\end{verbatim}
+to get a list of all available tasks
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{build dependencies}
+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>
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{developer shell}
+\begin{verbatim}
+bitbake <recipe> -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}
+\pause
+\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}
+\pause
+\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}
+\pause
+\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 recompilation}
+\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}