Legato KConfig Options

Build-time configuration options.


Legato Configuration

VIRT_TARGET_ARCH: Hidden. Only set by other selections.
Type: string
Defaults: Depends on:
Set the name of the virtual target platform, if applicable. This value is determined by the target platform selection.
General Setup

EXPERIMENTAL: Prompt for experimental (alpha-quality) features
Type: bool
Default: "n"
Experimental features are usually new features that are being introduced for testing and feedback from a wider audience. They can be enabled to get a preview of new functionality. Be aware that experimental features are subject to change before being released as a regular feature. The use of experimental features in a production environment is strongly discouraged.
Target Hardware Platform
Default: TARGET_LOCALHOST
Choose one of:
TARGET_LOCALHOST: Localhost (localhost)
Type: bool
Run on local Linux host.
TARGET_VIRT_X86: Virtual x86 (virt-x86)
Type: bool
Run on virtual x86 platform.
TARGET_VIRT_ARM: Virtual ARM (virt-arm)
Type: bool
Run on virtual ARM platform.
TARGET_RASPI: Raspberry Pi (raspi)
Type: bool
Run on a Raspberry Pi.
TARGET_AR7: SWI AR755x (ar7)
Type: bool
Run on a Sierra Wireless AR755x.
TARGET_AR758X: SWI AR758x (ar758x)
Type: bool
Run on a Sierra Wireless AR758x.
TARGET_AR759X: SWI AR759x (ar759x)
Type: bool
Run on a Sierra Wireless AR759x.
TARGET_AR86: SWI AR86xx (ar86)
Type: bool
Run on a Sierra Wireless AR86xx.
TARGET_WP85: SWI WP85xx (wp85)
Type: bool
Run on a Sierra Wireless WP85xx.
TARGET_WP750X: SWI WP750x (wp750x)
Type: bool
Run on a Sierra Wireless WP750x.
TARGET_WP76XX: SWI WP76xx (wp76xx)
Type: bool
Run on a Sierra Wireless WP76xx.
TARGET_WP77XX: SWI WP77xx (wp77xx)
Type: bool
Run on a Sierra Wireless WP77xx.
TARGET_CUSTOM: Custom
Type: bool
Run on a custom hardware platform.
Target Operating System
Default: LINUX
Choose one of:
LINUX: Linux
Type: bool
Run on Linux.
CUSTOM_OS: Custom (EXPERIMENTAL)
Type: bool
Depends on:
Run on another operating system, such as a proprietary OS distribution. A custom framework adaptor is required in this case.
RTOS: RTOS
Type: bool
Default: "y" if CUSTOM_OS
Selected operating system is a real-time operating system (RTOS).
POSIX: POSIX compliant operating system
Type: bool
Defaults: Indicate Legato is running on a POSIX platform.
LWIP: Using lwIP network stack (EXPERIMENTAL)
Type: bool
Defaults: Target platform is using the Lightweight IP (lwIP) network stack.
SDEF: Default system definition file
Type: string
Defaults: Default Legato system definition (.sdef) file to use. This system is built along with the framework. Users may also later create other systems later using their own .sdef files.
USE_CLANG: Use Clang for compilation
Type: bool
Default: "n"
Use Clang rather than GCC for compiling C and C++ sources.
USE_CCACHE: Use CCache
Type: bool
Default: "y"
Use CCache to speed up compilation times.
CCACHE: CCache command
Type: string
Default: "ccache" if USE_CCACHE
CCache executable to use when compiling.
READ_ONLY: Read-only image
Type: bool
Defaults: Generate a read-only image for the target, in addition to the default read-write image.
STRIP_STAGING_TREE: Strip staging tree
Type: bool
Default: "y"
Strip files staged for the target image.
DEBUG: Debug build
Type: bool
Default: "n"
Build with debug compiler flags turned on, and debugging code features enabled.
TEST_COVERAGE: Code coverage build
Type: bool
Default: "n"
Build with code coverage compiler flags turned on.
TEST_COVERAGE_DIR: On-target code coverage directory
Type: string
Defaults: On-target directory to write runtime code coverage results to.
Framework

