All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint
@ 2016-04-14  6:30 OpenBMC Patches
  2016-04-14  6:30 ` [PATCH openbmc 1/3] Enable obmc-console project OpenBMC Patches
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: OpenBMC Patches @ 2016-04-14  6:30 UTC (permalink / raw)
  To: openbmc

Following the previous disable, this bumps us to a working obmc-console version, and adds infrastructure for a ssh-based remote console connection.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/openbmc/openbmc/232)
<!-- Reviewable:end -->


https://github.com/openbmc/openbmc/pull/232

Jeremy Kerr (3):
  Enable obmc-console project
  dropbear: Add patch for -c <command> option to dropbear
  obmc-console: Add ssh endpoint

 meta-phosphor/classes/obmc-phosphor-image.bbclass  |  1 +
 ...d-c-command-option-to-force-a-specific-co.patch | 91 ++++++++++++++++++++++
 .../recipes-core/dropbear/dropbear_%.bbappend      |  3 +-
 .../recipes-phosphor/obmc-console/obmc-console.bb  | 22 +++++-
 .../obmc-console/obmc-console-ssh.socket           | 11 +++
 .../obmc-console/obmc-console-ssh@.service         | 11 +++
 6 files changed, 136 insertions(+), 3 deletions(-)
 create mode 100644 meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch
 create mode 100644 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
 create mode 100644 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service

-- 
2.7.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH openbmc 1/3] Enable obmc-console project
  2016-04-14  6:30 [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint OpenBMC Patches
@ 2016-04-14  6:30 ` OpenBMC Patches
  2016-04-14  6:30 ` [PATCH openbmc 2/3] dropbear: Add patch for -c <command> option to dropbear OpenBMC Patches
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: OpenBMC Patches @ 2016-04-14  6:30 UTC (permalink / raw)
  To: openbmc

From: Jeremy Kerr <jk@ozlabs.org>

The issue that prevented obmc-console from compiling was has been fixed
in f5858b5bf, so bump to a recent obmc-console version, and reenable.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
 meta-phosphor/classes/obmc-phosphor-image.bbclass                  | 1 +
 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta-phosphor/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
index 164da33..ce54777 100644
--- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
@@ -42,6 +42,7 @@ IMAGE_INSTALL += " \
         i2c-tools \
         screen \
         inarp \
+        obmc-console \
         "
 
 def build_overlay(d):
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 6fe3bde..75a1d84 100644
--- a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
@@ -11,7 +11,7 @@ TARGET_CFLAGS   += "-fpic -O2"
 
 SRC_URI += "git://github.com/openbmc/obmc-console"
 SRC_URI += "file://${PN}.conf"
-SRCREV = "54e9569d14b127806e45e1c17ec4a1f5f7271d3f"
+SRCREV = "2eacda524e98c7964e542e01aabf82360cf60344"
 
 do_install_append() {
         install -m 0755 -d ${D}${sysconfdir}
-- 
2.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH openbmc 2/3] dropbear: Add patch for -c <command> option to dropbear
  2016-04-14  6:30 [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint OpenBMC Patches
  2016-04-14  6:30 ` [PATCH openbmc 1/3] Enable obmc-console project OpenBMC Patches
