# SPDX-License-Identifier: GPL-2.0
#
# Configuration for initramfs
#
config [31mCONFIG_INITRAMFS_SOURCE[0m
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. [31mCONFIG_A[0m 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 [31mCONFIG_INITRAMFS_FORCE[0m
bool "Ignore the initramfs passed by the bootloader"
depends on [31mCONFIG_CMDLINE_EXTEND[0m || [31mCONFIG_CMDLINE_FORCE[0m
help
This option causes the kernel to ignore the initramfs image
(or initrd image) passed to it by the bootloader. This is
analogous to [31mCONFIG_CMDLINE_FORCE[0m, 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 [31mCONFIG_INITRAMFS_ROOT_UID[0m
int "User ID to map to 0 (user root)"
depends on [31mCONFIG_INITRAMFS_SOURCE[0m!=""
default "0"
help
If [31mCONFIG_INITRAMFS_SOURCE[0m 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 [31mCONFIG_INITRAMFS_ROOT_GID[0m
int "Group ID to map to 0 (group root)"
depends on [31mCONFIG_INITRAMFS_SOURCE[0m!=""
default "0"
help
If [31mCONFIG_INITRAMFS_SOURCE[0m 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 [31mCONFIG_RD_GZIP[0m
bool "Support initial ramdisk/ramfs compressed using gzip"
depends on [31mCONFIG_BLK_DEV_INITRD[0m
default y
select [31mCONFIG_DECOMPRESS_GZIP[0m
help
Support loading of a gzip encoded initial ramdisk or cpio buffer.
If unsure, say Y.
config [31mCONFIG_RD_BZIP2[0m
bool "Support initial ramdisk/ramfs compressed using bzip2"
default y
depends on [31mCONFIG_BLK_DEV_INITRD[0m
select [31mCONFIG_DECOMPRESS_BZIP2[0m
help
Support loading of a bzip2 encoded initial ramdisk or cpio buffer
If unsure, say N.
config [31mCONFIG_RD_LZMA[0m
bool "Support initial ramdisk/ramfs compressed using LZMA"
default y
depends on [31mCONFIG_BLK_DEV_INITRD[0m
select [31mCONFIG_DECOMPRESS_LZMA[0m
help
Support loading of a LZMA encoded initial ramdisk or cpio buffer
If unsure, say N.
config [31mCONFIG_RD_XZ[0m
bool "Support initial ramdisk/ramfs compressed using XZ"
depends on [31mCONFIG_BLK_DEV_INITRD[0m
default y
select [31mCONFIG_DECOMPRESS_XZ[0m
help
Support loading of a XZ encoded initial ramdisk or cpio buffer.
If unsure, say N.
config [31mCONFIG_RD_LZO[0m
bool "Support initial ramdisk/ramfs compressed using LZO"
default y
depends on [31mCONFIG_BLK_DEV_INITRD[0m
select [31mCONFIG_DECOMPRESS_LZO[0m
help
Support loading of a LZO encoded initial ramdisk or cpio buffer
If unsure, say N.
config [31mCONFIG_RD_LZ4[0m
bool "Support initial ramdisk/ramfs compressed using LZ4"
default y
depends on [31mCONFIG_BLK_DEV_INITRD[0m
select [31mCONFIG_DECOMPRESS_LZ4[0m
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 [31mCONFIG_INITRAMFS_SOURCE[0m!=""
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 [31mCONFIG_INITRAMFS_COMPRESSION_NONE[0m
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
config [31mCONFIG_INITRAMFS_COMPRESSION_GZIP[0m
bool "Gzip"
depends on [31mCONFIG_RD_GZIP[0m
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 [31mCONFIG_INITRAMFS_COMPRESSION_BZIP2[0m
bool "Bzip2"
depends on [31mCONFIG_RD_BZIP2[0m
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 [31mCONFIG_INITRAMFS_COMPRESSION_LZMA[0m
bool "LZMA"
depends on [31mCONFIG_RD_LZMA[0m
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 [31mCONFIG_INITRAMFS_COMPRESSION_XZ[0m
bool "XZ"
depends on [31mCONFIG_RD_XZ[0m
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 [31mCONFIG_INITRAMFS_COMPRESSION_LZO[0m
bool "LZO"
depends on [31mCONFIG_RD_LZO[0m
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 [31mCONFIG_INITRAMFS_COMPRESSION_LZ4[0m
bool "LZ4"
depends on [31mCONFIG_RD_LZ4[0m
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.
endchoice
config [31mCONFIG_INITRAMFS_COMPRESSION[0m
depends on [31mCONFIG_INITRAMFS_SOURCE[0m!=""
string
default "" if [31mCONFIG_INITRAMFS_COMPRESSION_NONE[0m
default ".gz" if [31mCONFIG_INITRAMFS_COMPRESSION_GZIP[0m
default ".bz2" if [31mCONFIG_INITRAMFS_COMPRESSION_BZIP2[0m
default ".lzma" if [31mCONFIG_INITRAMFS_COMPRESSION_LZMA[0m
default ".xz" if [31mCONFIG_INITRAMFS_COMPRESSION_XZ[0m
default ".lzo" if [31mCONFIG_INITRAMFS_COMPRESSION_LZO[0m
default ".lz4" if [31mCONFIG_INITRAMFS_COMPRESSION_LZ4[0m
default ".gz" if [31mCONFIG_RD_GZIP[0m
default ".lz4" if [31mCONFIG_RD_LZ4[0m
default ".lzo" if [31mCONFIG_RD_LZO[0m
default ".xz" if [31mCONFIG_RD_XZ[0m
default ".lzma" if [31mCONFIG_RD_LZMA[0m
default ".bz2" if [31mCONFIG_RD_BZIP2[0m
default ""