aa0e3dc4e156bfc871b2734a2ef8c09576eadcf7
[cascardo/kernel/old_slides/.git] / 01.hello / 01.hello.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE slides SYSTEM "/usr/share/xml/docbook/custom/slides/3.3.1/schema/dtd/slides-full.dtd">
3
4 <slides>
5
6 <slidesinfo>
7 <title>Hello World Module</title>
8 <author><firstname>Thadeu</firstname><surname>Cascardo</surname></author>
9 </slidesinfo>
10
11 <foil>
12 <title>Introduction</title>
13 <para>
14 Let's take a look at how linux modules work.
15 </para>
16 </foil>
17
18 <foil>
19 <title>Requirements</title>
20 <para>
21 We need the tools to build a module and a building linux tree. Running the built
22 linux kernel is highly recommended so we can test our modules.
23 </para>
24 <para>
25 The tools include GNU make, GCC and GNU binutils. Linux build is highly
26 dependent on the GNU toolchain, since the beginning.
27 </para>
28 </foil>
29
30 <foil>
31 <title>Hands-on</title>
32 <para>
33 We have prepared sample code to build in the samples/ directory. Try them.
34 </para>
35 </foil>
36
37 <foil>
38 <title>Building</title>
39 <para>
40 Building an out-of-tree linux module is very simple:
41 </para>
42 <screen>
43 $ make -C /lib/modules/`uname -r`/build M=$PWD modules
44 </screen>
45 </foil>
46
47 <foil>
48 <title>Module Tools</title>
49 <itemizedlist>
50 <listitem>
51 insmod
52 </listitem>
53 <listitem>
54 rmmod
55 </listitem>
56 <listitem>
57 modprobe
58 </listitem>
59 <listitem>
60 modinfo
61 </listitem>
62 <listitem>
63 depmod
64 </listitem>
65 </itemizedlist>
66 </foil>
67
68 <foil>
69 <title>Module Description Definitions</title>
70 <itemizedlist>
71 <listitem>
72 MODULE\_AUTHOR
73 </listitem>
74 <listitem>
75 MODULE\_DESCRIPTION
76 </listitem>
77 <listitem>
78 MODULE\_VERSION
79 </listitem>
80 <listitem>
81 MODULE\_LICENSE
82 </listitem>
83 <listitem>
84 MODULE\_ALIAS
85 </listitem>
86 </itemizedlist>
87 </foil>
88
89 </slides>