CUSTOM_FA: Use custom framework adaptor (EXPERIMENTAL)
Type: bool
Defaults: Customize the Legato framework adaptor for the target platform.
CUSTOM_FA_PATH: Path to custom OS adaptor sources directory
Type: string
Path of custom OS adaptor source directory relative to the legato/ root directory. This source directory should contain liblegato/ and daemons/ directories containing the source code needed to support the custom operating system.
BUILD_TARGET_TOOLS: Build on-target command-line tools
Type: bool
Defaults: Include Legato's command-line tools (inspect, config, sdir, etc.) for the target.
RTOS_TARGET_TOOL_INSPECT: Include the inspect tool
Type: bool
Default: "y" if RTOS && BUILD_TARGET_TOOLS
Depends on:
Select this if you want to build and install the "inspect" tool. This tool provides details of the state and resource usage of many Legato objects.
RTOS_TARGET_TOOL_DLSUM: Include the dlsum tool
Type: bool
Default: "n" if RTOS && BUILD_TARGET_TOOLS
Depends on:
Select this if you want to build and install the "dlsum" tool. This tool makes HTTP requests and calculates a hash of the returned resource. Note that enabling this tool will significantly increase binary size due to a dependency on libcurl.
RTOS_TARGET_TOOL_HTTPD: Include the httpd tool
Type: bool
Default: "n" if RTOS && BUILD_TARGET_TOOLS
Depends on:
Select this if you want to build and install the "httpd" tool. This is a simple web server which can be used for testing purposes. It serves a small set of static, pre-compiled pages on port 80.
RUNTIME_DIR: Runtime directory
Type: string
Default: "/tmp/legato" if POSIX
Directory to use for runtime state files, such as UNIX domain sockets.
SOTA: Enable software-over-the-air (SOTA) updates
Type: bool
Defaults: Enable support for SOTA updates. SOTA is not supported on non-POSIX systems.
PROBATION_PERIOD: Update probation period
Type: int
Range:
  • 10 - 4294967 if SOTA
Default: 1800 if SOTA
Default software update probationary period in seconds. After this period of time has elapsed with no failures, it is marked as good. This value can be overridden at runtime by the LE_PROBATION_MS environment variable.
PYTHON: Enable Python support (EXPERIMENTAL)
Type: bool
Default: "n" if POSIX && EXPERIMENTAL
Depends on:
Enable support for Python. Python is not supported on non-POSIX systems.
PYTHON_EXECUTABLE: Python executable
Type: string
Default: "python2.7" if PYTHON
Python executable to use for building Python support. This may be set to an absolute path.
JAVA: Enable Java support (EXPERIMENTAL)
Type: bool
Default: "n" if POSIX && EXPERIMENTAL
Depends on:
Enable support for Java. Java is not supported on non-POSIX systems.
JDK_INCLUDE_DIR: JDK include directory
Type: string
Java Development Kit include directory to use when building Java support.
EJDK_DIR: Embedded Java Developer Kit directory
Type: string
Path to Oracle's Embedded Java Developer Kit, needed if that JVM is to be bundled with the system.
THREAD_REALTIME_ONLY: Use real-time priority for all threads
Type: bool
Default: "n"
Force Legato to use only real-time priorities for tasks.
Security Features

ENABLE_SMACK: Enable SMACK for access controls
Type: bool
Default: "y" if LINUX && !TARGET_LOCALHOST
Depends on:
Enable the Simplified Mandatory Access Control Kernel (SMACK) security module on Linux for access controls.
SMACK_ONLYCAP: Enable SMACK onlycap
Type: bool
Default: "n" if ENABLE_SMACK
Require a specific SMACK label for CAP_MAC_ADMIN and CAP_MAC_OVERRIDE to be effective. The label is typically set in /smack/onlycap.
SMACK_ATTR_NAME: SMACK attribute name
Type: string
Default: "security.@ref SMACK64" if ENABLE_SMACK
Name of the Legato SMACK attribute.
SMACK_ATTR_VALUE: SMACK attribute value
Type: string
Default: "_" if ENABLE_SMACK
Value of the Legato SMACK attribute.
ENABLE_IMA: Enable IMA for file integrity checking
Type: bool
Default: "n" if LINUX && !TARGET_LOCALHOST
Depends on:
Enable the Integrity Measurement Architecture (IMA) on Linux to prevent accidental or malicious file system changes.
IMA_PRIVATE_KEY: IMA private key location
Type: string
File to load the IMA private key from.
IMA_PUBLIC_CERT: IMA public certificate location
Type: string
File to load the IMA public certificate from.
IMA_SMACK: SMACK label for IMA
Type: string
Default: "imaLegato" if ENABLE_SMACK && ENABLE_IMA
Depends on:
SMACK label to use for IMA purposes.
Diagnostic Features

