From 5d9043ce4f07dbc63a2996874e798de4a83538c2 Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@linutronix.de>
Date: Tue, 27 Nov 2018 22:57:33 +0100
Subject: add 'yocto-layer-example'

This is a first attemp to create a new slideset for day2 of yocto-trainig.

The slideset is based on 'yocto-advanced' but with integration of
'meta-schulung' explanations.

I used a slightly modified version of 'meta-schulung'. The following changes
are currently not available in git:

I don't use linux-yocto in meta-schulung, but use an own kernel-recipe and
integrate the RT-PREEMPT patch.

wic: i can't see the need for the second partition and the need for huge files
in the kconfig. It works for me by adding ' --align 1024 ' to the wic setup.
I decided to use ext2 instead of ext4.

I renamed the rootfs.bb file into schulung-base.bb

I use the u-boot recipe from poky. However i don't use u-boot for anything atm.
  But bootloader is on our agenda..

Signed-off-by: Manuel Traut <manut@linutronix.de>
---
 distribution/yocto-example-layer/kernel.tex | 64 +++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 distribution/yocto-example-layer/kernel.tex

(limited to 'distribution/yocto-example-layer/kernel.tex')

diff --git a/distribution/yocto-example-layer/kernel.tex b/distribution/yocto-example-layer/kernel.tex
new file mode 100644
index 0000000..336a6f3
--- /dev/null
+++ b/distribution/yocto-example-layer/kernel.tex
@@ -0,0 +1,64 @@
+\subsection{Add own kernel}
+\begin{frame}
+\frametitle{Workflow}
+\begin{itemize}
+\item Configure and build kernel without yocto
+\item Extract Kernel configuration and source/patches
+\item Integrate source, config and patches into yocto
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Kernel configuration}
+\begin{lstlisting}
+$ cd ~
+$ git clone linux.git
+$ cd linux
+$ git checkout -b linux-4.19.1 v4.19.1
+$ git archive --format=tar.gz \
+              --prefix=linux-4.19.1/ \
+              -o ../linux-4.19.1.tar.gz HEAD
+$ ARCH=arm make vexpress_defconfig
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Add a kernel recipe}
+\begin{lstlisting}
+$ cd ~/poky/meta-schulung
+$ mkdir -p recipes-bsp/linux-vanilla/files/vexpress
+$ mv ~/linux-4.19.1.tar.gz recipes-bsp/linux-vanilla/files
+$ cp ~/linux/.config recipes-bsp/linux-vanilla/files/vexpress/defconfig
+$ pluma recipes-bsp/linux-vanilla/linux-vanilla_4.19.1.bb
+\end{lstlisting}
+\begin{verbatim}
+SECTION = "kernel"
+DESCRIPTION = "Linux vanilla kernel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+inherit kernel
+COMPATIBLE_MACHINE_vexpress = "vexpress"
+KERNEL_DEVICETREE_vexpress = "vexpress-v2p-ca9.dtb"
+SRC_URI = "file://linux-${PV}.tar.gz file://defconfig"
+S = "${WORKDIR}/linux-${PV}"
+\end{verbatim}
+\end{frame}
+
+
+\begin{frame}[fragile]
+\frametitle{Use own kernel recipe}
+\begin{lstlisting}
+$ cd ~/poky/meta-schulung
+$ pluma conf/machine/vexpress.conf
+\end{lstlisting}
+\begin{verbatim}
+DEFAULTTUNE ?= "armv7athf-neon"
+require conf/machine/include/tune-cortexa8.inc
+SERIAL_CONSOLE = "115200 ttyAMA0"
+PREFERRED_PROVIDER_virtual/kernel = "linux-vanilla"
+\end{verbatim}
+\begin{lstlisting}
+$ cd ~/poky/build-schulung
+$ bitbake core-image-schulung
+\end{lstlisting}
+\end{frame}
-- 
cgit v1.2.3

