obmc-console design for multi host support

Vijay Khemka vijaykhemka at fb.com
Fri Mar 6 08:58:22 AEDT 2020

Hi Andrew,
I have a question as why do we need obmc-console-ssh.socket and obmc-console-ssh at .service. 
Especially when using in concurrent servers do we need to create these for each client/server socket?

This may be a basic question but I want to understand this more.


On 3/2/20, 8:19 PM, "openbmc on behalf of Andrew Jeffery" <openbmc-bounces+vijaykhemka=fb.com at lists.ozlabs.org on behalf of andrew at aj.id.au> wrote:

    On Thu, 27 Feb 2020, at 20:34, Andrew Jeffery wrote:
    > You'll need a .bbappend file with a do_install_append() in your machine
    > layer to install the rest of your configuration files.
    Just following up on the .bbappend - the change for the base recipe is here:
    In that context, .bbappends for enabling concurrent console servers should
    look something like this for an example machine called 'foo':
    FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
    SRC_URI += "file://server.ttyVUART0.conf"
    SRC_URI_append_foo = " file://client.2201.conf"
    SRC_URI_append_foo = " file://server.ttyVUART1.conf"
    SRC_URI_remove = "file://$%7BBPN%7D.conf"
    REGISTERED_SERVICES_${PN}_append_foo = " obmc_console_guests:tcp:2201:"
    SYSTEMD_SERVICE_${PN}_append_foo = " obmc-console-ssh at 2200.service \
    		obmc-console-ssh at 2201.service \
    SYSTEMD_SERVICE_${PN}_remove_foo = "obmc-console-ssh.socket"
    FILES_${PN}_remove_foo = "/lib/systemd/system/obmc-console-ssh at .service.d/use-socket.conf"
    EXTRA_OECONF_append_foo = " --enable-concurrent-servers"
    do_install_append_foo() {
            # Install configuration for the servers and clients. Keep commandline
            # compatibility with previous configurations by defaulting to not
            # specifying a socket-id for VUART0/2200
            install -m 0755 -d ${D}${sysconfdir}/${BPN}
            # Remove the default client configuration as we don't to define a
            # socket-id for the 2200 console
            rm -f ${D}${sysconfdir}/${BPN}/client.2200.conf
            # However, now link to /dev/null as a way of not specifying a
            # socket-id while having a configuration file present. We need to
            # provide a configuration path to meet the requirements of the packaged
            # unit file.
            ln -sr ${D}/dev/null ${D}${sysconfdir}/${BPN}/client.2200.conf
            # We need to populate socket-id for remaining consoles
            install -m 0644 ${WORKDIR}/client.2201.conf ${D}${sysconfdir}/${BPN}/
            # Install configuration for remaining servers - the base recipe
            # installs the configuration for the first.
            install -m 0644 ${WORKDIR}/server.ttyVUART1.conf ${D}${sysconfdir}/${BPN}/
    Hope that helps.

More information about the openbmc mailing list