Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0 |
Sam Ravnborg | dbec486 | 2005-08-10 20:44:50 +0200 | [diff] [blame] | 2 | # |
| 3 | # Configuration for initramfs |
| 4 | # |
| 5 | |
| 6 | config 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 | |
Alexander E. Patrakov | 0979f37 | 2007-03-16 18:01:45 +0500 | [diff] [blame] | 21 | See <file:Documentation/early-userspace/README> for more details. |
Sam Ravnborg | dbec486 | 2005-08-10 20:44:50 +0200 | [diff] [blame] | 22 | |
| 23 | If you are not sure, leave it blank. |
| 24 | |
Daniel Thompson | cff75e0 | 2017-05-08 15:56:57 -0700 | [diff] [blame] | 25 | config 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 | |
Sam Ravnborg | dbec486 | 2005-08-10 20:44:50 +0200 | [diff] [blame] | 35 | config INITRAMFS_ROOT_UID |
| 36 | int "User ID to map to 0 (user root)" |
| 37 | depends on INITRAMFS_SOURCE!="" |
| 38 | default "0" |
| 39 | help |
Rob Landley | 595a22a | 2017-07-06 15:35:43 -0700 | [diff] [blame] | 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. |
Sam Ravnborg | dbec486 | 2005-08-10 20:44:50 +0200 | [diff] [blame] | 42 | |
| 43 | If you are not sure, leave it set to "0". |
| 44 | |
| 45 | config INITRAMFS_ROOT_GID |
| 46 | int "Group ID to map to 0 (group root)" |
| 47 | depends on INITRAMFS_SOURCE!="" |
| 48 | default "0" |
| 49 | help |
Rob Landley | 595a22a | 2017-07-06 15:35:43 -0700 | [diff] [blame] | 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. |
Sam Ravnborg | dbec486 | 2005-08-10 20:44:50 +0200 | [diff] [blame] | 52 | |
| 53 | If you are not sure, leave it set to "0". |
H. Peter Anvin | fb9a4ca | 2009-01-07 00:03:49 -0800 | [diff] [blame] | 54 | |
| 55 | config RD_GZIP |
Rob Landley | f2e8954 | 2017-07-06 15:35:46 -0700 | [diff] [blame] | 56 | bool "Support initial ramdisk/ramfs compressed using gzip" |
H. Peter Anvin | 73d8a12 | 2009-03-28 15:49:08 -0700 | [diff] [blame] | 57 | depends on BLK_DEV_INITRD |
Andi Kleen | ec72c66 | 2014-12-12 16:58:03 -0800 | [diff] [blame] | 58 | default y |
H. Peter Anvin | fb9a4ca | 2009-01-07 00:03:49 -0800 | [diff] [blame] | 59 | select DECOMPRESS_GZIP |
| 60 | help |
| 61 | Support loading of a gzip encoded initial ramdisk or cpio buffer. |
| 62 | If unsure, say Y. |
| 63 | |
| 64 | config RD_BZIP2 |
Rob Landley | f2e8954 | 2017-07-06 15:35:46 -0700 | [diff] [blame] | 65 | bool "Support initial ramdisk/ramfs compressed using bzip2" |
Andi Kleen | ec72c66 | 2014-12-12 16:58:03 -0800 | [diff] [blame] | 66 | default y |
H. Peter Anvin | 73d8a12 | 2009-03-28 15:49:08 -0700 | [diff] [blame] | 67 | depends on BLK_DEV_INITRD |
H. Peter Anvin | fb9a4ca | 2009-01-07 00:03:49 -0800 | [diff] [blame] | 68 | select DECOMPRESS_BZIP2 |
| 69 | help |
| 70 | Support loading of a bzip2 encoded initial ramdisk or cpio buffer |
| 71 | If unsure, say N. |
| 72 | |
| 73 | config RD_LZMA |
Rob Landley | f2e8954 | 2017-07-06 15:35:46 -0700 | [diff] [blame] | 74 | bool "Support initial ramdisk/ramfs compressed using LZMA" |
Andi Kleen | ec72c66 | 2014-12-12 16:58:03 -0800 | [diff] [blame] | 75 | default y |
H. Peter Anvin | 73d8a12 | 2009-03-28 15:49:08 -0700 | [diff] [blame] | 76 | depends on BLK_DEV_INITRD |
H. Peter Anvin | fb9a4ca | 2009-01-07 00:03:49 -0800 | [diff] [blame] | 77 | select DECOMPRESS_LZMA |
| 78 | help |
H. Peter Anvin | 55d1d26 | 2009-03-28 16:10:59 -0700 | [diff] [blame] | 79 | Support loading of a LZMA encoded initial ramdisk or cpio buffer |
H. Peter Anvin | fb9a4ca | 2009-01-07 00:03:49 -0800 | [diff] [blame] | 80 | If unsure, say N. |
Alain Knaff | ab76f3d | 2009-02-19 13:43:51 -0800 | [diff] [blame] | 81 | |
Lasse Collin | 3ebe124 | 2011-01-12 17:01:23 -0800 | [diff] [blame] | 82 | config RD_XZ |
Rob Landley | f2e8954 | 2017-07-06 15:35:46 -0700 | [diff] [blame] | 83 | bool "Support initial ramdisk/ramfs compressed using XZ" |
Lasse Collin | 3ebe124 | 2011-01-12 17:01:23 -0800 | [diff] [blame] | 84 | depends on BLK_DEV_INITRD |
Andi Kleen | ec72c66 | 2014-12-12 16:58:03 -0800 | [diff] [blame] | 85 | default y |
Lasse Collin | 3ebe124 | 2011-01-12 17:01:23 -0800 | [diff] [blame] | 86 | select DECOMPRESS_XZ |
| 87 | help |
| 88 | Support loading of a XZ encoded initial ramdisk or cpio buffer. |
| 89 | If unsure, say N. |
| 90 | |
Albin Tonnerre | cacb246 | 2010-01-08 14:42:46 -0800 | [diff] [blame] | 91 | config RD_LZO |
Rob Landley | f2e8954 | 2017-07-06 15:35:46 -0700 | [diff] [blame] | 92 | bool "Support initial ramdisk/ramfs compressed using LZO" |
Andi Kleen | ec72c66 | 2014-12-12 16:58:03 -0800 | [diff] [blame] | 93 | default y |
Albin Tonnerre | cacb246 | 2010-01-08 14:42:46 -0800 | [diff] [blame] | 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 | |
Kyungsik Lee | e76e1fd | 2013-07-08 16:01:46 -0700 | [diff] [blame] | 100 | config RD_LZ4 |
Rob Landley | f2e8954 | 2017-07-06 15:35:46 -0700 | [diff] [blame] | 101 | bool "Support initial ramdisk/ramfs compressed using LZ4" |
Andi Kleen | ec72c66 | 2014-12-12 16:58:03 -0800 | [diff] [blame] | 102 | default y |
Kyungsik Lee | e76e1fd | 2013-07-08 16:01:46 -0700 | [diff] [blame] | 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. |
Francisco Blas Izquierdo Riera (klondike) | 35e669e | 2016-12-14 15:06:01 -0800 | [diff] [blame] | 108 | |
Francisco Blas Izquierdo Riera (klondike) | db2aa7f | 2016-12-14 15:06:04 -0800 | [diff] [blame] | 109 | choice |
| 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 | |
| 134 | config 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 | |
| 145 | config 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 | |
| 155 | config 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 | |
| 168 | config 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 | |
| 181 | config 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 | |
| 194 | config 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 | |
| 206 | config 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 | |
| 217 | endchoice |
| 218 | |
Francisco Blas Izquierdo Riera (klondike) | 35e669e | 2016-12-14 15:06:01 -0800 | [diff] [blame] | 219 | config INITRAMFS_COMPRESSION |
Florian Fainelli | 57ddfda | 2017-06-02 14:46:22 -0700 | [diff] [blame] | 220 | depends on INITRAMFS_SOURCE!="" |
Francisco Blas Izquierdo Riera (klondike) | 35e669e | 2016-12-14 15:06:01 -0800 | [diff] [blame] | 221 | string |
Francisco Blas Izquierdo Riera (klondike) | db2aa7f | 2016-12-14 15:06:04 -0800 | [diff] [blame] | 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 |
Francisco Blas Izquierdo Riera (klondike) | 35e669e | 2016-12-14 15:06:01 -0800 | [diff] [blame] | 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 "" |