summaryrefslogtreecommitdiff
path: root/apps/nshlib/Kconfig
blob: 92bc83cfd05817664309dcd3b656aeb289fefbdd (plain) (blame)
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
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

config NSH_LIBRARY
	bool "NSH Library"
	default n
	select SYSTEM_READLINE
	---help---
		Build the NSH support library.  This is used, for example, by examples/nsh
		in order to implement the full NuttShell (NSH).

if NSH_LIBRARY
config NSH_BUILTIN_APPS
	bool "Enable built-in applications"
	default n
	depends on BUILTIN
	---help---
		Support external registered, "built-in" applications that can be
		executed from the NSH command line (see apps/README.txt for
		more information).  This options requires support for builtin
		applications (BUILTIN).

config NSH_FILE_APPS
	bool "Enable execution of program files"
	default n
	depends on LIBC_EXECFUNCS
	---help---
		Support execution of program files residing within a file
		system.  This options requires support for the posix_spawn()
		interface (LIBC_EXECFUNCS).

menu "Disable Individual commands"

config NSH_DISABLE_BASE64DEC
	bool "Disable base64dec"
	default n
	depends on NETUTILS_CODECS && CODECS_BASE64

config NSH_DISABLE_BASE64ENC
	bool "Disable base64enc"
	default n
	depends on NETUTILS_CODECS && CODECS_BASE64

config NSH_DISABLE_CAT
	bool "Disable cat"
	default n

config NSH_DISABLE_CD
	bool "Disable cd"
	default n

config NSH_DISABLE_CP
	bool "Disable cp"
	default n

config NSH_DISABLE_DD
	bool "Disable dd"
	default n

config NSH_DISABLE_ECHO
	bool "Disable echo"
	default n

config NSH_DISABLE_EXEC
	bool "Disable exec"
	default n

config NSH_DISABLE_EXIT
	bool "Disable exit"
	default n

config NSH_DISABLE_FREE
	bool "Disable free"
	default n

config NSH_DISABLE_GET
	bool "Disable get"
	default n

config NSH_DISABLE_HELP
	bool "Disable help"
	default n

config NSH_DISABLE_HEXDUMP
	bool "Disable hexdump"
	default n

config NSH_DISABLE_IFCONFIG
	bool "Disable ifconfig"
	default n

config NSH_DISABLE_KILL
	bool "Disable kill"
	default n

config NSH_DISABLE_LOSETUP
	bool "Disable losetup"
	default n

config NSH_DISABLE_LS
	bool "Disable ls"
	default n

config NSH_DISABLE_MB
	bool "Disable mb"
	default n

config NSH_DISABLE_MD5
	bool "Disable md5"
	default n
	depends on NETUTILS_CODECS && CODECS_HASH_MD5

config NSH_DISABLE_MKDIR
	bool "Disable mkdir"
	default n

config NSH_DISABLE_MKFATFS
	bool "Disable mkfatfs"
	default n

config NSH_DISABLE_MKFIFO
	bool "Disable mkfifo"
	default n

config NSH_DISABLE_MKRD
	bool "Disable mkrd"
	default n

config NSH_DISABLE_MH
	bool "Disable mh"
	default n

config NSH_DISABLE_MOUNT
	bool "Disable mount"
	default n

config NSH_DISABLE_MW
	bool "Disable mw"
	default n

config NSH_DISABLE_NSFMOUNT
	bool "Disable nfsmount"
	default n

config NSH_DISABLE_PS
	bool "Disable ps"
	default n

config NSH_DISABLE_PING
	bool "Disable ping"
	default n

config NSH_DISABLE_PUT
	bool "Disable put"
	default n

config NSH_DISABLE_PWD
	bool "Disable pwd"
	default n

config NSH_DISABLE_RM
	bool "Disable rm"
	default n

config NSH_DISABLE_RMDIR
	bool "Disable rmdir"
	default n

config NSH_DISABLE_SET
	bool "Disable set"
	default n

config NSH_DISABLE_SH
	bool "Disable sh"
	default n

config NSH_DISABLE_SLEEP
	bool "Disable sleep"
	default n

config NSH_DISABLE_TEST
	bool "Disable test"
	default n

config NSH_DISABLE_UMOUNT
	bool "Disable umount"
	default n

config NSH_DISABLE_UNSET
	bool "Disable unset"
	default n

config NSH_DISABLE_URLDECODE
	bool "Disable urldecode"
	default n
	depends on NETUTILS_CODECS && CODECS_URLCODE

