Custom Boards How-To
As explained in [[../quick](]{.title-ref}../quick.md)start/configuring`, supported boards (also known as "in-tree" boards) are configured using a standard syntax:
cd nuttx ./tools/configure.sh -l board-name:config-name Copy files Select CONFIG_HOST_LINUX=y Refreshing...
Sometimes it is not appropriate, or not wanted, to add a new or custom board to the NuttX boards tree itself. If so, the board can be defined out-of-tree in a custom directory and still be built easily.
Add a Custom Board
The same set of files as provided for in-tree boards is required (i.e. configs, Kconfig, scripts, etc.) but these can be placed in a directory of your choice.
In this example, the files are assumed to exist in:
: ../nuttx/CustomBoards/MyCustomBoardName
> ``` {.console}
> pwd
> /home/nuttx/nuttx
> ls -1 ../CustomBoards/MyCustomBoardName
> configs
> helpers
> include
> Kconfig
> scripts
> ls ../CustomBoards/MyCustomBoardName/configs
> nsh
> MyCustomConfig
>
> ```
To build the custom board, the syntax is slightly different to in-tree boards and configs:
./tools/configure.sh -l ../CustomBoards/MyCustomBoardName/configs/MyCustomConfig Copy files Select CONFIG_HOST_LINUX=y Refreshing...
Kconfig Settings
Once the board is configured, to ensure subsequent builds run correctly, there are two Kconfig settings that need to be set. These are:
Board Selection --> Custom Board Configuration --> Custom Board Name
{.interpreted-text role="menuselection"}
Board Selection --> Custom Board Configuration --> Relative custom board directory
{.interpreted-text role="menuselection"}
They should be set to suit your board name and directory location.
Note
If you subsequently run a make distclean
operation, then these settings will be lost. They should be added back before building, and/or before running make menuconfig
.