RTT backend can only be called from thread context and immediate
logging might lead to interrupt context use. Previously this limitation
was implied in different way and commit (c88a9ef27) got reverted.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
778 lines
20 KiB
Plaintext
778 lines
20 KiB
Plaintext
# Shell backends configuration options
|
|
|
|
# Copyright (c) 2018 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig SHELL_BACKENDS
|
|
bool "Shell backends"
|
|
default y
|
|
help
|
|
Enable shell backends.
|
|
|
|
if SHELL_BACKENDS
|
|
|
|
# Workaround for not being able to have commas in macro arguments
|
|
DT_CHOSEN_Z_SHELL_UART := zephyr,shell-uart
|
|
|
|
config SHELL_BACKEND_SERIAL
|
|
bool "Serial backend"
|
|
default "$(dt_chosen_enabled,$(DT_CHOSEN_Z_SHELL_UART))"
|
|
select SERIAL
|
|
select RING_BUFFER
|
|
help
|
|
Enable serial backend.
|
|
|
|
if SHELL_BACKEND_SERIAL
|
|
|
|
config SHELL_BACKEND_SERIAL_INIT_PRIORITY
|
|
int "Initialization priority"
|
|
default APPLICATION_INIT_PRIORITY
|
|
range 0 99
|
|
help
|
|
Initialization priority for UART backend. This must be bigger than
|
|
the initialization priority of the used serial device.
|
|
|
|
config SHELL_PROMPT_UART
|
|
string "Displayed prompt name"
|
|
default "uart:~$ "
|
|
help
|
|
Displayed prompt name for UART backend. If prompt is set, the shell will
|
|
send two newlines during initialization.
|
|
|
|
config SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN
|
|
bool "Interrupt driven"
|
|
default y
|
|
depends on SERIAL_SUPPORT_INTERRUPT
|
|
|
|
config SHELL_ASYNC_API
|
|
bool "Asynchronous shell API"
|
|
default n
|
|
depends on UART_ASYNC_API
|
|
help
|
|
This option enables asynchronous shell API.
|
|
|
|
choice SHELL_BACKEND_SERIAL_API
|
|
prompt "Mode"
|
|
default SHELL_BACKEND_SERIAL_API_ASYNC if SHELL_ASYNC_API
|
|
default SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN if SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN
|
|
default SHELL_BACKEND_SERIAL_API_POLLING
|
|
|
|
config SHELL_BACKEND_SERIAL_API_POLLING
|
|
prompt "Polling"
|
|
|
|
config SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN
|
|
bool "Interrupt driven"
|
|
depends on SERIAL_SUPPORT_INTERRUPT
|
|
select UART_INTERRUPT_DRIVEN
|
|
|
|
|
|
config SHELL_BACKEND_SERIAL_API_ASYNC
|
|
bool "Asynchronous"
|
|
depends on SERIAL_SUPPORT_ASYNC
|
|
select UART_ASYNC_RX_HELPER
|
|
|
|
endchoice
|
|
|
|
config SHELL_BACKEND_SERIAL_FORCE_TX_BLOCKING_MODE
|
|
bool "Force blocking mode for TX"
|
|
help
|
|
Force blocking mode for TX.
|
|
|
|
config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE
|
|
int "Set TX ring buffer size"
|
|
default 8
|
|
depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN
|
|
help
|
|
If UART is utilizing DMA transfers then increasing ring buffer size
|
|
increases transfers length and reduces number of interrupts.
|
|
|
|
config SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE
|
|
int "Set RX ring buffer size"
|
|
depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN || SHELL_BACKEND_SERIAL_API_POLLING
|
|
default 256 if MCUMGR_TRANSPORT_SHELL
|
|
default 64
|
|
help
|
|
RX ring buffer size impacts accepted latency of handling incoming
|
|
bytes by shell. If shell input is coming from the keyboard then it is
|
|
usually enough if ring buffer is few bytes (more than one due to
|
|
escape sequences). However, if bulk data is transferred it may be
|
|
required to increase it.
|
|
|
|
if SHELL_BACKEND_SERIAL_API_ASYNC
|
|
|
|
config SHELL_BACKEND_SERIAL_ASYNC_RX_TIMEOUT
|
|
int "RX inactivity timeout (in microseconds)"
|
|
default 10000
|
|
help
|
|
Inactivity timeout after which received data is reported.
|
|
|
|
config SHELL_BACKEND_SERIAL_ASYNC_RX_BUFFER_COUNT
|
|
int "Number of RX buffers"
|
|
default 4
|
|
range 2 64
|
|
help
|
|
Number of RX buffers. Some UART driver implementations changes buffers
|
|
on timeout so this number should be big enough to cover handling on
|
|
time incoming data. 4 should be enough for almost all the cases unless
|
|
CPU load is high and there is very high shell thread latency.
|
|
|
|
config SHELL_BACKEND_SERIAL_ASYNC_RX_BUFFER_SIZE
|
|
int "Size of the RX buffer"
|
|
default 16
|
|
help
|
|
Size of a single RX buffer. Together with buffer count it defines the
|
|
space that can hold RX data. It may be decreased if shell input is
|
|
slow and may need to be increased if long messages are pasted directly
|
|
to the shell prompt.
|
|
|
|
endif # SHELL_BACKEND_SERIAL_API_ASYNC
|
|
|
|
config SHELL_BACKEND_SERIAL_RX_POLL_PERIOD
|
|
int "RX polling period (in milliseconds)"
|
|
default 10
|
|
depends on SHELL_BACKEND_SERIAL_API_POLLING
|
|
help
|
|
Determines how often UART is polled for RX byte.
|
|
|
|
config SHELL_BACKEND_SERIAL_CHECK_DTR
|
|
bool "Check DTR signal before TX"
|
|
depends on SHELL_BACKEND_SERIAL_API_INTERRUPT_DRIVEN
|
|
depends on UART_LINE_CTRL
|
|
help
|
|
Check DTR signal before TX.
|
|
|
|
module = SHELL_BACKEND_SERIAL
|
|
default-timeout = 100
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
|
|
|
|
default-size = 512
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_size"
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice
|
|
|
|
config SHELL_BACKEND_SERIAL_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
|
|
default 1 if SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
|
|
default 2 if SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
|
|
default 3 if SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
|
|
default 4 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
|
|
default 5 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
|
|
|
|
endif # SHELL_BACKEND_SERIAL
|
|
|
|
config SHELL_BACKEND_RTT
|
|
bool "RTT backend"
|
|
select CONSOLE
|
|
select RTT_CONSOLE
|
|
select SEGGER_RTT_CUSTOM_LOCKING
|
|
depends on USE_SEGGER_RTT
|
|
# RTT backend can only be called from thread context.
|
|
depends on !(SHELL_LOG_BACKEND && LOG_MODE_IMMEDIATE)
|
|
help
|
|
Enable RTT backend.
|
|
|
|
if SHELL_BACKEND_RTT
|
|
|
|
config SHELL_PROMPT_RTT
|
|
string "Displayed prompt name"
|
|
default "rtt:~$ "
|
|
help
|
|
Displayed prompt name for RTT backend. If prompt is set, the shell will
|
|
send two newlines during initialization.
|
|
|
|
config SHELL_BACKEND_RTT_BUFFER
|
|
int "Buffer number used for shell input and output."
|
|
range 0 SEGGER_RTT_MAX_NUM_UP_BUFFERS
|
|
default 0
|
|
help
|
|
Select index of up-buffer used for shell output, by default it uses
|
|
terminal up-buffer and its settings.
|
|
|
|
config SHELL_BACKEND_RTT_RETRY_CNT
|
|
int "Number of retries"
|
|
default 4
|
|
help
|
|
Number of TX retries before dropping the data and assuming that
|
|
RTT session is inactive.
|
|
|
|
config SHELL_BACKEND_RTT_RETRY_DELAY_MS
|
|
int "Delay between TX retries in milliseconds"
|
|
default 5
|
|
help
|
|
Sleep period between TX retry attempts. During RTT session, host pulls
|
|
data periodically. Period starts from 1-2 milliseconds and can be
|
|
increased if traffic on RTT increases (also from host to device). In
|
|
case of heavy traffic data can be lost and it may be necessary to
|
|
increase delay or number of retries.
|
|
|
|
config SHELL_RTT_RX_POLL_PERIOD
|
|
int "RX polling period (in milliseconds)"
|
|
default 10
|
|
help
|
|
Determines how often RTT is polled for RX byte.
|
|
|
|
module = SHELL_BACKEND_RTT
|
|
default-timeout = 100
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
|
|
|
|
default-size = 512
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_size"
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_RTT_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice
|
|
|
|
config SHELL_RTT_INIT_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_RTT_INIT_LOG_LEVEL_NONE
|
|
default 1 if SHELL_RTT_INIT_LOG_LEVEL_ERR
|
|
default 2 if SHELL_RTT_INIT_LOG_LEVEL_WRN
|
|
default 3 if SHELL_RTT_INIT_LOG_LEVEL_INF
|
|
default 4 if SHELL_RTT_INIT_LOG_LEVEL_DBG
|
|
default 5 if SHELL_RTT_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
module = SHELL_RTT
|
|
module-str = RTT shell backend
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
endif # SHELL_BACKEND_RTT
|
|
|
|
config SHELL_BACKEND_MQTT
|
|
bool "MQTT backend"
|
|
depends on NET_TCP
|
|
depends on NET_IPV4
|
|
depends on NETWORKING
|
|
select DNS_RESOLVER
|
|
select HWINFO
|
|
select MQTT_LIB
|
|
select NET_MGMT
|
|
select NET_MGMT_EVENT
|
|
help
|
|
Enable MQTT backend.
|
|
|
|
if SHELL_BACKEND_MQTT
|
|
|
|
config SHELL_MQTT_SERVER_ADDR
|
|
string "MQTT server address"
|
|
default "192.168.0.100"
|
|
help
|
|
MQTT server address.
|
|
|
|
config SHELL_MQTT_SERVER_PORT
|
|
int "MQTT server port"
|
|
default 1883
|
|
help
|
|
MQTT server port.
|
|
|
|
config SHELL_MQTT_SERVER_USERNAME
|
|
string "MQTT server username"
|
|
help
|
|
MQTT server username.
|
|
|
|
config SHELL_MQTT_SERVER_PASSWORD
|
|
string "MQTT server password"
|
|
help
|
|
MQTT server password.
|
|
|
|
config SHELL_MQTT_RX_BUF_SIZE
|
|
int "RX buffer size"
|
|
default 256
|
|
help
|
|
Buffer size for the MQTT data reception.
|
|
|
|
config SHELL_MQTT_TX_BUF_SIZE
|
|
int "TX buffer size"
|
|
range 32 $(UINT16_MAX)
|
|
default 256
|
|
help
|
|
Buffer size for the MQTT data transmission.
|
|
|
|
module = SHELL_BACKEND_MQTT
|
|
default-timeout = 100
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
|
|
|
|
default-size = 512
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_size"
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice # SHELL_MQTT_INIT_LOG_LEVEL
|
|
|
|
config SHELL_MQTT_INIT_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_MQTT_INIT_LOG_LEVEL_NONE
|
|
default 1 if SHELL_MQTT_INIT_LOG_LEVEL_ERR
|
|
default 2 if SHELL_MQTT_INIT_LOG_LEVEL_WRN
|
|
default 3 if SHELL_MQTT_INIT_LOG_LEVEL_INF
|
|
default 4 if SHELL_MQTT_INIT_LOG_LEVEL_DBG
|
|
default 5 if SHELL_MQTT_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
module = SHELL_MQTT
|
|
module-str = MQTT shell backend
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
endif # SHELL_BACKEND_MQTT
|
|
|
|
config SHELL_BACKEND_RPMSG
|
|
bool "RPMsg backend."
|
|
depends on OPENAMP
|
|
help
|
|
Enable RPMsg backend.
|
|
|
|
if SHELL_BACKEND_RPMSG
|
|
|
|
config SHELL_PROMPT_RPMSG
|
|
string "Displayed prompt name"
|
|
default "ipc:~$ "
|
|
help
|
|
Displayed prompt name for RPMsg backend. If prompt is set, the shell will
|
|
send two newlines during initialization.
|
|
|
|
config SHELL_RPMSG_SERVICE_NAME
|
|
string "Service name"
|
|
default "rpmsg-tty"
|
|
help
|
|
The service name associated with the RPMsg endpoint.
|
|
|
|
config SHELL_RPMSG_SRC_ADDR
|
|
hex "Local address"
|
|
default 0xffffffff # The ANY address
|
|
help
|
|
Local address of the RPMsg endpoint.
|
|
|
|
config SHELL_RPMSG_DST_ADDR
|
|
hex "Remote address"
|
|
default 0xffffffff # The ANY address
|
|
help
|
|
Target address of the RPMsg endpoint.
|
|
|
|
config SHELL_RPMSG_MAX_RX
|
|
int "Receive buffer size"
|
|
default 10
|
|
help
|
|
The maximum number of received messages to be queued.
|
|
|
|
module = SHELL_BACKEND_RPMSG
|
|
default-timeout = 100
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
|
|
|
|
default-size = 512
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_size"
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice # SHELL_RPMSG_INIT_LOG_LEVEL
|
|
|
|
config SHELL_RPMSG_INIT_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_RPMSG_INIT_LOG_LEVEL_NONE
|
|
default 1 if SHELL_RPMSG_INIT_LOG_LEVEL_ERR
|
|
default 2 if SHELL_RPMSG_INIT_LOG_LEVEL_WRN
|
|
default 3 if SHELL_RPMSG_INIT_LOG_LEVEL_INF
|
|
default 4 if SHELL_RPMSG_INIT_LOG_LEVEL_DBG
|
|
default 5 if SHELL_RPMSG_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
module = SHELL_RPMSG
|
|
module-str = RPMsg shell backend
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
endif # SHELL_BACKEND_RPMSG
|
|
|
|
config SHELL_BACKEND_TELNET
|
|
bool "TELNET backend."
|
|
depends on NET_TCP
|
|
depends on NET_IPV4 || NET_IPV6
|
|
select NET_SOCKETS_SERVICE
|
|
select NET_SOCKETS
|
|
help
|
|
Enable TELNET backend.
|
|
|
|
if SHELL_BACKEND_TELNET
|
|
|
|
config SHELL_TELNET_INIT_PRIORITY
|
|
int "Initialization priority"
|
|
default 95
|
|
range 0 99
|
|
help
|
|
Initialization priority for telnet shell backend. This must be higher
|
|
than socket service initialization priority, as socket service has to
|
|
be initialized earlier.
|
|
|
|
config SHELL_PROMPT_TELNET
|
|
string "Displayed prompt name"
|
|
default "~$ "
|
|
help
|
|
Displayed prompt name for TELNET backend. If prompt is set, the shell will
|
|
send two newlines during initialization.
|
|
|
|
config SHELL_TELNET_PORT
|
|
int "Telnet port number"
|
|
default 23
|
|
help
|
|
This option is used to configure on which port telnet is going
|
|
to be bound.
|
|
|
|
config SHELL_TELNET_LINE_BUF_SIZE
|
|
int "Telnet line buffer size"
|
|
default 80
|
|
help
|
|
This option can be used to modify the size of the buffer storing
|
|
shell output line, prior to sending it through the network.
|
|
Of course an output line can be longer than such size, it just
|
|
means sending it will start as soon as it reaches this size.
|
|
It really depends on what type of output is expected.
|
|
A lot of short lines: better reduce this value. On the contrary,
|
|
raise it.
|
|
|
|
config SHELL_TELNET_SEND_TIMEOUT
|
|
int "Telnet line send timeout"
|
|
default 100
|
|
help
|
|
This option can be used to modify the duration of the timer that kick
|
|
in when a line buffer is not empty but did not yet meet the line feed.
|
|
|
|
config SHELL_TELNET_SUPPORT_COMMAND
|
|
bool "Add support for telnet commands (IAC) [EXPERIMENTAL]"
|
|
select EXPERIMENTAL
|
|
help
|
|
Current support is so limited it's not interesting to enable it.
|
|
However, if proven to be needed at some point, it will be possible
|
|
to extend such support. It does have support for echo and "character
|
|
at a time" mode, which enable the history and line-editing features
|
|
of the shell.
|
|
IMPORTANT: This will increase network usage as a TCP packet will be
|
|
sent each time a character is typed in the telnet client.
|
|
|
|
module = SHELL_TELNET
|
|
default-timeout = 100
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
|
|
|
|
default-size = 512
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_size"
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice
|
|
|
|
config SHELL_TELNET_INIT_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_TELNET_INIT_LOG_LEVEL_NONE
|
|
default 1 if SHELL_TELNET_INIT_LOG_LEVEL_ERR
|
|
default 2 if SHELL_TELNET_INIT_LOG_LEVEL_WRN
|
|
default 3 if SHELL_TELNET_INIT_LOG_LEVEL_INF
|
|
default 4 if SHELL_TELNET_INIT_LOG_LEVEL_DBG
|
|
default 5 if SHELL_TELNET_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
module = SHELL_TELNET
|
|
module-str = TELNET shell backend
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
endif # SHELL_TELNET_BACKEND
|
|
|
|
config SHELL_BACKEND_WEBSOCKET
|
|
bool "Websocket backend."
|
|
depends on HTTP_SERVER_WEBSOCKET
|
|
depends on NET_NATIVE_IP
|
|
select NET_SOCKETS_SERVICE
|
|
select NET_SOCKETS
|
|
help
|
|
Enable Websocket backend.
|
|
|
|
if SHELL_BACKEND_WEBSOCKET
|
|
|
|
config SHELL_WEBSOCKET_BACKEND_COUNT
|
|
int "How many Webconsole sessions are supported"
|
|
default 2
|
|
range 1 8
|
|
help
|
|
Each connection consumes memory so select the value according to your
|
|
needs. Also note that each console session needs unique HTTP endpoint
|
|
configured.
|
|
Note that if you have only one HTTP endpoint for the websocket console,
|
|
setting the this value to 2, allows latter console session to kick out
|
|
the previous one. If set this value to 1, then the latter connecting
|
|
webconsole session will fail. If you have multiple HTTP endpoints, then
|
|
This value should be increased accordingly.
|
|
|
|
config SHELL_WEBSOCKET_PROMPT
|
|
string "Displayed prompt name"
|
|
default ""
|
|
help
|
|
Displayed prompt name for Websocket backend. If prompt is set, the shell will
|
|
send two newlines during initialization.
|
|
|
|
config SHELL_WEBSOCKET_ENDPOINT_URL
|
|
string "Websocket endpoint URL"
|
|
default "console"
|
|
help
|
|
What is the HTTP endpoint URL where the client should connect to.
|
|
|
|
config SHELL_WEBSOCKET_IP_ADDR
|
|
string "Websocket IP listen address"
|
|
default ""
|
|
help
|
|
This option is used to configure on which IP address and network interface
|
|
the HTTP server is listening. If left empty, then all network interfaces are
|
|
listened.
|
|
|
|
config SHELL_WEBSOCKET_PORT
|
|
int "Websocket port number"
|
|
default 443 if NET_SOCKETS_SOCKOPT_TLS
|
|
default 80
|
|
help
|
|
This option is used to configure on which port websocket is going
|
|
to be bound.
|
|
|
|
config SHELL_WEBSOCKET_LINE_BUF_SIZE
|
|
int "Websocket line buffer size"
|
|
default 100
|
|
help
|
|
This option can be used to modify the size of the buffer storing
|
|
shell output line, prior to sending it through the network.
|
|
Of course an output line can be longer than such size, it just
|
|
means sending it will start as soon as it reaches this size.
|
|
It really depends on what type of output is expected.
|
|
A lot of short lines: better reduce this value. On the contrary,
|
|
raise it.
|
|
|
|
config SHELL_WEBSOCKET_SEND_TIMEOUT
|
|
int "Websocket line send timeout"
|
|
default 100
|
|
help
|
|
This option can be used to modify the duration of the timer that kick
|
|
in when a line buffer is not empty but did not yet meet the line feed.
|
|
|
|
module = SHELL_WEBSOCKET
|
|
default-timeout = 100
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_timeout"
|
|
|
|
default-size = 512
|
|
source "subsys/shell/Kconfig.template.shell_log_queue_size"
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_WEBSOCKET_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice
|
|
|
|
config SHELL_WEBSOCKET_INIT_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_NONE
|
|
default 1 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_ERR
|
|
default 2 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_WRN
|
|
default 3 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_INF
|
|
default 4 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_DBG
|
|
default 5 if SHELL_WEBSOCKET_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
module = SHELL_WEBSOCKET
|
|
module-str = Websocket shell backend
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
endif # SHELL_WEBSOCKET_BACKEND
|
|
|
|
config SHELL_BACKEND_DUMMY
|
|
bool "Dummy backend."
|
|
help
|
|
Enable dummy backend which can be used to execute commands with no
|
|
need for physical transport interface.
|
|
|
|
if SHELL_BACKEND_DUMMY
|
|
|
|
config SHELL_PROMPT_DUMMY
|
|
string "Displayed prompt name"
|
|
default "~$ "
|
|
help
|
|
Displayed prompt name for DUMMY backend. If prompt is set, the shell will
|
|
send two newlines during initialization.
|
|
|
|
config SHELL_BACKEND_DUMMY_BUF_SIZE
|
|
int "Size of dummy buffer size"
|
|
default 400 if LOG_PRINTK
|
|
default 300
|
|
help
|
|
This is size of output buffer that will be used by dummy backend, this limits number of
|
|
characters that will be captured from command output.
|
|
|
|
choice
|
|
prompt "Initial log level limit"
|
|
default SHELL_DUMMY_INIT_LOG_LEVEL_INF
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL_DEFAULT
|
|
bool "System limit (LOG_MAX_LEVEL)"
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL_DBG
|
|
bool "Debug"
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL_INF
|
|
bool "Info"
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL_WRN
|
|
bool "Warning"
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL_ERR
|
|
bool "Error"
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL_NONE
|
|
bool "None"
|
|
|
|
endchoice
|
|
|
|
config SHELL_DUMMY_INIT_LOG_LEVEL
|
|
int
|
|
default 0 if SHELL_DUMMY_INIT_LOG_LEVEL_NONE
|
|
default 1 if SHELL_DUMMY_INIT_LOG_LEVEL_ERR
|
|
default 2 if SHELL_DUMMY_INIT_LOG_LEVEL_WRN
|
|
default 3 if SHELL_DUMMY_INIT_LOG_LEVEL_INF
|
|
default 4 if SHELL_DUMMY_INIT_LOG_LEVEL_DBG
|
|
default 5 if SHELL_DUMMY_INIT_LOG_LEVEL_DEFAULT
|
|
|
|
endif # SHELL_BACKEND_DUMMY
|
|
|
|
config SHELL_BACKEND_ADSP_MEMORY_WINDOW
|
|
bool "Shell backend implemented over mapped memory window."
|
|
depends on SOC_FAMILY_INTEL_ADSP
|
|
help
|
|
Enable ADSP memory window backend which can be used to execute commands
|
|
from remote host processor that has access to the same memory window.
|
|
|
|
if SHELL_BACKEND_ADSP_MEMORY_WINDOW
|
|
|
|
config SHELL_BACKEND_ADSP_MEMORY_WINDOW_PROMPT
|
|
string "Displayed prompt name"
|
|
default "~$ "
|
|
help
|
|
Displayed prompt name for ADSP memory window backend. If prompt is set,
|
|
the shell will send two newlines during initialization.
|
|
|
|
config SHELL_BACKEND_ADSP_MEMORY_WINDOW_POLL_INTERVAL
|
|
int "Poll interval (in microseconds)"
|
|
default 100
|
|
help
|
|
This option can be used to modify the poll interval the backend uses
|
|
to check for new commands.
|
|
|
|
endif # SHELL_BACKEND_ADSP_MEMORY_WINDOW
|
|
|
|
endif # SHELL_BACKENDS
|