config NSH_DISABLE_URLENCODE
	bool "Disable urlencode"
	default n
	depends on NETUTILS_CODECS && CODECS_URLCODE

config NSH_DISABLE_USLEEP
	bool "Disable usleep"
	default n

config NSH_DISABLE_WGET
	bool "Disable wget"
	default n

config NSH_DISABLE_XD
	bool "Disable xd"
	default n

endmenu

config NSH_CODECS_BUFSIZE
	int "File buffer size used by CODEC commands"
	default 128

config NSH_FILEIOSIZE
	int "NSH I/O buffer size"
	default 1024
	---help---
		Size of a static I/O buffer used for file access (ignored if
		there is no filesystem). Default is 1024.

config NSH_STRERROR
	bool "Use strerror()"
	default n
	depends on LIBC_STRERROR
	---help---
		strerror(errno) makes more readable output but strerror() is
		very large and will not be used unless this setting is 'y'
		This setting depends upon the strerror() having been enabled
		with LIBC_STRERROR.

config NSH_LINELEN
	int "Max command line length"
	default 80
	---help---
		The maximum length of one command line and of one output line.
		Default: 80

config NSH_NESTDEPTH
	int "Maximum command nesting"
	default 3
	---help---
		The maximum number of nested if-then[-else]-fi sequences that
		are permissable.  Default: 3

config NSH_DISABLESCRIPT
	bool "Disable script support"
	default n
	---help---
		This can be set to 'y' to suppress support for scripting.  This
		setting disables the 'sh', 'test', and '[' commands and the
		if-then[-else]-fi construct.  This would only be set on systems
		where a minimal footprint is a necessity and scripting is not.

config NSH_DISABLEBG
	bool "Disable background commands"
	default n
	---help---
		This can be set to 'y' to suppress support for background
		commands.  This setting disables the 'nice' command prefix and
		the '&' command suffix.  This would only be set on systems
		where a minimal footprint is a necessity and background command
		execution is not.

config NSH_MMCSDMINOR
	int "MMC/SD minor device number"
	default 0
	---help---
		If the architecture supports an MMC/SD slot and if the NSH
		architecture specific logic is present, this option will provide
		the MMC/SD minor number, i.e., the MMC/SD block driver will
		be registered as /dev/mmcsdN where N is the minor number.
		Default is zero.

config NSH_ROMFSETC
	bool "Support ROMFS start-up script"
	default n
	depends on FS_ROMFS
	---help---
		Mount a ROMFS filesystem at /etc and provide a startup script
		at /etc/init.d/rcS.  The default startup script will mount
		a FAT FS RAMDISK at /tmp but the logic is easily extensible.

endif

if NSH_ROMFSETC

config NSH_ROMFSRC
	bool "Support ROMFS login script"
	default n
	---help---
		The ROMFS start-up script will be executed excactly once.  For
		simple, persistence consoles (like a serial console).  But with
		other other kinds of consoles, there may be multiple, transient
		sessions (such as Telnet and USB consoles).  In these cases, you
		may need another script that is executed at the beginning of each
		session.  Selecting this option enables support for such a login
		script

config NSH_ROMFSMOUNTPT
	string "ROMFS mount point"
	default "/etc"
	---help---
		The default mountpoint for the ROMFS volume is /etc, but that
		can be changed with this setting.  This must be a absolute path
		beginning with '/'.

config NSH_INITSCRIPT
	string "Relative path to startup script"
	default "init.d/rcS"
	---help---
		This is the relative path to the startup script within the mountpoint.
		The default is init.d/rcS.  This is a relative path and must not
		start with '/'.

config NSH_RCSCRIPT
	string "Relative path to login script"
	default ".nshrc"
	depends on NSH_ROMFSRC
	---help---
		This is the relative path to the login script within the mountpoint.
		The default is .nshrc.  This is a relative path and must not
		start with '/'.

config NSH_ROMFSDEVNO
	int "ROMFS block device minor number"
	default 0
	---help---
		This is the minor number of the ROMFS block device.  The default is 
		'0' corresponding to /dev/ram0.

config NSH_ROMFSSECTSIZE
	int "ROMFS sector size"
	default 64
	---help---
		This is the sector size to use with the ROMFS volume.  Since the
		default volume is very small, this defaults to 64 but should be
		increased if the ROMFS volume were to be become large.  Any value
		selected must be a power of 2.

config NSH_FATDEVNO
	int "FAT block device minor number"
	default 0
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the minor number of the FAT
		FS block device.  The default is '1' corresponding to /dev/ram1.

config NSH_FATSECTSIZE
	int "FAT sector size"
	default 512
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the sector size use with the
		FAT FS. Default is 512.

