[bootlin/training-materials updates] master: Use \kconfig and \kconfigval Elixir macros (099b9102)

Michael Opdenacker michael.opdenacker at bootlin.com
Wed May 27 11:36:40 CEST 2020


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/099b9102bb33c48e4ba4259ff7f1adf35d8d7caa

>---------------------------------------------------------------

commit 099b9102bb33c48e4ba4259ff7f1adf35d8d7caa
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Wed May 27 11:36:40 2020 +0200

    Use \kconfig and \kconfigval Elixir macros
    
    - Allows to provide links to the definition of kernel parameters
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


>---------------------------------------------------------------

099b9102bb33c48e4ba4259ff7f1adf35d8d7caa
 common/common.sty                                  |  1 +
 .../boot-time-build-kernel-and-start-system.tex    | 38 +++++++++++-----------
 .../boot-time-filesystem-optimizations.tex         |  2 +-
 labs/boot-time-kernel/boot-time-kernel.tex         | 12 +++----
 labs/buildroot-basic/buildroot-basic.tex           |  2 +-
 .../buildroot-new-packages.tex                     |  2 +-
 labs/buildroot-rootfs/buildroot-rootfs.tex         |  6 ++--
 .../kernel-compiling-and-nfs-booting.tex           | 16 ++++-----
 labs/kernel-debugging/kernel-debugging.tex         |  8 ++---
 .../kernel-i2c-input-interface.tex                 |  6 ++--
 .../sysdev-flash-filesystems.tex                   |  2 +-
 labs/sysdev-real-time/sysdev-real-time.tex         | 14 ++++----
 labs/sysdev-thirdparty/sysdev-thirdparty.tex       |  4 +--
 .../boot-time-application.tex                      |  6 ++--
 .../boot-time-bootloader/boot-time-bootloader.tex  |  4 +--
 .../boot-time-filesystems.tex                      |  8 ++---
 .../boot-time-init-scripts.tex                     |  2 +-
 .../boot-time-init-scripts3.tex                    |  2 +-
 slides/boot-time-kernel/boot-time-kernel.tex       | 20 ++++++------
 slides/boot-time-measuring/boot-time-measuring.tex |  2 +-
 slides/initramfs/initramfs.tex                     |  4 +--
 .../kernel-driver-development-debugging.tex        | 14 ++++----
 .../kernel-driver-development-io-memory.tex        |  2 +-
 .../kernel-driver-development-memory.tex           |  4 +--
 slides/kernel-frameworks2/kernel-frameworks2.tex   |  2 +-
 slides/kernel-input/kernel-input.tex               |  2 +-
 .../sysdev-flash-filesystems.tex                   |  4 +--
 slides/sysdev-realtime/sysdev-realtime.tex         | 16 ++++-----
 .../sysdev-root-filesystem-principles.tex          |  6 ++--
 29 files changed, 106 insertions(+), 105 deletions(-)

