diff options
author | Chau Ly <chaul@amperecomputing.com> | 2023-04-13 08:06:28 +0300 |
---|---|---|
committer | Chau Ly <chaul@amperecomputing.com> | 2023-04-18 08:28:51 +0300 |
commit | 0a0f3482710824c59b9d738cc22b45898f687e7a (patch) | |
tree | 8f3e1870c88f0ce87941a9b3def151ba912cb6fc /meta-ampere/meta-jade/recipes-phosphor | |
parent | b10e6e7ed06314c8de2ec1918a3ee83f739ab6f2 (diff) | |
download | openbmc-0a0f3482710824c59b9d738cc22b45898f687e7a.tar.xz |
meta-ampere: mtjade: Refactor obmc-console setup
This commit refactors obmc-console setup for mtjade
Tested:
1. Successfully connects to host consoles via ssh sol
$ ssh root@${bmc} -p 220*
2. Successfully connects host consoles via ipmi sol
$ ipmitool -I lanplus -H ${bmc} -U root -P 0penBmc \
-C 17 sol activate
3. All the host console logs are in /var/log/
Signed-off-by: Chau Ly <chaul@amperecomputing.com>
Change-Id: Ie01361139644f5836646d1d98934cda52828ec70
Diffstat (limited to 'meta-ampere/meta-jade/recipes-phosphor')
16 files changed, 24 insertions, 264 deletions
diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh deleted file mode 100755 index a464adc876..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2021 Ampere Computing LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Ampere Computing LLC: UART MUX/DEMUX for CPU0 UART0,1,4 and CPU1 UART1 -# Usage: ampere_uartmux_ctrl.sh <CPU UART port number> <UARTx_MODE> -# <UARTx_MODE> of 1 sets CPU To HDR_CONN -# <UARTx_MODE> of 2 sets BMC to CPU (eg dropbear ssh server on port 2200) - -# shellcheck source=meta-ampere/meta-jade/recipes-ampere/platform/ampere-utils/gpio-lib.sh -source /usr/sbin/gpio-lib.sh - -if [ $# -lt 2 ]; then - exit 1 -fi - -case "$1" in - 1) GPIO_UARTx_MODE0=56 - # CPU0 UART0 connects to BMC UART1 - CONSOLE_PORT=0 - ;; - 2) GPIO_UARTx_MODE0=57 - # CPU0 UART1 connects to BMC UART2 - CONSOLE_PORT=1 - ;; - 3) GPIO_UARTx_MODE0=58 - # CPU0 UART4 connects to BMC UART3 - CONSOLE_PORT=2 - ;; - 4) GPIO_UARTx_MODE0=59 - # CPU1 UART1 connects to BMC UART4 - CONSOLE_PORT=3 - ;; - *) echo "Invalid UART port selection" - exit 1 - ;; -esac - -# Only switch the MUX when there is no active connection. This means we only -# switch the MUX before the first session starts and after the last session -# closes. We do this by querying number of connected sessions to the socket -# of requested console port. -# Example format: Accepted: 1; Connected: 1; -CONNECTED=$(systemctl --no-pager status obmc-console-ttyS${CONSOLE_PORT}-ssh.socket | grep -w Connected | cut -d ':' -f 3 | tr -d ' ;') -if [ ! "$CONNECTED" -le 1 ]; then - exit 0 -fi - -echo "Ampere UART MUX CTRL UART port $1 to mode $2" - -case "$2" in - 1) gpio_configure_output "${GPIO_UARTx_MODE0}" 0 - exit 0 - ;; - 2) gpio_configure_output "${GPIO_UARTx_MODE0}" 1 - exit 0 - ;; - *) echo "Invalid UART mode selection" - exit 1 - ;; -esac diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2200.conf b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2200.conf new file mode 100644 index 0000000000..901895bedb --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2200.conf @@ -0,0 +1 @@ +# socket-id is default to obmc-console diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2201.conf b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2201.conf new file mode 100644 index 0000000000..f06d9fccd6 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2201.conf @@ -0,0 +1 @@ +socket-id = ttyS1 diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2202.conf b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2202.conf new file mode 100644 index 0000000000..dba9b8d836 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2202.conf @@ -0,0 +1 @@ +socket-id = ttyS2 diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2203.conf b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2203.conf new file mode 100644 index 0000000000..0047b898fa --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/client.2203.conf @@ -0,0 +1 @@ +socket-id = ttyS3 diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-server-setup.sh b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-server-setup.sh deleted file mode 100644 index 4e0a01350d..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-server-setup.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -e -# -# Copyright (c) 2020 Ampere Computing LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -tty="$1" -uart=0 - -case "${tty}" in - "ttyS0") uart=1 - ;; - "ttyS1") uart=2 - ;; - "ttyS2") uart=3 - ;; - "ttyS3") uart=4 - ;; - *) echo "Invalid tty passed to $0. Exiting!" - exit 1; - ;; -esac - -# Default the host routing through the mux to use the BMC (2) -# This allows the SoL console in webui, and the ssh port 2200, to work -# upon startup. If UART transcievers are installed on the header and required, -# this value should be set to 1 -/usr/sbin/ampere_uartmux_ctrl.sh ${uart} 2 - -/usr/sbin/obmc-console-server --config /etc/obmc-console/server."${tty}".conf "${tty}" diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS0-ssh.socket b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS0-ssh.socket deleted file mode 100644 index 183a7a4f3c..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS0-ssh.socket +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection socket -Wants=obmc-console@ttyS0.service - -[Socket] -ListenStream=2200 -Accept=yes - -[Install] -WantedBy=sockets.target diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS0-ssh@.service b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS0-ssh@.service deleted file mode 100644 index f964454e0b..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS0-ssh@.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection -Wants=obmc-console@ttyS0.service - -[Service] -Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear" -EnvironmentFile=/etc/default/dropbear -ExecStart=/usr/sbin/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c "/usr/bin/obmc-console-client -c /etc/obmc-console/server.ttyS0.conf" -p ttyS0 -F $DROPBEAR_EXTRA_ARGS -SyslogIdentifier=dropbear -ExecReload=/bin/kill -HUP $MAINPID -StandardInput=socket -KillMode=process diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS1-ssh.socket b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS1-ssh.socket deleted file mode 100644 index bdbf562585..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS1-ssh.socket +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection socket -Wants=obmc-console@ttyS1.service - -[Socket] -ListenStream=2201 -Accept=yes - -[Install] -WantedBy=sockets.target diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS1-ssh@.service b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS1-ssh@.service deleted file mode 100644 index 697c242711..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS1-ssh@.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection -Wants=obmc-console@ttyS1.service - -[Service] -Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear" -EnvironmentFile=/etc/default/dropbear -ExecStart=/usr/sbin/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c "/usr/bin/obmc-console-client -c /etc/obmc-console/server.ttyS1.conf" -p ttyS1 -F $DROPBEAR_EXTRA_ARGS -SyslogIdentifier=dropbear -ExecReload=/bin/kill -HUP $MAINPID -StandardInput=socket -KillMode=process diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS2-ssh.socket b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS2-ssh.socket deleted file mode 100644 index f8934fd41c..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS2-ssh.socket +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection socket -Wants=obmc-console@ttyS2.service - -[Socket] -ListenStream=2202 -Accept=yes - -[Install] -WantedBy=sockets.target diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS2-ssh@.service b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS2-ssh@.service deleted file mode 100644 index 7d7f31490a..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS2-ssh@.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection -Wants=obmc-console@ttyS2.service - -[Service] -Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear" -EnvironmentFile=/etc/default/dropbear -ExecStart=/usr/sbin/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c "/usr/bin/obmc-console-client -c /etc/obmc-console/server.ttyS2.conf" -p ttyS2 -F $DROPBEAR_EXTRA_ARGS -SyslogIdentifier=dropbear -ExecReload=/bin/kill -HUP $MAINPID -StandardInput=socket -KillMode=process diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS3-ssh.socket b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS3-ssh.socket deleted file mode 100644 index fd7f3e3f97..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS3-ssh.socket +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection socket -Wants=obmc-console@ttyS3.service - -[Socket] -ListenStream=2203 -Accept=yes - -[Install] -WantedBy=sockets.target diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS3-ssh@.service b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS3-ssh@.service deleted file mode 100644 index 261f3a12ef..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console-ttyS3-ssh@.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Phosphor Host Console SSH Per-Connection -Wants=obmc-console@ttyS3.service - -[Service] -Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear" -EnvironmentFile=/etc/default/dropbear -ExecStart=/usr/sbin/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c "/usr/bin/obmc-console-client -c /etc/obmc-console/server.ttyS3.conf" -p ttyS3 -F $DROPBEAR_EXTRA_ARGS -SyslogIdentifier=dropbear -ExecReload=/bin/kill -HUP $MAINPID -StandardInput=socket -KillMode=process diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console@.service b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console@.service deleted file mode 100644 index 22a5df2690..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/obmc-console@.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=Phosphor Console Muxer listening on device /dev/%I -BindsTo=dev-%i.device -After=dev-%i.device -StartLimitBurst=3 -StartLimitIntervalSec=300 - -[Service] -ExecStart=/usr/sbin/obmc-console-server-setup.sh %i -SyslogIdentifier=obmc-console-server -Restart=always -RestartSec=10 -TimeoutStartSec=60 -TimeoutStopSec=60 - -[Install] -WantedBy=multi-user.target diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend index 655a44626b..60a26cea62 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend @@ -3,52 +3,26 @@ RDEPENDS:${PN} += "bash" # Remove what installed by common recipe OBMC_CONSOLE_HOST_TTY = "" -SYSTEMD_SUBSTITUTIONS:remove = "OBMC_CONSOLE_HOST_TTY:${OBMC_CONSOLE_HOST_TTY}:${PN}-ssh@.service" SYSTEMD_SUBSTITUTIONS:remove = "OBMC_CONSOLE_HOST_TTY:${OBMC_CONSOLE_HOST_TTY}:${PN}-ssh.socket" -SYSTEMD_SERVICE:${PN}:remove = " \ - ${PN}-ssh.socket \ - ${PN}-ssh@.service \ - " - -# Declare port spcific conf and service files -HOST_CONSOLE_TTY = "ttyS0 ttyS1 ttyS2 ttyS3" - -CONSOLE_CONF_FMT = "file://server.{0}.conf" -SRC_URI += "${@compose_list(d, 'CONSOLE_CONF_FMT', 'HOST_CONSOLE_TTY')}" -SRC_URI += "file://${BPN}-server-setup.sh" -SRC_URI += "file://${BPN}@.service" -SRC_URI += "file://ampere_uartmux_ctrl.sh" - -CONSOLE_SSH_SOCKET_FILE_FMT = "file://${PN}-{0}-ssh.socket" -CONSOLE_SSH_SERVICE_FILE_FMT = "file://${PN}-{0}-ssh@.service" -SRC_URI += "${@compose_list(d, 'CONSOLE_SSH_SOCKET_FILE_FMT', 'HOST_CONSOLE_TTY')}" -SRC_URI += "${@compose_list(d, 'CONSOLE_SSH_SERVICE_FILE_FMT', 'HOST_CONSOLE_TTY')}" - -CONSOLE_SSH_SOCKET_FMT = "${PN}-{0}-ssh.socket" -CONSOLE_SSH_SERVICE_FMT = "${PN}-{0}-ssh@.service" - -SYSTEMD_SERVICE:${PN} = " \ - ${PN}@.service \ - ${@compose_list(d, 'CONSOLE_SSH_SOCKET_FMT', 'HOST_CONSOLE_TTY')} \ - ${@compose_list(d, 'CONSOLE_SSH_SERVICE_FMT', 'HOST_CONSOLE_TTY')} \ - " + +# Declare port spcific config files +OBMC_CONSOLE_TTYS = "ttyS0 ttyS1 ttyS2 ttyS3" +CONSOLE_CLIENT = "2200 2201 2202 2203" + +CONSOLE_SERVER_CONF_FMT = "file://server.{0}.conf" +CONSOLE_CLIENT_CONF_FMT = "file://client.{0}.conf" + +SRC_URI += " ${@compose_list(d, 'CONSOLE_SERVER_CONF_FMT', 'OBMC_CONSOLE_TTYS')} \ + ${@compose_list(d, 'CONSOLE_CLIENT_CONF_FMT', 'CONSOLE_CLIENT')} \ + " + +SYSTEMD_SERVICE:${PN}:remove = "obmc-console-ssh.socket" + +FILES:${PN}:remove = "${systemd_system_unitdir}/obmc-console-ssh@.service.d/use-socket.conf" + +EXTRA_OECONF:append = " --enable-concurrent-servers" + do_install:append() { - for i in ${HOST_CONSOLE_TTY} - do - install -m 0644 ${WORKDIR}/server.${i}.conf ${D}${sysconfdir}/${BPN}/server.${i}.conf - install -m 0644 ${WORKDIR}/${BPN}-${i}-ssh.socket ${D}${systemd_unitdir}/system/${BPN}-${i}-ssh.socket - install -m 0644 ${WORKDIR}/${BPN}-${i}-ssh@.service ${D}${systemd_unitdir}/system/${BPN}-${i}-ssh@.service - done - install -m 0755 ${WORKDIR}/${BPN}-server-setup.sh ${D}${sbindir}/${BPN}-server-setup.sh - - # Deal with files installed by the base package's .bb install function - rm -f ${D}${sysconfdir}/${BPN}.conf - rm -f ${D}${sysconfdir}/${BPN}/server.ttyVUART0.conf - rm -rf ${D}${systemd_unitdir}/system/${BPN}-ssh@.service.d/ - rm -f ${D}${systemd_unitdir}/system/${BPN}-ssh@.service - rm -f ${D}${systemd_unitdir}/system/${BPN}-ssh.socket - # Overwrite base package's obmc-console@.service with our own - install -m 0644 ${WORKDIR}/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service - install -d ${D}/usr/sbin - install -m 0755 ${WORKDIR}/ampere_uartmux_ctrl.sh ${D}/${sbindir}/ampere_uartmux_ctrl.sh + # Install the console client configurations + install -m 0644 ${WORKDIR}/client.*.conf ${D}${sysconfdir}/${BPN}/ } |