config NSH_FATNSECTORS
	int "FAT number of sectors"
	default 1024
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the number of sectors to use
		with the FAT FS.  Defualt is 1024.  The amount of memory used by the
		FAT FS will be NSH_FATSECTSIZE * NSH_FATNSECTORS bytes.

config NSH_FATMOUNTPT
	string "FAT mount point"
	default "/tmp"
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the location where the FAT
		FS will be mounted.  Default is "/tmp".

endif

if NSH_LIBRARY
config NSH_CONSOLE
	bool "Use console"
	default y
	---help---
		If NSH_CONSOLE is set to 'y', then a character driver
		console front-end is selected (/dev/console).

		Normally, the serial console device is a UART and RS-232
		interface.  However, if USBDEV is defined, then a USB
		serial device may, instead, be used if the one of
		the following are defined:

		PL2303 and PL2303_CONSOLE - Set up the Prolifics PL2303
		emulation as a console device at /dev/console.

		CDCACM and CDCACM_CONSOLE - Set up the CDC/ACM serial
		device as a console device at dev/console.

		NSH_USBCONSOLE and NSH_USBCONDEV - Sets up some other USB
		serial device as the NSH console (not necessarily dev/console).

config NSH_USBCONSOLE
	bool "Use a USB console"
	default n
	depends on NSH_CONSOLE && USBDEV
	---help---
		If defined, then the an arbitrary USB device may be used
		to as the NSH console.  In this case, NSH_USBCONDEV must
		be defined to indicate which USB device to use as the
		console.

config NSH_USBCONDEV
	string "USB console device"
	default "/dev/ttyACM0"
	depends on NSH_USBCONSOLE
	---help---
		If NSH_USBCONSOLE is set to 'y', then NSH_USBCONDEV must
		also be set to select the USB device used to support the
		NSH console.   This should be set to the quoted name of a
		readable/write-able USB driver such as:
		NSH_USBCONDEV="/dev/ttyACM0".

config USBDEV_MINOR
	int "USB console device minor number"
	default 0
	depends on NSH_USBCONSOLE
	---help---
		If there are more than one USB devices, then a USB device
		minor number may also need to be provided. Default: 0

comment "USB Trace Support"
config NSH_USBDEV_TRACE
	bool "Enable Builtin USB Trace Support"
	default n
	depends on USBDEV && (DEBUG || USBDEV_TRACE)
	---help---
		Enable builtin USB trace support in NSH.  If selected, buffered USB
		trace data will be presented each time a command is provided to NSH.
		The USB trace data will be sent to the console unless DEBUG set or
		unless you are using a USB console.  In those cases, the trace data
		will go to the SYSLOG device.

		If not enabled, the USB trace support can be provided by external
		logic such as apps/system/usbmonitor.

if NSH_USBDEV_TRACE

config NSH_USBDEV_TRACEINIT
	bool "Show initialization events"
	default n
	---help---
		Show initialization events

config NSH_USBDEV_TRACECLASS
	bool "Show class driver events"
	default n
	---help---
		Show class driver events

config NSH_USBDEV_TRACETRANSFERS
	bool "Show data transfer events"
	default n
	---help---
		Show data transfer events

config NSH_USBDEV_TRACECONTROLLER
	bool "Show controller events"
	default n
	---help---
		Show controller events

config NSH_USBDEV_TRACEINTERRUPTS
	bool "Show interrupt-related events"
	default n
	---help---
		Show interrupt-related events

endif

config NSH_CONDEV
	bool "Default console device"
	default "/dev/console"
	depends on NSH_CONSOLE && !NSH_USBCONSOLE
	---help---
		If NSH_CONSOLE is set to 'y', then NSH_CONDEV
		may also be set to select the serial device used to support
		the NSH console.   This should be set to the quoted name of a
		readable/write-able character driver such as:
		NSH_CONDEV="/dev/ttyS1". This is useful, for example,
		to separate the NSH command line from the system console when
		the system console is used to provide debug output.  Default:
		stdin and stdout (probably "/dev/console")

		NOTE: When any other device other than /dev/console is used
		for a user interface, (1) linefeeds (\n) will not be expanded to
		carriage return / linefeeds (\r\n).  You will need to set
		your terminal program to account for this.  And (2) input is
		not automatically echoed so you will have to turn local echo on.

config NSH_ARCHINIT
	bool "Have architecture-specific initialization"
	default n
	---help---
		Set if your board provides architecture specific initialization
		via the board-specific function nsh_archinitialize().  This
		function will be called early in NSH initialization to allow
		board logic to do such things as configure MMC/SD slots.

