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.
Regards
-Vijay
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:
https://urldefense.proofpoint.com/v2/url?u=https-3A__gerrit.openbmc-2Dproject.xyz_c_openbmc_meta-2Dphosphor_-2B_29747_1_recipes-2Dphosphor_console_obmc-2Dconsole-5Fgit.bb&d=DwIBAg&c=5VD0RTtNlTh3ycd41b3MUw&r=v9MU0Ki9pWnTXCWwjHPVgpnCR80vXkkcrIaqU7USl5g&m=1-CxtAkTLEtpmrw0zNxaJWDWKC1n3zMEPSWErzgz6Ow&s=4F0YCLIwY_2nNtoNQ3nhkPlN1iU1d8O2EX3cOhtz8no&e=
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.
Andrew
More information about the openbmc
mailing list