Static log level filter
Defaults: Choose one of:
LOG_STATIC_FILTER_DEBUG: Debug
Type: bool
Include all statements up to and including debug level.
LOG_STATIC_FILTER_INFO: Info
Type: bool
Include all statements up to and including info level.
LOG_STATIC_FILTER_WARN: Warning
Type: bool
Include all statements up to and including warning level.
LOG_STATIC_FILTER_ERR: Error
Type: bool
Include all statements up to and including error level.
LOG_STATIC_FILTER_CRIT: Critical
Type: bool
Include all statements up to and including critical level.
LOG_STATIC_FILTER_EMERG: Emergency
Type: bool
Include only emergency-level log statements.
ENABLE_SEGV_HANDLER: Enable SIGSEGV handler
Type: bool
Default: "y" if LINUX
When a segmentation fault occurs, use signal derivation and sigsetjmp()/siglongjmp() to try and survive the invalid memory access long enough to generate a backtrace. This handler relies on undefined behaviour of sigsetjmp() and is therefore not guaranteed to work.
ENABLE_BACKTRACE: Enable Legato assertion backtraces
Type: bool
Default: "y"
Print backtraces when a Legato assertion is triggered. This can be helpful in debugging errors.
USE_GUARD_BAND: Enable memory guard bands
Type: bool
Default: "y"
Insert chunks of memory into each allocated memory block before and after the user data portion. These "guard bands" are filled with a special pattern that is unlikely to occur in normal data. Whenever a block is allocated or released, the guard bands are checked for corruption and any corruption is reported.
NUM_GUARD_BAND_WORDS: Number of guard band words
Type: int
Range:
Defaults: The number of words in each guard band. This number of words will be inserted before and after every memory allocation, increasing the allocation size in words by NUM_GUARD_BAND_WORDS * 2.
MEM_POOL_STATS: Track memory pool statistics
Type: bool
Defaults: Track memory pool statistics which are not needed during runtime. These are: - Number of overflows - Number of allocations - Maximum blocks used
THREAD_SETNAME: Set names of threads created from Legato
Type: bool
Default: "y"
Use Legato thread names as the names for underlying OS threads as well. This has no effect if the OS does not allow setting thread names. If Legato thread names are disabled, this will just set the name to "<legato>."
NAMES_ENABLED: Enable names in Legato objects
Type: bool
Default: "y"
Add name fields to Legato objects (mutexes, threads, memory pools, etc) for logging, debugging, and tracing purposes. Turning this off will reduce RAM usage at the expense of traceability.
FD_MONITOR_NAMES_ENABLED: Enable names in file descriptor monitors
Type: bool
Defaults: Add a name field to Legato file descriptor monitors.
SEM_NAMES_ENABLED: Enable names in semaphores
Type: bool
Defaults: Add a name field to Legato semaphores.
MUTEX_NAMES_ENABLED: Enable names in mutexes
Type: bool
Defaults: Add a name field to Legato mutexes.
THREAD_NAMES_ENABLED: Enable names in threads
Type: bool
Default: "y" if NAMES_ENABLED
Add a name field to Legato threads.
MEM_POOL_NAMES_ENABLED: Enable names in memory pools
Type: bool
Default: "y" if NAMES_ENABLED
Add a name field to Legato memory pools.
MEM_TRACE: Enable memory pool tracing
Type: bool
Default: "n" if MEM_POOL_NAMES_ENABLED
If enabled, the memory subsystem will create a trace point for every memory pool created. The name of the tracepoint will be the same of the pool, and is of the form "component.poolName".
TIMER_NAMES_ENABLED: Enable names in timers
Type: bool
Defaults: Add a name field to Legato timers.
EVENT_NAMES_ENABLED: Enable names in events
Type: bool
Defaults: Add a name field to Legato event IDs.
HASHMAP_NAMES_ENABLED: Enable names in hashmaps
Type: bool
Defaults: Add a name field to Legato hashmaps. Disabling this also disables hashmap tracing.
SAFE_REF_NAMES_ENABLED: Enable names in safe references
Type: bool
Defaults: Add a name field to Legato safe references.
Performance Tuning

