Add TARGET_MACHINE to /etc/os-release

Joseph Reynolds jrey at linux.vnet.ibm.com
Fri Nov 30 10:03:12 AEDT 2018


> Proposal to add TARGET_MACHINE to /etc/os-release.

I've updated the details to explain why the uname command is 
unsatisfactory.

> 
> 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:
>   OPENBMC_PHOSPHOR_TARGET_MACHINE="$MACHINE"
> 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.

The "uname" command options -m (machine) and -i (hardware platform) will 
continue to refer to the BMC and not its host.



More information about the openbmc mailing list