From 1d75287a9e79ab734e549ec8486fda2fecb4d5aa Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Sun, 5 Jan 2020 06:57:27 +0000 Subject: [PATCH] Add kernel talk. --- kernel/.gitignore | 1 + kernel/kernel.pdf | Bin 0 -> 90987 bytes kernel/kernel.tex | 392 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 393 insertions(+) create mode 100644 kernel/.gitignore create mode 100644 kernel/kernel.pdf create mode 100644 kernel/kernel.tex diff --git a/kernel/.gitignore b/kernel/.gitignore new file mode 100644 index 0000000..a52cbb0 --- /dev/null +++ b/kernel/.gitignore @@ -0,0 +1 @@ +old/ diff --git a/kernel/kernel.pdf b/kernel/kernel.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1ab89c05c80211be2feda781f6523afc5e32b312 GIT binary patch literal 90987 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 KX(g4Vu>K1>iOj$N literal 0 HcmV?d00001 diff --git a/kernel/kernel.tex b/kernel/kernel.tex new file mode 100644 index 0000000..8720dc4 --- /dev/null +++ b/kernel/kernel.tex @@ -0,0 +1,392 @@ +\documentclass{beamer} + +%%%%%%%%%%%%%%%%%%% +% Commands/macros % +%%%%%%%%%%%%%%%%%%% +\newcommand{\link}[1]{ + \begin{flushright} + \scriptsize{#1} + \end{flushright} +} + +\newcommand{\hdrs}[1]{\large{\textit{\insertsection}}\\\Large{\textbf{#1}}} +\newcommand{\hdrss}[1]{\large{\textit{\insertsubsection}}\\\large{\textbf{#1}}} + +%%%%%%%%%%%%%%%% +% Header/theme % +%%%%%%%%%%%%%%%% +%\usetheme[ +% pageofpages=of, +% alternativetitlepage=true, +%]{Torino} +%\setbeamertemplate{footline}{} +\setbeamersize{text margin left=10mm} +\setbeamersize{text margin right=5mm} + +% Import packages +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +\usepackage{times} +\usepackage[T1]{fontenc} +\usepackage{graphics} +\usepackage{hyperref} +\usepackage{ulem} +\usepackage{color} +\usepackage{listings} +\usepackage{xcolor} + +% Diff syntax +\definecolor{diffcommit}{rgb}{.50, .50, .00} +\definecolor{diffauthor}{rgb}{.50, .50, .00} +\definecolor{diffdate} {rgb}{.50, .50, .00} +\definecolor{diffdiff} {rgb}{.30, .30, .90} +\definecolor{diffindex} {rgb}{.50, .00, .50} +\definecolor{diffstart} {rgb}{.00, .50, .50} +\definecolor{diffadd} {rgb}{.00, .60, .00} +\definecolor{diffdel} {rgb}{.80, .00, .00} + +\lstdefinelanguage{diff}{ + basicstyle=\ttfamily\small, + morecomment=[f][\color{diffcommit}]{commit}, + morecomment=[f][\color{diffauthor}]{Author}, + morecomment=[f][\color{diffdate}]{Date}, + morecomment=[f][\color{diffdiff}]{diff}, + morecomment=[f][\color{diffindex}]{index}, + morecomment=[f][\color{diffstart}]{@@}, + morecomment=[f][\color{diffadd}]{+}, + morecomment=[f][\color{diffdel}]{-}, + morecomment=[f][\color{diffindex}]{+++}, + morecomment=[f][\color{diffindex}]{---}, +} + +\lstset{language=diff, + basicstyle=\ttfamily, + keywordstyle=\color{blue}\ttfamily, + stringstyle=\color{red}\ttfamily, + commentstyle=\color{green}\ttfamily, + morecomment=[l][\color{magenta}]{\#} } + +%%%%%%%%%%%%%%%%%%%% +% Title page setup % +%%%%%%%%%%%%%%%%%%%% +\subject{% + kernel, + programming +} + +\keywords{% + linux, + kernel +} + +\title[Kernel Programming]{% + Introduction to Linux Kernel Programming +} + +\author[Spencer]{% + Andy Spencer +} + +\date[2020-01-04]{% + Jan. 4, 2020 \\ + \small{San Fernando Valley Linux Users Group} +} + +%%%%%%%%%%%%%%%%% +% Content pages % +%%%%%%%%%%%%%%%%% +% Structure: +% - Examples +% - The typo fix +% - The hardware id +% - The driver debug +% - The new driver +% - The new protocol +% - The new board +% - Development +% - Kernel compiling +% - Booting the kernel +% - Kernel source tree +% - Sending patches +% - Kernel modules +% - Hello, World +% - User Interfaces +% - printk / dmesg +% - /dev, proc, sysfs +% - syscalls, ioctls +% - Devices and Drivers +\begin{document} + +%%%%%%%%%%%%%%%% +% Introduction % +%%%%%%%%%%%%%%%% +\begin{frame}[plain] + \titlepage +\end{frame} + +% Examples +% - The typo fix +% - The hardware id +% - The driver debug +% - The new driver +% - The new protocol +% - The new board + +\section{Examples Patches} + +\begin{frame}[fragile]{\hdrs{The Typo Fix}} + \begin{lstlisting}[language=diff,basicstyle=\tiny] +commit 9eac0ae1683575375de8c63166b3596b11d3b56a +Author: Krzysztof Kozlowski +Date: 2019-01-08 13:11:40 +0100 + + dt-bindings: soc: qcom: Fix trivial language typos + + Fix few trivial language typos in bindings. + + Signed-off-by: Krzysztof Kozlowski + Signed-off-by: Rob Herring + +diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt b/Docume... +index 0b8cc533ca83..cf759e5f9b10 100644 +--- a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt ++++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt +@@ -55,7 +55,7 @@ of these nodes are defined by the individual bindings for the... + = EXAMPLE + The following example represents the GLINK RPM node on a MSM8996 device, with + the function for the "rpm_request" channel defined, which is used for +-regualtors and root clocks. ++regulators and root clocks. + + apcs_glb: mailbox@9820000 { + compatible = "qcom,msm8996-apcs-hmss-global"; + \end{lstlisting} +\end{frame} + +\begin{frame}[fragile]{\hdrs{The Hardware ID}} + \begin{lstlisting}[language=diff,basicstyle=\tiny] +commit 7ab21a8692094872298df172f54d55cba72fd308 +Author: Andy Spencer +Date: 2009-01-02 16:19:13 +0000 + + i8k: Enable i8k on Dell Precision Systems + + Patch to enable i8k on Dell Precisions. + + Signed-off-by: Andy Spencer + Signed-off-by: Alan Cox + Signed-off-by: Linus Torvalds + +diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c +index b60d425ce8d1..099fc89a5bdd 100644 +--- a/drivers/char/i8k.c ++++ b/drivers/char/i8k.c +@@ -485,6 +485,13 @@ static struct dmi_system_id __initdata i8k_dmi_table[] = { + DMI_MATCH(DMI_PRODUCT_NAME, "MP061"), + }, + }, ++ { ++ .ident = "Dell Precision", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Precision"), ++ }, ++ }, + { } + }; + \end{lstlisting} +\end{frame} + +\begin{frame}[fragile]{\hdrs{The Driver Debug}} + \begin{lstlisting}[language=diff,basicstyle=\tiny] +commit ab1796ebdad3017965754d86db64d3cba5c416b9 +Author: Andy Spencer +Date: 2014-05-02 06:48:13 +0000 + + RTL8192CU: Increase max APFM_ONMAC polling count + + With certain hardware combinations the poll interval is exceeded before + initialization completes. + + Tested on a MacBookPro10,1 using a Sabrent USB-A11N USB adapter. + + Signed-off-by: Andy Spencer + Acked-by: Larry Finger + Signed-off-by: John W. Linville + +diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/rtlw... +index 68b5c7e92cfb..31b79e78c63c 100644 +--- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c ++++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +@@ -511,7 +511,7 @@ static int _rtl92cu_init_power_on(struct ieee80211_hw *hw) + pr_info("MAC auto ON okay!\n"); + break; + } +- if (pollingCount++ > 100) { ++ if (pollingCount++ > 1000) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, + "Failed to polling REG_APS_FSMCO[APFM_ONMAC] done!\n"); + return -ENODEV; + \end{lstlisting} +\end{frame} + +\begin{frame}[fragile]{\hdrs{The New Protocol}} + \begin{itemize} + \item New network protocols, filesystems, security modules, etc. + \item Software only improvmenets to the kernel. + \item No hardware required, can be tested in a VM. + \item Typocally done in net/, fs/, security/, etc. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{\hdrs{The New Driver}} + \begin{itemize} + \item Add support for a new hardware device. + \item Cononical example: I2C/SPI thermal sensors. (lm70.c) + \item Find the data sheet + \item Typocally use an existing driver as an example. + \item Requires hardware to test on. + \item Typocally done in drivers/. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{\hdrs{The New Board}} + \begin{itemize} + \item Simmilar new drivers but focuse on boot. + \item Typocally for embedded Linux. + \item May require bootloader changes. + \item Typocally done in arch/. + \end{itemize} +\end{frame} + +% Development +% - Kernel compiling +% - Booting the kernel +% - Kernel source tree +% - Sending patches + +\section{Development} + +\begin{frame}{\hdrs{Kernel compiling}} + Could be an entire talk on it's own... + + \begin{itemize} + \item \$ make menuconfig + \item \$ make -j32 + \item \$ make install + \begin{itemize} + \item invokes \$HOME/bin/installkernel + \end{itemize} + \item \$ make modules\_install + \end{itemize} + + Output files: + \begin{itemize} + \item vmlinux: Main build output, ELF file with debug symbols. + \item bzImage: Bootable kernel image (wraps vmlinux). + \item uImage, etc: Like bzImage for other architctures. + \end{itemize} + +\end{frame} + +\begin{frame}{\hdrs{Booting the kernel}} + How to test? + + \begin{enumerate} + \item Compile, reboot, compile, reboot.. + \begin{itemize} + \item Least efficient, but often needed for debugging. + \end{itemize} + \item Run the kenrel it in a VM. + \begin{itemize} + \item Great for experimenting. + \item Won't work for for driver. + \end{itemize} + \item Dynamic kernel module loading. + \begin{itemize} + \item Good for most driver work. + \item Easy to crash your PC. + \end{itemize} + \item Boot it on a dedicated machine. + \begin{itemize} + \item Generally used for embedded Linux. + \item Prevents crashing your workstation. + \end{itemize} + \end{enumerate} +\end{frame} + +\begin{frame}{\hdrs{Kernel source tree}} + \begin{itemize} + \item arch/: architecture specific code + \item drivers/: well... drivers + \item fs/: file systems + \item kernel/: core kernel code (process management, etc) + \item lib/: utility code, C library type stuff + \item mm/: memroy management + \item include/: shared include files + \end{itemize} +\end{frame} + +\begin{frame}{\hdrs{Sending patches}} + \url{https://www.kernel.org/doc/html/latest/process/submitting-patches.html} + \begin{itemize} + \item Linux uses mailing lists patches and code review. + \item Maintainers tend to use pull requests and merges, but general + contributors usually do not. + \item Different subsystem (netdev) have slightly different rules. + \item Patchwork is useful for tracking and reviewing patches: + \url{https://patchwork.kernel.org} + \end{itemize} +\end{frame} + +% Kernel modules +% - Hello, World +% - User Interfaces +% - printk / dmesg +% - /dev, proc, sysfs +% - syscalls, ioctls +% - Devices and Drivers + +\section{Kernel Modules} + +\begin{frame}[fragile]{\hdrs{Hello, World}} + \begin{lstlisting}[language=C,basicstyle=\scriptsize] +#include +#include +#include + +static int __init hello_init(void) +{ + pr_info("Hello SFVLUG.\n"); + return 0; +} + +static void __exit hello_exit(void) +{ + pr_info("Goodbye SFVLUG.\n"); +} + +module_init(hello_init); +module_exit(hello_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Andy Spencer "); +MODULE_DESCRIPTION("SFVLUG!"); + \end{lstlisting} +\end{frame} + +%\begin{frame}[fragile]{\hdrs{Makefile / Kconfig}} +% \begin{lstlisting}[Building it] +% \end{lstlisting} +%\end{frame} +% +%\begin{frame}{\hdrs{User Interfaces}} +%- printk / dmesg +%- /dev, proc, sysfs +%- syscalls, ioctls +%\end{frame} +% +%\begin{frame}{\hdrs{Devices and Drivers}} +%\end{frame} + +\end{document} -- 2.43.2