From 5d9043ce4f07dbc63a2996874e798de4a83538c2 Mon Sep 17 00:00:00 2001 From: Manuel Traut 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 --- distribution/yocto-example-layer/rtpreempt.tex | 86 ++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 distribution/yocto-example-layer/rtpreempt.tex (limited to 'distribution/yocto-example-layer/rtpreempt.tex') diff --git a/distribution/yocto-example-layer/rtpreempt.tex b/distribution/yocto-example-layer/rtpreempt.tex new file mode 100644 index 0000000..037ca58 --- /dev/null +++ b/distribution/yocto-example-layer/rtpreempt.tex @@ -0,0 +1,86 @@ +\subsection{Add RT PREEMPT Linux kernel patch} + +\begin{frame}[fragile] +\frametitle{Define an 'rt' override} +\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" +UBOOT_MACHINE = "vexpress_ca9x4_defconfig" +IMAGE_FSTYPES = "wic" +MACHINEOVERRIDES .= ":rt" +\end{verbatim} +NOTE: this could also be done e.g. in distro/schulung.conf within +DISTROOVERRIDES. +\end{frame} + +\begin{frame}[fragile] +\frametitle{Add patch to kernel recipe} +\begin{lstlisting} +$ cd ~/poky/meta-schulung +$ 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" + +RTPATH = "pub/linux/kernel/projects/rt" +SRC_URI_rt := "${SRC_URI} \ + https://kernel.org/${RTPATH}/4.19/patch-4.19.1-rt3.patch.gz;name=rt" + +SRC_URI[rt.md5sum] = "ce96db835c310c195dd0f0046b2ea993" +SRC_URI[rt.sha256sum] = "649334844cfa427b08dc72debb1d5e672a3dcafc64089770fcdfa06dcc433e31" + +S = "${WORKDIR}/linux-${PV}" +\end{verbatim} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Enable full preemption} +\begin{lstlisting} +$ cd ~/poky/build-schulung +$ bitbake -c menuconfig linux-vanilla +\end{lstlisting} +select from the menu: +\begin{verbatim} + | 'General Setup + | 'Preemption Model'('Fully Preemtpible Kernel (RT)') +\end{verbatim} +Exit and save changes +\begin{lstlisting} +$ bitbake -c diffconfig linux-vanilla +$ mv tmp/work/vexpress-schulung-*/linux-vanilla/*/fragment.cfg \ + ../meta-schulung/recipes-bsp/linux-vanilla/files/rt.cfg +$ cd ~/poky/meta-schulung +$ pluma recipes-bsp/linux-vanilla/linux-vanilla-4.19.1.bb +\end{lstlisting} +\begin{verbatim} +[..] +SRC_URI_rt := "${SRC_URI} \ + https://kernel.org/${RTPATH}/4.19/patch-4.19.1-rt3.patch.gz;name=rt \ + file://rt.cfg \ +[..] +" +\end{verbatim} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Rebuild image} +\begin{lstlisting} +$ cd ~/poky/build-schulung +$ bitbake core-image-schulung +\end{lstlisting} +\end{frame} -- cgit v1.2.3