Commit 40297927575a50b1d0d308d735c445924d33fba6

Authored by H. Peter Anvin
1 parent 55d1d26f23

bzip2/lzma: don't ask for compression mode for the default initramfs

Impact: Kconfig noise reduction, documentation

The default initramfs is so small that it makes no sense to worry
about the additional memory taken by not double-compressing it.
Therefore, don't bug the user with it.

Also, improve the description of the option, which was downright
incorrect.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>

Showing 1 changed file with 22 additions and 10 deletions Inline Diff

1 # 1 #
2 # Configuration for initramfs 2 # Configuration for initramfs
3 # 3 #
4 4
5 config INITRAMFS_SOURCE 5 config INITRAMFS_SOURCE
6 string "Initramfs source file(s)" 6 string "Initramfs source file(s)"
7 default "" 7 default ""
8 help 8 help
9 This can be either a single cpio archive with a .cpio suffix or a 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 10 space-separated list of directories and files for building the
11 initramfs image. A cpio archive should contain a filesystem archive 11 initramfs image. A cpio archive should contain a filesystem archive
12 to be used as an initramfs image. Directories should contain a 12 to be used as an initramfs image. Directories should contain a
13 filesystem layout to be included in the initramfs image. Files 13 filesystem layout to be included in the initramfs image. Files
14 should contain entries according to the format described by the 14 should contain entries according to the format described by the
15 "usr/gen_init_cpio" program in the kernel tree. 15 "usr/gen_init_cpio" program in the kernel tree.
16 16
17 When multiple directories and files are specified then the 17 When multiple directories and files are specified then the
18 initramfs image will be the aggregate of all of them. 18 initramfs image will be the aggregate of all of them.
19 19
20 See <file:Documentation/early-userspace/README> for more details. 20 See <file:Documentation/early-userspace/README> for more details.
21 21
22 If you are not sure, leave it blank. 22 If you are not sure, leave it blank.
23 23
24 config INITRAMFS_ROOT_UID 24 config INITRAMFS_ROOT_UID
25 int "User ID to map to 0 (user root)" 25 int "User ID to map to 0 (user root)"
26 depends on INITRAMFS_SOURCE!="" 26 depends on INITRAMFS_SOURCE!=""
27 default "0" 27 default "0"
28 help 28 help
29 This setting is only meaningful if the INITRAMFS_SOURCE is 29 This setting is only meaningful if the INITRAMFS_SOURCE is
30 contains a directory. Setting this user ID (UID) to something 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 31 other than "0" will cause all files owned by that UID to be
32 owned by user root in the initial ramdisk image. 32 owned by user root in the initial ramdisk image.
33 33
34 If you are not sure, leave it set to "0". 34 If you are not sure, leave it set to "0".
35 35
36 config INITRAMFS_ROOT_GID 36 config INITRAMFS_ROOT_GID
37 int "Group ID to map to 0 (group root)" 37 int "Group ID to map to 0 (group root)"
38 depends on INITRAMFS_SOURCE!="" 38 depends on INITRAMFS_SOURCE!=""
39 default "0" 39 default "0"
40 help 40 help
41 This setting is only meaningful if the INITRAMFS_SOURCE is 41 This setting is only meaningful if the INITRAMFS_SOURCE is
42 contains a directory. Setting this group ID (GID) to something 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 43 other than "0" will cause all files owned by that GID to be
44 owned by group root in the initial ramdisk image. 44 owned by group root in the initial ramdisk image.
45 45
46 If you are not sure, leave it set to "0". 46 If you are not sure, leave it set to "0".
47 47
48 config RD_GZIP 48 config RD_GZIP
49 bool "Support initial ramdisks compressed using gzip" if EMBEDDED 49 bool "Support initial ramdisks compressed using gzip" if EMBEDDED
50 default y 50 default y
51 depends on BLK_DEV_INITRD 51 depends on BLK_DEV_INITRD
52 select DECOMPRESS_GZIP 52 select DECOMPRESS_GZIP
53 help 53 help
54 Support loading of a gzip encoded initial ramdisk or cpio buffer. 54 Support loading of a gzip encoded initial ramdisk or cpio buffer.
55 If unsure, say Y. 55 If unsure, say Y.
56 56
57 config RD_BZIP2 57 config RD_BZIP2
58 bool "Support initial ramdisks compressed using bzip2" if EMBEDDED 58 bool "Support initial ramdisks compressed using bzip2" if EMBEDDED
59 default !EMBEDDED 59 default !EMBEDDED
60 depends on BLK_DEV_INITRD 60 depends on BLK_DEV_INITRD
61 select DECOMPRESS_BZIP2 61 select DECOMPRESS_BZIP2
62 help 62 help
63 Support loading of a bzip2 encoded initial ramdisk or cpio buffer 63 Support loading of a bzip2 encoded initial ramdisk or cpio buffer
64 If unsure, say N. 64 If unsure, say N.
65 65
66 config RD_LZMA 66 config RD_LZMA
67 bool "Support initial ramdisks compressed using LZMA" if EMBEDDED 67 bool "Support initial ramdisks compressed using LZMA" if EMBEDDED
68 default !EMBEDDED 68 default !EMBEDDED
69 depends on BLK_DEV_INITRD 69 depends on BLK_DEV_INITRD
70 select DECOMPRESS_LZMA 70 select DECOMPRESS_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 74
75 if INITRAMFS_SOURCE!=""
76
75 choice 77 choice
76 prompt "Built-in initramfs compression mode" 78 prompt "Built-in initramfs compression mode"
77 help 79 help
78 This setting is only meaningful if the INITRAMFS_SOURCE is 80 This option decides by which algorithm the builtin initramfs
79 set. It decides by which algorithm the INITRAMFS_SOURCE will 81 will be compressed. Several compression algorithms are
80 be compressed. 82 available, which differ in efficiency, compression and
81 Several compression algorithms are available, which differ 83 decompression speed. Compression speed is only relevant
82 in efficiency, compression and decompression speed. 84 when building a kernel. Decompression speed is relevant at
83 Compression speed is only relevant when building a kernel. 85 each boot.
84 Decompression speed is relevant at each boot.
85 86
86 If you have any problems with bzip2 or LZMA compressed 87 If you have any problems with bzip2 or LZMA compressed
87 initramfs, mail me (Alain Knaff) <alain@knaff.lu>. 88 initramfs, mail me (Alain Knaff) <alain@knaff.lu>.
88 89
89 High compression options are mostly useful for users who 90 High compression options are mostly useful for users who are
90 are low on disk space (embedded systems), but for whom ram 91 low on RAM, since it reduces the memory consumption during
91 size matters less. 92 boot.
92 93
93 If in doubt, select 'gzip' 94 If in doubt, select 'gzip'
94 95
95 config INITRAMFS_COMPRESSION_NONE 96 config INITRAMFS_COMPRESSION_NONE
96 bool "None" 97 bool "None"
97 help 98 help
98 Do not compress the built-in initramfs at all. This may 99 Do not compress the built-in initramfs at all. This may
99 sound wasteful in space, but, you should be aware that the 100 sound wasteful in space, but, you should be aware that the
100 built-in initramfs will be compressed at a later stage 101 built-in initramfs will be compressed at a later stage
101 anyways along with the rest of the kernel, on those 102 anyways along with the rest of the kernel, on those
102 architectures that support this. 103 architectures that support this.
103 However, not compressing the initramfs may lead to slightly 104 However, not compressing the initramfs may lead to slightly
104 higher memory consumption during a short time at boot, while 105 higher memory consumption during a short time at boot, while
105 both the cpio image and the unpacked filesystem image will 106 both the cpio image and the unpacked filesystem image will
106 be present in memory simultaneously 107 be present in memory simultaneously
107 108
108 config INITRAMFS_COMPRESSION_GZIP 109 config INITRAMFS_COMPRESSION_GZIP
109 bool "Gzip" 110 bool "Gzip"
110 depends on RD_GZIP 111 depends on RD_GZIP
111 help 112 help
112 The old and tried gzip compression. Its compression ratio is 113 The old and tried gzip compression. Its compression ratio is
113 the poorest among the 3 choices; however its speed (both 114 the poorest among the 3 choices; however its speed (both
114 compression and decompression) is the fastest. 115 compression and decompression) is the fastest.
115 116
116 config INITRAMFS_COMPRESSION_BZIP2 117 config INITRAMFS_COMPRESSION_BZIP2
117 bool "Bzip2" 118 bool "Bzip2"
118 depends on RD_BZIP2 119 depends on RD_BZIP2
119 help 120 help
120 Its compression ratio and speed is intermediate. 121 Its compression ratio and speed is intermediate.
121 Decompression speed is slowest among the three. The initramfs 122 Decompression speed is slowest among the three. The initramfs
122 size is about 10% smaller with bzip2, in comparison to gzip. 123 size is about 10% smaller with bzip2, in comparison to gzip.
123 Bzip2 uses a large amount of memory. For modern kernels you 124 Bzip2 uses a large amount of memory. For modern kernels you
124 will need at least 8MB RAM or more for booting. 125 will need at least 8MB RAM or more for booting.
125 126
126 config INITRAMFS_COMPRESSION_LZMA 127 config INITRAMFS_COMPRESSION_LZMA
127 bool "LZMA" 128 bool "LZMA"
128 depends on RD_LZMA 129 depends on RD_LZMA
129 help 130 help
130 The most recent compression algorithm. 131 The most recent compression algorithm.
131 Its ratio is best, decompression speed is between the other 132 Its ratio is best, decompression speed is between the other
132 two. Compression is slowest. The initramfs size is about 33% 133 two. Compression is slowest. The initramfs size is about 33%
133 smaller with LZMA in comparison to gzip. 134 smaller with LZMA in comparison to gzip.
134 135
135 endchoice 136 endchoice
137
138 endif
139
140 if INITRAMFS_SOURCE=""
141 # The builtin initramfs is so small so we don't want to bug the user...
142
143 config INITRAMFS_COMPRESSION_NONE
144 bool
145 default y
146
147 endif