Lines Matching full:module
5 This document describes how to build an out-of-tree kernel module.
19 external module should supply a makefile that hides most of the
20 complexity, so one only has to type "make" to build the module. This is
22 section `Creating a Kbuild File for an External Module`_.
39 NOTE: "modules_prepare" will not build Module.symvers even if
41 executed to make module versioning work.
46 The command to build an external module is::
50 The kbuild system knows that an external module is being built
57 Then to install the module(s) just built, add the target
73 artifacts used for building an external module.
78 Informs kbuild that an external module is being built.
80 directory where the external module (kbuild file) is
86 When building an external module, only a subset of the "make"
91 The default will build the module(s) located in the current
104 Install the external module(s). The default location is
107 `Module Installation`_).
114 Remove all generated files in the module directory only.
122 It is possible to build single files that are part of a module.
123 This works equally well for the kernel, a module, and even for
126 Example (The module foo.ko, consist of bar.o and baz.o)::
134 Creating a Kbuild File for an External Module
137 In the last section we saw the command to build a module for the
138 running kernel. The module is not actually built, however, because a
140 the module(s) being built, along with the list of requisite source
146 and, after linking, will result in the kernel module <module_name>.ko.
148 When the module is built from multiple sources, an additional line is
157 module 8123.ko, which is built from the following files::
166 An external module always includes a wrapper makefile that
167 supports building the module using "make" with no arguments.
243 module, then the file is placed in the same directory as the
261 #include <linux/module.h>
300 To build the module complex.ko, we then need the following
335 Module Installation
376 Module Versioning
379 Module versioning is enabled by the CONFIG_MODVERSIONS tag, and is used
381 for an exported symbol is created. When a module is loaded/used, the
383 the module; if they are not equal, the kernel refuses to load the
384 module.
386 Module.symvers contains a list of all exported symbols from a kernel
392 During a kernel build, a file named Module.symvers will be
393 generated. Module.symvers contains all exported symbols from
397 The syntax of the Module.symvers file is::
399 <CRC> <Symbol> <Module> <Export Type> <Namespace>
409 Module.symvers serves two purposes:
425 CRC stored in the __versions section of the importing module. This
437 When building an external module, the build system needs access
440 the symbols by reading Module.symvers from the kernel source
441 tree. During the MODPOST step, a new Module.symvers file will be
442 written containing all exported symbols from that external module.
444 Symbols From Another External Module
447 Sometimes, an external module uses exported symbols from
448 another external module. Kbuild needs to have full knowledge of
475 full knowledge of symbols from either module.
492 decide if a specific feature is included in the module. In