REDUCE_FOOTPRINT: Reduce memory and storage use where possible
Type: bool
Default: "n"
Try to reduce the memory and storage footprint of Legato. This may use alternate data structures which are optimized for size and reduce the scale of some tests. Selecting this option may result in lower performance and slower applications.
MEM_POOLS: Use memory pools
Type: bool
Default: "y"
Use memory pools for dynamic memory allocation. Memory pools help prevent memory fragmentation, but require that the pools be sized appropriately for the application. Disabling this option will still allocate memory using the memory pool interface (le_mem), but switches the internal behaviour to use malloc and free on a per-block basis. This allows tools like Valgrind to accurately track the allocations and de-allocations at the cost of potential memory fragmentation.
MAX_EVENT_POOL_SIZE: Maximum event pool size
Type: int
Range:
Default: 30 if MEM_POOLS
The maximum number of objects in the process-wide event pool, from which the event objects are allocated.
MAX_HANDLER_POOL_SIZE: Maximum event handler pool size
Type: int
Range:
Default: 15 if MEM_POOLS
The maximum number of objects in the process-wide handler pool, from which all handler objects are allocated.
MAX_QUEUED_FUNCTION_POOL_SIZE: Maximum queued event function pool size
Type: int
Range:
Default: 15 if MEM_POOLS
The maximum number of objects in the process-wide queued function report pool, from which Queued Function reports are allocated.
MAX_REPORT_POOL_SIZE: Maximum event report pool size
Type: int
Range:
Default: 1 if MEM_POOLS
The maximum number of objects in a per event ID report pool.
MAX_FD_MONITOR_POOL_SIZE: Maximum file descriptor monitor pool size
Type: int
Range:
Default: 10 if MEM_POOLS
The maximum number of objects in the process-wide FD monitor pool, from which all FD monitor objects are allocated.
MAX_SUB_POOLS_POOL_SIZE: Maximum memory pool sub-pools
Type: int
Range:
Default: 8 if MEM_POOLS
The maximum number of sub-pool objects in the memory sub-pools pool. These are control structures used for managing the subdivision of memory pools.
MAX_MUTEX_POOL_SIZE: Maximum mutex pool size
Type: int
Range:
Default: 20 if MEM_POOLS
The maximum number of mutex objects in the process-wide mutex pool, from which all Legato mutexes are allocated.
MAX_SEM_POOL_SIZE: Maximum semaphore pool size
Type: int
Range:
Default: 64 if MEM_POOLS
The maximum number of semaphore objects in the process-wide semaphore pool, from which all Legato semaphores are allocated.
MAX_THREAD_POOL_SIZE: Maximum thread pool size
Type: int
Range:
Default: 20 if MEM_POOLS
The maximum number of thread objects in the process-wide thread pool, from which all Legato threads are allocated.
MAX_TIMER_POOL_SIZE: Maximum timer pool size
Type: int
Range:
Default: 40 if MEM_POOLS
The maximum number of timer objects in the process-wide timer pool, from which all Legato timers are allocated.
MAX_PATH_ITERATOR_POOL_SIZE: Maximum path iterator count
Type: int
Range:
Default: 10 if MEM_POOLS
The maximum number of path iterator in the process-wide iterator pools, from which all Legato path iterators are allocated.
MAX_MSG_LOCAL_CLIENT_SESSION_POOL_SIZE: Maximum local client messaging sessions
Type: int
Range:
Defaults: The maximum number of simultaneous messaging sessions supported with local clients.
Daemon Setup

WDOG_FRAMEWORK: Enable Legato watchdog on framework services
Type: bool
Default: "y"
The watchdog observes the Legato framework daemons and, if one deadlocks, restarts the system.
Supervisor

