9836e2b3 | 10-Feb-2020 |
Andrew Jeffery <andrew@aj.id.au> |
conf: Ship default configuration and systemd units
Two configurations are supported:
1. A socket-activated, single-port client service arrangement, and 2. A port-templated client service
systemd's
conf: Ship default configuration and systemd units
Two configurations are supported:
1. A socket-activated, single-port client service arrangement, and 2. A port-templated client service
systemd's template-unit constraints prevent us from mapping ports to a daemon configuration for the socket-activated case. To support multiple concurrent console servers we have to revert to a standard daemon arrangement where dropbear binds, listens and accepts its own connections. This brings with it immediate memory overhead of running dropbear before connections are received. As such configuration 2 is opt-in as there are very few systems that require it.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ifbcac1b1ca75ab3ff08c73855d7ed2ebabc27c0a
show more ...
|
71e7a249 | 12-Feb-2020 |
Andrew Jeffery <andrew@aj.id.au> |
console-client: Enable use of a configuration file
However, only initialise a config if the option was provided. This avoids searching for the default config, which may not exist and is intended for
console-client: Enable use of a configuration file
However, only initialise a config if the option was provided. This avoids searching for the default config, which may not exist and is intended for the server.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I08f736243c1843bfb8855f5ceb69418d59a8775a
show more ...
|
ddf2ab7c | 09-Feb-2020 |
Andrew Jeffery <andrew@aj.id.au> |
obmc-console: Expose socket ID configuration for client and server
* Add a new option in the server configuration file to use a friendly ID in the socket abstract path * Add a new command-line opt
obmc-console: Expose socket ID configuration for client and server
* Add a new option in the server configuration file to use a friendly ID in the socket abstract path * Add a new command-line option to the client to connect to a particular server socket path.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I95440ca7c2c76d2c1ef00d92abc9e0ffc32cbf5a
show more ...
|
5e7c0786 | 09-Feb-2020 |
Andrew Jeffery <andrew@aj.id.au> |
console-socket: Add an optional component to UNIX socket abstract names
Allows multiple instances of obmc-console-server to run concurrently without interfering with each other.
Signed-off-by: Andr
console-socket: Add an optional component to UNIX socket abstract names
Allows multiple instances of obmc-console-server to run concurrently without interfering with each other.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I7ef9c14e554c687e8d606e1eaaed82a7f1c06d98
show more ...
|
c5ce2cbd | 25-Jul-2019 |
Jeremy Kerr <jk@ozlabs.org> |
tests: Add client escape test
Add a small testcase for the escape-parsing code.
Change-Id: I2296d1bd0b1a97b46565e56ed867dd39a159baec Signed-off-by: Jeremy Kerr <jk@ozlabs.org> |
5b16dc89 | 26-Jul-2019 |
William A. Kennington III <wak@google.com> |
console-client: Fix fixed-string escape mode dropping its last byte
This fixes an issue of the server not receiving the final byte of the escape sequence due to an off by one.
Fixes: 15691c8ef350bc
console-client: Fix fixed-string escape mode dropping its last byte
This fixes an issue of the server not receiving the final byte of the escape sequence due to an off by one.
Fixes: 15691c8ef350bcaae0f37c522488ce87dbe5ea84 Change-Id: Id6240f858fb4b77e684faeb3405cc631c07c35cb Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
8a154357 | 25-Jul-2019 |
William A. Kennington III <wak@google.com> |
console-client: Produce unique exit code when escaped
This allows programs which supervise obmc-console-client to know the difference between a clean exit and one where the shell had a deliberate es
console-client: Produce unique exit code when escaped
This allows programs which supervise obmc-console-client to know the difference between a clean exit and one where the shell had a deliberate escape.
Tested: Ran on a machine and checked that issuing an escape generated a return code of 2.
Change-Id: Ica698134f60ba17b445c12b9c95faed43f90f309 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
15691c8e | 25-Jul-2019 |
William A. Kennington III <wak@google.com> |
console-client: Support an alternate string escape mode
This mode is intended to avoid the behavior of witholding any characters from the console-server. It sends the entire buffer regardless of mat
console-client: Support an alternate string escape mode
This mode is intended to avoid the behavior of witholding any characters from the console-server. It sends the entire buffer regardless of matching the escape sequence, however it will immediately terminate after seeing a full escape sequence and sending the remaining buffered content.
Tested: Ran obmc-console-client with no arguments and ensured the ssh-like escape sequence still worked. Then ran `obmc-console-client -e esc`, typed a bunch of text into the console followed by esc and watched the console exit as expected.
Change-Id: I780719d6e2402f93bba81beb8c09e1c661471e22 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
ff569830 | 25-Jul-2019 |
William A. Kennington III <wak@google.com> |
console-client: Cleanup the escape code
This change fixes a bug where multiple tildes were sent if a user typed \r~~ This is unlike ssh, which allows nesting of escape sequences by ensuring that onl
console-client: Cleanup the escape code
This change fixes a bug where multiple tildes were sent if a user typed \r~~ This is unlike ssh, which allows nesting of escape sequences by ensuring that only the second tilde is sent after the command sequence is issued. This patch fixes the behavior so the console-server only ever gets \r~ for an issued \r~~
This also prepares the escape sequence handling code for an upcoming change which allows a user configurable escape sequence in addition to the default ssh like one.
Change-Id: Iaff04e62fb57fab88d413df2b347809b98f728bb Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
1cecc5de | 28-Feb-2019 |
Johnathan Mantey <johnathanx.mantey@intel.com> |
Eliminate excessive CPU consumption when redirecting UART over SSH
Redirecting the external UART via SSH caused the console-server, console-client, and dropbear to consume ~30% of the available CPU
Eliminate excessive CPU consumption when redirecting UART over SSH
Redirecting the external UART via SSH caused the console-server, console-client, and dropbear to consume ~30% of the available CPU each when a large amount of data was being written to the UART output.
Buffering all of the small 16550 FIFO bytes into a larger packet and then sending that to the SSH SW allows more efficient transmission over the ethernet connection.
Tested this by "ssh root@<bmc.ip.addr> -p 2200" on a system running a CentOS distribution. Using a BASH console run a large binary file through "od -t x1 <fname>" to create a large amount of traffic. At the BMC console run "top" to review the CPU usage. My experience is after this change is applied: console-server: ~25% CPU dropbear: ~3% CPU console-client: ~1% CPU
Change-Id: Ibabfd285e97a487e7ff040e1cb3159fbff360328 Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
show more ...
|
a395a771 | 19-Mar-2019 |
Johnathan Mantey <johnathanx.mantey@intel.com> |
Fix a recursive header include
The test-config-parse-logfile test case recursively includes console-server.h.
Change-Id: I699ba24ece8671a0529cae3e25e258db811d33f5 Signed-off-by: Johnathan Mantey <j
Fix a recursive header include
The test-config-parse-logfile test case recursively includes console-server.h.
Change-Id: I699ba24ece8671a0529cae3e25e258db811d33f5 Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
show more ...
|
f9c8f6ca | 04-Mar-2019 |
Cheng C Yang <cheng.c.yang@linux.intel.com> |
Change baudrate dynamically through dbus
Create a dbus interface so that user can change baudrate dynamically. With this feature, SOL can still work correctly when BIOS switch uart from high speed u
Change baudrate dynamically through dbus
Create a dbus interface so that user can change baudrate dynamically. With this feature, SOL can still work correctly when BIOS switch uart from high speed uart to normal uart.
Tested By: Run busctl introspect xyz.openbmc_project.console /xyz/openbmc_project/console the property baudrate show the current baudrate. Run busctl call xyz.openbmc_project.console /xyz/openbmc_project/console xyz.openbmc_project.console setBaudRate x 9600 The property baudrate show 9600 now. After change BIOS console redirection to 9600 baudrate and change putty client also to 9600. SOL and serial port can work correctly.
Change-Id: I2045f47520275a0b5bb9242af78a64e5aac8ea8a Signed-off-by: Cheng C Yang <cheng.c.yang@linux.intel.com>
show more ...
|
fcf8541b | 18-Dec-2018 |
Vernon Mauery <vernon.mauery@linux.intel.com> |
obmc-console-server: bind/connect with the correct sockaddr size
Abstract unix sockets start with the nul-charater, but are not nul terminated. In fact, the nul-character has no meaning in the path.
obmc-console-server: bind/connect with the correct sockaddr size
Abstract unix sockets start with the nul-charater, but are not nul terminated. In fact, the nul-character has no meaning in the path. According to the man page unix(7),
abstract: an abstract socket address is distinguished (from a pathname socket) by the fact that sun_path[0] is a null byte ('\0'). The socket's address in this namespace is given by the additional bytes in sun_path that are covered by the specified length of the address structure. (Null bytes in the name have no special significance.)
This means that when calling bind/connect, the size of the sockaddr structure is not sizeof(sockaddr_un), it is sizeof(sockaddr_un) - sizeof(sun_path) + (path_len)
Change-Id: I6560ba8b2a25a60644873adf66f02a60ded42b1d Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
show more ...
|
18644357 | 27-Aug-2018 |
Kun Yi <kunyi731@gmail.com> |
log-handler: Init log size properly
Log size is not initialized when the config string is not present in the configuration file. Add a default value in that case.
Resolves openbmc/obmc-console#14
log-handler: Init log size properly
Log size is not initialized when the config string is not present in the configuration file. Add a default value in that case.
Resolves openbmc/obmc-console#14
Tested: Made sure when configuration file contains no logsize option, the size is configured to 16kB.
Change-Id: I20b109fc791f2d6ac54704c9aabb5cd129a8bf13 Signed-off-by: Kun Yi <kunyi731@gmail.com>
show more ...
|
3c89b263 | 14-Jun-2018 |
Kun Yi <kunyi731@gmail.com> |
Add gitignore
Tested: git status is clean after 'make' and 'cd test && make check'.
Change-Id: I5a6dd2a8a85b0621b0d055910071da632ccc810d Signed-off-by: Kun Yi <kunyi731@gmail.com> |
9747d63d | 22-Jun-2018 |
Kun Yi <kunyi731@gmail.com> |
test: config: Add a test for config_parse_logsize.
Add a unit test that validates config_parse_logsize returns expected values.
Tested: 'make check' passed when ran under x86_64 environment.
Chang
test: config: Add a test for config_parse_logsize.
Add a unit test that validates config_parse_logsize returns expected values.
Tested: 'make check' passed when ran under x86_64 environment.
Change-Id: I54d9478157fab3db7c2c5879d12e719e738a1099 Signed-off-by: Kun Yi <kunyi731@gmail.com>
show more ...
|
6424cc3b | 14-Jun-2018 |
Kun Yi <kunyi731@gmail.com> |
log-handler: Add a config option for log size.
Allow a configuration option to specify a log size. The parameter takes and interprets common size suffixes k/M/G. 1kB = 1024B, 1MB=1024kB, 1GB=1024MB.
log-handler: Add a config option for log size.
Allow a configuration option to specify a log size. The parameter takes and interprets common size suffixes k/M/G. 1kB = 1024B, 1MB=1024kB, 1GB=1024MB. Default unit is byte. If "B" is specified at the end it will be ignored.
Tested: Tested that "logsize = 567kB" correctly sets up a 567KB log buffer. Tested that invalid/overflow values will be ignored and 16KB will be used. Tested that if log size smaller than pagesize is rounded up.
Change-Id: I2fb50462c6ff7873130be80f7d57ef8065acc5da Signed-off-by: Kun Yi <kunyi731@gmail.com>
show more ...
|
c7fbcd48 | 04-Jun-2018 |
Benjamin Fair <benjaminfair@google.com> |
server: allow setting baud rate on host tty
The Nuvoton NPCM7xx series BMCs have a real UART which receives output from the host serial console, rather than a virtual UART as on Aspeed parts. This m
server: allow setting baud rate on host tty
The Nuvoton NPCM7xx series BMCs have a real UART which receives output from the host serial console, rather than a virtual UART as on Aspeed parts. This means we have to set the baud rate of the tty to match the host console.
This change adds the "baud" config option. If it is present in the config file and has a valid value, the host console tty's baud rate will be set to that value.
Change-Id: If2156c2032e7527709713f13654ce8bca9bf4c1d Signed-off-by: Benjamin Fair <benjaminfair@google.com>
show more ...
|
fcbdea9c | 04-Jun-2018 |
Benjamin Fair <benjaminfair@google.com> |
tty-handler: move baud rate parsing into config.c
This is in preparation for being able to set the baud rate on the host console tty.
Change-Id: Id279530bdfc1240649fcdd606fbc928437fc38dc Signed-off
tty-handler: move baud rate parsing into config.c
This is in preparation for being able to set the baud rate on the host console tty.
Change-Id: Id279530bdfc1240649fcdd606fbc928437fc38dc Signed-off-by: Benjamin Fair <benjaminfair@google.com>
show more ...
|
5395276a | 18-May-2018 |
Andrew Jeffery <andrew@aj.id.au> |
Add MAINTAINERS file
Change-Id: I8815dac6773c929ac68cf9313b58b44c7522d4d0 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> |
67eab046 | 11-Jul-2017 |
Jeremy Kerr <jk@ozlabs.org> |
tty-handler: unify error handling for poller failures
We currently have a bug where we don't unregister from the ringbuffer poller if we get an error on read(). This change unifies the error-handlin
tty-handler: unify error handling for poller failures
We currently have a bug where we don't unregister from the ringbuffer poller if we get an error on read(). This change unifies the error-handling for potential failure cases in the poller handler, and ensures that we unregister the ringbuffer poller and console poller in all cases.
Change-Id: If354dd3c7f2a1ec534c6b42020fd9978e53cb20d Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|
1764145d | 07-Feb-2017 |
Jeremy Kerr <jk@ozlabs.org> |
server: ensure per-cycle buffer is smaller than ringbuffer
... otherwise there's a chance we can't queue a full read.
Change-Id: I7bae8b124a523aac39045b6da97b486924e69f97 Signed-off-by: Jeremy Kerr
server: ensure per-cycle buffer is smaller than ringbuffer
... otherwise there's a chance we can't queue a full read.
Change-Id: I7bae8b124a523aac39045b6da97b486924e69f97 Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|
6b1fed27 | 07-Feb-2017 |
Jeremy Kerr <jk@ozlabs.org> |
server: improve blocked-write behaviour for handlers
We currently don't implement POLLOUT properly; we never set this for polled events, and will repeat calls to write() if we see EAGAIN.
This chan
server: improve blocked-write behaviour for handlers
We currently don't implement POLLOUT properly; we never set this for polled events, and will repeat calls to write() if we see EAGAIN.
This change improves the behaviour when writes start to block, by tracking when a fd is blocked. Once we detect blocking behaviour, we supress future (non-forced) writes, and wait for POLLOUT so we know when we can write again.
Change-Id: I809bde4e1c7c78a58ea296d5c076b3d93c272558 Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|
f733c85a | 07-Feb-2017 |
Jeremy Kerr <jk@ozlabs.org> |
server: use ringbuffer for all handlers
Currently, we use the a ringbuffer within the socket handler to manage bursts of data to slower clients.
However, we're also seeing cases where the local tty
server: use ringbuffer for all handlers
Currently, we use the a ringbuffer within the socket handler to manage bursts of data to slower clients.
However, we're also seeing cases where the local tty handler becomes blocking as well. So, we want to implement a buffer within the tty handler too.
This change moves the ringbuffer 'up a layer' - from the socket handler to the core console code.
We remove the ->data_in callback from handlers, and work on the assumption that handlers have registered their own consumer on the console's ringbuffer (through a new helper function, console_ringbuffer_consumer_register()).
Change-Id: Ie8f02d6632578c50bb5e2dfb9bee6ece86432135 Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|
1b575010 | 07-Feb-2017 |
Jeremy Kerr <jk@ozlabs.org> |
server: Add documentation to struct handler
Add a little documentation for the handler API, as we'll be changing this with upcoming buffer code.
Change-Id: I0d33c415f577b9bdc6b53bb8151bb7f564733b3d
server: Add documentation to struct handler
Add a little documentation for the handler API, as we'll be changing this with upcoming buffer code.
Change-Id: I0d33c415f577b9bdc6b53bb8151bb7f564733b3d Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|