1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#
menu "Busybox Library Tuning"
config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
bool "Use the end of BSS page"
default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
help
Attempt to reclaim a small unused part of BSS.
Executables have the following parts:
= read-only executable code and constants, also known as "text"
= read-write data
= non-initialized (zeroed on demand) data, also known as "bss"
At link time, "text" is padded to a full page. At runtime, all "text"
pages are mapped RO and executable.
"Data" starts on the next page boundary, but is not padded
to a full page at the end. "Bss" starts wherever "data" ends.
At runtime, "data" pages are mapped RW and they are file-backed
(this includes a small portion of "bss" which may live in the last
partial page of "data").
Pages which are fully in "bss" are mapped to anonymous memory.
"Bss" end is usually not page-aligned. There is an unused space
in the last page. Linker marks its start with the "_end" symbol.
This option will attempt to use that space for bb_common_bufsiz1[]
array. If it fits after _end, it will be used, and COMMON_BUFSIZE
will be enlarged from its guaranteed minimum size of 1 kbyte.
This may require recompilation a second time, since value of _end
is known only after final link.
If you are getting a build error like this:
appletlib.c:(.text.main+0xd): undefined reference to '_end'
disable this option.
config BUSYBOX_CONFIG_FEATURE_RTMINMAX
bool "Support RTMIN[+n] and RTMAX[-n] signal names"
default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
help
Support RTMIN[+n] and RTMAX[-n] signal names
in kill, killall etc. This costs ~250 bytes.
config BUSYBOX_CONFIG_PASSWORD_MINLEN
int "Minimum password length"
default BUSYBOX_DEFAULT_PASSWORD_MINLEN
range 5 32
help
Minimum allowable password length.
config BUSYBOX_CONFIG_MD5_SMALL
int "MD5: Trade bytes for speed (0:fast, 3:slow)"
default BUSYBOX_DEFAULT_MD5_SMALL # all "fast or small" options default to small
range 0 3
help
Trade binary size versus speed for the md5sum algorithm.
Approximate values running uClibc and hashing
linux-2.4.4.tar.bz2 were:
user times (sec) text size (386)
0 (fastest) 1.1 6144
1 1.4 5392
2 3.0 5088
3 (smallest) 5.1 4912
config BUSYBOX_CONFIG_SHA3_SMALL
int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
default BUSYBOX_DEFAULT_SHA3_SMALL # all "fast or small" options default to small
range 0 1
help
Trade binary size versus speed for the sha3sum algorithm.
SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
64-bit x86: +270 bytes of code, 45% faster
32-bit x86: +450 bytes of code, 75% faster
config BUSYBOX_CONFIG_FEATURE_FAST_TOP
bool "Faster /proc scanning code (+100 bytes)"
default BUSYBOX_DEFAULT_FEATURE_FAST_TOP # all "fast or small" options default to small
help
This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
but code size is slightly bigger.
config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
bool "Support for /etc/networks"
default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
help
Enable support for network names in /etc/networks. This is
a rarely used feature which allows you to use names
instead of IP/mask pairs in route command.
config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
bool "Use termios to manipulate the screen"
default BUSYBOX_DEFAULT_FEATURE_USE_TERMIOS
depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_POWERTOP
help
This option allows utilities such as 'more' and 'top' to determine
the size of the screen. If you leave this disabled, your utilities
that display things on the screen will be especially primitive and
will be unable to determine the current screen size, and will be
unable to move the cursor.
config BUSYBOX_CONFIG_FEATURE_EDITING
bool "Command line editing"
default BUSYBOX_DEFAULT_FEATURE_EDITING
help
Enable line editing (mainly for shell command line).
config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
int "Maximum length of input"
range 128 8192
default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Line editing code uses on-stack buffers for storage.
You may want to decrease this parameter if your target machine
benefits from smaller stack usage.
config BUSYBOX_CONFIG_FEATURE_EDITING_VI
bool "vi-style line editing commands"
default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable vi-style line editing. In shells, this mode can be
turned on and off with "set -o vi" and "set +o vi".
config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
int "History size"
# Don't allow way too big values here, code uses fixed "char *history[N]" struct member
range 0 9999
default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Specify command history size (0 - disable).
config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
bool "History saving"
default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable history saving in shells.
config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
bool "Save history on shell exit, not after every command"
default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
help
Save history on shell exit, not after every command.
config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
bool "Reverse history search"
default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable readline-like Ctrl-R combination for reverse history search.
Increases code by about 0.5k.
config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
bool "Tab completion"
default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable tab completion.
config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
bool "Username completion"
default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
help
Enable username completion.
config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
bool "Fancy shell prompts"
default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Setting this option allows for prompts to use things like \w and
\$ and escape codes.
config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
bool "Query cursor position from terminal"
default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
current cursor position. This information is used to make line
editing more robust in some cases.
If you are not sure whether your terminals respond to this code
correctly, or want to save on code size (about 400 bytes),
then do not turn this option on.
config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
bool "Non-POSIX, but safer, copying to special nodes"
default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
help
With this option, "cp file symlink" will delete symlink
and create a regular file. This does not conform to POSIX,
but prevents a symlink attack.
Similarly, "cp file device" will not send file's data
to the device. (To do that, use "cat file >device")
config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
bool "Give more precise messages when copy fails (cp, mv etc)"
default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
help
Error messages with this feature enabled:
$ cp file /does_not_exist/file
cp: cannot create '/does_not_exist/file': Path does not exist
$ cp file /vmlinuz/file
cp: cannot stat '/vmlinuz/file': Path has non-directory component
If this feature is not enabled, they will be, respectively:
cp: cannot create '/does_not_exist/file': No such file or directory
cp: cannot stat '/vmlinuz/file': Not a directory
This will cost you ~60 bytes.
config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
int "Copy buffer size, in kilobytes"
range 1 1024
default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
help
Size of buffer used by cp, mv, install, wget etc.
Buffers which are 4 kb or less will be allocated on stack.
Bigger buffers will be allocated with mmap, with fallback to 4 kb
stack buffer if mmap fails.
config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
bool "Skip rootfs in mount table"
default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
help
Ignore rootfs entry in mount table.
In Linux, kernel has a special filesystem, rootfs, which is initially
mounted on /. It contains initramfs data, if kernel is configured
to have one. Usually, another file system is mounted over / early
in boot process, and therefore most tools which manipulate
mount table, such as df, will skip rootfs entry.
However, some systems do not mount anything on /.
If you need to configure busybox for one of these systems,
you may find it useful to turn this option off to make df show
initramfs statistics.
Otherwise, choose Y.
config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
time intervals (time, ping, traceroute etc need this).
Probably requires Linux 2.6+. If not selected, gettimeofday
will be used instead (which gives wrong results if date/time
is reset).
config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
bool "Use ioctl names rather than hex values in error messages"
default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
help
Use ioctl names rather than hex values in error messages
(e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
saves about 1400 bytes.
config BUSYBOX_CONFIG_FEATURE_HWIB
bool "Support infiniband HW"
default BUSYBOX_DEFAULT_FEATURE_HWIB
help
Support for printing infiniband addresses in
network applets.
endmenu
|