Commit | Line | Data |
---|---|---|
dbec4866 SR |
1 | # |
2 | # Configuration for initramfs | |
3 | # | |
4 | ||
5 | config INITRAMFS_SOURCE | |
6 | string "Initramfs source file(s)" | |
7 | default "" | |
8 | help | |
9 | This can be either a single cpio archive with a .cpio suffix or a | |
10 | space-separated list of directories and files for building the | |
11 | initramfs image. A cpio archive should contain a filesystem archive | |
12 | to be used as an initramfs image. Directories should contain a | |
13 | filesystem layout to be included in the initramfs image. Files | |
14 | should contain entries according to the format described by the | |
15 | "usr/gen_init_cpio" program in the kernel tree. | |
16 | ||
17 | When multiple directories and files are specified then the | |
18 | initramfs image will be the aggregate of all of them. | |
19 | ||
0979f378 | 20 | See <file:Documentation/early-userspace/README> for more details. |
dbec4866 SR |
21 | |
22 | If you are not sure, leave it blank. | |
23 | ||
24 | config INITRAMFS_ROOT_UID | |
25 | int "User ID to map to 0 (user root)" | |
26 | depends on INITRAMFS_SOURCE!="" | |
27 | default "0" | |
28 | help | |
29 | This setting is only meaningful if the INITRAMFS_SOURCE is | |
30 | contains a directory. Setting this user ID (UID) to something | |
31 | other than "0" will cause all files owned by that UID to be | |
32 | owned by user root in the initial ramdisk image. | |
33 | ||
34 | If you are not sure, leave it set to "0". | |
35 | ||
36 | config INITRAMFS_ROOT_GID | |
37 | int "Group ID to map to 0 (group root)" | |
38 | depends on INITRAMFS_SOURCE!="" | |
39 | default "0" | |
40 | help | |
41 | This setting is only meaningful if the INITRAMFS_SOURCE is | |
42 | contains a directory. Setting this group ID (GID) to something | |
43 | other than "0" will cause all files owned by that GID to be | |
44 | owned by group root in the initial ramdisk image. | |
45 | ||
46 | If you are not sure, leave it set to "0". | |
fb9a4ca9 PA |
47 | |
48 | config RD_GZIP | |
ec72c666 | 49 | bool "Support initial ramdisks compressed using gzip" |
73d8a12f | 50 | depends on BLK_DEV_INITRD |
ec72c666 | 51 | default y |
fb9a4ca9 PA |
52 | select DECOMPRESS_GZIP |
53 | help | |
54 | Support loading of a gzip encoded initial ramdisk or cpio buffer. | |
55 | If unsure, say Y. | |
56 | ||
57 | config RD_BZIP2 | |
ec72c666 AK |
58 | bool "Support initial ramdisks compressed using bzip2" |
59 | default y | |
73d8a12f | 60 | depends on BLK_DEV_INITRD |
fb9a4ca9 PA |
61 | select DECOMPRESS_BZIP2 |
62 | help | |
63 | Support loading of a bzip2 encoded initial ramdisk or cpio buffer | |
64 | If unsure, say N. | |
65 | ||
66 | config RD_LZMA | |
ec72c666 AK |
67 | bool "Support initial ramdisks compressed using LZMA" |
68 | default y | |
73d8a12f | 69 | depends on BLK_DEV_INITRD |
fb9a4ca9 PA |
70 | select DECOMPRESS_LZMA |
71 | help | |
55d1d26f | 72 | Support loading of a LZMA encoded initial ramdisk or cpio buffer |
fb9a4ca9 | 73 | If unsure, say N. |
ab76f3d7 | 74 | |
3ebe1243 | 75 | config RD_XZ |
ec72c666 | 76 | bool "Support initial ramdisks compressed using XZ" |
3ebe1243 | 77 | depends on BLK_DEV_INITRD |
ec72c666 | 78 | default y |
3ebe1243 LC |
79 | select DECOMPRESS_XZ |
80 | help | |
81 | Support loading of a XZ encoded initial ramdisk or cpio buffer. | |
82 | If unsure, say N. | |
83 | ||
cacb246f | 84 | config RD_LZO |
ec72c666 AK |
85 | bool "Support initial ramdisks compressed using LZO" |
86 | default y | |
cacb246f AT |
87 | depends on BLK_DEV_INITRD |
88 | select DECOMPRESS_LZO | |
89 | help | |
90 | Support loading of a LZO encoded initial ramdisk or cpio buffer | |
91 | If unsure, say N. | |
92 | ||
e76e1fdf | 93 | config RD_LZ4 |
ec72c666 AK |
94 | bool "Support initial ramdisks compressed using LZ4" |
95 | default y | |
e76e1fdf KL |
96 | depends on BLK_DEV_INITRD |
97 | select DECOMPRESS_LZ4 | |
98 | help | |
99 | Support loading of a LZ4 encoded initial ramdisk or cpio buffer | |
100 | If unsure, say N. | |
35e669e1 | 101 | |
db2aa7fd FBIR |
102 | choice |
103 | prompt "Built-in initramfs compression mode" | |
104 | depends on INITRAMFS_SOURCE!="" | |
105 | optional | |
106 | help | |
107 | This option allows you to decide by which algorithm the builtin | |
108 | initramfs will be compressed. Several compression algorithms are | |
109 | available, which differ in efficiency, compression and | |
110 | decompression speed. Compression speed is only relevant | |
111 | when building a kernel. Decompression speed is relevant at | |
112 | each boot. Also the memory usage during decompression may become | |
113 | relevant on memory constrained systems. This is usually based on the | |
114 | dictionary size of the algorithm with algorithms like XZ and LZMA | |
115 | featuring large dictionary sizes. | |
116 | ||
117 | High compression options are mostly useful for users who are | |
118 | low on RAM, since it reduces the memory consumption during | |
119 | boot. | |
120 | ||
121 | Keep in mind that your build system needs to provide the appropriate | |
122 | compression tool to compress the generated initram cpio file for | |
123 | embedding. | |
124 | ||
125 | If in doubt, select 'None' | |
126 | ||
127 | config INITRAMFS_COMPRESSION_NONE | |
128 | bool "None" | |
129 | help | |
130 | Do not compress the built-in initramfs at all. This may sound wasteful | |
131 | in space, but, you should be aware that the built-in initramfs will be | |
132 | compressed at a later stage anyways along with the rest of the kernel, | |
133 | on those architectures that support this. However, not compressing the | |
134 | initramfs may lead to slightly higher memory consumption during a | |
135 | short time at boot, while both the cpio image and the unpacked | |
136 | filesystem image will be present in memory simultaneously | |
137 | ||
138 | config INITRAMFS_COMPRESSION_GZIP | |
139 | bool "Gzip" | |
140 | depends on RD_GZIP | |
141 | help | |
142 | Use the old and well tested gzip compression algorithm. Gzip provides | |
143 | a good balance between compression ratio and decompression speed and | |
144 | has a reasonable compression speed. It is also more likely to be | |
145 | supported by your build system as the gzip tool is present by default | |
146 | on most distros. | |
147 | ||
148 | config INITRAMFS_COMPRESSION_BZIP2 | |
149 | bool "Bzip2" | |
150 | depends on RD_BZIP2 | |
151 | help | |
152 | It's compression ratio and speed is intermediate. Decompression speed | |
153 | is slowest among the choices. The initramfs size is about 10% smaller | |
154 | with bzip2, in comparison to gzip. Bzip2 uses a large amount of | |
155 | memory. For modern kernels you will need at least 8MB RAM or more for | |
156 | booting. | |
157 | ||
158 | If you choose this, keep in mind that you need to have the bzip2 tool | |
159 | available to be able to compress the initram. | |
160 | ||
161 | config INITRAMFS_COMPRESSION_LZMA | |
162 | bool "LZMA" | |
163 | depends on RD_LZMA | |
164 | help | |
165 | This algorithm's compression ratio is best but has a large dictionary | |
166 | size which might cause issues in memory constrained systems. | |
167 | Decompression speed is between the other choices. Compression is | |
168 | slowest. The initramfs size is about 33% smaller with LZMA in | |
169 | comparison to gzip. | |
170 | ||
171 | If you choose this, keep in mind that you may need to install the xz | |
172 | or lzma tools to be able to compress the initram. | |
173 | ||
174 | config INITRAMFS_COMPRESSION_XZ | |
175 | bool "XZ" | |
176 | depends on RD_XZ | |
177 | help | |
178 | XZ uses the LZMA2 algorithm and has a large dictionary which may cause | |
179 | problems on memory constrained systems. The initramfs size is about | |
180 | 30% smaller with XZ in comparison to gzip. Decompression speed is | |
181 | better than that of bzip2 but worse than gzip and LZO. Compression is | |
182 | slow. | |
183 | ||
184 | If you choose this, keep in mind that you may need to install the xz | |
185 | tool to be able to compress the initram. | |
186 | ||
187 | config INITRAMFS_COMPRESSION_LZO | |
188 | bool "LZO" | |
189 | depends on RD_LZO | |
190 | help | |
191 | It's compression ratio is the second poorest amongst the choices. The | |
192 | kernel size is about 10% bigger than gzip. Despite that, it's | |
193 | decompression speed is the second fastest and it's compression speed | |
194 | is quite fast too. | |
195 | ||
196 | If you choose this, keep in mind that you may need to install the lzop | |
197 | tool to be able to compress the initram. | |
198 | ||
199 | config INITRAMFS_COMPRESSION_LZ4 | |
200 | bool "LZ4" | |
201 | depends on RD_LZ4 | |
202 | help | |
203 | It's compression ratio is the poorest amongst the choices. The kernel | |
204 | size is about 15% bigger than gzip; however its decompression speed | |
205 | is the fastest. | |
206 | ||
207 | If you choose this, keep in mind that most distros don't provide lz4 | |
208 | by default which could cause a build failure. | |
209 | ||
210 | endchoice | |
211 | ||
35e669e1 FBIR |
212 | config INITRAMFS_COMPRESSION |
213 | string | |
db2aa7fd FBIR |
214 | default "" if INITRAMFS_COMPRESSION_NONE |
215 | default ".gz" if INITRAMFS_COMPRESSION_GZIP | |
216 | default ".bz2" if INITRAMFS_COMPRESSION_BZIP2 | |
217 | default ".lzma" if INITRAMFS_COMPRESSION_LZMA | |
218 | default ".xz" if INITRAMFS_COMPRESSION_XZ | |
219 | default ".lzo" if INITRAMFS_COMPRESSION_LZO | |
220 | default ".lz4" if INITRAMFS_COMPRESSION_LZ4 | |
35e669e1 FBIR |
221 | default ".gz" if RD_GZIP |
222 | default ".lz4" if RD_LZ4 | |
223 | default ".lzo" if RD_LZO | |
224 | default ".xz" if RD_XZ | |
225 | default ".lzma" if RD_LZMA | |
226 | default ".bz2" if RD_BZIP2 | |
227 | default "" |