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/early-userspace/README> 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        depends on BLK_DEV_INITRD
  58        default y
  59        select DECOMPRESS_GZIP
  60        help
  61          Support loading of a gzip encoded initial ramdisk or cpio buffer.
  62          If unsure, say Y.
  63
  64config RD_BZIP2
  65        bool "Support initial ramdisk/ramfs compressed using bzip2"
  66        default y
  67        depends on BLK_DEV_INITRD
  68        select DECOMPRESS_BZIP2
  69        help
  70          Support loading of a bzip2 encoded initial ramdisk or cpio buffer
  71          If unsure, say N.
  72
  73config RD_LZMA
  74        bool "Support initial ramdisk/ramfs compressed using LZMA"
  75        default y
  76        depends on BLK_DEV_INITRD
  77        select DECOMPRESS_LZMA
  78        help
  79          Support loading of a LZMA encoded initial ramdisk or cpio buffer
  80          If unsure, say N.
  81
  82config RD_XZ
  83        bool "Support initial ramdisk/ramfs compressed using XZ"
  84        depends on BLK_DEV_INITRD
  85        default y
  86        select DECOMPRESS_XZ
  87        help
  88          Support loading of a XZ encoded initial ramdisk or cpio buffer.
  89          If unsure, say N.
  90
  91config RD_LZO
  92        bool "Support initial ramdisk/ramfs compressed using LZO"
  93        default y
  94        depends on BLK_DEV_INITRD
  95        select DECOMPRESS_LZO
  96        help
  97          Support loading of a LZO encoded initial ramdisk or cpio buffer
  98          If unsure, say N.
  99
 100config RD_LZ4
 101        bool "Support initial ramdisk/ramfs compressed using LZ4"
 102        default y
 103        depends on BLK_DEV_INITRD
 104        select DECOMPRESS_LZ4
 105        help
 106          Support loading of a LZ4 encoded initial ramdisk or cpio buffer
 107          If unsure, say N.
 108
 109choice
 110        prompt "Built-in initramfs compression mode"
 111        depends on INITRAMFS_SOURCE!=""
 112        optional
 113        help
 114          This option allows you to decide by which algorithm the builtin
 115          initramfs will be compressed.  Several compression algorithms are
 116          available, which differ in efficiency, compression and
 117          decompression speed.  Compression speed is only relevant
 118          when building a kernel.  Decompression speed is relevant at
 119          each boot. Also the memory usage during decompression may become
 120          relevant on memory constrained systems. This is usually based on the
 121          dictionary size of the algorithm with algorithms like XZ and LZMA
 122          featuring large dictionary sizes.
 123
 124          High compression options are mostly useful for users who are
 125          low on RAM, since it reduces the memory consumption during
 126          boot.
 127
 128          Keep in mind that your build system needs to provide the appropriate
 129          compression tool to compress the generated initram cpio file for
 130          embedding.
 131
 132          If in doubt, select 'None'
 133
 134config INITRAMFS_COMPRESSION_NONE
 135        bool "None"
 136        help
 137          Do not compress the built-in initramfs at all. This may sound wasteful
 138          in space, but, you should be aware that the built-in initramfs will be
 139          compressed at a later stage anyways along with the rest of the kernel,
 140          on those architectures that support this. However, not compressing the
 141          initramfs may lead to slightly higher memory consumption during a
 142          short time at boot, while both the cpio image and the unpacked
 143          filesystem image will be present in memory simultaneously
 144
 145config INITRAMFS_COMPRESSION_GZIP
 146        bool "Gzip"
 147        depends on RD_GZIP
 148        help
 149          Use the old and well tested gzip compression algorithm. Gzip provides
 150          a good balance between compression ratio and decompression speed and
 151          has a reasonable compression speed. It is also more likely to be
 152          supported by your build system as the gzip tool is present by default
 153          on most distros.
 154
 155config INITRAMFS_COMPRESSION_BZIP2
 156        bool "Bzip2"
 157        depends on RD_BZIP2
 158        help
 159          It's compression ratio and speed is intermediate. Decompression speed
 160          is slowest among the choices. The initramfs size is about 10% smaller
 161          with bzip2, in comparison to gzip. Bzip2 uses a large amount of
 162          memory. For modern kernels you will need at least 8MB RAM or more for
 163          booting.
 164
 165          If you choose this, keep in mind that you need to have the bzip2 tool
 166          available to be able to compress the initram.
 167
 168config INITRAMFS_COMPRESSION_LZMA
 169        bool "LZMA"
 170        depends on RD_LZMA
 171        help
 172          This algorithm's compression ratio is best but has a large dictionary
 173          size which might cause issues in memory constrained systems.
 174          Decompression speed is between the other choices. Compression is
 175          slowest. The initramfs size is about 33% smaller with LZMA in
 176          comparison to gzip.
 177
 178          If you choose this, keep in mind that you may need to install the xz
 179          or lzma tools to be able to compress the initram.
 180
 181config INITRAMFS_COMPRESSION_XZ
 182        bool "XZ"
 183        depends on RD_XZ
 184        help
 185          XZ uses the LZMA2 algorithm and has a large dictionary which may cause
 186          problems on memory constrained systems. The initramfs size is about
 187          30% smaller with XZ in comparison to gzip. Decompression speed is
 188          better than that of bzip2 but worse than gzip and LZO. Compression is
 189          slow.
 190
 191          If you choose this, keep in mind that you may need to install the xz
 192          tool to be able to compress the initram.
 193
 194config INITRAMFS_COMPRESSION_LZO
 195        bool "LZO"
 196        depends on RD_LZO
 197        help
 198          It's compression ratio is the second poorest amongst the choices. The
 199          kernel size is about 10% bigger than gzip. Despite that, it's
 200          decompression speed is the second fastest and it's compression speed
 201          is quite fast too.
 202
 203          If you choose this, keep in mind that you may need to install the lzop
 204          tool to be able to compress the initram.
 205
 206config INITRAMFS_COMPRESSION_LZ4
 207        bool "LZ4"
 208        depends on RD_LZ4
 209        help
 210          It's compression ratio is the poorest amongst the choices. The kernel
 211          size is about 15% bigger than gzip; however its decompression speed
 212          is the fastest.
 213
 214          If you choose this, keep in mind that most distros don't provide lz4
 215          by default which could cause a build failure.
 216
 217endchoice
 218
 219config INITRAMFS_COMPRESSION
 220        depends on INITRAMFS_SOURCE!=""
 221        string
 222        default ""      if INITRAMFS_COMPRESSION_NONE
 223        default ".gz"   if INITRAMFS_COMPRESSION_GZIP
 224        default ".bz2"  if INITRAMFS_COMPRESSION_BZIP2
 225        default ".lzma" if INITRAMFS_COMPRESSION_LZMA
 226        default ".xz"   if INITRAMFS_COMPRESSION_XZ
 227        default ".lzo"  if INITRAMFS_COMPRESSION_LZO
 228        default ".lz4"  if INITRAMFS_COMPRESSION_LZ4
 229        default ".gz"   if RD_GZIP
 230        default ".lz4"  if RD_LZ4
 231        default ".lzo"  if RD_LZO
 232        default ".xz"   if RD_XZ
 233        default ".lzma" if RD_LZMA
 234        default ".bz2"  if RD_BZIP2
 235        default ""
 236