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 |
