nuttx$ cat .config | grep MKRD
CONFIG_BOARDCTL_MKRD=y
CONFIG_DRVR_MKRD=y
# CONFIG_NSH_DISABLE_MKRD is not set

NuttShell (NSH) NuttX-8.2.0
nsh> help
help usage:  help [-v] [<cmd>]

   [         cd        echo      help      mkdir     pwd       sleep
unset
   ?         cp        exec      hexdump   mh        rm        test
  usleep
   basename  cmp       exit      kill      mv        rmdir     time      xd
   break     dirname   false     ls        mw        set       true
   cat       dd        free      mb        ps        sh        uname

Builtin Apps:
   hello  nsh
nsh> mkrd
nsh: mkrd: command not found

The commands are kept in an array of structures in apps/nshlib/nsh_commands.c.  It the command is in the array, it will be executed and it will be in the help.  So from the above, this would mean that the mkrd command is not in the array.

That is determined by a setting in apps/nshlib/nsh.h:

  70 #undef NSH_HAVE_WRITABLE_MOUNTPOINT
  71 #if !defined(CONFIG_DISABLE_MOUNTPOINT) && CONFIG_NFILE_STREAMS > 0
  72 #  define NSH_HAVE_WRITABLE_MOUNTPOINT 1
  73 #endif

And logic in apps/nshlib/nsh_command.c:

 326 #ifdef NSH_HAVE_WRITABLE_MOUNTPOINT
 327 # ifndef CONFIG_NSH_DISABLE_MKRD
 328   { "mkrd",     cmd_mkrd,     2, 6,
 329     "[-m <minor>] [-s <sector-size>] <nsectors>" },
 330 # endif
 331 #endif

That is everything that is involved.  So those are what you would need to check.


Reply via email to