| # 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 "" |