config NSH_TELNET
	bool "Use Telnet console"
	default n
	depends on NET && NET_TCP
	---help---
		If NSH_TELNET is set to 'y', then a TELENET
		server front-end is selected.  When this option is provided,
		you may log into NuttX remotely using telnet in order to
		access NSH.

endif

if NSH_TELNET
config NSH_TELNETD_PORT
	int "Telnet port number"
	default 23
	---help---
		The telnet daemon will listen on this TCP port number for connections.
		Default: 23

config NSH_TELNETD_DAEMONPRIO
	int "Telnet daemon priority"
	default 100
	---help---
		Priority of the Telnet daemon. Default: 100

config NSH_TELNETD_DAEMONSTACKSIZE
	int "Telnet daemon stack size"
	default 2048
	---help---
		Stack size allocated for the Telnet daemon. Default: 2048

config NSH_TELNETD_CLIENTPRIO
	int "Telnet client priority"
	default 100
	---help---
		Priority of the Telnet client. Default: 100

config NSH_TELNETD_CLIENTSTACKSIZE
	int "Telnet client stack size"
	default 2048
	---help---
		Stack size allocated for the Telnet client. Default: 2048

config NSH_IOBUFFER_SIZE
	int "Telnet I/O buffer size"
	default 512
	---help---
		Determines the size of the I/O buffer to use for sending/
		receiving TELNET commands/reponses.  Default: 512

config NSH_TELNET_LOGIN
	bool "Telnet Login"
	default n
	---help---
		If defined, then the Telnet user will be required to provide a
		username and password to start the NSH shell.

if NSH_TELNET_LOGIN

config NSH_TELNET_USERNAME
	string "Login Username"
	default "admin"
	---help---
		Login user name.  Default: "admin"

config NSH_TELNET_PASSWORD
	string "Login Password"
	default "nuttx"
	---help---
		Login password:  Default: "nuttx"

config NSH_TELNET_FAILCOUNT
	int "Login Retry Count"
	default 3
	---help---
		Number of login retry attempts.

endif
endif

config NSH_DHCPC
	bool "Use DHCP to get IP address"
	default n
	depends on NSH_LIBRARY && NET && NET_UDP && NET_BROADCAST
	---help---
		Obtain the IP address via DHCP.

		Per RFC2131 (p. 9), the DHCP client must be prepared to receive DHCP
		messages of up to 576 bytes (excluding Ethernet, IP, or UDP headers and FCS).

config NSH_IPADDR
	hex "Target IP address"
	default 0xa0000002
	depends on NSH_LIBRARY && NET && !NSH_DHCPC
	---help---
		If NSH_DHCPC is NOT set, then the static IP address must be provided.
		This is a 32-bit integer value in host order.  So, as an example,
		0x10000002 would be 10.0.0.2.

config NSH_DRIPADDR
	hex "Router IP address"
	default 0xa0000001
	depends on NSH_LIBRARY && NET && !NSH_DHCPC
	---help---
		Default router IP address (aka, Gateway).  This is a 32-bit integer
		value in host order.  So, as an example, 0x10000001 would be 10.0.0.1.

config NSH_NETMASK
	hex "Network mask"
	default 0xffffff00
	depends on NSH_LIBRARY && NET && !NSH_DHCPC
	---help---
		Network mask.  This is a 32-bit integer value in host order.  So, as
		an example, 0xffffff00 would be 255.255.255.0.

config NSH_DNS
	bool "Use DNS"
	default n
	depends on NSH_LIBRARY && NET && NET_UDP && NET_BROADCAST
	---help---
		Configure to use a DNS.

config NSH_DNSIPADDR
	hex "DNS IP address"
	default 0xa0000001
	depends on NSH_DNS
	---help---
		Configure the DNS address.  This is a 32-bit integer value in host
		order.  So, as an example, 0xa0000001 would be 10.0.0.1.

config NSH_NOMAC
	bool "Hardware has no MAC address"
	default n
	depends on NSH_LIBRARY && NET
	---help---
		Set if your ethernet hardware has no built-in MAC address.
		If set, a bogus MAC will be assigned.

config NSH_MAX_ROUNDTRIP
	int "Max Ping Round-Trip (DSEC)"
	default 20
	depends on NSH_LIBRARY && NET && !NSH_DISABLE_PING
	---help---
		This is the maximum round trip for a response to a ICMP ECHO request.
		It is in units of deciseconds.  The default is 20 (2 seconds).