]>
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 | ||
0979f378 | 21 | See <file:Documentation/early-userspace/README> 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" |
73d8a12f | 57 | depends on BLK_DEV_INITRD |
ec72c666 | 58 | default y |
fb9a4ca9 PA |
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 | |
f2e8954b | 65 | bool "Support initial ramdisk/ramfs compressed using bzip2" |
ec72c666 | 66 | default y |
73d8a12f | 67 | depends on BLK_DEV_INITRD |
fb9a4ca9 PA |
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 | |
f2e8954b | 74 | bool "Support initial ramdisk/ramfs compressed using LZMA" |
ec72c666 | 75 | default y |
73d8a12f | 76 | depends on BLK_DEV_INITRD |
fb9a4ca9 PA |
77 | select DECOMPRESS_LZMA |
78 | help | |
55d1d26f | 79 | Support loading of a LZMA encoded initial ramdisk or cpio buffer |
fb9a4ca9 | 80 | If unsure, say N. |
ab76f3d7 | 81 | |
3ebe1243 | 82 | config RD_XZ |
f2e8954b | 83 | bool "Support initial ramdisk/ramfs compressed using XZ" |
3ebe1243 | 84 | depends on BLK_DEV_INITRD |
ec72c666 | 85 | default y |
3ebe1243 LC |
86 | select DECOMPRESS_XZ |
87 | help | |
88 | Support loading of a XZ encoded initial ramdisk or cpio buffer. | |
89 | If unsure, say N. | |
90 | ||
cacb246f | 91 | config RD_LZO |
f2e8954b | 92 | bool "Support initial ramdisk/ramfs compressed using LZO" |
ec72c666 | 93 | default y |
cacb246f AT |
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 | ||
e76e1fdf | 100 | config RD_LZ4 |
f2e8954b | 101 | bool "Support initial ramdisk/ramfs compressed using LZ4" |
ec72c666 | 102 | default y |
e76e1fdf KL |
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. | |
35e669e1 | 108 | |
db2aa7fd FBIR |
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 | ||
35e669e1 | 219 | config INITRAMFS_COMPRESSION |
57ddfdaa | 220 | depends on INITRAMFS_SOURCE!="" |
35e669e1 | 221 | string |
db2aa7fd FBIR |
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 | |
35e669e1 FBIR |
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 "" |