summaryrefslogtreecommitdiff
path: root/distribution/yocto-example-layer/distro.tex
diff options
context:
space:
mode:
Diffstat (limited to 'distribution/yocto-example-layer/distro.tex')
-rw-r--r--distribution/yocto-example-layer/distro.tex147
1 files changed, 147 insertions, 0 deletions
diff --git a/distribution/yocto-example-layer/distro.tex b/distribution/yocto-example-layer/distro.tex
new file mode 100644
index 0000000..8861c1b
--- /dev/null
+++ b/distribution/yocto-example-layer/distro.tex
@@ -0,0 +1,147 @@
+\subsection{Define a distribution}
+\begin{frame}
+\frametitle{Why define a distribution?}
+\begin{itemize}
+\item Naming of the toolchain (codenames, vendor)
+\item Version numbers
+\item Enable default features
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{distro features: file-systems}
+\begin{description}
+\item[cramfs] CramFS support
+\item[ext2] tools for supporting for devices with internal HDD/Microdrive
+ for storing files (instead of Flash only devices)
+\item[nfs] NFS client support (for mounting NFS exports on device)
+\item[smbfs] SMB networks client support
+ (for mounting Samba/Microsoft Windows shares on device)
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{distro features: hardware support}
+\begin{description}
+\item[alsa] ALSA/sound support
+ (OSS compatibility kernel modules installed if available)
+\item[bluetooth] bluetooth support (integrated BT only)
+\item[irda] IrDA support
+\item[wifi] WiFi support (integrated only).
+\item[keyboard] keyboard support (e.g. keymaps will be loaded during boot)
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{distro features: grahpics}
+\begin{description}
+\item[opengl] the Open Graphics Library, which is a cross-language,
+ multi-platform application programming interface used for rendering two
+ and three-dimensional graphics
+\item[directfb] DirectFB support
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{distro features: networking}
+\begin{description}
+\item[ipsec] IPSec support
+\item[ipv6] IPv6 support
+\item[ppp] PPP dialup support
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{distro features: bus support}
+\begin{description}
+\item[pci] PCI bus support
+\item[pcmcia] PCMCIA/CompactFlash support
+\item[usbgadget] USB Gadget Device support (for USB networking/serial/storage)
+\item[usbhost] USB Host support
+ (allows to connect external keyboard, mouse, storage, network etc)
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{distro features: software}
+\begin{description}
+\item[systemd] support for this init manager, which is a full replacement of
+ for init with parallel starting of services, reduced shell overhead,
+ and other features. This init manager is used by many distributions
+\item[wayland] the Wayland display server protocol
+ and the library that supports it
+\item[x11] X server and libraries
+\end{description}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{use a DISTRO\_FEATURE}
+Normally the distro features are used in package groups in a core layer.
+e.g. 'meta/recipes-core/packagegroups/packagegroup-base.bb':
+\begin{verbatim}
+PACKAGES = ' \
+ ..
+ ${@base_contains("DISTRO_FEATURES", \
+ "opengl", "packagegroup-opengl", "", d)} \
+ ..
+ '
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Yocto with local mirror}
+\begin{description}
+\item [PREMIRRORS] list of mirrors that are tried before SRC\_URI
+\item [MIRRORS] list of mirrors that are tried after SRC\_URI
+\item [BB\_FETCH\_PREMIRRORONLY = "1"] only use sources from PREMIRRORS
+\item [BB\_NO\_NETWORK = "1"] throws error instead of accessing internet
+\end{description}
+typical in local.conf to generate the mirror:
+\begin{description}
+\item [BB\_GENERATE\_MIRROR\_TARBALLS = "1"] generates a tarball that can be
+ used as mirror
+\end{description}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Define an own distribution}
+\begin{lstlisting}
+$ cd ~/poky/meta-schulung
+$ mkdir conf/distro
+$ pluma conf/distro/schulung.conf
+\end{lstlisting}
+\begin{verbatim}
+require conf/distro/poky.conf
+DISTRO = "schulung"
+DISTRO_NAME = "Schulung (Yocto Schulung Example Distro)"
+DISTRO_VERSION = "1.0"
+DISTRO_CODENAME = "pengin"
+MAINTAINER = "Your Name <you@schulung>"
+SDK_VENDOR = "-schulungsdk"
+TARGET_VENDOR = "-schulung"
+DISTROOVERRIDES = "schulung:poky"
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Use own distribution}
+\begin{lstlisting}
+$ cd ~/poky/build-schulung
+$ pluma conf/local.conf
+\end{lstlisting}
+\begin{verbatim}
+#STATE_DIR ?= "/home/prebuilt/qemuarm/sstate-cache"
+#BB_NO_NETWORK = "1"
+MACHINE ??= "qemuarm"
+DL_DIR ?= "/home/downloads"
+DISTRO ?= "schulung"
+PACKAGE_CLASSES ?= "package_ipk"
+EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+PATCHRESOLVE = "noop"
+CONF_VERSION = "1"
+\end{verbatim}
+\begin{lstlisting}
+$ bitbake core-image-minimal
+\end{lstlisting}
+\end{frame}