# # # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # menu "NSH Library" config NSH_LIBRARY bool "NSH Library" default n select NETUTILS_NETLIB if NET select LIBC_NETDB if NET select READLINE_HAVE_EXTMATCH ---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 menuconfig NSH_MOTD bool "Message of the Day (MOTD)" default n ---help--- Support a user-provided Message of the Day (MOTD) that will be presented each time new NSH session is opened. if NSH_MOTD config NSH_PLATFORM_MOTD bool "Platform MOTD" default n ---help--- If this option is selected, the NSH will call into platform-specific logic in order to get the MOTD. The function prototype for this call is: void platform_motd(FAR char *buffer, size_t buflen); Where buffer is the location to return the MOTD and buflen is the length of that buffer. The maximum size of the buffer is detemined by NSH_FILEIOSIZE. An appopriate location for the implementation of platform_motd would be within apps/platform/. One newline will be inserted after the platform-supplied message. platform_motd() is prototyped and described in apps/include/nshlib/nshlib.h which may be included like: #include "nshlib/nshlib.h" config NSH_MOTD_STRING string "MOTD String" default "No MOTD string provided" depends on !NSH_PLATFORM_MOTD ---help--- If NSH_MOTD is selected, but NSH_PLATFORM_MOTD is not, then a fixed MOTD string will be used. That string is provided by this selection. One newline will be inserted after supplied MOTD message. endif # NSH_MOTD menu "Command Line Configuration" choice prompt "Command Line Editor" default NSH_READLINE if DEFAULT_SMALL default NSH_CLE if !DEFAULT_SMALL config NSH_READLINE bool "Minimal readline()" select SYSTEM_READLINE ---help--- Selects the minimal implementation of readline(). This minimal implementation provides on backspace for command line editing. config NSH_CLE bool "Command Line Editor" select SYSTEM_CLE ---help--- Selects the more extensive, EMACS-like command line editor. Select this option only if (1) you don't mind a modest increase in the FLASH footprint, and (2) you work with a terminal that supports extensive VT100 editing commands. Selecting this option will add probably 1.5-2KB to the FLASH footprint. endchoice config NSH_LINELEN int "Max command line length" default 64 if DEFAULT_SMALL default 80 if !DEFAULT_SMALL ---help--- The maximum length of one command line and of one output line. Default: 64/80 config NSH_DISABLE_SEMICOLON bool "Disable multiple commands per line" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL ---help--- By default, you can enter multiple NSH commands on a line with each command separated by a semicolon. You can disable this feature to save a little memory on FLASH challenged platforms. config NSH_CMDPARMS bool "Enable commands as parameters" default n if DEFAULT_SMALL default y if !DEFAULT_SMALL depends on !DISABLE_MOUNTPOINT ---help--- If selected, then the output from commands, from file applications, and from NSH built-in commands can be used as arguments to other commands. The entity to be executed is identified by enclosing the command line in back quotes. For example, set FOO `myprogram $BAR` Will execute the program named myprogram passing it the value of the environment variable BAR. The value of the environment variable FOO is then set output of myprogram on stdout. Because this feature commits significant resources, it is disabled by default. config NSH_MAXARGUMENTS int "Maximum number of command arguments" default 6 ---help--- The maximum number of NSH command arguments. Default: 6 config NSH_ARGCAT bool "Concatenation of argument strings" default n if DEFAULT_SMALL default y if !DEFAULT_SMALL ---help--- Support concatenation of strings with environment variables or command output. For example: set FOO XYZ set BAR 123 set FOOBAR ABC_${FOO}_${BAR} would set the environment variable FOO to XYZ, BAR to 123 and FOOBAR to ABC_XYZ_123. If NSH_ARGCAT is not selected, then a slightly small FLASH footprint results but then also only simple environment variables like $FOO can be used on the command line. 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_DISABLEBG bool "Disable background commands" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL ---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. endmenu # Command Line Configuration 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_ADDROUTE bool "Disable addroute" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_ARP bool "Disable arp" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on NET_ARP config NSH_DISABLE_BASE64DEC bool "Disable base64dec" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on NETUTILS_CODECS && CODECS_BASE64 config NSH_DISABLE_BASE64ENC bool "Disable base64enc" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on NETUTILS_CODECS && CODECS_BASE64 config NSH_DISABLE_BASENAME bool "Disable basename" default y if DEFAULT_SMALL || NSH_DISABLESCRIPT default n if !DEFAULT_SMALL && !NSH_DISABLESCRIPT 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_CMP bool "Disable cmp" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_DATE bool "Disable date" default n if RTC default y if !RTC config NSH_DISABLE_DD bool "Disable dd" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_DF bool "Disable df" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_DELROUTE bool "Disable delroute" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_DIRNAME bool "Disable dirname" default y if DEFAULT_SMALL || NSH_DISABLESCRIPT default n if !DEFAULT_SMALL && !NSH_DISABLESCRIPT config NSH_DISABLE_ECHO bool "Disable echo" default n config NSH_DISABLE_EXEC bool "Disable exec" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_EXIT bool "Disable exit" default y if DEFAULT_SMALL && !NSH_TELNET default n if !DEFAULT_SMALL || NSH_TELNET config NSH_DISABLE_FREE bool "Disable free" default n config NSH_DISABLE_GET bool "Disable get" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_HELP bool "Disable help" default n config NSH_DISABLE_HEXDUMP bool "Disable hexdump" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_IFCONFIG bool "Disable ifconfig" default y if !FS_PROCFS || FS_PROCFS_EXCLUDE_NET default n if FS_PROCFS && !FS_PROCFS_EXCLUDE_NET config NSH_DISABLE_IFUPDOWN bool "Disable ifup/down" default y if !FS_PROCFS || FS_PROCFS_EXCLUDE_NET default n if FS_PROCFS && !FS_PROCFS_EXCLUDE_NET config NSH_DISABLE_KILL bool "Disable kill" default n config NSH_DISABLE_LOSETUP bool "Disable losetup" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_LOSMART bool "Disable losmart" default y if DEFAULT_SMALL || !MTD_SMART default n if !DEFAULT_SMALL && MTD_SMART config NSH_DISABLE_LN bool "Disable ln" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on PSEUDOFS_SOFTLINKS 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 y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on NETUTILS_CODECS && CODECS_HASH_MD5 config NSH_DISABLE_MKDIR bool "Disable mkdir" default n config NSH_DISABLE_MKFATFS bool "Disable mkfatfs" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on FS_FAT config NSH_DISABLE_MKFIFO bool "Disable mkfifo" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on PIPES config NSH_DISABLE_MKRD bool "Disable mkrd" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_MKSMARTFS bool "Disable mksmartfs" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on FS_SMARTFS && FSUTILS_MKSMARTFS config NSH_DISABLE_MH bool "Disable mh" default n config NSH_DISABLE_MODCMDS bool "Disable modules commands (insmod, rmmod, lsmod)" default n depends on MODULE config NSH_DISABLE_MOUNT bool "Disable mount" default n config NSH_DISABLE_MV bool "Disable mv" default n config NSH_DISABLE_MW bool "Disable mw" default n config NSH_DISABLE_NSFMOUNT bool "Disable nfsmount" default n depends on NFS config NSH_DISABLE_NSLOOKUP bool "Disable nslookup" default n depends on LIBC_NETDB && NETDB_DNSCLIENT config NSH_DISABLE_PASSWD bool "Disable passwd" default y depends on NSH_LOGIN_PASSWD && FS_WRITABLE && !FSUTILS_PASSWD_READONLY config NSH_DISABLE_POWEROFF bool "Disable poweroff" default n if !DEFAULT_SMALL && !BOARDCTL_RESET default y if DEFAULT_SMALL || BOARDCTL_RESET depends on BOARDCTL_POWEROFF config NSH_DISABLE_PRINTF bool "Disable printf" default y config NSH_DISABLE_PS bool "Disable ps" default y if !FS_PROCFS || FS_PROCFS_EXCLUDE_PROCESS default n if FS_PROCFS && !FS_PROCFS_EXCLUDE_PROCESS config NSH_DISABLE_PSSTACKUSAGE bool "Disable ps stack usage" depends on STACK_COLORATION && !NSH_DISABLE_PS default n ---help--- Disable to save space and not pull in floating point routines config NSH_DISABLE_PING bool "Disable ping" default n depends on NET_ICMP config NSH_DISABLE_PUT bool "Disable put" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_PWD bool "Disable pwd" default n config NSH_DISABLE_READLINK bool "Disable readlink" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on PSEUDOFS_SOFTLINKS config NSH_DISABLE_REBOOT bool "Disable reboot" default n if !DEFAULT_SMALL && !BOARDCTL_POWEROFF default y if DEFAULT_SMALL || BOARDCTL_POWEROFF depends on BOARDCTL_RESET 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_SHUTDOWN bool "Disable shutdown" default n if !DEFAULT_SMALL && BOARD_POWEROFF && BOARD_RESET default y if DEFAULT_SMALL || !BOARD_POWEROFF || !BOARD_RESET depends on BOARDCTL_POWEROFF || BOARDCTL_RESET config NSH_DISABLE_SLEEP bool "Disable sleep" default n config NSH_DISABLE_TIME bool "Disable time" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_TEST bool "Disable test" default n config NSH_DISABLE_UMOUNT bool "Disable umount" default n config NSH_DISABLE_UNAME bool "Disable uname" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_UNSET bool "Disable unset" default n config NSH_DISABLE_URLDECODE bool "Disable urldecode" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on NETUTILS_CODECS && CODECS_URLCODE config NSH_DISABLE_URLENCODE bool "Disable urlencode" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL depends on NETUTILS_CODECS && CODECS_URLCODE config NSH_DISABLE_USERADD bool "Disable useradd" default y depends on NSH_LOGIN_PASSWD && FS_WRITABLE && !FSUTILS_PASSWD_READONLY config NSH_DISABLE_USERDEL bool "Disable userdel" default y depends on NSH_LOGIN_PASSWD && FS_WRITABLE && !FSUTILS_PASSWD_READONLY config NSH_DISABLE_USLEEP bool "Disable usleep" default n config NSH_DISABLE_WGET bool "Disable wget" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL config NSH_DISABLE_XD bool "Disable xd" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL endmenu if MMCSD config NSH_MMCSDMINOR int "MMC/SD minor number" default 0 ---help--- If board-specific NSH start-up logic needs to mount an MMC/SD device, then the setting should be provided to identify the MMC/SD minor device number (i.e., the N ini /dev/mmcsdN). Default 0 config NSH_MMCSDSLOTNO int "MMC/SD slot number" default 0 ---help--- If board-specific NSH start-up supports more than one MMC/SD slot, then this setting should be provided to indicate which slot should be used. Default: 0. config NSH_MMCSDSPIPORTNO int "MMC/SD SPI device number" default 0 depends on MMCSD_SPI ---help--- If board-specif NSH start-up logic will mount an SPI-based MMC/SD volume, then this setting may be needed to tell the board logic which SPI bus to use. Default: 0 (meaning is board-specific). endif # MMCSD menu "Configure Command Options" config NSH_CMDOPT_DF_H bool "df: Enable [-h] man-readable format" default n if DEFAULT_SMALL default y if !DEFAULT_SMALL depends on !NSH_DISABLE_DF config NSH_CMDOPT_DD_STATS bool "dd: Support transfer statistics" default n depends on !NSH_DISABLE_DD config NSH_CODECS_BUFSIZE int "File buffer size used by CODEC commands" default 128 config NSH_CMDOPT_HEXDUMP bool "hexdump: Enable 'skip' and 'count' parameters" default n if DEFAULT_SMALL default y if !DEFAULT_SMALL depends on !NSH_DISABLE_HEXDUMP config NSH_PROC_MOUNTPOINT string "procfs mountpoint" default "/proc" depends on FS_PROCFS endmenu config NSH_FILEIOSIZE int "NSH I/O buffer size" default 512 if DEFAULT_SMALL default 1024 if !DEFAULT_SMALL ---help--- Size of a static I/O buffer used for file access (ignored if there is no filesystem). Default is 512/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. menu "Scripting Support" config NSH_DISABLESCRIPT bool "Disable script support" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL ---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. if !NSH_DISABLESCRIPT config NSH_DISABLE_ITEF bool "Disable if-then-else-fi" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL ---help--- This can be set to 'y' to suppress support for if-then-else-fi sequences in scripts. This would only be set on systems where some minimal scripting is required but if-then-else-fi is not. config NSH_DISABLE_LOOPS bool "Disable loops" default y if DEFAULT_SMALL default n if !DEFAULT_SMALL ---help--- This can be set to 'y' to suppress support for while-do-done and until-do-done sequences in scripts. This would only be set on systems where some minimal scripting is required but looping is not. endif # !NSH_DISABLESCRIPT 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. 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. choice prompt "ROMFS header location" default NSH_DEFAULTROMFS config NSH_DEFAULTROMFS bool "Default ROMFS header path" ---help--- Selects the default header located in the source directory of the NSH library. config NSH_ARCHROMFS bool "Architecture-specific ROMFS path" ---help--- Enable this option to provide an architecture-specific ROMFS header at arch//nsh_romfsimg.h. Note that this header will be linked (or copied) from nuttx/configs//include and should be stored at that location in the nuttx configs/ sub-directory. config NSH_CUSTOMROMFS bool "Custom ROMFS header path" ---help--- Enable this option to provide a custom ROMFS header. The path to the header file can be specified in the option "Custom ROMFS header file". endchoice if NSH_CUSTOMROMFS config NSH_CUSTOMROMFS_HEADER string "Custom ROMFS header file path" default "" ---help--- Specifies the path to the custom ROMFS header file. This must be either a full path or a path relative to one of the include file search paths provided in your CFLAGS. endif #NSH_CUSTOMROMFS config NSH_FATDEVNO int "FAT block device minor number" default 1 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 # NSH_ROMFSETC endmenu # Scripting Support menu "Console Configuration" 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 serial console" default n depends on LIB_BOARDCTL && NSH_CONSOLE && USBDEV && (CDCACM || PL2303) select BOARDCTL_USBDEVCTRL ---help--- If defined, then the an arbitrary USB serial device may be used to as the NSH console. In this case, NSH_USBCONDEV must be defined to indicate which USB serial device to use as the console. if NSH_USBCONSOLE config NSH_USBCONDEV string "USB serial console device" default "/dev/ttyACM0" if CDCACM default "/dev/ttyUSB0" if !CDCACM ---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 read-/write-able USB driver. Default: "/dev/ttyACM0". config USBDEV_MINOR int "USB serial console device minor number" default 0 ---help--- If there are more than one USB devices, then a USB device minor number may also need to be provided. Default: 0 endif # NSH_USBCONSOLE config NSH_ALTCONDEV bool "Alternative console device" default n depends on NSH_CONSOLE && !NSH_USBCONSOLE && !NSH_TELNET ---help--- If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may also be selected to enable use of an alternate character device to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected, then NSH_CONDEV must be set to select the serial device used to support the NSH console. This may be 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 1: 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. NOTE 2: This option forces the console of all sessions to use NSH_CONDEV. Hence, this option only makes sense for a system that supports only a single session. This option is, in particular, incompatible with Telnet sessions because each Telnet session must use a different console device. if NSH_ALTCONDEV config NSH_CONDEV string "Alternative console device name" default "/dev/console" ---help--- If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may also be selected to enable use of an alternate character device to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected, then NSH_CONDEV must 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 1: 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. NOTE 2: This option forces the console of all sessions to use NSH_CONDEV. Hence, this option only makes sense for a system that supports only a single session. This option is, in particular, incompatible with Telnet sessions because each Telnet session must use a different console device. endif # NSH_ALTCONDEV config NSH_USBKBD bool "Use USB keyboard input" default n depends on NSH_CONSOLE && USBHOST_HIDKBD && !NSH_USBCONSOLE ---help--- Normally NSH uses the same device for stdin, stdout, and stderr. By default, that device is /dev/console. If this option is selected, then NSH will use a USB HID keyboard for stdin. In this case, the keyboard is connected directly to the target (via a USB host interface) and the data from the keyboard will drive NSH. NSH output (stdout and stderr) will still go to /dev/console. if NSH_USBKBD config NSH_USBKBD_DEVNAME string "USB keyboard device" default "/dev/kbda" ---help--- If NSH_USBKBD is set to 'y', then NSH_USBKBD_DEVNAME must also be set to select the USB keyboard device used to support the NSH console input. This should be set to the quoted name of a read- able keyboard driver. Default: "/dev/kbda". endif #NSH_USBKBD endmenu # Console Configuration menu "USB Device Trace Support" depends on USBDEV && (DEBUG_FEATURES || USBDEV_TRACE) config NSH_USBDEV_TRACE bool "Enable Builtin USB Trace Support" default n ---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 CONFIG_DEBUG_FEATURES 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 nuttx/drivers/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 # NSH_USBDEV_TRACE endmenu # USB Device Trace Support config NSH_ARCHINIT bool "Have architecture-specific initialization" default n select LIB_BOARDCTL ---help--- Set if your board provides architecture specific initialization via the board-interface function boardctl(). The boardctl() function will be called early in NSH initialization to allow board logic to do such things as configure MMC/SD slots. menu "Networking Configuration" depends on NET config NSH_NETINIT bool "Network initialization" default y depends on NET ---help--- This option enables/disables all network initialization in NSH. if NSH_NETINIT config NSH_NETLOCAL bool "Local network initialization" default n ---help--- If this option is selected, then NSH will only initialize the local attributes of the network: The MAC address if needed and any IP addresses as needed. More importantly, it will not do the following: - It will not bring the network up. That can be done later with the NSH ifup command. - It will not associate any wireless devices to an access point. - It will not attempt to obtain an IP address if DHCPC is selected. This may be done later from the NSH command line with the apps/system/dhcpc 'renew' command. - It will not start the NTPC daemon. This may be done later from the NSH command line with the apps/system/ntpc 'ntpcstart' command. This option permits you to divide the network configuration into two parts: The local configuration of the network device and the dynamic configuration of the device in the network. This may be important in an environment when, for example, you need to manually scan for available access points and associate the wireless driver with an access point. config NSH_NETINIT_THREAD bool "Network initialization thread" default n depends on !DISABLE_PTHREAD && !NSH_NETLOCAL ---help--- NSH is brought up through a series of sequential initialization steps. This includes networking. If the network is available on reset, then there is really no issue. Negotiating the link will take only a second or so and the delay to the NSH prompt is normally acceptable. But if there is no network connected, then the start-up delay can be very long depending upon things like the particular PHY, driver timeout delay times and number of retries. A failed negotiation can potentially take a very long time, perhaps as much as a minute... Long enough that you might think that the board would never come up! One solution is enabled by this option. If NSH_NETINIT_THREAD is selected, the network bring-up will occur in parallel with NSH on a separate thread. In this case, the NSH prompt will occur immediately with the network becoming available some time later (if if all). This thread will terminate once it successfully initializes the network NOTES: If no network is connected, the network bring-up will fail and the network initialization thread will simply exit. There are no retries and no mechanism to know if the network initialization was successful. Furthermore, there is currently no support for detecting loss of network connection. Lots of things to do! if NSH_NETINIT_THREAD config NSH_NETINIT_MONITOR bool "Monitor link state" default n depends on ARCH_PHY_INTERRUPT && NETDEV_PHY_IOCTL && NET_UDP && !DISABLE_SIGNALS ---help--- By default the net initialization thread will bring-up the network then exit, freeing all of the resources that it required. This is a good behavior for systems with limited memory. If this option is selected, however, then the network initialization thread will persist forever; it will monitor the network status. In the event that the network goes down (for example, if a cable is removed), then the thread will monitor the link status and attempt to bring the network back up. In this case the resources required for network initialization are never released. if NSH_NETINIT_MONITOR config NSH_NETINIT_SIGNO int "Notification signal number" default 18 ---help--- The network monitor logic will receive signals when there is any change in the link status. This setting may be used to customize that signal number in order to avoid conflicts. config NSH_NETINIT_RETRYMSEC int "Network bring-up retry period (msec)" default 2000 ---help--- When the network is down, the initialization thread will periodically try to bring the network up. This can be a time consuming operation so is done only periodically with that period specified by this selection in milliseconds. endif # NSH_NETINIT_MONITOR config NSH_NETINIT_THREAD_STACKSIZE int "Network initialization thread stack size" default 1568 config NSH_NETINIT_THREAD_PRIORITY int "Network initialization thread priority" default 80 ---help--- This should be set to a priority lower than most tasks. The network PHY polling is CPU intensive and can interfere with the usability of of threads competing for CPU bandwidth. endif # NSH_NETINIT_THREAD config NSH_NETINIT_DEBUG bool "Network init debug" default n depends on DEBUG_FEATURES ---help--- Normally debug output is controlled by DEBUG_NET. However, that will generate a LOT of debug output, especially if CONFIG_DEBUG_INFO is also selected. This option is intended to force vervose debug output from the NSH network initialization logic even if CONFIG_DEBUG_NET or CONFIG_DEBUG_INFO are not selected. This allows for focused, unit- level debug of the NSH network initialization logic. menu "IP Address Configuration" config NSH_DHCPC bool "Use DHCP to get IP address" default n depends on NETUTILS_DHCPC ---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). if NET_IPv4 comment "IPv4 Addresses" config NSH_IPADDR hex "Target IPv4 address" default 0x0a000002 depends on !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, 0x0a000002 would be 10.0.0.2. config NSH_DRIPADDR hex "Router IPv4 address" default 0x0a000001 ---help--- Default router IP address (aka, Gateway). This is a 32-bit integer value in host order. So, as an example, 0x0a000001 would be 10.0.0.1. config NSH_NETMASK hex "IPv4 Network mask" default 0xffffff00 ---help--- Network mask. This is a 32-bit integer value in host order. So, as an example, 0xffffff00 would be 255.255.255.0. endif # NET_IPv4 if NET_IPv6 && !NET_ICMPv6_AUTOCONF comment "Target IPv6 address" config NSH_IPv6ADDR_1 hex "[0]" default 0xfc00 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the first of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_2 hex "[1]" default 0x0000 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the second of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_3 hex "[2]" default 0x0000 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the third of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_4 hex "[3]" default 0x0000 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the fourth of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_5 hex "[4]" default 0x0000 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the fifth of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_6 hex "[5]" default 0x0000 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the sixth of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_7 hex "[6]" default 0x0000 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the seventh of the 8-values. The default for all eight values is fc00::2. config NSH_IPv6ADDR_8 hex "[7]" default 0x0002 range 0x0 0xffff ---help--- If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be provided. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the last of the 8-values. The default for all eight values is fc00::2. comment "Router IPv6 address" config NSH_DRIPv6ADDR_1 hex "[0]" default 0xfc00 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the first of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_2 hex "[1]" default 0x0000 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the second of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_3 hex "[2]" default 0x0000 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the third of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_4 hex "[3]" default 0x0000 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the fourth of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_5 hex "[4]" default 0x0000 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the fifth of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_6 hex "[5]" default 0x0000 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the sixth of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_7 hex "[6]" default 0x0000 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the seventh of the 8-values. The default for all eight values is fc00::1. config NSH_DRIPv6ADDR_8 hex "[7]" default 0x0001 range 0x0 0xffff ---help--- Default router IP address (aka, Gateway). This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the last of the 8-values. The default for all eight values is fc00::1. comment "IPv6 Network mask" config NSH_IPv6NETMASK_1 hex "[0]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the first of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_2 hex "[1]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the second of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_3 hex "[2]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the third of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_4 hex "[3]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the fourth of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_5 hex "[4]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the fifth of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_6 hex "[5]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the sixth of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_7 hex "[6]" default 0xffff range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the seventh of the 8-values. The default for all eight values is fe00::0. config NSH_IPv6NETMASK_8 hex "[7]" default 0x0000 range 0x0 0xffff ---help--- Network mask. This is a 16-bit integer value in host order. Each of the eight values forming the full IP address must be specified individually. This is the eighth of the 8-values. The default for all eight values is fe00::0. endif #NET_IPv6 && !NET_ICMPv6_AUTOCONF endmenu # IP Address Configuration config NSH_DNS bool "Use DNS" default n depends on NSH_LIBRARY && NETDB_DNSCLIENT ---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. if NSH_NOMAC choice prompt "MAC address selection" default NSH_SWMAC ---help--- If the hardware as no MAC address, then NSH must assign an address to the hardware before it brings the network up. This choice allows you select the source of that MAC address. config NSH_SWMAC bool "Fixed address" ---help--- With this choice, you can assign a fixed MAC address determined by a NuttX configuration option. endchoice # MAC address selection config NSH_MACADDR hex "Fixed MAC address" default 0x00e0deadbeef depends on NSH_SWMAC ---help--- If the hardware has no built-in MAC address and if the NSH_SWMAC option is selected, then the fixed, software-assigned MAC address MAC address must provided with this selection. endif # NSH_NOMAC config NSH_PANID hex "6loWPAN PAN ID" default 0xface depends on NET_6LOWPAN range 0x0000 0xffff ---help--- Select the PAN ID to join upon initialization. menu "WAPI Configuration" depends on NET && WIRELESS_WAPI config NSH_WAPI_STAMODE int "Wireless mode of operation" default 2 range 0 8 ---help--- Mode of operation. See the IW_MODE_* definitions in include/nuttx/wireless/wireless. The default value corresponds to IW_MODE_INFRA config NSH_WAPI_AUTHWPA hex "IW_AUTH_WPA_VERSION value" default 0x00000004 range 0x00000001 0x00000004 ---help--- IW_AUTH_WPA_VERSION values. See the IW_AUTH_WPA_VERSION_* definitions in include/nuttx/wireless/wireless. The default value corresponds to IW_AUTH_WPA_VERSION_WPA2. NOTE that this is a bit-encoded field. The only valid values are 0x00000001, 0x00000002, and 0x00000004 config NSH_WAPI_CIPHERMODE hex "IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values" default 0x00000008 range 0x00000001 0x00000010 ---help--- IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values. See the IW_AUTH_CIPHER_* definitions in include/nuttx/wireless/wireless. The default value corresponds to IW_AUTH_CIPHER_CCMP. NOTE that this is a bit-encoded field. The only valid values are 0x00000001, 0x00000002,0x00000004, ... 0x00000010 config NSH_WAPI_ALG int "Algorithm" default 3 range 0 13 ---help--- Algorithm. See enum wpa_alg_e in apps/include/wireless/wapi.h. The default corresponds to WPA_ALG_CCMP. config NSH_WAPI_SSID string "SSID" default "myApSSID" config NSH_WAPI_PASSPHRASE string "Passprhase" default "mySSIDpassphrase" endmenu # WAPI Configuration endif # NSH_NETINIT 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). endmenu # Networking Configuration" menu "Telnet Configuration" depends on NETUTILS_TELNETD config NSH_TELNET bool "Use Telnet console" default n if DEFAULT_SMALL default y if !DEFAULT_SMALL depends on NETUTILS_TELNETD ---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. 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 endif # NSH_TELNET endmenu # Telnet Configuration config NSH_LOGIN bool default n config NSH_CONSOLE_LOGIN bool "Console Login" default n select NSH_LOGIN ---help--- If defined, then the console user will be required to provide a username and password to start the NSH shell. config NSH_TELNET_LOGIN bool "Telnet Login" default n depends on NSH_TELNET select NSH_LOGIN ---help--- If defined, then the Telnet user will be required to provide a username and password to start the NSH shell. if NSH_LOGIN choice prompt "Verification method" default NSH_LOGIN_PASSWD if FSUTILS_PASSWD default NSH_LOGIN_FIXED if !FSUTILS_PASSWD config NSH_LOGIN_FIXED bool "Fixed username/password" ---help--- Verify user credentials by matching to fixed username and password strings config NSH_LOGIN_PLATFORM bool "Platform username/password" ---help--- Call a platform-specific function to perform the verification of user credentials. In this case, the platform-specific logic must provide a function with the following prototype: int platform_user_verify(FAR const char *username, FAR const char *password); which is prototyped an described in apps/include/nshlib/nshlib.h and which may be included like: #include "nshlib/nshlib.h" An appropriate place to implement this function might be in the directory apps/platform/. config NSH_LOGIN_PASSWD bool "Encrypted password file" depends on FSUTILS_PASSWD ---help--- Use the content of an encrypted password file to verify user credentials. This option requires that you have selected CONFIG_FSUTILS_PASSWD to enable the access methods of apps/fsutils/passwd. endchoice # Verification method config NSH_LOGIN_USERNAME string "Login username" default "admin" depends on !NSH_LOGIN_PASSWD ---help--- Login user name. Default: "admin" config NSH_LOGIN_PASSWORD string "Login password" default "Administrator" depends on !NSH_LOGIN_PASSWD ---help--- Login password: Default: "Administrator" config NSH_LOGIN_FAILDELAY int "Login failure delay" default 0 ---help--- Login failure delay in milliseconds. The system will pause this amount of time after each failed login attempt in order to discourage people from cracking the password by brute force. The value zero may be supplied to disable the delay. config NSH_LOGIN_FAILCOUNT int "Login retry count" default 3 ---help--- Number of login retry attempts. endif # NSH_LOGIN endif # NSH_LIBRARY endmenu # NSH Library