@ 2016-04-14  6:30 ` OpenBMC Patches
  2016-04-14  6:30 ` [PATCH openbmc 3/3] obmc-console: Add ssh endpoint OpenBMC Patches
  2016-04-14 14:15 ` [PATCH openbmc 0/3] Re-enable obmc-console and add a " Cédric Le Goater
  3 siblings, 0 replies; 6+ messages in thread
From: OpenBMC Patches @ 2016-04-14  6:30 UTC (permalink / raw)
  To: openbmc

From: Jeremy Kerr <jk@ozlabs.org>

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
 ...d-c-command-option-to-force-a-specific-co.patch | 91 ++++++++++++++++++++++
 .../recipes-core/dropbear/dropbear_%.bbappend      |  3 +-
 2 files changed, 93 insertions(+), 1 deletion(-)
 create mode 100644 meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch

diff --git a/meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch b/meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch
new file mode 100644
index 0000000..88d0ac0
--- /dev/null
+++ b/meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch
@@ -0,0 +1,91 @@
+From b4e094381ec846f4387dc6a3c210c2205a8db58a Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Tue, 12 Apr 2016 11:11:40 +0800
+Subject: [PATCH] dropbear: Add -c <command> option to force a specific command
+
+This change adds a -c option to dropbear, to force the session to use a
+specific command, in a similar fashion to OpenSSH's ForceCommand
+configuration option.
+
+This is useful to provide a simple fixed service over ssh, without
+requiring an authorized key file for the per-key forced_command option.
+
+This setting takes precedence over the channel session's provided
+command, and the per-key forced_command setting.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+---
+ runopts.h         |  2 ++
+ svr-chansession.c | 12 ++++++++++--
+ svr-runopts.c     |  5 +++++
+ 3 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/runopts.h b/runopts.h
+index f7c869d..ffb573e 100644
+--- a/runopts.h
++++ b/runopts.h
+@@ -114,6 +114,8 @@ typedef struct svr_runopts {
+ 	buffer * banner;
+ 	char * pidfile;
+ 
++	char * command;
++
+ } svr_runopts;
+ 
+ extern svr_runopts svr_opts;
+diff --git a/svr-chansession.c b/svr-chansession.c
+index bfaf7f6..d6c9330 100644
+--- a/svr-chansession.c
++++ b/svr-chansession.c
+@@ -671,8 +671,16 @@ static int sessioncommand(struct Channel *channel, struct ChanSess *chansess,
+ 		}
+ 	}
+ 	
+-	/* take public key option 'command' into account */
+-	svr_pubkey_set_forced_command(chansess);
++
++	/* take global command into account */
++	if (svr_opts.command) {
++		chansess->original_command = chansess->cmd ? : m_strdup("");
++		chansess->cmd = m_strdup(svr_opts.command);
++	} else {
++		/* take public key option 'command' into account */
++		svr_pubkey_set_forced_command(chansess);
++	}
++
+ 
+ #ifdef LOG_COMMANDS
+ 	if (chansess->cmd) {
+diff --git a/svr-runopts.c b/svr-runopts.c
+index 8f60059..f845300 100644
+--- a/svr-runopts.c
++++ b/svr-runopts.c
+@@ -79,6 +79,7 @@ static void printhelp(const char * progname) {
+ #ifdef ENABLE_SVR_REMOTETCPFWD
+ 					"-k		Disable remote port forwarding\n"
+ 					"-a		Allow connections to forwarded ports from any host\n"
++					"-c command	Force executed command\n"
+ #endif
+ 					"-p [address:]port\n"
+ 					"		Listen on specified tcp port (and optionally address),\n"
+@@ -125,6 +126,7 @@ void svr_getopts(int argc, char ** argv) {
+ 	/* see printhelp() for options */
+ 	svr_opts.bannerfile = NULL;
+ 	svr_opts.banner = NULL;
++	svr_opts.command = NULL;
+ 	svr_opts.forkbg = 1;
+ 	svr_opts.norootlogin = 0;
+ 	svr_opts.noauthpass = 0;
+@@ -177,6 +179,9 @@ void svr_getopts(int argc, char ** argv) {
+ 				case 'b':
+ 					next = &svr_opts.bannerfile;
+ 					break;
++				case 'c':
++					next = &svr_opts.command;
++					break;
+ 				case 'd':
+ 				case 'r':
+ 					next = &keyfile;
+-- 
+2.5.0
+
diff --git a/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend b/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend
index 36c0dcd..52a38bd 100644
--- a/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend
+++ b/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend
@@ -1,2 +1,3 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI += "file://dropbearkey.service"
+SRC_URI += "file://dropbearkey.service \
+	    file://0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch"
-- 
2.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH openbmc 3/3] obmc-console: Add ssh endpoint
  2016-04-14  6:30 [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint OpenBMC Patches
  2016-04-14  6:30 ` [PATCH openbmc 1/3] Enable obmc-console project OpenBMC Patches
  2016-04-14  6:30 ` [PATCH openbmc 2/3] dropbear: Add patch for -c <command> option to dropbear OpenBMC Patches
@ 2016-04-14  6:30 ` OpenBMC Patches
  2016-04-14 14:15 ` [PATCH openbmc 0/3] Re-enable obmc-console and add a " Cédric Le Goater
  3 siblings, 0 replies; 6+ messages in thread
From: OpenBMC Patches @ 2016-04-14  6:30 UTC (permalink / raw)
  To: openbmc

From: Jeremy Kerr <jk@ozlabs.org>

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
 .../recipes-phosphor/obmc-console/obmc-console.bb    | 20 +++++++++++++++++++-
 .../obmc-console/obmc-console-ssh.socket             | 11 +++++++++++
 .../obmc-console/obmc-console-ssh@.service           | 11 +++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
 create mode 100644 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service

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 @@ inherit autotools
 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
-- 
2.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint
  2016-04-14  6:30 [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint OpenBMC Patches
                   ` (2 preceding siblings ...)
  2016-04-14  6:30 ` [PATCH openbmc 3/3] obmc-console: Add ssh endpoint OpenBMC Patches
@ 2016-04-14 14:15 ` Cédric Le Goater
  2016-04-15  8:29   ` Jeremy Kerr
  3 siblings, 1 reply; 6+ messages in thread
From: Cédric Le Goater @ 2016-04-14 14:15 UTC (permalink / raw)
  To: OpenBMC Patches, openbmc

Hello,

I tried it on a palmetto. Very nice. This is perfect for me.

For my education on the topic, what are the plans for the OpenBMC 
host console ? Is obmc-console a temporary or a final solution ? 

May be adding websockets would provide an easier integration in 
a www ui. 

Thanks.

C.

On 04/14/2016 08:30 AM, OpenBMC Patches wrote:
> Following the previous disable, this bumps us to a working obmc-console version, and adds infrastructure for a ssh-based remote console connection.
> 
> <!-- Reviewable:start -->
> ---
> This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/openbmc/openbmc/232)
> <!-- Reviewable:end -->
> 
> 
> https://github.com/openbmc/openbmc/pull/232
> 
> Jeremy Kerr (3):
>   Enable obmc-console project
>   dropbear: Add patch for -c <command> option to dropbear
>   obmc-console: Add ssh endpoint
> 
>  meta-phosphor/classes/obmc-phosphor-image.bbclass  |  1 +
>  ...d-c-command-option-to-force-a-specific-co.patch | 91 ++++++++++++++++++++++
>  .../recipes-core/dropbear/dropbear_%.bbappend      |  3 +-
>  .../recipes-phosphor/obmc-console/obmc-console.bb  | 22 +++++-
>  .../obmc-console/obmc-console-ssh.socket           | 11 +++
>  .../obmc-console/obmc-console-ssh@.service         | 11 +++
>  6 files changed, 136 insertions(+), 3 deletions(-)
>  create mode 100644 meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch
>  create mode 100644 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
>  create mode 100644 meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint
  2016-04-14 14:15 ` [PATCH openbmc 0/3] Re-enable obmc-console and add a " Cédric Le Goater
