\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}