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