[FE training-materials-updates] Misc improvements and updates to kernel slides
Michael Opdenacker
michael.opdenacker at free-electrons.com
Tue May 16 06:32:56 CEST 2017
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=8faa01a9511fdf0b9db22d6614735c799eed6947
>---------------------------------------------------------------
commit 8faa01a9511fdf0b9db22d6614735c799eed6947
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Tue May 16 06:32:56 2017 +0200
Misc improvements and updates to kernel slides
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
8faa01a9511fdf0b9db22d6614735c799eed6947
.../kernel-compiling-and-nfs-booting.tex | 6 +++++-
.../kernel-driver-development-debugging.tex | 3 ++-
.../kernel-source-code-drivers.tex | 13 +++++++------
.../kernel-source-code-layout.tex | 5 +++--
.../sysdev-linux-intro-compilation.tex | 16 ++++++++--------
.../sysdev-linux-intro-cross-compilation.tex | 4 +++-
6 files changed, 28 insertions(+), 19 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 1e8a357..3238c4d 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
@@ -129,12 +129,16 @@ just one line, pay attention to the \code{O} character, like "OMAP", in
\begin{verbatim}
setenv bootargs root=/dev/nfs rw ip=192.168.0.100 console=ttyO0
nfsroot=192.168.0.1:/home/<user>/linux-kernel-labs/modules/nfsroot
-saveenv
\end{verbatim}
Of course, you need to adapt the IP addresses to your exact network
setup.
+Now save this definition:
+\begin{verbatim}
+saveenv
+\end{verbatim}
+
If you later want to make changes to this setting, you can type the
below command in U-boot:
diff --git a/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex b/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
index 90b90fb..4113ea0 100644
--- a/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
+++ b/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
@@ -88,7 +88,8 @@ dev_info(&pdev->dev, "in probe\n");
\begin{itemize}
\item The \code{loglevel} kernel parameter, which defines the
priority above which messages are displayed on the console. See
- \kerneldochtml{admin-guide/kernel-parameters} for details.
+ \kerneldochtml{admin-guide/kernel-parameters} in kernel
+ documentation for details.
\item The value of \code{/proc/sys/kernel/printk}, which allows to
change at runtime the priority above which messages are
displayed on the console. See
diff --git a/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex b/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
index 4522dd4..cc9d23b 100644
--- a/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
+++ b/slides/kernel-source-code-drivers/kernel-source-code-drivers.tex
@@ -101,11 +101,11 @@
\frametitle{Kernel memory constraints}
\begin{itemize}
\item No memory protection
- \item Accessing illegal memory locations result in (often fatal)
- kernel oopses.
- \item Fixed size stack (8 or 4 KB). Unlike in user space, there's no
- way to make it grow.
- \item Kernel memory can't be swapped out (for the same reasons).
+ \item The kernel doesn't try to recover from attemps to access illegal
+ memory locations. It just dumps {\em oops} messages on the system console.
+ \item Fixed size stack (8 or 4 KB). Unlike in user space, no mechanism
+ was implemented to make it grow.
+ \item Swapping is not implemented for kernel memory either.
\end{itemize}
\end{frame}
@@ -145,7 +145,7 @@
the kernel or not?
\begin{itemize}
\item The general opinion of the kernel community is that
- proprietary drivers are bad: \url{http://j.mp/fbyuuH}
+ proprietary modules are bad: \url{http://j.mp/fbyuuH}
\item From a legal point of view, each driver is probably a
different case
\item Is it really useful to keep your drivers secret?
@@ -186,6 +186,7 @@
\item You can also get changes from people modifying internal
kernel APIs.
\item Accessing your code is easier for users.
+ \item You can get contributions from your own customers.
\end{itemize}
This will for sure reduce your maintenance and support work
\end{frame}
diff --git a/slides/kernel-source-code-layout/kernel-source-code-layout.tex b/slides/kernel-source-code-layout/kernel-source-code-layout.tex
index 53b96f9..1f2133e 100644
--- a/slides/kernel-source-code-layout/kernel-source-code-layout.tex
+++ b/slides/kernel-source-code-layout/kernel-source-code-layout.tex
@@ -124,7 +124,7 @@
\end{itemize}
\item \kdir{samples}
\begin{itemize}
- \item Sample code (markers, kprobes, kobjects...)
+ \item Sample code (markers, kprobes, kobjects, bpf...)
\end{itemize}
\end{itemize}
\end{frame}
@@ -146,7 +146,8 @@
\end{itemize}
\item \kdir{tools}
\begin{itemize}
- \item Code for various user space tools (mostly C)
+ \item Code for various user space tools (mostly C, example:
+ \code{perf})
\end{itemize}
\item \kdir{usr}
\begin{itemize}
diff --git a/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex b/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex
index 1d2bf56..3491f5e 100644
--- a/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex
+++ b/slides/sysdev-linux-intro-compilation/sysdev-linux-intro-compilation.tex
@@ -45,7 +45,8 @@
Compressed kernel image. Same as the one in
\code{arch/<arch>/boot}
\item \code{/boot/System.map-<version>}\\
- Stores kernel symbol addresses
+ Stores kernel symbol addresses for debugging purposes
+ (obsolete: such information is usually stored in the kernel itself)
\item \code{/boot/config-<version>}\\
Kernel configuration for this version
\end{itemize}
@@ -67,14 +68,13 @@
\item \code{kernel/}\\
Module \code{.ko} (Kernel Object) files, in the same directory
structure as in the sources.
- \item \code{modules.alias}\\
- Module aliases for module loading utilities. Example line:\\
- \code{alias sound-service-?-0 snd_mixer_oss}
- \item \code{modules.dep}, \code{modules.dep.bin} (binary
- hashed)\\
+ \item \code{modules.alias}, \code{modules.aliases.bin}\\
+ Aliases for module loading utilities. Used to find drivers for
+ devices. Example line:\\
+ \code{alias usb:v066Bp20F9d*dc*dsc*dp*ic*isc*ip*in* asix}
+ \item \code{modules.dep}, \code{modules.dep.bin}\\
Module dependencies
- \item \code{modules.symbols}, \code{modules.symbols.bin} (binary
- hashed)\\
+ \item \code{modules.symbols}, \code{modules.symbols.bin}\\
Tells which module a given symbol belongs to.
\end{itemize}
\end{itemize}
diff --git a/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex b/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex
index de3be21..aeb9f8e 100644
--- a/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex
+++ b/slides/sysdev-linux-intro-cross-compilation/sysdev-linux-intro-cross-compilation.tex
@@ -221,13 +221,15 @@
\item \code{root=} for the root filesystem (covered later)
\item \code{console=} for the destination of kernel messages
\item Many more exist. The most important ones are documented
- in \kerneldochtml{admin-guide/kernel-parameters} in kernel sources.
+ in \kerneldochtml{admin-guide/kernel-parameters} in kernel
+ documentation.
\end{itemize}
\item This kernel command line is either
\begin{itemize}
\item Passed by the bootloader. In U-Boot, the contents of the
\code{bootargs} environment variable is automatically passed to the
kernel
+ \item Specified in the Device Tree (for architectures which use it)
\item Built into the kernel, using the \code{CONFIG_CMDLINE} option.
\end{itemize}
\end{itemize}
More information about the training-materials-updates
mailing list