obmc-console: Add ssh endpoint
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
index 75a1d84..e5553fe 100644
--- a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
@@ -10,12 +10,30 @@
TARGET_CFLAGS += "-fpic -O2"
SRC_URI += "git://github.com/openbmc/obmc-console"
-SRC_URI += "file://${PN}.conf"
+SRC_URI += "file://${PN}.conf \
+ file://obmc-console-ssh.socket \
+ file://obmc-console-ssh@.service"
+
SRCREV = "2eacda524e98c7964e542e01aabf82360cf60344"
+FILES_${PN} += "${systemd_unitdir}/system/obmc-console-ssh@.service \
+ ${systemd_unitdir}/system/obmc-console-ssh.socket"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service ${BPN}-ssh.socket"
+
do_install_append() {
install -m 0755 -d ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/${PN}.conf ${D}${sysconfdir}/${PN}.conf
+
+ # add additional unit files for ssh-based console server
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/obmc-console-ssh@.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/obmc-console-ssh.socket ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@BINDIR@,${bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/obmc-console-ssh@.service \
+ ${D}${systemd_unitdir}/system/obmc-console-ssh.socket
}
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
new file mode 100644
index 0000000..3fbfd99
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenBMC console ssh server socket
+Conflicts=obmc-console-ssh.service
+Requires=obmc-console.service
+
+[Socket]
+ListenStream=2200
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service
new file mode 100644
index 0000000..74d5a7a
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OBMC console SSH Per-Connection Server
+Wants=obmc-console.service
+
+[Service]
+Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear"
+EnvironmentFile=-/etc/default/dropbear
+ExecStart=-@SBINDIR@/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c @BINDIR@/obmc-console-client $DROPBEAR_EXTRA_ARGS
+ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
+StandardInput=socket
+KillMode=process