linux/usr/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0
   2#
   3# Configuration for initramfs
   4#
   5
   6config INITRAMFS_SOURCE
   7        string "Initramfs source file(s)"
   8        default ""
   9        help
  10          This can be either a single cpio archive with a .cpio suffix or a
  11          space-separated list of directories and files for building the
  12          initramfs image.  A cpio archive should contain a filesystem archive
  13          to be used as an initramfs image.  Directories should contain a
  14          filesystem layout to be included in the initramfs image.  Files
  15          should contain entries according to the format described by the
  16          "usr/gen_init_cpio" program in the kernel tree.
  17
  18          When multiple directories and files are specified then the
  19          initramfs image will be the aggregate of all of them.
  20
  21          See <file:Documentation/driver-api/early-userspace/early_userspace_support.rst> for more details.
  22
  23          If you are not sure, leave it blank.
  24
  25config INITRAMFS_FORCE
  26        bool "Ignore the initramfs passed by the bootloader"
  27        depends on CMDLINE_EXTEND || CMDLINE_FORCE
  28        help
  29          This option causes the kernel to ignore the initramfs image
  30          (or initrd image) passed to it by the bootloader. This is
  31          analogous to CMDLINE_FORCE, which is found on some architectures,
  32          and is useful if you cannot or don't want to change the image
  33          your bootloader passes to the kernel.
  34
  35config INITRAMFS_ROOT_UID
  36        int "User ID to map to 0 (user root)"
  37        depends on INITRAMFS_SOURCE!=""
  38        default "0"
  39        help
  40          If INITRAMFS_SOURCE points to a directory, files owned by this UID
  41          (-1 = current user) will be owned by root in the resulting image.
  42
  43          If you are not sure, leave it set to "0".
  44
  45config INITRAMFS_ROOT_GID
  46        int "Group ID to map to 0 (group root)"
  47        depends on INITRAMFS_SOURCE!=""
  48        default "0"
  49        help
  50          If INITRAMFS_SOURCE points to a directory, files owned by this GID
  51          (-1 = current group) will be owned by root in the resulting image.
  52
  53          If you are not sure, leave it set to "0".
  54
  55config RD_GZIP
  56        bool "Support initial ramdisk/ramfs compressed using gzip"
  57        default y
  58        select DECOMPRESS_GZIP
  59        help
  60          Support loading of a gzip encoded initial ramdisk or cpio buffer.
  61          If unsure, say Y.
  62
  63config RD_BZIP2
  64        bool "Support initial ramdisk/ramfs compressed using bzip2"
  65        default y
  66        select DECOMPRESS_BZIP2
  67        help
  68          Support loading of a bzip2 encoded initial ramdisk or cpio buffer
  69          If unsure, say N.
  70
  71config RD_LZMA
  72        bool "Support initial ramdisk/ramfs compressed using LZMA"
  73        default y
  74        select DECOMPRESS_LZMA
  75        help
  76          Support loading of a LZMA encoded initial ramdisk or cpio buffer
  77          If unsure, say N.
  78
  79config RD_XZ
  80        bool "Support initial ramdisk/ramfs compressed using XZ"
  81        default y
  82        select DECOMPRESS_XZ
  83        help
  84          Support loading of a XZ encoded initial ramdisk or cpio buffer.
  85          If unsure, say N.
  86
  87config RD_LZO
  88        bool "Support initial ramdisk/ramfs compressed using LZO"
  89        default y
  90        select DECOMPRESS_LZO
  91        help
  92          Support loading of a LZO encoded initial ramdisk or cpio buffer
  93          If unsure, say N.
  94
  95config RD_LZ4
  96        bool "Support initial ramdisk/ramfs compressed using LZ4"
  97        default y
  98        select DECOMPRESS_LZ4
  99        help
 100          Support loading of a LZ4 encoded initial ramdisk or cpio buffer
 101          If unsure, say N.
 102
 103config RD_ZSTD
 104        bool "Support initial ramdisk/ramfs compressed using ZSTD"
 105        default y
 106        select DECOMPRESS_ZSTD
 107        help
 108          Support loading of a ZSTD encoded initial ramdisk or cpio buffer.
 109          If unsure, say N.
 110
 111choice
 112        prompt "Built-in initramfs compression mode"
 113        depends on INITRAMFS_SOURCE != ""
 114        help
 115          This option allows you to decide by which algorithm the builtin
 116          initramfs will be compressed.  Several compression algorithms are
 117          available, which differ in efficiency, compression and
 118          decompression speed.  Compression speed is only relevant
 119          when building a kernel.  Decompression speed is relevant at
 120          each boot. Also the memory usage during decompression may become
 121          relevant on memory constrained systems. This is usually based on the
 122          dictionary size of the algorithm with algorithms like XZ and LZMA
 123          featuring large dictionary sizes.
 124
 125          High compression options are mostly useful for users who are
 126          low on RAM, since it reduces the memory consumption during
 127          boot.
 128
 129          Keep in mind that your build system needs to provide the appropriate
 130          compression tool to compress the generated initram cpio file for
 131          embedding.
 132
 133          If in doubt, select 'None'
 134
 135config INITRAMFS_COMPRESSION_GZIP
 136        bool "Gzip"
 137        depends on RD_GZIP
 138        help
 139          Use the old and well tested gzip compression algorithm. Gzip provides
 140          a good balance between compression ratio and decompression speed and
 141          has a reasonable compression speed. It is also more likely to be
 142          supported by your build system as the gzip tool is present by default
 143          on most distros.
 144
 145config INITRAMFS_COMPRESSION_BZIP2
 146        bool "Bzip2"
 147        depends on RD_BZIP2
 148        help
 149          It's compression ratio and speed is intermediate. Decompression speed
 150          is slowest among the choices. The initramfs size is about 10% smaller
 151          with bzip2, in comparison to gzip. Bzip2 uses a large amount of
 152          memory. For modern kernels you will need at least 8MB RAM or more for
 153          booting.
 154
 155          If you choose this, keep in mind that you need to have the bzip2 tool
 156          available to be able to compress the initram.
 157
 158config INITRAMFS_COMPRESSION_LZMA
 159        bool "LZMA"
 160        depends on RD_LZMA
 161        help
 162          This algorithm's compression ratio is best but has a large dictionary
 163          size which might cause issues in memory constrained systems.
 164          Decompression speed is between the other choices. Compression is
 165          slowest. The initramfs size is about 33% smaller with LZMA in
 166          comparison to gzip.
 167
 168          If you choose this, keep in mind that you may need to install the xz
 169          or lzma tools to be able to compress the initram.
 170
 171config INITRAMFS_COMPRESSION_XZ
 172        bool "XZ"
 173        depends on RD_XZ
 174        help
 175          XZ uses the LZMA2 algorithm and has a large dictionary which may cause
 176          problems on memory constrained systems. The initramfs size is about
 177          30% smaller with XZ in comparison to gzip. Decompression speed is
 178          better than that of bzip2 but worse than gzip and LZO. Compression is
 179          slow.
 180
 181          If you choose this, keep in mind that you may need to install the xz
 182          tool to be able to compress the initram.
 183
 184config INITRAMFS_COMPRESSION_LZO
 185        bool "LZO"
 186        depends on RD_LZO
 187        help
 188          It's compression ratio is the second poorest amongst the choices. The
 189          kernel size is about 10% bigger than gzip. Despite that, it's
 190          decompression speed is the second fastest and it's compression speed
 191          is quite fast too.
 192
 193          If you choose this, keep in mind that you may need to install the lzop
 194          tool to be able to compress the initram.
 195
 196config INITRAMFS_COMPRESSION_LZ4
 197        bool "LZ4"
 198        depends on RD_LZ4
 199        help
 200          It's compression ratio is the poorest amongst the choices. The kernel
 201          size is about 15% bigger than gzip; however its decompression speed
 202          is the fastest.
 203
 204          If you choose this, keep in mind that most distros don't provide lz4
 205          by default which could cause a build failure.
 206
 207config INITRAMFS_COMPRESSION_ZSTD
 208        bool "ZSTD"
 209        depends on RD_ZSTD
 210        help
 211          ZSTD is a compression algorithm targeting intermediate compression
 212          with fast decompression speed. It will compress better than GZIP and
 213          decompress around the same speed as LZO, but slower than LZ4.
 214
 215          If you choose this, keep in mind that you may need to install the zstd
 216          tool to be able to compress the initram.
 217
 218config INITRAMFS_COMPRESSION_NONE
 219        bool "None"
 220        help
 221          Do not compress the built-in initramfs at all. This may sound wasteful
 222          in space, but, you should be aware that the built-in initramfs will be
 223          compressed at a later stage anyways along with the rest of the kernel,
 224          on those architectures that support this. However, not compressing the
 225          initramfs may lead to slightly higher memory consumption during a
 226          short time at boot, while both the cpio image and the unpacked
 227          filesystem image will be present in memory simultaneously
 228
 229endchoice
 230