SUPERV_NICE_LEVEL: Nice level
Type: int
Range:
Default: -19 if POSIX
The nice level of the Legato Supervisor, which forks other Legato processes.
SUPERV_APP_TMPFS_SIZE: App tmpfs size
Type: int
Default: 90112 if LINUX
The size in bytes of the tmpfs partition created for each sandboxed App.
Service Directory

SVCDIR_SERVER_SOCKET_NAME: Service directory server socket name
Type: string
Default: "serviceDirectoryServer"
Name of the Service Directory's server UNIX domain socket. The full path will be this name appended to the runtime directory path.
SVCDIR_CLIENT_SOCKET_NAME: Service directory client socket name
Type: string
Default: "serviceDirectoryClient"
Name of the Service Directory's client UNIX domain socket. The full path will be this name appended to the runtime directory path.
CFGTREE_MAX_USER_POOL_SIZE: Maximum user pool size
Type: int
Range:
Default: 31 if LINUX
The maximum number of user objects in the configTree user pool.
CFGTREE_MAX_DSTRING_POOL_SIZE: Maximum dynamic string pool size
Type: int
Range:
  • 1 - 65535
Defaults: The maximum number of dynamic string objects in the configTree string pool.
CFGTREE_MAX_ITERATOR_POOL_SIZE: Maximum config iterator pool size
Type: int
Range:
  • 1 - 65535
Default: 20
The maximum number of iterator objects in the configTree iterator pool.
CFGTREE_MAX_UPDATE_POOL_SIZE: Maximum update pool size
Type: int
Range:
  • 1 - 65535
Default: 3
The maximum number of iterator objects in the configTree iterator pool. This determines the maximum number of concurrent configTree updates.
CFGTREE_MAX_NODE_POOL_SIZE: Maximum config node pool size
Type: int
Range:
  • 1 - 65535
Default: 100
The maximum number of node objects in the configTree node pool.
CFGTREE_MAX_TREE_POOL_SIZE: Maximum config tree pool size
Type: int
Range:
  • 1 - 65535
Default: 31
The maximum number of tree objects in the configTree tree pool.
CFGTREE_MAX_HANDLER_POOL_SIZE: Maximum node event handler pool size
Type: int
Range:
  • 1 - 65535
Default: 31
The maximum number of node event handler objects in the configTree handler pool.
CFGTREE_MAX_BINARY_DATA_POOL_SIZE: Maximum binary data buffer pool size
Type: int
Range:
  • 1 - 65535
Default: 31
The maximum number of binary data buffers in the configTree binary data buffer pool.
CFGTREE_MAX_ENCODED_STRING_POOL_SIZE: Maximum encoded string buffer pool size
Type: int
Range:
  • 1 - 65535
Default: 31
The maximum number of encoded string buffers in the configTree encoded string buffer pool.
CFGTREE_MAX_TREE_ITERATOR_POOL_SIZE: Maximum tree iterator pool size
Type: int
Range:
  • 1 - 65535
Default: 11
The maximum number of tree iterators in the configTree tree iterator pool.
Watchdog Daemon

WDOG_ENABLE_EXTERNAL: Enable external watchdog
Type: bool
Defaults: Kick an external hardware or software watchdog from the Legato watchdog daemon.
WDOG_PA_MODULE: Kernel module for external watchdog
Type: string
Default: "softdog" if LINUX && WDOG_ENABLE_EXTERNAL
Depends on:
Name of the kernel module to load in order to enable the external watchdog.
WDOG_PA_DEVICE: External watchdog device
Type: string
Default: "/dev/watchdog" if LINUX && WDOG_ENABLE_EXTERNAL
Depends on:
Name of the device to use to kick the external watchdog.
RPC

RPC: Enable RPC Proxy infrastructure (EXPERIMENTAL)
Type: bool
Default: "n" if EXPERIMENTAL
Select this to enable the RPC Proxy infrastructure (EXPERIMENTAL). WARNING: Enabling this feature will break backwards compatibility with existing IPC bindings and applications.
RPC_PROXY_LIBRARY: Enable RPC Proxy as a library component
Type: bool
Default: "n" if RPC && POSIX && EXPERIMENTAL
Depends on:
Select this to build the RPC Proxy as a library component that can be linked into an application or executable file.
Services

