diff options
| -rw-r--r-- | usr/Kconfig | 62 | ||||
| -rw-r--r-- | usr/Makefile | 18 |
2 files changed, 68 insertions, 12 deletions
diff --git a/usr/Kconfig b/usr/Kconfig index a691a8f5898b..43a3a0fe8f29 100644 --- a/usr/Kconfig +++ b/usr/Kconfig | |||
| @@ -71,3 +71,65 @@ config RD_LZMA | |||
| 71 | help | 71 | help |
| 72 | Support loading of a lzma encoded initial ramdisk or cpio buffer | 72 | Support loading of a lzma encoded initial ramdisk or cpio buffer |
| 73 | If unsure, say N. | 73 | If unsure, say N. |
| 74 | |||
| 75 | choice | ||
| 76 | prompt "Built-in initramfs compression mode" | ||
| 77 | help | ||
| 78 | This setting is only meaningful if the INITRAMFS_SOURCE is | ||
| 79 | set. It decides by which algorithm the INITRAMFS_SOURCE will | ||
| 80 | be compressed. | ||
| 81 | Several compression algorithms are available, which differ | ||
| 82 | in efficiency, compression and decompression speed. | ||
| 83 | Compression speed is only relevant when building a kernel. | ||
| 84 | Decompression speed is relevant at each boot. | ||
| 85 | |||
| 86 | If you have any problems with bzip2 or lzma compressed | ||
| 87 | initramfs, mail me (Alain Knaff) <alain@knaff.lu>. | ||
| 88 | |||
| 89 | High compression options are mostly useful for users who | ||
| 90 | are low on disk space (embedded systems), but for whom ram | ||
| 91 | size matters less. | ||
| 92 | |||
| 93 | If in doubt, select 'gzip' | ||
| 94 | |||
| 95 | config INITRAMFS_COMPRESSION_NONE | ||
| 96 | bool "None" | ||
| 97 | help | ||
| 98 | Do not compress the built-in initramfs at all. This may | ||
| 99 | sound wasteful in space, but, you should be aware that the | ||
| 100 | built-in initramfs will be compressed at a later stage | ||
| 101 | anyways along with the rest of the kernel, on those | ||
| 102 | architectures that support this. | ||
| 103 | However, not compressing the initramfs may lead to slightly | ||
| 104 | higher memory consumption during a short time at boot, while | ||
| 105 | both the cpio image and the unpacked filesystem image will | ||
| 106 | be present in memory simultaneously | ||
| 107 | |||
| 108 | config INITRAMFS_COMPRESSION_GZIP | ||
| 109 | bool "Gzip" | ||
| 110 | depends on RD_GZIP | ||
| 111 | help | ||
| 112 | The old and tried gzip compression. Its compression ratio is | ||
| 113 | the poorest among the 3 choices; however its speed (both | ||
| 114 | compression and decompression) is the fastest. | ||
| 115 | |||
| 116 | config INITRAMFS_COMPRESSION_BZIP2 | ||
| 117 | bool "Bzip2" | ||
| 118 | depends on RD_BZIP2 | ||
| 119 | help | ||
| 120 | Its compression ratio and speed is intermediate. | ||
| 121 | Decompression speed is slowest among the three. The initramfs | ||
| 122 | size is about 10% smaller with bzip2, in comparison to gzip. | ||
| 123 | Bzip2 uses a large amount of memory. For modern kernels you | ||
| 124 | will need at least 8MB RAM or more for booting. | ||
| 125 | |||
| 126 | config INITRAMFS_COMPRESSION_LZMA | ||
| 127 | bool "LZMA" | ||
| 128 | depends on RD_LZMA | ||
| 129 | help | ||
| 130 | The most recent compression algorithm. | ||
| 131 | Its ratio is best, decompression speed is between the other | ||
| 132 | two. Compression is slowest. The initramfs size is about 33% | ||
| 133 | smaller with LZMA in comparison to gzip. | ||
| 134 | |||
| 135 | endchoice | ||
diff --git a/usr/Makefile b/usr/Makefile index 451cdff7dff9..b84894b3929d 100644 --- a/usr/Makefile +++ b/usr/Makefile | |||
| @@ -5,24 +5,18 @@ | |||
| 5 | klibcdirs:; | 5 | klibcdirs:; |
| 6 | PHONY += klibcdirs | 6 | PHONY += klibcdirs |
| 7 | 7 | ||
| 8 | # Find out "preferred" ramdisk compressor. Order of preference is | ||
| 9 | # 1. bzip2 efficient, and likely to be present | ||
| 10 | # 2. gzip former default | ||
| 11 | # 3. lzma | ||
| 12 | # 4. none | ||
| 13 | 8 | ||
| 14 | # None of the above | 9 | # No compression |
| 15 | suffix_y = | 10 | suffix_$(CONFIG_INITRAMFS_COMPRESSION_NONE) = |
| 16 | |||
| 17 | # Lzma, but no gzip nor bzip2 | ||
| 18 | suffix_$(CONFIG_RD_LZMA) = .lzma | ||
| 19 | 11 | ||
| 20 | # Gzip, but no bzip2 | 12 | # Gzip, but no bzip2 |
| 21 | suffix_$(CONFIG_RD_GZIP) = .gz | 13 | suffix_$(CONFIG_INITRAMFS_COMPRESSION_GZIP) = .gz |
| 22 | 14 | ||
| 23 | # Bzip2 | 15 | # Bzip2 |
| 24 | suffix_$(CONFIG_RD_BZIP2) = .bz2 | 16 | suffix_$(CONFIG_INITRAMFS_COMPRESSION_BZIP2) = .bz2 |
| 25 | 17 | ||
| 18 | # Lzma | ||
| 19 | suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZMA) = .lzma | ||
| 26 | 20 | ||
| 27 | # Generate builtin.o based on initramfs_data.o | 21 | # Generate builtin.o based on initramfs_data.o |
| 28 | obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data$(suffix_y).o | 22 | obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data$(suffix_y).o |
