Enable loadable module support
可加载模块支持

Enable loadable module support
CONFIG_MODULES

打开可加载模块支持,可以通过"make modules_install"把内核模块安装在/lib/modules/中.
然后可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具进行各种模块操作.

Forced module loading
CONFIG_MODULE_FORCE_LOAD
    允许使用"modprobe --force"在不校验版本信息的情况下强制加载模块,这绝对是个坏主意!建议关闭.
    
Module unloading
CONFIG_MODULE_UNLOAD
    允许卸载已经加载的模块

    Forced module unloading
    CONFIG_MODULE_FORCE_UNLOAD
        允许强制卸载正在使用中的模块(rmmod -f),即使可能会造成系统崩溃.这又是一个坏主意!建议关闭.

Module versioning support
CONFIG_MODVERSIONS
    允许使用为其他内核版本编译的模块,可会造成系统崩溃.这同样是个坏主意!建议关闭.
    
Source checksum for all modules
CONFIG_MODULE_SRCVERSION_ALL
    为模块添加"srcversion"字段,以帮助模块维护者准确的知道编译此模块所需要的源文件,
    从而可以校验源文件的变动.仅内核模块开发者需要它.
    
Module signature verification
CONFIG_MODULE_SIG
    在加载模块时检查模块签名,详情参见"Documentation/module-signing.txt"文件.
    [!!警告!!]开启此选项后,必须确保模块签名后没有被strip(包括rpmbuild之类的打包工具).

    Require modules to be validly signed
    CONFIG_MODULE_SIG_FORCE
        仅加载已签名并且密钥正确的模块,拒绝加载未签名或者签名密钥不正确的模块
        
    Automatically sign all modules
    CONFIG_MODULE_SIG_ALL
        在执行"make modules_install"安装模块的时候,自动进行签名.
        否则你必须手动使用 scripts/sign-file 工具进行签名.

Which hash algorithm should modules be signed with?
    选择对模块签名时使用的散列函数.建议使用强度最高的"SHA-512"算法.
    注意:所依赖的散列算法必须被静态编译进内核.对于"SHA-512"来说,
    就是CONFIG_CRYPTO_SHA512和CONFIG_CRYPTO_SHA512_SSSE3(如果你的CPU支持SSSE3指令集的话).

Compress modules on installation
安装时压缩模块

Trim unused exported kernel symbols
修剪未使用的导出内核符号