@ 2016-04-15  8:29   ` Jeremy Kerr
  0 siblings, 0 replies; 6+ messages in thread
From: Jeremy Kerr @ 2016-04-15  8:29 UTC (permalink / raw)
  To: Cédric Le Goater, openbmc

Hi Cédric,

> I tried it on a palmetto. Very nice. This is perfect for me.

Excellent, thanks for testing!

> For my education on the topic, what are the plans for the OpenBMC 
> host console ? Is obmc-console a temporary or a final solution ? 

obmc-console will be the final solution; however, it doesn't mean we
need to always use ssh-based access to the console.

It allows multiple "handlers" for the UART data. At present, we have
two handlers: one that copies to/from stdio (which we then pipe over
ssh), and one that logs the host UART data to a file.

For a websocket, we'd just need a new handler to implement that.

We also have a TODO for a handler to implement redirection back to a
local UART:

 https://github.com/openbmc/obmc-console/issues/3

Cheers,


Jeremy

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-04-15  8:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-14  6:30 [PATCH openbmc 0/3] Re-enable obmc-console and add a ssh endpoint OpenBMC Patches
2016-04-14  6:30 ` [PATCH openbmc 1/3] Enable obmc-console project OpenBMC Patches
2016-04-14  6:30 ` [PATCH openbmc 2/3] dropbear: Add patch for -c <command> option to dropbear OpenBMC Patches
2016-04-14  6:30 ` [PATCH openbmc 3/3] obmc-console: Add ssh endpoint OpenBMC Patches
2016-04-14 14:15 ` [PATCH openbmc 0/3] Re-enable obmc-console and add a " Cédric Le Goater
2016-04-15  8:29   ` Jeremy Kerr

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.