Guide to OpenBMC Build as Requested by Level1Techs

Hi, this is my first time posting! On the Linux DevOps 1000 cores video, I commented about my OpenBMC builds and the Level1Techs YT channel asked for more info, so I tried posting on YT, but they shadow-deleted my comment… I noticed a few hours later and tried again, just to get shadow-deleted a second time. After a third try, I was notified that my comments had been deleted because they were apparently “spam/deceptive practices”. Because that’s what I deserve for paying Google a premium subscription I guess.

Anyways, that’s why I came here. Hopefully, I won’t be shadow-banned on here.

So onto the guide:

  1. Follow the readme from GitHub - openbmc/openbmc: OpenBMC Distribution.
    As for steps 3 and 4, I used the machine target “witherspoon-tacoma”. My company has custom/proprietary layers so I can’t provide the layers we use, but witherspoon-tacoma uses the AST2600, so it should be close enough. With this, steps three and four become:
  2. . setup witherspoon-tacoma
  3. MACHINE=witherspoon-tacoma bitbake obmc-phosphor-image

This resulted in 3545 setscene tasks and 7201 build tasks with this build configuration being reported:
Build Configuration:
BB_VERSION = “2.6.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “ubuntu-20.04”
TARGET_SYS = “arm-openbmc-linux-gnueabi”
MACHINE = “witherspoon-tacoma”
DISTRO = “openbmc-openpower”

This was performed on our build server consisting of a dual-socket Xeon 8360Y system. The build took a total of “real 25m44.926s” on this system. Admittedly in a rather uncontrolled test. Download speeds could affect some of this and as this is a shared server, I can’t guarantee that the server isn’t performing other builds at the same time. However, the full build times don’t seem to change much day-by-day so I don’t believe this was affected by anything like another build happening concurrently.

In any case, I’m looking forward to what you might make of this and I’m sure many people in OpenBMC would be interested to see the results as well!

4 Likes

Welcome, you rock, gonna try this …

2 Likes

You got me triggered, so I went to GitHub - openbmc/openbmc: OpenBMC Distribution and found this line:

It uses Yocto, OpenEmbedded, systemd, and D-Bus…

Ah, so that’s a definitive no-go for me then :roll_eyes: Hopefully the project can do a systemd-free version based on SysV-init or even OpenRC, or both, to be a truly FOSS alternative. But that’s just me :stuck_out_tongue:

Thank you! I’m excited to see what you can make of this :smiley:
And I’m glad you found this post haha, I was at my wits end with YT shadow-deleting three of my replies in a row and threatening my account with a suspension

Haha understandable I suppose. I mean, we’re relatively entrenched in our systemd services… I don’t have experience with anything other than systemd personally, but I doubt anyone would be opposed if someone wanted to throw some commits up on https://gerrit.openbmc.org to add support if anyone wanted to undertake such a task haha. The Discord is quite helpful too if you want to collaborate.
And well, as far as the manufacturers go, Intel and others used to have fully proprietary BMC firmware, but with the core firmware being open-source, it is way nicer from a customer perspective… Also lightens a little of the burden from Intel and the like haha.