What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
To build OpenBMC, use a Linux host or VM, install the repository and Yocto prerequisites, clone the source tree, select a supported machine with the repository’s setup script, and run BitBake. For a first build without a physical BMC, use the Romulus target and boot the resulting image with QEMU. The official tutorial recommends the latest Ubuntu LTS; its planning figure for a full-image VM is 8 threads, 16 GB of memory, and 200 GB of disk.
What you are setting up
OpenBMC is a Linux distribution designed for baseboard management controllers (BMCs). Unlike an ordinary application build, an OpenBMC build produces a target-specific firmware image: the machine you select determines hardware support, device configuration, kernel settings, services, and deployment files.
As an Amazon Associate I earn from qualifying purchases.
The build system combines Yocto Project metadata with BitBake. Yocto supplies the mechanisms for assembling a complete embedded Linux image; BitBake parses recipes and configuration, resolves dependencies, compiles components, and packages the result. You therefore need more than a compiler. The host must have the shell utilities, archive tools, Python-related tooling supplied by the distribution, enough storage for source and build output, and a target configuration selected before BitBake runs.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteThe normal progression is:
- Prepare a supported Linux host or a Linux virtual machine.
- Allocate enough CPU, memory, and disk for a complete image build.
- Install the package set documented by the OpenBMC repository and check current Yocto requirements.
- Clone the source tree and enter its top-level directory.
- Source
setupfor a supported machine. - Run
bitbake obmc-phosphor-image. - Boot a suitable image in QEMU or deploy it only to compatible physical hardware.
Choose a host: Linux directly or a virtual machine
Latest Ubuntu LTS: the closest match to the tutorial
The official OpenBMC development-environment tutorial states that the recommended environment is the latest Ubuntu LTS release. Ubuntu is also described as the most common community environment in that tutorial, while other Linux distributions may work but are less tested by the core team.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
If your workstation already runs the current Ubuntu LTS, you can build directly on it. A direct installation avoids VM overhead and makes it easier to attach additional storage, but it also changes the host’s package and security configuration. Keep the source and build directories on a filesystem with sufficient free space and avoid placing them on a small temporary partition.
Ubuntu in a VM
A VM is useful when your main operating system is Windows or macOS, when you want an isolated build environment, or when you need to preserve a known Ubuntu configuration. The tutorial names VirtualBox and VMware Workstation Player as VM options. Those names describe possible virtualization software, not a requirement or an endorsement of a particular product.
Give the guest direct access to as much CPU, RAM, and storage as your machine can spare. A dynamically expanding virtual disk still needs that capacity on the host as the build grows; selecting a nominally large disk does not create free physical space.
Fedora and other distributions
The repository README documents a Fedora prerequisite list, so Fedora is a documented alternative. The tutorial cautions that alternatives are less tested than Ubuntu. Distribution versions change package names and security defaults, so compare the README’s list with the current Yocto Project requirements before starting a long build.
| Host choice | When it fits | Trade-off |
|---|---|---|
| Ubuntu LTS directly on hardware | You control a Linux workstation and want maximum build performance. | Packages, security settings, and disk usage affect the host itself. |
| Ubuntu LTS in a VM | You use Windows or macOS, need isolation, or want a disposable environment. | CPU, memory, disk I/O, and networking are shared with the host. |
| Fedora directly or in a VM | You already administer Fedora and can satisfy the documented dependencies. | The community-tested path is centered on Ubuntu, and package names may differ. |
| Container-based workflow | You already maintain reproducible CI-style environments. | The tutorial mentions Docker as an option used by OpenBMC continuous integration but leaves it outside the beginner setup instructions. |
Allocate CPU, memory, and storage before installing
For a VM building a complete OpenBMC image, the official tutorial describes an ideal minimum allocation of 8 threads, 16 GB of memory, and a 200 GB hard drive. “Ideal minimum” is important: it is planning guidance for the tutorial workflow, not a guarantee that every target, host, or current revision will build successfully with exactly those resources.
- CPU: Eight threads allow BitBake to run more tasks concurrently. Fewer threads can work, but the build will generally take longer.
- Memory: 16 GB gives parallel compiler and packaging tasks room to run. If the host starts swapping, reducing parallelism or adding memory is preferable to repeatedly restarting failed tasks.
- Disk: Reserve about 200 GB for the VM plan, including source checkouts, downloaded archives, shared-state data, temporary files, and deployed images. Check actual free space on the host, not only the guest’s virtual-disk size.
The tutorial estimates 30–120 minutes for its Romulus image build depending on hardware. Treat that as an example for that documented flow, not as a universal completion-time promise. First builds are usually slower because BitBake must download and compile dependencies; later builds can reuse cached work.
Install the host prerequisites
Ubuntu package set
The OpenBMC repository README lists these Ubuntu prerequisites:
Free tools Windows power users keep installed
One-click scans. No signup required.
git gcc g++ make file wget gawk diffstat bzip2 cpio chrpath zstd lz4
On a Debian-based Ubuntu installation, install the documented names with your package manager:
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
sudo apt update
sudo apt install git gcc g++ make file wget gawk diffstat bzip2 cpio chrpath zstd lz4
The command mirrors the repository list. Yocto requirements can change as host releases and build tools change, so check the current Yocto requirements and the OpenBMC README for additions before relying on a fixed command.
Fedora package set
The README lists the following Fedora prerequisites:
git python3 gcc g++ gawk which bzip2 chrpath cpio hostname file diffutils diffstat lz4 wget zstd rpcgen patch
Install the corresponding packages with Fedora’s package manager, preserving the distribution’s package names:
Recommended Free Tools
sudo dnf install git python3 gcc g++ gawk which bzip2 chrpath cpio hostname file diffutils diffstat lz4 wget zstd rpcgen patch
If a package has been renamed or split in your Fedora release, use the current README and Yocto requirements to map it rather than substituting an unrelated tool.
Preflight checks
- Confirm that the account used for the build can create files in the source and build directories.
- Verify that the filesystem has substantial free space before downloading sources.
- Use a stable network connection; BitBake may fetch many upstream archives on the first build.
- Keep the build user’s home directory and temporary directories writable.
- Do not run the entire build as root. A normal user avoids ownership problems and is the expected development model.
Clone OpenBMC and enter the repository
Clone the upstream source tree and change into its root directory:
git clone https://github.com/openbmc/openbmc
cd openbmc
The repository root matters because the setup script is located there. You can inspect the checkout and select a revision appropriate for your project, but target support and instructions can differ between branches and tags. Keep a note of the revision you build so another developer can reproduce the environment.
Select a target with setup
Every OpenBMC build must be configured for a hardware target, also called a machine. From the repository root, run:
. setup <machine>
The leading dot is the POSIX source command. It loads variables and build configuration into the current shell, so running the script without the dot does not configure the shell in the same way.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
To display the supported hardware targets, run the script without a target:
. setup
Choose a machine that matches the board you intend to flash and test. A configuration for one board does not produce a generally interchangeable image for another. If you open a new terminal, source the setup script again before invoking BitBake.
Use Romulus for the first tutorial build
The tutorial uses Romulus as its default test system. It describes Romulus as the system tested for each continuous-integration job and therefore the most stable example for the tutorial path. Configure it from the repository root:
. setup romulus
After this command, the shell is prepared for the Romulus build directory and machine configuration. If the command reports that the machine is unsupported, update the checkout or select a target shown by . setup rather than guessing a machine name.
Build the OpenBMC image with BitBake
With the target setup sourced in the same shell, start the standard image build:
bitbake obmc-phosphor-image
BitBake resolves recipes, downloads sources, compiles packages, creates the root filesystem, and writes deployable artifacts. The first run can take a long time and consume considerable disk space. Terminal output will show task progress and any fetch, compile, configuration, or packaging error.
For the Romulus flow, the tutorial describes the output area as:
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →build/tmp/deploy/images/romulus/
That path is target-specific. If you selected another machine, replace romulus with the machine’s deploy directory. Inspect the files produced by your checkout and tutorial revision rather than assuming that every image format or filename is identical across targets.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
What a successful build means
- BitBake completes without an error summary that requires task recovery.
- Deploy artifacts appear under the selected machine’s
tmp/deploy/images/directory. - The artifact format is appropriate for the target or emulator you plan to use.
- You retain the machine name and source revision alongside the output.
Ubuntu 24.04 permission failures
The official tutorial calls out a specific Ubuntu 24.04 issue: the default restriction on unprivileged user namespaces under AppArmor can cause BitBake workers to fail with a PermissionError while writing to /proc/self/uid_map.
This is not a reason to loosen security settings pre-emptively on every Linux host. First confirm that your failure matches the documented symptom. Then apply the narrowly scoped sysctl workaround shown in the current OpenBMC development-environment instructions, and understand that system-level settings can differ by Ubuntu release, kernel, and distribution. Restore your preferred security policy after development if your organization requires it, and avoid copying a workaround intended for Ubuntu 24.04 onto an unrelated host.
Boot the image in QEMU
QEMU provides a way to exercise the Romulus image without owning a physical BMC. It is valuable for learning the build flow, checking that services start, and reproducing software changes in a controlled environment. It does not prove that an image will work on your actual board: hardware peripherals, flash layout, network wiring, sensors, and vendor-specific behavior still require testing on compatible hardware.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →After building Romulus, follow the current OpenBMC tutorial’s QEMU invocation for the files in build/tmp/deploy/images/romulus/. The command, image names, and networking details are tied to that documented Romulus flow and can change as the tree evolves, so do not substitute an image from another machine or copy an old command unchanged.
Once the emulator is running, the tutorial checks the BMC state with:
obmcutil state
Repeat the check until the BMC reports Ready. A state that remains unavailable usually indicates that the image has not finished booting, the emulator was started with the wrong artifact, or the QEMU networking and console setup does not match the tutorial’s current instructions.
Choose the right workflow for your goal
| Goal | Recommended starting point | What to expect |
|---|---|---|
| Learn the complete firmware build | Ubuntu LTS, Romulus, and bitbake obmc-phosphor-image |
A full image build and a QEMU smoke test. |
| Build for a real board | Source setup for the board’s supported machine |
Target-specific artifacts and eventual testing on compatible hardware. |
| Edit one application or service repeatedly | Complete the initial environment, then use devtool |
Faster component-focused iteration than rebuilding your mental model from scratch each time. |
| Reproduce CI-style builds | A maintained container workflow | More automation, but additional container and storage administration outside the beginner tutorial. |
Move from a full build to component development
A first image build establishes that the host, target configuration, toolchain, and dependency downloads work. It is not the most efficient workflow for every subsequent edit. The official developer documentation points from environment setup to a devtool Hello World tutorial, Web UI development material, and Gerrit code-review guidance.
After sourcing . setup <machine>, Yocto’s devtool command is available. The Hello World workflow uses devtool modify to extract a component into the local BitBake workspace. You can then edit that workspace component and rebuild it within the configured image workflow. This separates two jobs:
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
- Image bring-up: prove that the selected machine can produce a complete OpenBMC image.
- Iterative development: modify one recipe or component, rebuild the affected tasks, and validate the result.
Keep the initial full-image build available as a baseline. When a component change behaves unexpectedly, it gives you a known-good configuration against which to compare the modified workspace.
Troubleshoot by symptom
The setup command cannot find a machine
Run . setup from the repository root and select a machine listed by the script. Confirm that you are in the intended checkout and that the branch or tag still contains that target. Do not use a board name copied from an unrelated OpenBMC revision.
BitBake says the environment is not configured
Source the setup script again in the terminal where you will run BitBake:
. setup romulus
bitbake obmc-phosphor-image
Shell configuration from a closed terminal does not carry into a new one.
Tasks fail while downloading sources
Check network access, proxy settings, DNS, and available disk space. Rerun the same BitBake command after correcting the external cause; completed tasks can remain available in the build cache.
Workers fail with a /proc/self/uid_map permission error
On Ubuntu 24.04, compare the exact error with the AppArmor user-namespace restriction described earlier. Use the current tutorial’s Ubuntu-specific sysctl procedure rather than applying a broad permission change to an unrelated distribution.
The build stops because the disk is full
Free space on the filesystem that contains the source, downloads, and build directory, or move the build to a larger disk. A 200 GB allocation is the tutorial’s ideal planning figure for its VM workflow; actual consumption depends on target, revision, caches, and retained artifacts.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteQEMU boots but the BMC never reaches Ready
Confirm that you built the Romulus machine, started QEMU with the current tutorial’s Romulus artifacts, and allowed enough time for boot. Check the console and networking parameters from the same tutorial version. An image for a different machine is not a valid substitute.
When to use physical hardware
Use QEMU for the first software smoke test when you do not have a board. Move to physical hardware when you need to validate the target’s flash process, bootloader integration, host-to-BMC interfaces, sensors, GPIOs, power-control behavior, networking, or vendor-specific peripherals. Select the machine configuration that explicitly supports the board; never flash a convenient emulator image to hardware merely because both are Linux-based.
Before deployment, identify the board’s recovery method and keep a known-good image available. A failed flash or incompatible image can leave a management controller inaccessible, turning a software experiment into a hardware recovery task.
A repeatable setup checklist
- Choose the latest Ubuntu LTS if you want the environment most closely aligned with the official tutorial.
- If using a VM, plan around the tutorial’s ideal allocation of 8 threads, 16 GB RAM, and 200 GB disk, while checking your host’s actual capacity.
- Install the Ubuntu or Fedora package list from the OpenBMC README and verify current Yocto requirements.
- Clone the OpenBMC repository and enter its root directory.
- Run
. setupto view supported machines. - For the documented emulator path, run
. setup romulus. - Build with
bitbake obmc-phosphor-image. - Inspect the selected machine’s deploy directory under
build/tmp/deploy/images/. - Start the image in QEMU using the current Romulus tutorial instructions.
- Run
obmcutil stateuntil the BMC reportsReady. - After the baseline works, use
devtool modifyfor component-level iteration.
What to keep documented for your team
- Host distribution and release, including whether the build runs in a VM.
- OpenBMC branch, tag, or commit.
- Machine selected by
setup. - CPU, memory, and disk allocation.
- Package installation command and any host-specific workaround.
- BitBake image target and the resulting deploy directory.
- QEMU command or physical-board procedure used for validation.
Recording these details turns a one-off successful build into an environment another developer can reproduce and troubleshoot.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

