Loading Documentation/kbuild/modules.txt +23 −23 Original line number Original line Diff line number Diff line Loading @@ -24,7 +24,7 @@ In this document you will find information about: --- 6.1 INSTALL_MOD_PATH --- 6.1 INSTALL_MOD_PATH --- 6.2 INSTALL_MOD_DIR --- 6.2 INSTALL_MOD_DIR === 7. Module versioning & Module.symvers === 7. Module versioning & Module.symvers --- 7.1 Symbols fron the kernel (vmlinux + modules) --- 7.1 Symbols from the kernel (vmlinux + modules) --- 7.2 Symbols and external modules --- 7.2 Symbols and external modules --- 7.3 Symbols from another external module --- 7.3 Symbols from another external module === 8. Tips & Tricks === 8. Tips & Tricks Loading Loading @@ -63,14 +63,15 @@ when building an external module. For the running kernel use: For the running kernel use: make -C /lib/modules/`uname -r`/build M=`pwd` make -C /lib/modules/`uname -r`/build M=`pwd` For the above command to succeed the kernel must have been built with For the above command to succeed, the kernel must have been modules enabled. built with modules enabled. To install the modules that were just built: To install the modules that were just built: make -C <path-to-kernel> M=`pwd` modules_install make -C <path-to-kernel> M=`pwd` modules_install More complex examples later, the above should get you going. More complex examples will be shown later, the above should be enough to get you started. --- 2.2 Available targets --- 2.2 Available targets Loading @@ -89,13 +90,13 @@ when building an external module. Same functionality as if no target was specified. Same functionality as if no target was specified. See description above. See description above. make -C $KDIR M=$PWD modules_install make -C $KDIR M=`pwd` modules_install Install the external module(s). Install the external module(s). Installation default is in /lib/modules/<kernel-version>/extra, Installation default is in /lib/modules/<kernel-version>/extra, but may be prefixed with INSTALL_MOD_PATH - see separate but may be prefixed with INSTALL_MOD_PATH - see separate chapter. chapter. make -C $KDIR M=$PWD clean make -C $KDIR M=`pwd` clean Remove all generated files for the module - the kernel Remove all generated files for the module - the kernel source directory is not modified. source directory is not modified. Loading Loading @@ -129,17 +130,16 @@ when building an external module. To make sure the kernel contains the information required to To make sure the kernel contains the information required to build external modules the target 'modules_prepare' must be used. build external modules the target 'modules_prepare' must be used. 'module_prepare' solely exists as a simple way to prepare 'module_prepare' exists solely as a simple way to prepare a kernel for building external modules. a kernel source tree for building external modules. Note: modules_prepare will not build Module.symvers even if Note: modules_prepare will not build Module.symvers even if CONFIG_MODULEVERSIONING is set. CONFIG_MODULEVERSIONING is set. Therefore a full kernel build Therefore a full kernel build needs to be executed to make needs to be executed to make module versioning work. module versioning work. --- 2.5 Building separate files for a module --- 2.5 Building separate files for a module It is possible to build single files which are part of a module. It is possible to build single files which are part of a module. This works equal for the kernel, a module and even for external This works equally well for the kernel, a module and even for modules. external modules. Examples (module foo.ko, consist of bar.o, baz.o): Examples (module foo.ko, consist of bar.o, baz.o): make -C $KDIR M=`pwd` bar.lst make -C $KDIR M=`pwd` bar.lst make -C $KDIR M=`pwd` bar.o make -C $KDIR M=`pwd` bar.o Loading Loading @@ -177,7 +177,7 @@ Then, to install the module use the following command: M=`pwd` \ M=`pwd` \ modules_install modules_install If one looks closely you will see that this is the same commands as If you look closely you will see that this is the same command as listed before - with the directories spelled out. listed before - with the directories spelled out. The above are rather long commands, and the following chapter The above are rather long commands, and the following chapter Loading Loading @@ -462,12 +462,12 @@ Module.symvers contains a list of all exported symbols from a kernel build. Sample: Sample: 0x2d036834 scsi_remove_host drivers/scsi/scsi_mod 0x2d036834 scsi_remove_host drivers/scsi/scsi_mod For a kernel build without CONFIG_MODVERSIONING enabled, the crc For a kernel build without CONFIG_MODVERSIONS enabled, the crc would read: 0x00000000 would read: 0x00000000 Module.symvers serves two purposes: Module.symvers serves two purposes: 1) It lists all exported symbols both from vmlinux and all modules 1) It lists all exported symbols both from vmlinux and all modules 2) It lists the CRC if CONFIG_MODVERSION is enabled 2) It lists the CRC if CONFIG_MODVERSIONS is enabled --- 7.2 Symbols and external modules --- 7.2 Symbols and external modules Loading Loading
Documentation/kbuild/modules.txt +23 −23 Original line number Original line Diff line number Diff line Loading @@ -24,7 +24,7 @@ In this document you will find information about: --- 6.1 INSTALL_MOD_PATH --- 6.1 INSTALL_MOD_PATH --- 6.2 INSTALL_MOD_DIR --- 6.2 INSTALL_MOD_DIR === 7. Module versioning & Module.symvers === 7. Module versioning & Module.symvers --- 7.1 Symbols fron the kernel (vmlinux + modules) --- 7.1 Symbols from the kernel (vmlinux + modules) --- 7.2 Symbols and external modules --- 7.2 Symbols and external modules --- 7.3 Symbols from another external module --- 7.3 Symbols from another external module === 8. Tips & Tricks === 8. Tips & Tricks Loading Loading @@ -63,14 +63,15 @@ when building an external module. For the running kernel use: For the running kernel use: make -C /lib/modules/`uname -r`/build M=`pwd` make -C /lib/modules/`uname -r`/build M=`pwd` For the above command to succeed the kernel must have been built with For the above command to succeed, the kernel must have been modules enabled. built with modules enabled. To install the modules that were just built: To install the modules that were just built: make -C <path-to-kernel> M=`pwd` modules_install make -C <path-to-kernel> M=`pwd` modules_install More complex examples later, the above should get you going. More complex examples will be shown later, the above should be enough to get you started. --- 2.2 Available targets --- 2.2 Available targets Loading @@ -89,13 +90,13 @@ when building an external module. Same functionality as if no target was specified. Same functionality as if no target was specified. See description above. See description above. make -C $KDIR M=$PWD modules_install make -C $KDIR M=`pwd` modules_install Install the external module(s). Install the external module(s). Installation default is in /lib/modules/<kernel-version>/extra, Installation default is in /lib/modules/<kernel-version>/extra, but may be prefixed with INSTALL_MOD_PATH - see separate but may be prefixed with INSTALL_MOD_PATH - see separate chapter. chapter. make -C $KDIR M=$PWD clean make -C $KDIR M=`pwd` clean Remove all generated files for the module - the kernel Remove all generated files for the module - the kernel source directory is not modified. source directory is not modified. Loading Loading @@ -129,17 +130,16 @@ when building an external module. To make sure the kernel contains the information required to To make sure the kernel contains the information required to build external modules the target 'modules_prepare' must be used. build external modules the target 'modules_prepare' must be used. 'module_prepare' solely exists as a simple way to prepare 'module_prepare' exists solely as a simple way to prepare a kernel for building external modules. a kernel source tree for building external modules. Note: modules_prepare will not build Module.symvers even if Note: modules_prepare will not build Module.symvers even if CONFIG_MODULEVERSIONING is set. CONFIG_MODULEVERSIONING is set. Therefore a full kernel build Therefore a full kernel build needs to be executed to make needs to be executed to make module versioning work. module versioning work. --- 2.5 Building separate files for a module --- 2.5 Building separate files for a module It is possible to build single files which are part of a module. It is possible to build single files which are part of a module. This works equal for the kernel, a module and even for external This works equally well for the kernel, a module and even for modules. external modules. Examples (module foo.ko, consist of bar.o, baz.o): Examples (module foo.ko, consist of bar.o, baz.o): make -C $KDIR M=`pwd` bar.lst make -C $KDIR M=`pwd` bar.lst make -C $KDIR M=`pwd` bar.o make -C $KDIR M=`pwd` bar.o Loading Loading @@ -177,7 +177,7 @@ Then, to install the module use the following command: M=`pwd` \ M=`pwd` \ modules_install modules_install If one looks closely you will see that this is the same commands as If you look closely you will see that this is the same command as listed before - with the directories spelled out. listed before - with the directories spelled out. The above are rather long commands, and the following chapter The above are rather long commands, and the following chapter Loading Loading @@ -462,12 +462,12 @@ Module.symvers contains a list of all exported symbols from a kernel build. Sample: Sample: 0x2d036834 scsi_remove_host drivers/scsi/scsi_mod 0x2d036834 scsi_remove_host drivers/scsi/scsi_mod For a kernel build without CONFIG_MODVERSIONING enabled, the crc For a kernel build without CONFIG_MODVERSIONS enabled, the crc would read: 0x00000000 would read: 0x00000000 Module.symvers serves two purposes: Module.symvers serves two purposes: 1) It lists all exported symbols both from vmlinux and all modules 1) It lists all exported symbols both from vmlinux and all modules 2) It lists the CRC if CONFIG_MODVERSION is enabled 2) It lists the CRC if CONFIG_MODVERSIONS is enabled --- 7.2 Symbols and external modules --- 7.2 Symbols and external modules Loading