diff --git a/common/common.sty b/common/common.sty
index c32452a3..87db68e1 100644
--- a/common/common.sty
+++ b/common/common.sty
@@ -15,6 +15,7 @@
 \newcommand\kreldir[2]{\href{https://elixir.bootlin.com/linux/latest/source/#1/#2}{\code{#2/}}} % For relative directory paths
 \newcommand\ksubarch[1]{\href{https://elixir.bootlin.com/linux/latest/source/arch/#1/}{\code{#1}}}
 \newcommand\kconfig[1]{\href{https://elixir.bootlin.com/linux/latest/K/ident/#1}{\code{#1}}}
+\newcommand\kconfigval[2]{\href{https://elixir.bootlin.com/linux/latest/K/ident/#1}{\code{#1=#2}}}
 \newcommand\kerneldoctext[1]{\href{https://kernel.org/doc/Documentation/#1}{\code{Documentation/#1}}}
 \newcommand\kerneldochtml[1]{\href{https://www.kernel.org/doc/html/latest/#1.html}{\code{#1}}}
 \newcommand\kerneldochtmlsection[3]{\href{https://www.kernel.org/doc/html/latest/#1/index.html\##2}{\code{#1} (section {\em #3})}}
diff --git a/labs/boot-time-build-kernel-and-start-system/boot-time-build-kernel-and-start-system.tex b/labs/boot-time-build-kernel-and-start-system/boot-time-build-kernel-and-start-system.tex
index 9b28dd4f..89258a73 100644
--- a/labs/boot-time-build-kernel-and-start-system/boot-time-build-kernel-and-start-system.tex
+++ b/labs/boot-time-build-kernel-and-start-system/boot-time-build-kernel-and-start-system.tex
@@ -105,33 +105,33 @@ when you search.
 
 To enable support for the framebuffer and the PWM backlight:
 \begin{itemize}
-\item \code{CONFIG_PWM_TIEHRPWM=y}
-\item \code{CONFIG_FB_SIMPLE=y}
-\item \code{CONFIG_BACKLIGHT_PWM=y}
-\item \code{CONFIG_DRM=y}
-\item \code{CONFIG_DRM_TILCDC=y}
-\item \code{CONFIG_DRM_TI_TFP410=y}
+\item \kconfigval{CONFIG_PWM_TIEHRPWM}{y}
+\item \kconfigval{CONFIG_FB_SIMPLE}{y}
+\item \kconfigval{CONFIG_BACKLIGHT_PWM}{y}
+\item \kconfigval{CONFIG_DRM}{y}
+\item \kconfigval{CONFIG_DRM_TILCDC}{y}
+\item \kconfigval{CONFIG_DRM_TI_TFP410}{y}
 \end{itemize}
 
 For USB support:
 \begin{itemize}
-\item \code{CONFIG_USB=y} 
-\item \code{CONFIG_USB_MUSB_HDRC=y}
-\item \code{CONFIG_USB_MUSB_DSPS=y}
-\item \code{CONFIG_MUSB_PIO_ONLY=y}
-\item \code{CONFIG_USB_GADGET=y}
-\item \code{CONFIG_NOP_USB_XCEIV=y}
-\item \code{CONFIG_AM335X_PHY_USB=y}
-\item \code{CONFIG_USB_GPIO_VBUS=y}
-\item \code{CONFIG_USB_GADGET_VBUS_DRAW=500}
-\item \code{CONFIG_USB_CONFIGFS_F_UVC=y}
+\item \kconfigval{CONFIG_USB}{y}
+\item \kconfigval{CONFIG_USB_MUSB_HDRC}{y}
+\item \kconfigval{CONFIG_USB_MUSB_DSPS}{y}
+\item \kconfigval{CONFIG_MUSB_PIO_ONLY}{y}
+\item \kconfigval{CONFIG_USB_GADGET}{y}
+\item \kconfigval{CONFIG_NOP_USB_XCEIV}{y}
+\item \kconfigval{CONFIG_AM335X_PHY_USB}{y}
+\item \kconfigval{CONFIG_USB_GPIO_VBUS}{y}
+\item \kconfigval{CONFIG_USB_GADGET_VBUS_DRAW}{500}
+\item \kconfigval{CONFIG_USB_CONFIGFS_F_UVC}{y}
 \end{itemize}
 
 For the webcam
 \begin{itemize}
-\item \code{CONFIG_MEDIA_SUPPORT=y} 
-\item \code{CONFIG_MEDIA_USB_SUPPORT=y}
-\item \code{CONFIG_USB_VIDEO_CLASS=y}
+\item \kconfigval{CONFIG_MEDIA_SUPPORT}{y} 
+\item \kconfigval{CONFIG_MEDIA_USB_SUPPORT}{y}
+\item \kconfigval{CONFIG_USB_VIDEO_CLASS}{y}
 \end{itemize}
 
 For your convenience, of if you screw up your settings in a later lab,
diff --git a/labs/boot-time-filesystem-optimizations/boot-time-filesystem-optimizations.tex b/labs/boot-time-filesystem-optimizations/boot-time-filesystem-optimizations.tex
index 0922bc5c..7af12f2d 100644
--- a/labs/boot-time-filesystem-optimizations/boot-time-filesystem-optimizations.tex
+++ b/labs/boot-time-filesystem-optimizations/boot-time-filesystem-optimizations.tex
@@ -106,7 +106,7 @@ configuration interface:
      \item Fill \code{Initramfs source file(s)} with
 \code{../../rootfs/rootfs} (or the correct path to the directory
 containing your root filesystem)
-     \item Make sure you set \code{CONFIG_INITRAMFS_COMPRESSION_NONE=y}
+     \item Make sure you set \kconfigval{CONFIG_INITRAMFS_COMPRESSION_NONE}{y}
 	   to avoid wasting space compressing the initramfs twice.
   \end{itemize}
   \item Disable \code{Enable the block layer}
diff --git a/labs/boot-time-kernel/boot-time-kernel.tex b/labs/boot-time-kernel/boot-time-kernel.tex
index a2eedcf8..ca578534 100644
--- a/labs/boot-time-kernel/boot-time-kernel.tex
+++ b/labs/boot-time-kernel/boot-time-kernel.tex
@@ -7,9 +7,9 @@ We are going to use the kernel \code{initcall_debug} functionality.
 
 Our default kernel already has the configuration settings that we need:
 \begin{itemize}
-\item \code{CONFIG_PRINTK_TIME=y}, to add a timestamp to each kernel
+\item \kconfigval{CONFIG_PRINTK_TIME}{y}, to add a timestamp to each kernel
 message.
-\item \code{CONFIG_LOG_BUF_SHIFT=16}, to have a big enough kernel ring buffer.
+\item \kconfigval{CONFIG_LOG_BUF_SHIFT}{16}, to have a big enough kernel ring buffer.
 \end{itemize}
 
 That's not sufficient. We also need the output of the \code{dmesg}
@@ -108,7 +108,7 @@ Do this {\bf very progressively}. If you go too fast, you'll end up with a
 kernel that doesn't boot any more, but you won't be able to tell which
 parameter should have been kept.
 
-Also, don't disable \code{CONFIG_PRINTK} too early
+Also, don't disable \kconfig{CONFIG_PRINTK} too early
 as you would lose all the kernel messages in the console.
 
 Also, for the moment, don't touch the options related to size and
@@ -116,13 +116,13 @@ compression, including compiling the kernel with {\em Thumb2}, as the
 impact of each option could depend on the size of the kernel.
 
 Make sure you go through all the possibilities covered in the slides, in
-particular to enable \code{CONFIG_EMBEDDED} to allow to unselect further
+particular to enable \kconfig{CONFIG_EMBEDDED} to allow to unselect further
 features that should be present on a general purpose
 system\footnote{Here we have a very specific system and we don't have
 to support programs that could be added in the future and could need
 more kernel features}.
 
-At the end, you can disable \code{CONFIG_PRINTK}, and observe your
+At the end, you can disable \kconfig{CONFIG_PRINTK}, and observe your
 total savings in terms of kernel size and boot time.
 
 Last but not least, try to find other ways of reducing the kernel size.
@@ -147,7 +147,7 @@ First, measure and write down your kernel size and the total boot time:
   \hline
 \end{tabular}
 
-Now, compile your kernel with \code{CONFIG_ARM_THUMB}. Before you do
+Now, compile your kernel with \kconfig{CONFIG_ARM_THUMB}. Before you do
 this, you could make a backup copy of your kernel source directory with
 \code{cp -al}, as a full rebuild of the kernel will be needed, and we
 may want to roll back later. Fortunately, thanks to our feature
diff --git a/labs/buildroot-basic/buildroot-basic.tex b/labs/buildroot-basic/buildroot-basic.tex
index 3421a8ce..53f1d46a 100644
--- a/labs/buildroot-basic/buildroot-basic.tex
+++ b/labs/buildroot-basic/buildroot-basic.tex
@@ -167,7 +167,7 @@ Now, let's do the configuration:
     OMAP2, OMAP3, OMAP4, etc. So the appropriate {\em defconfig} is
     named \code{omap2plus_defconfig}. You can open up this file in the
     Linux kernel Git repository viewer, and see it contains the line
-    \code{CONFIG_SOC_AM33XX=y}, which is a good indication that it has
+    \kconfigval{CONFIG_SOC_AM33XX}{y}, which is a good indication that it has
     the support for the processor used in the BeagleBone Black. Now
     that we have identified the {\em defconfig} name, enter
     \code{omap2plus} in the \code{Defconfig name} option.
diff --git a/labs/buildroot-new-packages/buildroot-new-packages.tex b/labs/buildroot-new-packages/buildroot-new-packages.tex
index 3a096faf..b5e50408 100644
--- a/labs/buildroot-new-packages/buildroot-new-packages.tex
+++ b/labs/buildroot-new-packages/buildroot-new-packages.tex
@@ -163,7 +163,7 @@ Buildroot, and before it is built. Rebuild once again the
 However, this patch relies on the Linux kernel {\em joystick
   interface}, that we need to enable. Go to the Linux kernel
 configuration using \code{make linux-menuconfig}, and enable
-\code{CONFIG_INPUT_JOYDEV}. Exit, and make sure to save your kernel
+\kconfig{CONFIG_INPUT_JOYDEV}. Exit, and make sure to save your kernel
 configuration safely using \code{make linux-update-defconfig}. Restart
 the overall build by running \code{make}.
 
diff --git a/labs/buildroot-rootfs/buildroot-rootfs.tex b/labs/buildroot-rootfs/buildroot-rootfs.tex
index 9d605b20..5747cff1 100644
--- a/labs/buildroot-rootfs/buildroot-rootfs.tex
+++ b/labs/buildroot-rootfs/buildroot-rootfs.tex
@@ -251,12 +251,12 @@ This will:
 \end{itemize}
 
 Once in the kernel \code{menuconfig}, search for the option
-\code{CONFIG_JOYSTICK_WIICHUCK} by using the search engine tool
+\kconfig{CONFIG_JOYSTICK_WIICHUCK} by using the search engine tool
 accessible by typing \code{/}. Make sure to enable the {\em Nintendo
   Wiimote Extension connector on i2c bus} option using a \code{*} so
 that the driver is part of the kernel image itself (enabling with
 \code{M} would lead the driver to be compiled as a module). Also, make
-sure the \code{CONFIG_INPUT_EVDEV} option is enabled with \code{*} (by
+sure the \kconfig{CONFIG_INPUT_EVDEV} option is enabled with \code{*} (by
 default it is enabled as a module).
 
 You can now exit the kernel \code{menuconfig}, and restart the build
@@ -294,7 +294,7 @@ Then you can actually save your kernel configuration to a custom file:
   configuration file in
   \code{board/felabs/beagleboneblack/linux.config}. It will be a {\em
     minimal} configuration file (i.e a {\em defconfig}). In this file,
-  verify that the option \code{CONFIG_JOYSTICK_WIICHUCK} is properly
+  verify that the option \kconfig{CONFIG_JOYSTICK_WIICHUCK} is properly
   set to \code{y}.
 
 \end{enumerate}
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 844c3591..3a3e7981 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
@@ -71,20 +71,20 @@ use your cross-compiler.
 
 Add the below options to support networking over USB device:
 \begin{itemize}
-  \item \code{CONFIG_USB_GADGET=y}
-  \item \code{CONFIG_USB_MUSB_HDRC=y} {\em Driver for the USB OTG
+  \item \kconfigval{CONFIG_USB_GADGET}{y}
+  \item \kconfigval{CONFIG_USB_MUSB_HDRC}{y} {\em Driver for the USB OTG
         controller}
-  \item \code{CONFIG_USB_MUSB_GADGET=y} {\em Use the USB OTG controller
+  \item \kconfigval{CONFIG_USB_MUSB_GADGET}{y} {\em Use the USB OTG controller
 	in device (gadget) mode}
-  \item \code{CONFIG_USB_MUSB_DSPS}=y
-  \item Check the dependencies of \code{CONFIG_AM335X_PHY_USB}
-        and find the way to set \code{CONFIG_AM335X_PHY_USB=y}
+  \item \kconfigval{CONFIG_USB_MUSB_DSPS}{y}
+  \item Check the dependencies of \kconfig{CONFIG_AM335X_PHY_USB}
+        and find the way to set \kconfigval{CONFIG_AM335X_PHY_USB}{y}
   \item Find the "USB Gadget precomposed configurations" menu
         and set it to {\em static} instead of {\em module}
-	so that \code{CONFIG_USB_ETH=y}
+	so that \kconfigval{CONFIG_USB_ETH}{y}
 \end{itemize}
 
-Make sure that this configuration has \code{CONFIG_ROOT_NFS=y} (support
+Make sure that this configuration has \code{CONFIG_ROOT_NFS}{y} (support
 booting on an NFS exported root directory).
 
 \section{Kernel compiling}
diff --git a/labs/kernel-debugging/kernel-debugging.tex b/labs/kernel-debugging/kernel-debugging.tex
index 222a4ef8..cf6e3217 100644
--- a/labs/kernel-debugging/kernel-debugging.tex
+++ b/labs/kernel-debugging/kernel-debugging.tex
@@ -13,15 +13,15 @@ each character being received.
 
 Check what happens with your module. Do you see the debugging messages
 that you added? Your kernel probably does not have
-\code{CONFIG_DYNAMIC_DEBUG} set and your driver is not compiled with
+\kconfig{CONFIG_DYNAMIC_DEBUG} set and your driver is not compiled with
 \code{DEBUG} defined., so you shouldn't see any message.
 
 Now, recompile your kernel with the following options:
 
 \begin{itemize}
-\item \code{CONFIG_DYNAMIC_DEBUG}: this will allow you to see
+\item \kconfig{CONFIG_DYNAMIC_DEBUG}: this will allow you to see
   debugging messages.
-\item \code{CONFIG_DEBUG_INFO}: this option will make it
+\item \kconfig{CONFIG_DEBUG_INFO}: this option will make it
   possible to see source code in disassembled kernel code.
   We will need it in a later part of this lab, but enabling
   it now will allow to avoid recompiling the whole kernel again.
@@ -102,7 +102,7 @@ If you look again, the report tells you at what offset in the function
 this happens. Let's disassemble the code for this function to
 understand exactly where the issue happened.
 
-That's where we need a kernel compiled with \code{CONFIG_DEBUG_INFO}
+That's where we need a kernel compiled with \kconfig{CONFIG_DEBUG_INFO}
 as we did at the beginning of this lab. This way, the kernel is
 compiled with \code{$(CROSSCOMPILE)gcc -g}, which keeps the source
 code inside the binaries.
diff --git a/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex b/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex
index 95591f0e..ba9ddf5e 100644
--- a/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex
+++ b/labs/kernel-i2c-input-interface/kernel-i2c-input-interface.tex
@@ -21,8 +21,8 @@ and detect changes is to regularly poll its registers, using the input
 polling API described in the lectures.
 
 Rebuild your kernel with static support for polled input device
-(\code{CONFIG_INPUT_POLLDEV=y}) and for event interface
-(\code{CONFIG_INPUT_EVDEV}) support. With the default configuration,
+(\kconfigval{CONFIG_INPUT_POLLDEV}{y}) and for event interface
+(\kconfig{CONFIG_INPUT_EVDEV}) support. With the default configuration,
 these features are available as modules, which is less convenient.
 
 Update and reboot your kernel.
@@ -251,7 +251,7 @@ when running \code{nInvaders}, issue first the
 \subsubsection{Recompile your kernel}
 
 Recompile your kernel with support for the joystick interface
-(\code{CONFIG_INPUT_JOYDEV}).
+(\kconfig{CONFIG_INPUT_JOYDEV}).
 
 Reboot to the new kernel.
 
diff --git a/labs/sysdev-flash-filesystems/sysdev-flash-filesystems.tex b/labs/sysdev-flash-filesystems/sysdev-flash-filesystems.tex
index 2c84eb30..56343b37 100644
--- a/labs/sysdev-flash-filesystems/sysdev-flash-filesystems.tex
+++ b/labs/sysdev-flash-filesystems/sysdev-flash-filesystems.tex
@@ -41,7 +41,7 @@ Which gives the following layout:
 First, make sure your kernel has support for UBI and UBIFS, and also
 the option allowing us to pass the partition table through the command
 line:
-(\code{CONFIG_MTD_CMDLINE_PARTS}).
+(\kconfig{CONFIG_MTD_CMDLINE_PARTS}).
 
 Recompile your kernel if needed. We will update your kernel image on flash
 in the next section.
diff --git a/labs/sysdev-real-time/sysdev-real-time.tex b/labs/sysdev-real-time/sysdev-real-time.tex
index a8eeee2b..4f80c64e 100644
--- a/labs/sysdev-real-time/sysdev-real-time.tex
+++ b/labs/sysdev-real-time/sysdev-real-time.tex
@@ -109,10 +109,10 @@ PREEMPT\_RT patches yet.
 
 Configure your kernel for your Xplained board, and then make sure
 that the below settings are disabled:
-\code{CONFIG_PROVE_LOCKING}, \code{CONFIG_DEBUG_LOCK_ALLOC},
-\code{CONFIG_DEBUG_MUTEXES} and \code{CONFIG_DEBUG_SPINLOCK}.
+\kconfig{CONFIG_PROVE_LOCKING}, \kconfig{CONFIG_DEBUG_LOCK_ALLOC},
+\kconfig{CONFIG_DEBUG_MUTEXES} and \kconfig{CONFIG_DEBUG_SPINLOCK}.
 
-Also, for the moment, disable the \code{CONFIG_HIGH_RES_TIMERS}
+Also, for the moment, disable the \kconfig{CONFIG_HIGH_RES_TIMERS}
 option which impact we want to measure.
 
 Boot the Xplained board by mounting the root filesystem that you
@@ -150,14 +150,14 @@ arm-none-linux-gnueabi-gcc -o rttest rttest.c -lrt
 
 Execute the program on the board. Is the clock resolution good or bad?
 Compare it to the timer tick of your system, as defined by
-\code{CONFIG_HZ}.
+\kconfig{CONFIG_HZ}.
 
 Copy the results in a file, in order to be able to compare them
 with further results.
 
 Obviously, this resolution will not provide accurate sleep times, and
 this is because our kernel doesn't use high-resolution timers. So
-let's add back the \code{CONFIG_HIGH_RES_TIMERS} option in the kernel
+let's add back the \kconfig{CONFIG_HIGH_RES_TIMERS} option in the kernel
 configuration.
 
 Recompile your kernel, boot your Xplained with the new version, and
@@ -182,7 +182,7 @@ Now, do the following tests:
 
 \section{Testing the preemptible kernel}
 
-Recompile your kernel with \code{CONFIG_PREEMPT} enabled, which
+Recompile your kernel with \kconfig{CONFIG_PREEMPT} enabled, which
 enables kernel preemption (except for critical sections protected by
 spinlocks).
 
@@ -194,7 +194,7 @@ the results.
 Download the latest \code{PREEMPT_RT} kernel patch and apply it to
 your kernel sources.
 
-Configure your kernel with \code{CONFIG_PREEMPT_RT} and boot it.
+Configure your kernel with \kconfig{CONFIG_PREEMPT_RT} and boot it.
 
 Repeat the tests and compare the results again. You should see a massive
 improvement in the maximum latency.
diff --git a/labs/sysdev-thirdparty/sysdev-thirdparty.tex b/labs/sysdev-thirdparty/sysdev-thirdparty.tex
index f95e7820..3a30fd11 100644
--- a/labs/sysdev-thirdparty/sysdev-thirdparty.tex
+++ b/labs/sysdev-thirdparty/sysdev-thirdparty.tex
@@ -16,8 +16,8 @@ automated tools.
 \section{Audio support in the Kernel}
 
 Recompile your kernel with audio support. The options we want are:
-\code{CONFIG_SOUND}, \code{CONFIG_SND}, \code{CONFIG_SND_USB} and
-\code{CONFIG_SND_USB_AUDIO}.
+\kconfig{CONFIG_SOUND}, \kconfig{CONFIG_SND}, \kconfig{CONFIG_SND_USB} and
+\kconfig{CONFIG_SND_USB_AUDIO}.
 
 At this stage, the easiest solution to update your kernel is probably
 to get back to copying it to RAM from \code{tftp}. Anyway, we will have
diff --git a/slides/boot-time-application/boot-time-application.tex b/slides/boot-time-application/boot-time-application.tex
index fcfa6086..b390712c 100644
--- a/slides/boot-time-application/boot-time-application.tex
+++ b/slides/boot-time-application/boot-time-application.tex
@@ -34,13 +34,13 @@ A system-wide profiler
 	\item {\em legacy} mode:
 	\begin{itemize}
 		\item Low accuracy, use a kernel driver to profile
-		\item \code{CONFIG_OPROFILE}
+		\item \kconfig{CONFIG_OPROFILE}
 		\item User space tools: \code{opcontrol} and \code{oprofiled}
 	\end{itemize}
 	\item {\em perf\_events} mode:
 	\begin{itemize}
 		\item Uses hardware performance counters
-		\item \code{CONFIG_PERF_EVENTS} and \code{CONFIG_HW_PERF_EVENTS}
+		\item \kconfig{CONFIG_PERF_EVENTS} and \kconfig{CONFIG_HW_PERF_EVENTS}
 		\item User space tools: \code{operf}
 	\end{itemize}
 \end{itemize}
@@ -113,7 +113,7 @@ Profiling through timer interrupt
 \frametitle{perf}
 \begin{itemize}
 	\item Uses hardware performance counters
-	\item \code{CONFIG_PERF_EVENTS} and \code{CONFIG_HW_PERF_EVENTS}
+	\item \kconfig{CONFIG_PERF_EVENTS} and \kconfig{CONFIG_HW_PERF_EVENTS}
 	\item User space tool: \code{perf}. It is part of the kernel
 		sources so it is always in sync with your kernel.
 	\item Usage:
diff --git a/slides/boot-time-bootloader/boot-time-bootloader.tex b/slides/boot-time-bootloader/boot-time-bootloader.tex
index af74808f..bec0194c 100644
--- a/slides/boot-time-bootloader/boot-time-bootloader.tex
+++ b/slides/boot-time-bootloader/boot-time-bootloader.tex
@@ -33,7 +33,7 @@ Recompile U-Boot to remove features not needed in production
       \code{setenv bootdelay 0}
 \item This usually saves several seconds!
 \item Before you do that, recompile U-Boot with
-      \code{CONFIG_ZERO_BOOTDELAY_CHECK}, documented in
+      \kconfig{CONFIG_ZERO_BOOTDELAY_CHECK}, documented in
       \code{doc/README.autoboot}. It allows to stop the autoboot
       process by hitting a key even if the boot delay is set to
       \code{0}.
@@ -151,7 +151,7 @@ Measured between \code{Booting kernel} and \code{Starting kernel ...}
 \frametitle{Further U-Boot optimizations}
 \begin{itemize}
 \item Silence U-Boot console output. You will need to compile
-      U-Boot with \code{CONFIG_SILENT_CONSOLE} and
+      U-Boot with \kconfig{CONFIG_SILENT_CONSOLE} and
       \code{setenv silent yes}.\\
       See \code{doc/README.silent} for details.
 \end{itemize}
diff --git a/slides/boot-time-filesystems/boot-time-filesystems.tex b/slides/boot-time-filesystems/boot-time-filesystems.tex
index b8d96707..6de610dd 100644
--- a/slides/boot-time-filesystems/boot-time-filesystems.tex
+++ b/slides/boot-time-filesystems/boot-time-filesystems.tex
@@ -68,7 +68,7 @@ For raw flash storage
 \item Mount time depending on filesystem size: the kernel has to
       scan the whole filesystem at mount time, to read which block
       belongs to each file.
-\item Need to use the \code{CONFIG_JFFS2_SUMMARY} kernel option
+\item Need to use the \kconfig{CONFIG_JFFS2_SUMMARY} kernel option
       to store such information in flash. This dramatically reduces
       mount time.
 \item Benchmark on ARM:\\
@@ -133,7 +133,7 @@ For raw flash storage
 \begin{frame}
 \frametitle{Using UBI Fastmap}
 \begin{itemize}
-\item Compile your kernel with \code{CONFIG_UBI_FASTMAP}
+\item Compile your kernel with \kconfig{CONFIG_UBI_FASTMAP}
 \item Boot your system at least once with the
       \code{ubi.fm_autoconvert=1} kernel parameter.
 \item Reboot your system in a clean way
@@ -170,7 +170,7 @@ attach process.
 For raw flash storage
 \begin{itemize}
 \item {\em ubiblock}: read-only block device on top of UBI
-      (\code{CONFIG_MTD_UBI_BLOCK}). Available in Linux 3.15
+      (\kconfig{CONFIG_MTD_UBI_BLOCK}). Available in Linux 3.15
       (developed on his spare time by Ezequiel Garcia,
       a Bootlin contractor).
 \item Allows to put SquashFS on a UBI volume.
@@ -183,7 +183,7 @@ For raw flash storage
 \begin{frame}
 \frametitle{Finding the best filesystem}
 \begin{itemize}
-\item Raw flash storage: UBIFS with \code{CONFIG_UBI_FASTMAP} is
+\item Raw flash storage: UBIFS with \kconfig{CONFIG_UBI_FASTMAP} is
       probably the best solution.
 \item Block storage: SquashFS best solution for root filesystems
       which can be read-only. Btrfs and f2fs probably the best solutions
diff --git a/slides/boot-time-init-scripts/boot-time-init-scripts.tex b/slides/boot-time-init-scripts/boot-time-init-scripts.tex
index cd4a1286..51a9cb1e 100644
--- a/slides/boot-time-init-scripts/boot-time-init-scripts.tex
+++ b/slides/boot-time-init-scripts/boot-time-init-scripts.tex
@@ -25,7 +25,7 @@ than with \code{grabserial}, you can use \code{bootchart}.
 \frametitle{Measuring - bootchart}
 \begin{itemize}
 	\item You can use \code{bootchartd} from \code{busybox}
-	      (\code{CONFIG_BOOTCHARTD=y})
+	      (\kconfig{CONFIG_BOOTCHARTD=y})
 	\item Boot your board passing \code{init=/sbin/bootchartd} on your
 	      kernel command line
 	\item Copy \code{/var/log/bootlog.tgz} from your target to your host
diff --git a/slides/boot-time-init-scripts3/boot-time-init-scripts3.tex b/slides/boot-time-init-scripts3/boot-time-init-scripts3.tex
index f5b25722..73ea047b 100644
--- a/slides/boot-time-init-scripts3/boot-time-init-scripts3.tex
+++ b/slides/boot-time-init-scripts3/boot-time-init-scripts3.tex
@@ -47,7 +47,7 @@ application and then switch to the final root filesystem with
 \begin{itemize}
 \item If you ship your initramfs inside a compressed kernel image, don't compress
       it \\
-      (enable \code{CONFIG_INITRAMFS_COMPRESSION_NONE}).
+      (enable \kconfig{CONFIG_INITRAMFS_COMPRESSION_NONE}).
 \item Otherwise, by default, your initramfs data will be compressed twice, and
       the kernel will be bigger and will take a little more time to load
       and uncompress.
diff --git a/slides/boot-time-kernel/boot-time-kernel.tex b/slides/boot-time-kernel/boot-time-kernel.tex
index a156c70e..9981e46c 100644
--- a/slides/boot-time-kernel/boot-time-kernel.tex
+++ b/slides/boot-time-kernel/boot-time-kernel.tex
@@ -21,8 +21,8 @@ Here's what you get on the kernel log:
 \end{verbatim}
 \end{block}
 You might need to increase the log buffer size with
-\code{CONFIG_LOG_BUF_SHIFT} in your kernel configuration. You will
-also need \code{CONFIG_PRINTK_TIME} and \code{CONFIG_KALLSYMS}.
+\kconfig{CONFIG_LOG_BUF_SHIFT} in your kernel configuration. You will
+also need \kconfig{CONFIG_PRINTK_TIME} and \kconfig{CONFIG_KALLSYMS}.
 \end{frame}
 
 \begin{frame}
@@ -93,10 +93,10 @@ First, we focus on reducing the size without removing features
 	\item Two benefits: the kernel will be smaller and load faster, and
 		less initialization code will get executed
 	\item Remove features that are not used by userland:
-		\code{CONFIG_KALLSYMS}, \code{CONFIG_DEBUG_FS},
-		\code{CONFIG_BUG}
+		\kconfig{CONFIG_KALLSYMS}, \kconfig{CONFIG_DEBUG_FS},
+		\kconfig{CONFIG_BUG}
 	\item Use features designed for embedded systems:
-		\code{CONFIG_SLOB}, \code{CONFIG_EMBEDDED}
+		\kconfig{CONFIG_SLOB}, \kconfig{CONFIG_EMBEDDED}
 \end{itemize}
 \end{frame}
 
@@ -150,7 +150,7 @@ depend on storage and CPU performance.
 \begin{frame}
 \frametitle{Optimize kernel for size (1)}
 \begin{itemize}
-\item \code{CONFIG_CC_OPTIMIZE_FOR_SIZE}: possibility to compile the kernel
+\item \kconfig{CONFIG_CC_OPTIMIZE_FOR_SIZE}: possibility to compile the kernel
       with \code{gcc -Os} instead of \code{gcc -O2}.
 \item Such optimizations give priority to code size at
       the expense of code speed.
@@ -274,12 +274,12 @@ Calibrating delay loop (skipped) preset value.. 996.14 BogoMIPS (lpj=4980736)
 To shave off the last milliseconds, you will probably want to remove
 unnecessary features:
 \begin{itemize}
-        \item \code{CONFIG_PRINTK=n} will have the same effect as the
+        \item \kconfigval{CONFIG_PRINTK}{n} will have the same effect as the
               \code{quiet} command line argument but you won't have
 	      any access to kernel messages. You will have a
               significantly smaller kernel though.
 	\item Compile your kernel in {\em Thumb2} mode:
-	      \code{CONFIG_THUMB2_KERNEL} (any ARM toolchain can do
+	      \kconfig{CONFIG_THUMB2_KERNEL} (any ARM toolchain can do
 	      that).
 \end{itemize}
 \end{frame}
@@ -293,9 +293,9 @@ More features you could remove:
         \item Network stack
         \item USB stack
         \item Power management features
-        \item \code{CONFIG_SYSFS_DEPRECATED}
+        \item \kconfig{CONFIG_SYSFS_DEPRECATED}
         \item Input: keyboards / mice / touchscreens
-        \item Reduce the \code{CONFIG_LEGACY_PTY_COUNT} value or set the
+        \item Reduce the \kconfig{CONFIG_LEGACY_PTY_COUNT} value or set the
               \code{pty.legacy_count} kernel parameter
 \end{itemize}
 \end{frame}
diff --git a/slides/boot-time-measuring/boot-time-measuring.tex b/slides/boot-time-measuring/boot-time-measuring.tex
index 0630b6dc..8e0866f6 100644
--- a/slides/boot-time-measuring/boot-time-measuring.tex
+++ b/slides/boot-time-measuring/boot-time-measuring.tex
@@ -133,7 +133,7 @@ Later, we will see specific resources for measuring time
   \item \code{time} for measuring application time
   \item \code{strace} for application tracing
   \item \code{bootchartd} for tracing the execution of system services
-  \item \code{CONFIG_PRINTK_TIME} and \code{initcall_debug} for
+  \item \kconfig{CONFIG_PRINTK_TIME} and \code{initcall_debug} for
         tracing kernel code and functions.
 \end{itemize}
 \end{frame}
diff --git a/slides/initramfs/initramfs.tex b/slides/initramfs/initramfs.tex
index 85e7f0f5..65cb0f1b 100644
--- a/slides/initramfs/initramfs.tex
+++ b/slides/initramfs/initramfs.tex
@@ -37,7 +37,7 @@
   \frametitle{rootfs in memory: initramfs (3)}
   \begin{itemize}
   \item The contents of an initramfs are defined at the kernel
-    configuration level, with the \code{CONFIG_INITRAMFS_SOURCE}
+    configuration level, with the \kconfig{CONFIG_INITRAMFS_SOURCE}
     option
     \begin{itemize}
     \item Can be the path to a directory containing the root
@@ -47,7 +47,7 @@
       (see documentation for details)
     \end{itemize}
   \item The kernel build process will automatically take the contents
-    of the \code{CONFIG_INITRAMFS_SOURCE} option and integrate the
+    of the \kconfig{CONFIG_INITRAMFS_SOURCE} option and integrate the
     root filesystem into the kernel image
   \item Details (in kernel sources): \\
     {\small
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 ff91d0f6..5d621192 100644
--- a/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
+++ b/slides/kernel-driver-development-debugging/kernel-driver-development-debugging.tex
@@ -59,7 +59,7 @@ dev_info(&pdev->dev, "in probe\n");
     \code{DEBUG} can be defined by \codewithhash{\#define DEBUG} at the
     beginning of the driver, or using
     \code{ccflags-$(CONFIG_DRIVER) += -DDEBUG} in the \code{Makefile}
-  \item When the kernel is compiled with \code{CONFIG_DYNAMIC_DEBUG},
+  \item When the kernel is compiled with \kconfig{CONFIG_DYNAMIC_DEBUG},
     then these messages can dynamically be enabled on a per-file,
     per-module or per-message basis
     \begin{itemize}
@@ -67,7 +67,7 @@ dev_info(&pdev->dev, "in probe\n");
     \item Very powerful feature to only get the debug messages you're
       interested in.
     \end{itemize}
-  \item When neither \code{DEBUG} nor \code{CONFIG_DYNAMIC_DEBUG} are
+  \item When neither \code{DEBUG} nor \kconfig{CONFIG_DYNAMIC_DEBUG} are
     used, these messages are not compiled in.
   \end{itemize}
 \end{frame}
@@ -102,7 +102,7 @@ dev_info(&pdev->dev, "in probe\n");
   \frametitle{DebugFS}
   A virtual filesystem to export debugging information to user space.
   \begin{itemize}
-  \item Kernel configuration: \code{CONFIG_DEBUG_FS}
+  \item Kernel configuration: \kconfig{CONFIG_DEBUG_FS}
     \begin{itemize}
     \item \code{Kernel hacking -> Debug Filesystem}
     \end{itemize}
@@ -207,11 +207,11 @@ dev_info(&pdev->dev, "in probe\n");
   \begin{itemize}
   \item Details available in the kernel documentation:
     \kerneldochtml{dev-tools/kgdb}
-  \item Recommended to turn on \code{CONFIG_FRAME_POINTER} to aid in
+  \item Recommended to turn on \kconfig{CONFIG_FRAME_POINTER} to aid in
     producing more reliable stack backtraces in \code{gdb}.
   \item You must include a kgdb I/O driver. One of them is \code{kgdb} over
     serial console (\code{kgdboc}: \code{kgdb} over console, enabled by
-    \code{CONFIG_KGDB_SERIAL_CONSOLE})
+    \kconfig{CONFIG_KGDB_SERIAL_CONSOLE})
   \item Configure \code{kgdboc} at boot time by passing to the kernel:
     \begin{itemize}
     \item \code{kgdboc=<tty-device>,<bauds>}.
@@ -266,14 +266,14 @@ dev_info(&pdev->dev, "in probe\n");
 \begin{frame}
   \frametitle{More kernel debugging tips}
   \begin{itemize}
-  \item Make sure \code{CONFIG_KALLSYMS_ALL} is enabled
+  \item Make sure \kconfig{CONFIG_KALLSYMS_ALL} is enabled
     \begin{itemize}
     \item Is turned on by default
     \item To get oops messages with symbol names instead of raw addresses
     \end{itemize}
   \item On ARM, if your kernel doesn't boot or hangs without any
     message, you can activate early debugging options
-    (\code{CONFIG_DEBUG_LL} and \code{CONFIG_EARLYPRINTK}), and add
+    (\kconfig{CONFIG_DEBUG_LL} and \kconfig{CONFIG_EARLYPRINTK}), and add
     \code{earlyprintk} to the kernel command line.
   \end{itemize}
 \end{frame}
diff --git a/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex b/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
index 4141bebe..180cfb78 100644
--- a/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
+++ b/slides/kernel-driver-development-io-memory/kernel-driver-development-io-memory.tex
@@ -265,7 +265,7 @@ __raw_writel(1 << KS8695_IRQ_UART_TX,
     device memory.
   \item On \code{x86}, \code{arm}, \code{arm64},
     \code{powerpc}, \code{s390} and \code{unicore32}:
-    \code{CONFIG_STRICT_DEVMEM} option to restrict \code{/dev/mem}
+    \kconfig{CONFIG_STRICT_DEVMEM} option to restrict \code{/dev/mem}
     to non-RAM addresses, for security reasons (Linux 4.20 status).
 \end{itemize}
 \end{frame}
diff --git a/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex b/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
index 26936956..32c888ac 100644
--- a/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
+++ b/slides/kernel-driver-development-memory/kernel-driver-development-memory.tex
@@ -52,7 +52,7 @@
   \item To allow the kernel to access more physical memory:
     \begin{itemize}
     \item Change the 3GB/1GB memory split to 2GB/2GB or 1GB/3GB
-      (\code{CONFIG_VMSPLIT_2G} or \code{CONFIG_VMSPLIT_1G)}
+      (\kconfig{CONFIG_VMSPLIT_2G} or \kconfig{CONFIG_VMSPLIT_1G)}
       $\Rightarrow$ reduce total user memory available for each process
     \item Change for a 64 bit architecture ;-) See
       \kerneldoctext{x86/x86_64/mm.txt} for an example.
@@ -224,7 +224,7 @@
         Linux 4.20 on ARM: used in 48 \code{defconfig} files
   \item SLOB: much simpler. More space efficient but doesn't scale
         well. Can save space in small systems (depends on
-        \code{CONFIG_EXPERT}). \\
+        \kconfig{CONFIG_EXPERT}). \\
         Linux 4.20 on ARM: used in 7 \code{defconfig} files \\
         Results on BeagleBone Black: -5 KB compressed kernel size, +1.43 s boot time!
   \item SLUB: more recent and simpler than
diff --git a/slides/kernel-frameworks2/kernel-frameworks2.tex b/slides/kernel-frameworks2/kernel-frameworks2.tex
index 37d040ae..d3bb567f 100644
--- a/slides/kernel-frameworks2/kernel-frameworks2.tex
+++ b/slides/kernel-frameworks2/kernel-frameworks2.tex
@@ -291,7 +291,7 @@ int main(void)
 \begin{frame}
   \frametitle{Example: Framebuffer Framework}
   \begin{itemize}
-  \item Kernel option \code{CONFIG_FB}
+  \item Kernel option \kconfig{CONFIG_FB}
     \begin{itemize}
     \item \code{menuconfig FB}
       \begin{itemize}
diff --git a/slides/kernel-input/kernel-input.tex b/slides/kernel-input/kernel-input.tex
index 78c2f52a..ca857c0d 100644
--- a/slides/kernel-input/kernel-input.tex
+++ b/slides/kernel-input/kernel-input.tex
@@ -30,7 +30,7 @@
 
 \begin{frame}{Input subsystem overview}
   \begin{itemize}
-  \item Kernel option \code{CONFIG_INPUT}
+  \item Kernel option \kconfig{CONFIG_INPUT}
     \begin{itemize}
     \item \code{menuconfig INPUT}
       \begin{itemize}
diff --git a/slides/sysdev-flash-filesystems/sysdev-flash-filesystems.tex b/slides/sysdev-flash-filesystems/sysdev-flash-filesystems.tex
index f25d7ca8..d8bd041d 100644
--- a/slides/sysdev-flash-filesystems/sysdev-flash-filesystems.tex
+++ b/slides/sysdev-flash-filesystems/sysdev-flash-filesystems.tex
@@ -292,7 +292,7 @@ setenv mtdparts mtdparts=omap2-nand.0:512k(XLoader)ro,1536k(UBoot)ro,512k(Env),4
   \item MTD devices are visible in \code{/proc/mtd}
   \item User space only sees MTD partitions, not the flash device
     under those partitions (unless the kernel is compiled with
-    \code{CONFIG_MTD_PARTITIONED_MASTER})
+    \kconfig{CONFIG_MTD_PARTITIONED_MASTER})
   \item The {\bf mtdchar} driver creates a character device for each
     MTD device/partition of the system
     \begin{itemize}
@@ -776,7 +776,7 @@ ${bootargs_base} ${mtdparts}; bootz 0x81000000 - 0x82000000'}
 \begin{frame}
   \frametitle{Linux: ubiblock}
   \begin{itemize}
-  \item \code{CONFIG_MTD_UBI_BLOCK}
+  \item \kconfig{CONFIG_MTD_UBI_BLOCK}
   \item Implemented by Ezequiel Garcia from Bootlin.
   \item Preferred over \code{mtdblock} if UBI is available (UBI accounts
     for data retention and wear leveling issues, while MTD does not)
diff --git a/slides/sysdev-realtime/sysdev-realtime.tex b/slides/sysdev-realtime/sysdev-realtime.tex
index c5624b9d..a4575704 100644
--- a/slides/sysdev-realtime/sysdev-realtime.tex
+++ b/slides/sysdev-realtime/sysdev-realtime.tex
@@ -314,7 +314,7 @@
 
 \begin{frame}
   \frametitle{1st option: no forced preemption}
-  \code{CONFIG_PREEMPT_NONE}\\
+  \kconfig{CONFIG_PREEMPT_NONE}\\
   Kernel code (interrupts, exceptions, system calls) never preempted.
   Default behavior in standard kernels.
   \begin{itemize}
@@ -332,7 +332,7 @@
 
 \begin{frame}
   \frametitle{2nd option: voluntary kernel preemption}
-  \code{CONFIG_PREEMPT_VOLUNTARY}\\
+  \kconfig{CONFIG_PREEMPT_VOLUNTARY}\\
   Kernel code can preempt itself
   \begin{itemize}
   \item Typically for desktop systems, for quicker application
@@ -346,7 +346,7 @@
 
 \begin{frame}
   \frametitle{3rd option: preemptible kernel}
-  \code{CONFIG_PREEMPT}\\
+  \kconfig{CONFIG_PREEMPT}\\
   Most kernel code can be involuntarily preempted at any time.  When a
   process becomes runnable, no more need to wait for kernel code
   (typically a system call) to return before running the scheduler.
@@ -421,7 +421,7 @@
 
 \begin{frame}
   \frametitle{New real-time preemption option (1)}
-  The PREEMPT\_RT patchset adds one new level of preemption, \code{CONFIG_PREEMPT_RT}:
+  The PREEMPT\_RT patchset adds one new level of preemption, \kconfig{CONFIG_PREEMPT_RT}:
   \begin{center}
     \includegraphics[height=0.4\textheight]{slides/sysdev-realtime/preempt-rt-option.png}
   \end{center}
@@ -455,7 +455,7 @@
 \begin{frame}
   \frametitle{{\tt CONFIG\_PREEMPT\_RT} (2)}
   \begin{itemize}
-  \item With \code{CONFIG_PREEMPT_RT}, virtually all kernel code
+  \item With \kconfig{CONFIG_PREEMPT_RT}, virtually all kernel code
     becomes preemptible
     \begin{itemize}
     \item An interrupt can occur at any time, when returning from the
@@ -505,7 +505,7 @@
   \begin{itemize}
   \item In the kernel configuration, be sure to enable
     \begin{itemize}
-    \item \code{CONFIG_PREEMPT_RT}
+    \item \kconfig{CONFIG_PREEMPT_RT}
     \item High-resolution timers
     \end{itemize}
   \item Compile your kernel, and boot
@@ -535,7 +535,7 @@
         introducing new issues for real-time (such as disabling preemption in
         BPF... see \url{https://lwn.net/Articles/802884/}).
   \item A major achievement though in Linux 5.3: the
-        \code{CONFIG_PREEMPT_RT} configuration option is now in mainline, though
+        \kconfig{CONFIG_PREEMPT_RT} configuration option is now in mainline, though
         it cannot be selected yet (missing dependencies). This
         simplifies further mainlining work.
   \item See the latest status presentations:
@@ -938,7 +938,7 @@ timer_delete(timer_t timerid)
 \begin{frame}[fragile]
   \frametitle{Scheduling latency tracer}
   \fontsize{9}{9}\selectfont
-  \code{CONFIG_SCHED_TRACER} ({\em Kernel Hacking} section)
+  \kconfig{CONFIG_SCHED_TRACER} ({\em Kernel Hacking} section)
   \begin{itemize}
   \item Maximum recorded time between waking up a top priority task
     and its scheduling on a CPU, expressed in us.
diff --git a/slides/sysdev-root-filesystem-principles/sysdev-root-filesystem-principles.tex b/slides/sysdev-root-filesystem-principles/sysdev-root-filesystem-principles.tex
index 242746b8..1d682b5f 100644
--- a/slides/sysdev-root-filesystem-principles/sysdev-root-filesystem-principles.tex
+++ b/slides/sysdev-root-filesystem-principles/sysdev-root-filesystem-principles.tex
@@ -188,9 +188,9 @@ Kernel panic - not syncing: VFS: Unable to mount root fs on unknown block(0,0)
   \item On the target system
   \item The kernel must be compiled with
     \begin{itemize}
-    \item \code{CONFIG_NFS_FS=y} (NFS {\bf client} support)
-    \item \code{CONFIG_IP_PNP=y} (configure IP at boot time)
-    \item \code{CONFIG_ROOT_NFS=y} (support for NFS as rootfs)
+    \item \kconfigval{CONFIG_NFS_FS}{y} (NFS {\bf client} support)
+    \item \kconfigval{CONFIG_IP_PNP}{y} (configure IP at boot time)
+    \item \kconfigval{CONFIG_ROOT_NFS}{y} (support for NFS as rootfs)
     \end{itemize}
   \item The kernel must be booted with the following parameters:
     \begin{itemize}




More information about the training-materials-updates mailing list