| # SPDX-License-Identifier: GPL-2.0 | 
 | # | 
 | # Configuration for initramfs | 
 | # | 
 |  | 
 | config INITRAMFS_SOURCE | 
 | 	string "Initramfs source file(s)" | 
 | 	default "" | 
 | 	help | 
 | 	  This can be either a single cpio archive with a .cpio suffix or a | 
 | 	  space-separated list of directories and files for building the | 
 | 	  initramfs image.  A cpio archive should contain a filesystem archive | 
 | 	  to be used as an initramfs image.  Directories should contain a | 
 | 	  filesystem layout to be included in the initramfs image.  Files | 
 | 	  should contain entries according to the format described by the | 
 | 	  "usr/gen_init_cpio" program in the kernel tree. | 
 |  | 
 | 	  When multiple directories and files are specified then the | 
 | 	  initramfs image will be the aggregate of all of them. | 
 |  | 
 | 	  See <file:Documentation/driver-api/early-userspace/early_userspace_support.rst> for more details. | 
 |  | 
 | 	  If you are not sure, leave it blank. | 
 |  | 
 | config INITRAMFS_FORCE | 
 | 	bool "Ignore the initramfs passed by the bootloader" | 
 | 	depends on CMDLINE_EXTEND || CMDLINE_FORCE | 
 | 	help | 
 | 	  This option causes the kernel to ignore the initramfs image | 
 | 	  (or initrd image) passed to it by the bootloader. This is | 
 | 	  analogous to CMDLINE_FORCE, which is found on some architectures, | 
 | 	  and is useful if you cannot or don't want to change the image | 
 | 	  your bootloader passes to the kernel. | 
 |  | 
 | config INITRAMFS_ROOT_UID | 
 | 	int "User ID to map to 0 (user root)" | 
 | 	depends on INITRAMFS_SOURCE!="" | 
 | 	default "0" | 
 | 	help | 
 | 	  If INITRAMFS_SOURCE points to a directory, files owned by this UID | 
 | 	  (-1 = current user) will be owned by root in the resulting image. | 
 |  | 
 | 	  If you are not sure, leave it set to "0". | 
 |  | 
 | config INITRAMFS_ROOT_GID | 
 | 	int "Group ID to map to 0 (group root)" | 
 | 	depends on INITRAMFS_SOURCE!="" | 
 | 	default "0" | 
 | 	help | 
 | 	  If INITRAMFS_SOURCE points to a directory, files owned by this GID | 
 | 	  (-1 = current group) will be owned by root in the resulting image. | 
 |  | 
 | 	  If you are not sure, leave it set to "0". | 
 |  | 
 | config RD_GZIP | 
 | 	bool "Support initial ramdisk/ramfs compressed using gzip" | 
 | 	depends on BLK_DEV_INITRD | 
 | 	default y | 
 | 	select DECOMPRESS_GZIP | 
 | 	help | 
 | 	  Support loading of a gzip encoded initial ramdisk or cpio buffer. | 
 | 	  If unsure, say Y. | 
 |  | 
 | config RD_BZIP2 | 
 | 	bool "Support initial ramdisk/ramfs compressed using bzip2" | 
 | 	default y | 
 | 	depends on BLK_DEV_INITRD | 
 | 	select DECOMPRESS_BZIP2 | 
 | 	help | 
 | 	  Support loading of a bzip2 encoded initial ramdisk or cpio buffer | 
 | 	  If unsure, say N. | 
 |  | 
 | config RD_LZMA | 
 | 	bool "Support initial ramdisk/ramfs compressed using LZMA" | 
 | 	default y | 
 | 	depends on BLK_DEV_INITRD | 
 | 	select DECOMPRESS_LZMA | 
 | 	help | 
 | 	  Support loading of a LZMA encoded initial ramdisk or cpio buffer | 
 | 	  If unsure, say N. | 
 |  | 
 | config RD_XZ | 
 | 	bool "Support initial ramdisk/ramfs compressed using XZ" | 
 | 	depends on BLK_DEV_INITRD | 
 | 	default y | 
 | 	select DECOMPRESS_XZ | 
 | 	help | 
 | 	  Support loading of a XZ encoded initial ramdisk or cpio buffer. | 
 | 	  If unsure, say N. | 
 |  | 
 | config RD_LZO | 
 | 	bool "Support initial ramdisk/ramfs compressed using LZO" | 
 | 	default y | 
 | 	depends on BLK_DEV_INITRD | 
 | 	select DECOMPRESS_LZO | 
 | 	help | 
 | 	  Support loading of a LZO encoded initial ramdisk or cpio buffer | 
 | 	  If unsure, say N. | 
 |  | 
 | config RD_LZ4 | 
 | 	bool "Support initial ramdisk/ramfs compressed using LZ4" | 
 | 	default y | 
 | 	depends on BLK_DEV_INITRD | 
 | 	select DECOMPRESS_LZ4 | 
 | 	help | 
 | 	  Support loading of a LZ4 encoded initial ramdisk or cpio buffer | 
 | 	  If unsure, say N. | 
 |  | 
 | choice | 
 | 	prompt "Built-in initramfs compression mode" | 
 | 	depends on INITRAMFS_SOURCE!="" | 
 | 	optional | 
 | 	help | 
 | 	  This option allows you to decide by which algorithm the builtin | 
 | 	  initramfs will be compressed.  Several compression algorithms are | 
 | 	  available, which differ in efficiency, compression and | 
 | 	  decompression speed.  Compression speed is only relevant | 
 | 	  when building a kernel.  Decompression speed is relevant at | 
 | 	  each boot. Also the memory usage during decompression may become | 
 | 	  relevant on memory constrained systems. This is usually based on the | 
 | 	  dictionary size of the algorithm with algorithms like XZ and LZMA | 
 | 	  featuring large dictionary sizes. | 
 |  | 
 | 	  High compression options are mostly useful for users who are | 
 | 	  low on RAM, since it reduces the memory consumption during | 
 | 	  boot. | 
 |  | 
 | 	  Keep in mind that your build system needs to provide the appropriate | 
 | 	  compression tool to compress the generated initram cpio file for | 
 | 	  embedding. | 
 |  | 
 | 	  If in doubt, select 'None' | 
 |  | 
 | config INITRAMFS_COMPRESSION_GZIP | 
 | 	bool "Gzip" | 
 | 	depends on RD_GZIP | 
 | 	help | 
 | 	  Use the old and well tested gzip compression algorithm. Gzip provides | 
 | 	  a good balance between compression ratio and decompression speed and | 
 | 	  has a reasonable compression speed. It is also more likely to be | 
 | 	  supported by your build system as the gzip tool is present by default | 
 | 	  on most distros. | 
 |  | 
 | config INITRAMFS_COMPRESSION_BZIP2 | 
 | 	bool "Bzip2" | 
 | 	depends on RD_BZIP2 | 
 | 	help | 
 | 	  It's compression ratio and speed is intermediate. Decompression speed | 
 | 	  is slowest among the choices. The initramfs size is about 10% smaller | 
 | 	  with bzip2, in comparison to gzip. Bzip2 uses a large amount of | 
 | 	  memory. For modern kernels you will need at least 8MB RAM or more for | 
 | 	  booting. | 
 |  | 
 | 	  If you choose this, keep in mind that you need to have the bzip2 tool | 
 | 	  available to be able to compress the initram. | 
 |  | 
 | config INITRAMFS_COMPRESSION_LZMA | 
 | 	bool "LZMA" | 
 | 	depends on RD_LZMA | 
 | 	help | 
 | 	  This algorithm's compression ratio is best but has a large dictionary | 
 | 	  size which might cause issues in memory constrained systems. | 
 | 	  Decompression speed is between the other choices. Compression is | 
 | 	  slowest. The initramfs size is about 33% smaller with LZMA in | 
 | 	  comparison to gzip. | 
 |  | 
 | 	  If you choose this, keep in mind that you may need to install the xz | 
 | 	  or lzma tools to be able to compress the initram. | 
 |  | 
 | config INITRAMFS_COMPRESSION_XZ | 
 | 	bool "XZ" | 
 | 	depends on RD_XZ | 
 | 	help | 
 | 	  XZ uses the LZMA2 algorithm and has a large dictionary which may cause | 
 | 	  problems on memory constrained systems. The initramfs size is about | 
 | 	  30% smaller with XZ in comparison to gzip. Decompression speed is | 
 | 	  better than that of bzip2 but worse than gzip and LZO. Compression is | 
 | 	  slow. | 
 |  | 
 | 	  If you choose this, keep in mind that you may need to install the xz | 
 | 	  tool to be able to compress the initram. | 
 |  | 
 | config INITRAMFS_COMPRESSION_LZO | 
 | 	bool "LZO" | 
 | 	depends on RD_LZO | 
 | 	help | 
 | 	  It's compression ratio is the second poorest amongst the choices. The | 
 | 	  kernel size is about 10% bigger than gzip. Despite that, it's | 
 | 	  decompression speed is the second fastest and it's compression speed | 
 | 	  is quite fast too. | 
 |  | 
 | 	  If you choose this, keep in mind that you may need to install the lzop | 
 | 	  tool to be able to compress the initram. | 
 |  | 
 | config INITRAMFS_COMPRESSION_LZ4 | 
 | 	bool "LZ4" | 
 | 	depends on RD_LZ4 | 
 | 	help | 
 | 	  It's compression ratio is the poorest amongst the choices. The kernel | 
 | 	  size is about 15% bigger than gzip; however its decompression speed | 
 | 	  is the fastest. | 
 |  | 
 | 	  If you choose this, keep in mind that most distros don't provide lz4 | 
 | 	  by default which could cause a build failure. | 
 |  | 
 | config INITRAMFS_COMPRESSION_NONE | 
 | 	bool "None" | 
 | 	help | 
 | 	  Do not compress the built-in initramfs at all. This may sound wasteful | 
 | 	  in space, but, you should be aware that the built-in initramfs will be | 
 | 	  compressed at a later stage anyways along with the rest of the kernel, | 
 | 	  on those architectures that support this. However, not compressing the | 
 | 	  initramfs may lead to slightly higher memory consumption during a | 
 | 	  short time at boot, while both the cpio image and the unpacked | 
 | 	  filesystem image will be present in memory simultaneously | 
 |  | 
 | endchoice | 
 |  | 
 | config INITRAMFS_COMPRESSION | 
 | 	depends on INITRAMFS_SOURCE!="" | 
 | 	string | 
 | 	default ""      if INITRAMFS_COMPRESSION_NONE | 
 | 	default ".gz"   if INITRAMFS_COMPRESSION_GZIP | 
 | 	default ".bz2"  if INITRAMFS_COMPRESSION_BZIP2 | 
 | 	default ".lzma" if INITRAMFS_COMPRESSION_LZMA | 
 | 	default ".xz"   if INITRAMFS_COMPRESSION_XZ | 
 | 	default ".lzo"  if INITRAMFS_COMPRESSION_LZO | 
 | 	default ".lz4"  if INITRAMFS_COMPRESSION_LZ4 | 
 | 	default ".gz"   if RD_GZIP | 
 | 	default ".lz4"  if RD_LZ4 | 
 | 	default ".lzo"  if RD_LZO | 
 | 	default ".xz"   if RD_XZ | 
 | 	default ".lzma" if RD_LZMA | 
 | 	default ".bz2"  if RD_BZIP2 | 
 | 	default "" |