diff options
Diffstat (limited to 'distribution/yocto-basic')
| -rw-r--r-- | distribution/yocto-basic/pres_yocto-basic.tex | 200 |
1 files changed, 135 insertions, 65 deletions
diff --git a/distribution/yocto-basic/pres_yocto-basic.tex b/distribution/yocto-basic/pres_yocto-basic.tex index e4bf5fe..eddd940 100644 --- a/distribution/yocto-basic/pres_yocto-basic.tex +++ b/distribution/yocto-basic/pres_yocto-basic.tex @@ -432,54 +432,41 @@ and modyfiing a recipe in an own layer. \end{frame} \begin{frame} -\frametitle{Tasks} + \frametitle{Tasks - download \& patch} \begin{description} -\item [do\_bundle\_initramfs] combines an initial ramdisk image and kernel - together to form a single image \item [do\_checkuri] validates the SRC\_URI value \item [do\_checkuriall] validates the SRC\_URI value for all recipes required to build a target" -\item [do\_clean] removes all output files for a target -\item [do\_cleanall] removes all output files, shared state cache, and - downloaded source files for a target -\item [do\_cleansstate] removes all output files and shared state cache for a - target -\item [do\_compile] compiles the source in the compilation directory -\item [do\_compile\_kernelmodules] compiles loadable modules for the Linux - kernel -\item [do\_compile\_ptest\_base] compiles the runtime test suite included in - the software being built +\item [do\_fetch] fetches the source code +\item [do\_fetchall] fetches all remote sources required to build a target +\item [do\_unpack] unpacks the source code into a working directory +\item [do\_patch] locates patch files and applies them to the source code +\end{description} +\end{frame} + +\begin{frame} + \frametitle{Tasks - configue \& compile} +\begin{description} \item [do\_configure] configures the source by enabling and disabling any build-time and configuration options for the software being built \item [do\_configure\_ptest\_base] configures the runtime test suite included in the software being built -\item [do\_deploy] writes deployable output files to the deploy directory -\item [do\_devshell] starts a shell with the environment set up for - development/debugging -\item [do\_diffconfig] compares the old and new config files after running - do\_menuconfig for the kernel -\item [do\_fetch] fetches the source code -\item [do\_fetchall] fetches all remote sources required to build a target -\item [do\_generate\_qt\_config\_file] writes a qt.conf file for building a - Qt-based application +\item [do\_compile] compiles the source in the compilation directory \item [do\_install] copies files from the compilation directory to a holding area -\item [do\_install\_ptest\_base] copies the runtime test suite files from the - compilation directory to a holding area -\item [do\_kernel\_checkout] checks out source/meta branches for a linux-yocto - style kernel -\item [do\_kernel\_configcheck] validates the kernel configuration for a - linux-yocto style kernel -\item [do\_kernel\_configme] assembles the kernel configuration for a - linux-yocto style kernel -\item [do\_kernel\_link\_vmlinux] creates a symbolic link in arch/\$arch/boot - for vmlinux kernel images -\item [do\_listtasks] lists all defined tasks for a target -\item [do\_menuconfig] runs 'make menuconfig' for the kernel +\item [do\_populate\_sysroot] copies a subset of files installed by + do\_install into the sysroot in order to make them available to other + recipes +\end{description} +\end{frame} + +\begin{frame} +\frametitle{Tasks - packaging} +\begin{description} +\item [do\_packagedata] creates package metadata used by the build system to + generate the final packages \item [do\_package] analyzes the content of the holding area and splits it into subsets based on available packages and files -\item [do\_package\_index] creates or updates the index in the Package Feed - area \item [do\_package\_write] creates the actual packages and places them in the Package Feed area \item [do\_package\_write\_deb] creates the actual DEB packages and places @@ -490,54 +477,116 @@ and modyfiing a recipe in an own layer. them in the Package Feed area \item [do\_package\_write\_tar] creates tar archives for packages and places them in the Package Feed area -\item [do\_packagedata] creates package metadata used by the build system to - generate the final packages -\item [do\_patch] locates patch files and applies them to the source code -\item [do\_populate\_lic] writes license information for the recipe that is - collected later when the image is constructed +\item [do\_package\_index] creates or updates the index in the Package Feed + area +\end{description} +\end{frame} + +\begin{frame} + \frametitle{Tasks - deploy} +\begin{description} +\item [do\_rootfs] creates the root filesystem (file and directory structure) + for an image +\item [do\_vmdkimg] creates a .vmdk image for use with VMware and compatible + virtual machine hosts" +\item [do\_deploy] writes deployable output files to the deploy directory \item [do\_populate\_sdk] creates the file and directory structure for an installable SDK -\item [do\_populate\_sysroot] copies a subset of files installed by - do\_install into the sysroot in order to make them available to other - recipes +\end{description} +\end{frame} + +\begin{frame} +\frametitle{Tasks - cleanup} +\begin{description} +\item [do\_clean] removes all output files for a target +\item [do\_cleanall] removes all output files, shared state cache, and + downloaded source files for a target +\item [do\_cleanstate] removes all output files and shared state cache for a + target \item [do\_rm\_work] removes work files after the build system has finished with them \item [do\_rm\_work\_all] top-level task for removing work files after the build system has finished with them -\item [do\_rootfs] creates the root filesystem (file and directory structure) - for an image +\end{description} +\end{frame} + +\begin{frame} +\frametitle{Tasks - kernel} +\begin{description} +\item [do\_kernel\_checkout] checks out source/meta branches for a linux-yocto + style kernel +\item [do\_validate\_branches] ensures that the source/meta branches are on + the locations specified by their SRCREV values for a linux-yocto style + kernel" +\item [do\_kernel\_configme] assembles the kernel configuration for a + linux-yocto style kernel +\item [do\_menuconfig] runs 'make menuconfig' for the kernel +\item [do\_diffconfig] compares the old and new config files after running + do\_menuconfig for the kernel \item [do\_savedefconfig] creates a minimal Linux kernel configuration file +\item [do\_kernel\_configcheck] validates the kernel configuration for a + linux-yocto style kernel \item [do\_sizecheck] checks the size of the kernel image against KERNEL\_IMAGE\_MAXSIZE (if set) -\item [do\_spdx] a build stage that takes the source code and scans it on a - remote FOSSOLOGY server in order to produce an SPDX document +\item [do\_compile\_kernelmodules] compiles loadable modules for the Linux + kernel \item [do\_strip] strips unneeded sections out of the Linux kernel image +\item [do\_kernel\_link\_vmlinux] creates a symbolic link in arch/\$arch/boot + for vmlinux kernel images +\item [do\_bundle\_initramfs] combines an initial ramdisk image and kernel + together to form a single image +\end{description} +\end{frame} + +\begin{frame} +\frametitle{Tasks - tests} +\begin{description} +\item [do\_compile\_ptest\_base] compiles the runtime test suite included in + the software being built +\item [do\_install\_ptest\_base] copies the runtime test suite files from the + compilation directory to a holding area \item [do\_testimage] boots an image and performs runtime tests within the image \item [do\_testimage\_auto] boots an image and performs runtime tests within the image immediately after it has been built +\end{description} +\end{frame} + +\begin{frame} +\frametitle{Tasks - licenses} +\begin{description} +\item [do\_populate\_lic] writes license information for the recipe that is + collected later when the image is constructed +\item [do\_spdx] a build stage that takes the source code and scans it on a + remote FOSSOLOGY server in order to produce an SPDX document +\end{description} +\end{frame} + +\begin{frame} +\frametitle{Tasks - special stuff} +\begin{description} \item [do\_uboot\_mkimage] creates a uImage file from the kernel for the U-Boot bootloader -\item [do\_unpack] unpacks the source code into a working directory -\item [do\_validate\_branches] ensures that the source/meta branches are on - the locations specified by their SRCREV values for a linux-yocto style - kernel" -\item [do\_vmdkimg] creates a .vmdk image for use with VMware and compatible - virtual machine hosts" +\item [do\_generate\_qt\_config\_file] writes a qt.conf file for building a + Qt-based application +\item [do\_devshell] starts a shell with the environment set up for + development/debugging +\item [do\_listtasks] lists all defined tasks for a target \end{description} \end{frame} + \begin{frame} \frametitle{Machines} machine configs are stored in the layers: conf/machine/* Settings can be splitted in different include *.inc files. E.g. one include for CPU that is used by the SoC inc file, that is used by the Board .conf file. +\end{frame} -Typically these variables are set in the machine config: +\begin{frame} + \frametitle{machine.conf - u-boot \& kernel} \begin{description} - \item[SOC\_FAMILY] groups together machines based upon the same family of SOC - (System On Chip) \item [UBOOT\_MACHINE] value passed on the make command line when building a U-Boot image \item [UBOOT\_MAKE\_TARGET] target called in the Makefile @@ -546,6 +595,14 @@ Typically these variables are set in the machine config: \item [KERNEL\_DEVICETREE] default devicetree \item [KERNEL\_IMAGETYPE] type of kernel to build for a device, defaults to 'zImage' +\end{description} +\end{frame} + +\begin{frame} + \frametitle{machine.conf - hardware} +\begin{description} + \item[SOC\_FAMILY] groups together machines based upon the same family of SOC + (System On Chip) \item [MACHINEOVERRIDES] lists overrides specific to the current machine. By default, this list includes the value of MACHINE. This can be used in recipes; e.g. MACHINEOVERRIDES =. "mymachine" and in the recipe @@ -555,18 +612,31 @@ Typically these variables are set in the machine config: install as part of the image being built that are not essential for booting the machine. The image being built has no build dependencies on the packages in this list. - \item [SERIAL\_CONSOLE] speed and device for the serial port used to attach +\item [SERIAL\_CONSOLE] speed and device for the serial port used to attach the serial console. This variable is given to the kernel as the 'console' parameter. After booting occurs, getty is started on that port so remote login is possible. - \item [PREFERRED\_VERSION\_xserver-xorg] compatible xserver version - \item [DEFAULTTUNE] e.g. armv6hf or cortexa8hf-neon, x86-64, \dots - \item [IMAGE\_FSTYPES] formats for the rootfs, e.g. "ext3 tar.bz2" - \item [IMAGE\_CLASSES] list of classes that all images should inherit, default + \end{description} +\end{frame} + +\begin{frame} +\frametitle{machine.conf - compiler settings} +\begin{description} +\item [DEFAULTTUNE] e.g. armv6hf or cortexa8hf-neon, x86-64, \dots +\item [TUNE\_FEATURES] e.g. "armv7a vfp neon" +\item [TUNEVALID] Descriptions, stored as flags, of valid tuning features +\item [TUNECONFLICTS] list of conflicting features for a given feature +\end{description} +\end{frame} + +\begin{frame} +\frametitle{machine.conf - software} +\begin{description} +\item [PREFERRED\_VERSION\_xserver-xorg] compatible xserver version +\item [PREFERRED\_PROVIDER\_virtual/kernel] recommended kernel +\item [IMAGE\_FSTYPES] formats for the rootfs, e.g. "ext3 tar.bz2" +\item [IMAGE\_CLASSES] list of classes that all images should inherit, default is image\_types - \item [TUNE\_FEATURES] e.g. "armv7a vfp neon" - \item [TUNEVALID] Descriptions, stored as flags, of valid tuning features - \item [TUNECONFLICTS] list of conflicting features for a given feature \end{description} \end{frame} |
