Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Converting Legacy Configurations to Use kconfig-mconf

The New kconfig-frontends Configuration

NuttX has recently completed the switch a purely manual configuration to the use of the kconfig-frontends tools. These are the same tools used to configure the Linux kernel, uClibc, busybox, buildroot, and numerous other packages.

...

All of the boards in the NuttX source tree have been converted to use the new configuration based on the kconfig-frontends tools. If, however, you have a private configuration for your board that uses the older configuration, you will need to convert that configuration to the newer configuration format if you would like the use the newer releases of NuttX.

Differences between the Legacy Configurations and the kconfig-frontends Configurations

The legacy configurations consisted of three files:

...

  • There is no appconfig file. The configuration of the applications is now included in the defconfig file. This difference is necessary to support a seamless configuration of NuttX and the associated applications.
  • In the automated configuration, there are many new configuration settings that are required but that do nothing in NuttX. These new configuration settings only enable additional menus and are only necessary to provide a good user experience when running the configuration tool. However, these do-nothing settings will not be set in the legacy configuration and that is why the legacy configurations will be corrupted if make menuconfig is used without first converting the legacy configuration to use the kconfig-frontends tools.

Converting Legacy Configurations to Use kconfig-mconf

Here are the steps I use to convert a legacy configuration to use the kconfig-frontends tools. The whole process requires around 20 minutes (but could take longer if you unfamiliar with NuttX).

...

If the new configuration builds and behaves as did the old configuration, you are done. Congratulations!

Frequent differences in the configuration and how to fix them

CONFIG_NSH_CONSOLE

You will see this warning:

...

Code Block
   CONFIG_NSH_LIBRARY=y

CONFIG_EXAMPLES_NSH_CXXINITIALIZE

You will see this warning:

...

Code Block
   CONFIG_EXAMPLES_NSH=y

CONFIG_EXAMPLES_UIP_DRIPADDR

You will see this warning:

...

Code Block
   CONFIG_EXAMPLES_UIP=y

CONFIG_MMCSD_SDIO

You will see this warn:

Code Block
   file1: CONFIG_MMCSD_SDIO=y

...

Code Block
   CONFIG_STM32_SDIO=y

CONFIG_MMCSD_SPI

You will see this warnning:

...

Code Block
   CONFIG_STM32_SPI1=y

CONFIG_PL2303_EPBULKIN

You will see this warning message:

...

Case it is not enabled it is safe to remove these CONFIG_PL2303_xxxxx lines.

CONFIG_USBDEV_MAXPOWER

You will see this warning message:

...

Case it is not enable it is safe to remove all these CONFIG_USBDEV_xxxxx lines.

CONFIG_USBMSC_BULKINREQLEN

You will see this warning message:

...

Case it is not enabled it is safe to remove all these CONFIG_USBMSC_xxxxx lines.

CONFIG_RTC_FREQUENCY

You will see this warning message:

...

Case RTC Date/Time it is enabled (CONFIG_RTC_DATETIME=y) and high resolution is disabled (CONFIG_RTC_HIRES=n) then it is safe to remove this CONFIG_RTC_FREQUENCY lines. If RTC is disabled (CONFIG_RTC=n) it is safe to remove all these CONFIG_RTC_xxxxx lines.

CONFIG_SCHED_WORKPERIOD

You will see this warning message:

...

Code Block
   CONFIG_SCHED_HPWORK=y

CONFIG_SEM_NNESTPRIO

You will receive this warning message:

...

Case it is disabled it is safe to remove this CONFIG_SEM_NNESTPRIO line.

CONFIG_SIG_SIGWORK

You will receive this warning message:

...

If so, then it is safe to remove this CONFIG_SIG_SIGWORK line.

CONFIG_NSH_TELNET

If you are receiving this warning:

...

Code Block
   CONFIG_NETUTILS_TELNETD=y

CONFIG_NSH_IOBUFFER_SIZE=512

You will see this warning message:

...

Just confirm that telnet is defined (CONFIG_NSH_TELNET=y). If telnet is defined then confirm telned is defined too (CONFIG_NETUTILS_TELNETD=y). If telnet is not defined it is safe to remove this line.

CONFIG_LCD_NOGETRUN

You will see this warning message:

...

First you need to confirm that LCD is enable (CONFIG_LCD=y) otherwise just remove this line.

CONFIG_EXAMPLES_NXHELLO_BGCOLOR

Sometimes cmpfile will warn about BGCOLOR:

...

Code Block
   CONFIG_EXAMPLES_NXHELLO_DEFAULT_COLORS=n

CONFIG_EXAMPLES_NXHELLO_FONTID

Sometimes cmpfile will warn about FONTID:

...