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
diff --git a/conf/client.2200.conf.in b/conf/client.2200.conf.in
new file mode 100644
index 0000000..538cb55
--- /dev/null
+++ b/conf/client.2200.conf.in
@@ -0,0 +1 @@
+socket-id = host
diff --git a/conf/obmc-console-ssh.socket.in b/conf/obmc-console-ssh.socket.in
new file mode 100644
index 0000000..0eaa2b0
--- /dev/null
+++ b/conf/obmc-console-ssh.socket.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor Host Console SSH Per-Connection socket
+
+[Socket]
+ListenStream=2200
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/conf/obmc-console-ssh@.service.d/use-socket.conf.in b/conf/obmc-console-ssh@.service.d/use-socket.conf.in
new file mode 100644
index 0000000..bd27077
--- /dev/null
+++ b/conf/obmc-console-ssh@.service.d/use-socket.conf.in
@@ -0,0 +1,4 @@
+[Service]
+ExecStart=
+ExecStart=-/usr/sbin/dropbear -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c "/usr/bin/obmc-console-client" -i $DROPBEAR_EXTRA_ARGS
+StandardInput=socket
diff --git a/conf/obmc-console-ssh@.service.in b/conf/obmc-console-ssh@.service.in
new file mode 100644
index 0000000..10e106b
--- /dev/null
+++ b/conf/obmc-console-ssh@.service.in
@@ -0,0 +1,17 @@
+[Unit]
+Description=Console Client on %i
+Wants=dropbearkey.service
+After=dropbearkey.service
+
+[Service]
+# Unit defaults to a templated service
+Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear"
+EnvironmentFile=/etc/default/dropbear
+EnvironmentFile=-/etc/default/obmc-console-client
+ExecStart=/usr/sbin/dropbear -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c "/usr/bin/obmc-console-client -c /etc/obmc-console/client.%i.conf" -p %i -F $DROPBEAR_EXTRA_ARGS
+SyslogIdentifier=console-client-%i
+ExecReload=/bin/kill -HUP $MAINPID
+KillMode=process
+
+[Install]
+WantedBy=default.target
diff --git a/conf/obmc-console@.service.in b/conf/obmc-console@.service.in
new file mode 100644
index 0000000..c6cd1b4
--- /dev/null
+++ b/conf/obmc-console@.service.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=%i Console Server
+ConditionPathExists=/etc/obmc-console/server.%i.conf
+
+[Service]
+# Instance ID is the VUART basename
+ExecStart=/usr/sbin/obmc-console-server --config /etc/obmc-console/server.%i.conf %i
+SyslogIdentifier=%i-console-server
+Restart=always
diff --git a/conf/server.ttyVUART0.conf.in b/conf/server.ttyVUART0.conf.in
new file mode 100644
index 0000000..7d3f758
--- /dev/null
+++ b/conf/server.ttyVUART0.conf.in
@@ -0,0 +1,6 @@
+lpc-address = 0x3f8
+sirq = 4
+upstream-tty = ttyVUART0
+local-tty = ttyS0
+local-tty-baud = 115200
+socket-id = host