• Petr Pavlu's avatar
    module: Split modules_install compression and in-kernel decompression · c7ff693f
    Petr Pavlu authored
    The kernel configuration allows specifying a module compression mode. If
    one is selected then each module gets compressed during
    'make modules_install' and additionally one can also enable support for
    a respective direct in-kernel decompression support. This means that the
    decompression support cannot be enabled without the automatic compression.
    
    Some distributions, such as the (open)SUSE family, use a signer service for
    modules. A build runs on a worker machine but signing is done by a separate
    locked-down server that is in possession of the signing key. The build
    invokes 'make modules_install' to create a modules tree, collects
    information about the modules, asks the signer service for their signature,
    appends each signature to the respective module and compresses all modules.
    
    When using this arrangment, the 'make modules_install' step produces
    unsigned+uncompressed modules and the distribution's own build recipe takes
    care of signing and compression later.
    
    The signing support can be currently enabled without automatically signing
    modules during 'make modules_install'. However, the in-kernel decompression
    support can be selected only after first enabling automatic compression
    during this step.
    
    To allow only enabling the in-kernel decompression support without the
    automatic compression during 'make modules_install', separate the
    compression options similarly to the signing options, as follows:
    
    > Enable loadable module support
    [*] Module compression
          Module compression type (GZIP)  --->
    [*]   Automatically compress all modules
    [ ]   Support in-kernel module decompression
    
    * "Module compression" (MODULE_COMPRESS) is a new main switch for the
      compression/decompression support. It replaces MODULE_COMPRESS_NONE.
    * "Module compression type" (MODULE_COMPRESS_<type>) chooses the
      compression type, one of GZ, XZ, ZSTD.
    * "Automatically compress all modules" (MODULE_COMPRESS_ALL) is a new
      option to enable module compression during 'make modules_install'. It
      defaults to Y.
    * "Support in-kernel module decompression" (MODULE_DECOMPRESS) enables
      in-kernel decompression.
    Signed-off-by: default avatarPetr Pavlu <petr.pavlu@suse.com>
    Acked-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
    c7ff693f
Kconfig 14.8 KB