Add TARGET_MACHINE to /etc/os-release
bradleyb at fuzziesquirrel.com
Thu Nov 29 05:36:37 AEDT 2018
> On Nov 16, 2018, at 12:30 PM, Joseph Reynolds <joseph-reynolds at charter.net> wrote:
> Proposal to add TARGET_MACHINE to /etc/os-release.
> In an OpenBMC image, the /etc/os-release file includes distro ("openbmc-phosphor") and version (as a git tag or commit). It should also include the target machine (the kind of device the OpenBMC image is intended to control). This is needed to be able to track the image back to its source code: the distro and version indicate the exact source code that was used, and the target says which Bitbake layer configuration within that source was used.
> Specifically, the proposal is to enhance the generated /etc/os-release file with a new OS identification parameter like:
> where MACHINE="romulus", for example.
> All OpenBMC images should define this os-release parameter.
> Proposed documentation for the new parameter: Indicates the kind of device the OpenBMC image is targeted to control.
> ... tl;dr details follow ... snip ...
> The MACHINE is set in openbmc/meta-COMPANY/meta-MACHINE/conf/local.conf.sample. (This is where TEMPLATECONF points to.)
> Note MACHINE is not guaranteed to be unique across all future OpenBMC layer configurations. (That is, meta-A/meta-B/conf and meta-X/meta-Y/conf may inadvertently define the same machine name.) To guarantee uniqueness, an alternate design would be to use the TEMPLATECONF parameter as the machine name. (e.g., "meta-ibm/meta-romulus/conf"). In practice I expect the machine name will be sufficiently unique: as unique as different company's brand and model names.
> The manual page for "os-release" recommends prefixing the parameter name with the distro name. Ideas for alternate parameter names are welcome ("OBMC_TARGET_HARDWARE" anyone?). See https://www.freedesktop.org/software/systemd/man/os-release.html.
> The os-release file is generated by the os-release.bb and os-release.bbappend recipes.
Just FYI - MACHINE winds up in uname -a:
root at palmetto:/var/lib/systemd# uname -a
Linux palmetto 4.18.12-b29e57c654b8d7cfa15d632fbc0ebfe0897b8203 #1 Thu Nov 15 21:52:09 UTC 2018 armv5tejl GNU/Linux
Perhaps this meets your need without additional code?
More information about the openbmc