[FE training-materials-updates] Kernel compiling lab improvements

Michael Opdenacker michael.opdenacker at free-electrons.com
Mon Feb 3 06:03:29 CET 2014

Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=e9d1a03be06459da0ce3b790835b3c24521845a9


commit e9d1a03be06459da0ce3b790835b3c24521845a9
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Mon Feb 3 05:45:16 2014 +0100

    Kernel compiling lab improvements
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


 .../kernel-compiling-and-nfs-booting.tex           |   41 +++++++++++++-------
 1 file changed, 27 insertions(+), 14 deletions(-)

diff --git a/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex b/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex
index 7fa1dd1..8ab931b 100644
--- a/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex
+++ b/labs/kernel-compiling-and-nfs-booting/kernel-compiling-and-nfs-booting.tex
@@ -5,7 +5,7 @@ shared by NFS.}
 After this lab, you will be able to:
-\item Cross-compile a kernel for the ARM platform
+\item Cross-compile the Linux kernel for the ARM platform
 \item Boot this kernel on an NFS root filesystem, which is somewhere
 on your development workstation\footnote{NFS root filesystems are
@@ -41,7 +41,7 @@ accessed through the network by the target, using NFS.
 Go to the \code{$HOME/felabs/linux/src/linux} directory.
 Install packages needed for configuring, compiling and booting
-a kernel for your board:
+the kernel for your board:
 sudo apt-get install libqt4-dev g++ u-boot-tools
@@ -69,7 +69,7 @@ dpkg -L gcc-arm-linux-gnueabi
 \section{Kernel configuration}
-Configure this kernel with the ready-made configuration for boards in
+Configure your kernel sources with the ready-made configuration for boards in
 the OMAP2 and later family which the AM335x found in the BeagleBone
 belongs to. Don't forget to set the \code{ARCH} and
 \code{CROSS_COMPILE} definitions for the \code{arm} platform and to
@@ -78,18 +78,21 @@ use your cross-compiler.
 Make sure that this configuration has \code{CONFIG_ROOT_NFS=y} (support
 booting on an NFS exported root directory).
-Compile your kernel and generate the \code{uImage} kernel image that
-U-boot needs (the U-boot bootloader needs the kernel \code{zImage}
-file to be encapsulated in a special container and the kernel
-\code{Makefile} can generate this container for you by running the
+\section{Kernel compiling}
+Compile your kernel.
+To boot it on your board with the U-boot bootloader,
+you will to encapsulate the kernel \code{zImage} file
+in a special \code{uImage} container for U-boot.
+The kernel \code{Makefile} can generate this container for you by running the
 \code{mkimage} tool found in the \code{uboot-mkimage} package).
 This file will contain, among other things, the load address of the
 kernel. Nowadays, the kernel can boot on several platforms, each with
-different load addresses, that makes the use of \code{uImage} not very
-convenient. So, if the default load address doesn't work for you, you'll
-need to specify it during the generation of \code{uImage} using the
-\code{LOADADDR} environment variable.
+different load addresses. Therefore, you will have to specify the
+load address of your hardware platform when you generate the
+\code{uImage} file:
 make LOADADDR=0x80008000 uImage
@@ -144,7 +147,16 @@ saveenv
 Of course, you need to adapt the IP addresses to your exact network
-setup. Now, download the kernel image through \code{tftp}:
+If you later want to make changes to this setting, you can type the
+below command in U-boot:
+editenv bootargs
+Now, download the kernel image through \code{tftp}:
 tftp 0x81000000 uImage
@@ -162,8 +174,9 @@ Now, boot your kernel:
 bootm 0x81000000 - 0x82000000
-If everything goes right, you should reach a shell prompt. Otherwise,
-check your setup or ask your instructor for details.
+If everything goes right, you should reach a login prompt (user:
+\code{root}, no password). Otherwise, check your setup and
+ask your instructor for support if you are stuck.
 If the kernel fails to mount the NFS filesystem, look carefully at the
 error messages in the console. If this doesn't give any clue, you can

More information about the training-materials-updates mailing list