diff options
-rw-r--r-- | usr/Kconfig | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/usr/Kconfig b/usr/Kconfig index bf8e8f15358f..6278f135256d 100644 --- a/usr/Kconfig +++ b/usr/Kconfig | |||
@@ -99,8 +99,125 @@ config RD_LZ4 | |||
99 | Support loading of a LZ4 encoded initial ramdisk or cpio buffer | 99 | Support loading of a LZ4 encoded initial ramdisk or cpio buffer |
100 | If unsure, say N. | 100 | If unsure, say N. |
101 | 101 | ||
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 | |||
102 | config INITRAMFS_COMPRESSION | 212 | config INITRAMFS_COMPRESSION |
103 | string | 213 | string |
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 | ||
104 | default ".gz" if RD_GZIP | 221 | default ".gz" if RD_GZIP |
105 | default ".lz4" if RD_LZ4 | 222 | default ".lz4" if RD_LZ4 |
106 | default ".lzo" if RD_LZO | 223 | default ".lzo" if RD_LZO |