SERVICES_WATCHDOG: Enable watchdog for Legato services
Type: bool
Default: "y"
The services watchdog ensures that Legato processes are restarted if they deadlock.
AirVantage Connector

AirVantage Connector application
Defaults: Choose one of:
APP_AVC_LEGACY: legacy
Type: bool
Legacy AVC implementation. Not for new devices.
APP_AVC_LWM2MCORE: lwm2mcore
Type: bool
AVC implementation based on LWM2MCore.
AVC_FEATURE_OBSERVE: Enable LWM2M observe
Type: bool
Defaults: Enable LWM2M observe.
AVC_FEATURE_AVMS_CONFIG: Enable AVMS configuration
Type: bool
Defaults: Enable AVMS configuration.
ENABLE_AV_DATA: Enable AV Data
Type: bool
Defaults: Select this to enable support for AV Data features.
SOTA: Enable software-over-the-air (SOTA) updates
Type: bool
Defaults: Depends on:
Select this to enable support for SOTA updates. SOTA is not supported on non- POSIX systems.
AT Service

ATSERVER_USER_ERRORS: Enable user-defined errors in AT Server
Type: bool
Defaults: Allow setting user-defined error strings in AT Server. Enabling this increases the memory consumption of the AT Server.
Port Service

PORT_CONFIG_IS_STATIC: The ports configuration is static
Type: bool
Defaults: Allow to choose if the ports configuration is statically defined.
PORT_JSON_CONFIG_FILE: Path to json file for Port configuration
Type: string
Default: "/legato/systems/current/apps/portService/read- only/usr/local/share/PortConfigurationFile.json" if LINUX
Do not modify the default value.
Modem Service

ENABLE_ECALL: Enable eCall support
Type: bool
Default: "y"
Enable PAN European eCall or Russian ERA GLONASS emergency calling support.
MDM_HAS_SMSC_INFORMATION: Has SMSC information
Type: bool
Default: "y"
Support SMSC (Short Message Service Centre) information in modem services. Some terminals do not include the SMSC information in the PDU format string and in those cases, this value must be deselected.
SIM_ENABLE_AUTOSWITCH: Enable SIM auto switch support
Type: bool
Defaults: Enable SIM auto switch support.
Secure Storage

ENABLE_SECSTORE_ADMIN: Enable secure storage administration API
Type: bool
Default: "n"
Allow administrative control of the Legato secure storage system. This permits reading, writing, and deleting secure storage files and should be used with caution.
Socket Library

SOCKET_LIB_SESSION_MAX: Maximum number of simultaneous sockets
Type: int
Range:
  • 1 - 1024
Default: 4
Maximum number of simultaneous sockets. This value is used for sizing memory pools.
SSL encryption library
Defaults: Choose one of:
SOCKET_LIB_USE_OPENSSL: Use OpenSSL library for encryption
Type: bool
Use OpenSSL library for SSL encryption in socket library
SOCKET_LIB_USE_MBEDTLS: Use mbed TLS library for encryption (EXPERIMENTAL)
Type: bool
Depends on:
Use mbed TLS library for SSL encryption in socket library
Config Tree

ENABLE_CONFIG_TREE: Enable Config Tree
Type: bool
Default: "y"
Enable the Config Tree for storing settings.
FEATURE_SPISVC: Enable SPI service
Type: bool
Defaults: Enable the SPI service to allow devices to use SPI-attached peripherals.
Modules

ENABLE_WIFI: Enable WiFi
Type: bool
Defaults: Enable Legato WiFi support.
Wifi Platform Adaptor
Default: WIFI_PA_TI if ENABLE_WIFI
Choose one of:
WIFI_PA_TI: TI
Type: bool
Platform adaptor for TI wireless module, such as that on the mangOH WiFi IoT card.
WIFI_PA_TI_SIMU: TI simulator
Type: bool
Platform adaptor running a simulated TI Access Point.
Documentation

EXTERNAL_DOCS: Include external documentation
Type: bool
Defaults: Include external Doxygen documentation in the Legato documentation build.
EXTERNAL_DOCS_ROOT: External documentation root
Type: string
Defaults: Root directory to search for external documentation.