Commit 40297927575a50b1d0d308d735c445924d33fba6
1 parent
55d1d26f23
Exists in
master
and in
4 other branches
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
usr/Kconfig
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 |