You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openbmc-rdv3/2_openbmc_setup.md
+30-30Lines changed: 30 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Set Up Pre-Silicon Development Environment for OpenBMC and UEFI
2
+
title: Set Up the Pre-Silicon Development Environment for OpenBMC and UEFI
3
3
weight: 3
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -8,27 +8,25 @@ layout: learningpathall
8
8
9
9
## Set Up Development Environment
10
10
11
-
In this module, you’ll prepare your workspace to build and simulate OpenBMC and UEFI firmware on the Neoverse RD-V3 platform using Arm Fixed Virtual Platforms (FVPs).
12
-
You’ll install the required tools, configure repositories, and set up a Docker-based build environment for both BMC and host firmware.
11
+
In this section, you’ll prepare your workspace to build and simulate OpenBMC and UEFI firmware on the Neoverse RD-V3 platform using Arm Fixed Virtual Platforms (FVPs).
12
+
You will install the required tools, configure repositories, and set up a Docker-based build environment for both BMC and host firmware.
13
13
14
14
Before getting started, it’s strongly recommended to review the previous Learning Path: [CSS-V3 Pre-Silicon Software Development Using Neoverse Servers](https://learn.arm.com/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack).
15
-
That guide walks you through how to use the CSSv3 reference design on FVP to perform early-stage development and validation.
15
+
It walks you through how to use the CSSv3 reference design on FVP to perform early-stage development and validation.
16
16
17
-
Ensure your system meets the following requirements:
18
-
- Access to an Arm Neoverse-based Linux machine (either cloud-based or local) is required, with at least 80 GB of free disk space, 48 GB of RAM, and running Ubuntu 22.04 LTS.
19
-
- Working knowledge of Docker, Git, and Linux terminal tools
20
-
- Basic understanding of server firmware stack (UEFI, BMC, TF-A, etc.)
21
-
- Docker installed, or GitHub Codespaces-compatible development environment
17
+
You will perform the steps outlined below on your Arm Neoverse-based Linux machine running Ubuntu 22.04 LTS. You will need at least 80 GB of free disk space, 48 GB of RAM.
22
18
23
19
### Install Required Packages
24
20
25
21
Install the base packages for building OpenBMC with the Yocto Project:
### Download and Install the Arm FVP Model (RD-V3)
42
40
43
-
Download and extract the RD-V3 FVP binary from Arm:
41
+
Download and extract the RD-V3 FVP:
44
42
```bash
45
43
mkdir ~/fvp
46
44
cd~/fvp
@@ -49,7 +47,7 @@ tar -xvf FVP_RD_V3_R1_11.29_35_Linux64_armv8l.tgz
49
47
./FVP_RD_V3_R1.sh
50
48
```
51
49
52
-
The FVP installation may prompt you with a few questions—choosing the default options is sufficient for this learning path. By default, the FVP will be installed in /home/ubuntu/FVP_RD_V3_R1.
50
+
The FVP installation may prompt you with a few questions, choosing the default options is sufficient for this learning path. By default, the FVP will be installed in `$HOME/FVP_RD_V3_R1`.
53
51
54
52
55
53
### Initialize the Host Build Environment
@@ -59,12 +57,10 @@ Set up a workspace for host firmware builds:
This approach allows you to fetch only the `patch` folder from the remote Git repository—saving time and disk space.
87
83
88
-
Next, create an `apply_patch.sh` script inside the `~` directory and paste in the following content.
84
+
Next, using a file editor of your choice, create an `apply_patch.sh` script inside the `~` directory and paste in the following content.
89
85
This script will automatically apply the necessary patches to each firmware component.
90
86
91
-
```patch
87
+
```bash
92
88
FVP_DIR="host"
93
89
SOURCE=${PWD}
94
90
@@ -139,9 +135,9 @@ These patches enable additional UEFI features, integrate the Redfish client, and
139
135
### Build RDv3 R1 Host Docker Image
140
136
141
137
Before building the host image, update the following line in `~/host/grub/bootstrap` to replace the `git://` protocol.
142
-
Some networks or corporate environments restrict `git://` access due to firewall or security policies. Switching to `https://` ensures reliable and secure access to external Git repositories.
138
+
Some networks may restrict `git://` access due to firewall or security policies. Switching to `https://` ensures reliable and secure access to external Git repositories.
The other [Arm Learning Path](https://learn.arm.com/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack/3_rdv3_sw_build/) provides a complete introduction to setting up the RDv3 development environment — feel free to refer to it for more details.
213
+
This [Arm Learning Path](/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack/3_rdv3_sw_build/) provides a complete introduction to setting up the RDv3 development environment, please refer to it for more details.
214
214
{{% /notice %}}
215
215
216
216
217
217
### Build OpenBMC Image
218
218
219
-
OpenBMC is built on the Yocto Project, which uses BitBake as its build tool.
219
+
OpenBMC is built on the Yocto Project, which uses `BitBake` as its build tool.
220
220
You don’t need to download BitBake separately, as it is included in the OpenBMC build environment.
221
221
Once you’ve set up the OpenBMC repository and initialized the build environment, BitBake is already available for building images, compiling packages, or running other tasks.
222
222
@@ -230,9 +230,9 @@ source setup fvp
230
230
bitbake obmc-phosphor-image
231
231
```
232
232
233
-
During the OpenBMC build process, you may encounter a native compilation error when building Node.js (especially version 22+) due to high memory usage during the V8 engine build phase depends on your build machine.
233
+
During the OpenBMC build process, you may encounter a native compilation error when building `Node.js` (especially version 22+) due to high memory usage during the V8 engine build phase.
234
234
235
-
```log
235
+
```output
236
236
g++: fatal error: Killed signal terminated program cc1plus
237
237
compilation terminated.
238
238
ERROR: oe_runmake failed
@@ -249,9 +249,9 @@ PARALLEL_MAKE = "-j2"
249
249
250
250
This ensures that BitBake only runs two parallel tasks and that each Makefile invocation limits itself to two threads. It significantly reduces peak memory usage and avoids OOM terminations.
251
251
252
-
Once success build, you should see a successful build message similar to:
252
+
With a successful build, you should see output similar to:
@@ -290,9 +290,9 @@ This confirms that the OpenBMC image was built successfully.
290
290
The first build may take up to an hour depending on your system performance, as it downloads and compiles the entire firmware stack.
291
291
{{% /notice %}}
292
292
293
-
Your workspace should now follow a structured layout that separates the FVP simulator, host build system, OpenBMC source, and patches—making it easier to organize, maintain, and troubleshoot your simulation environment.
293
+
Your workspace should now be structured to separate the FVP, host build system, OpenBMC source, and patches—simplifying organization, maintenance, and troubleshooting.
294
294
295
-
```text
295
+
```output
296
296
├── FVP_RD_V3_R1
297
297
├── apply_patch.sh
298
298
├── fvp
@@ -319,4 +319,4 @@ Your workspace should now follow a structured layout that separates the FVP simu
319
319
└── run.sh
320
320
```
321
321
322
-
With both the OpenBMC and host firmware environments built and configured, you’re now fully prepared to launch the full system simulation and observe the boot process in action.
322
+
With both the OpenBMC and host firmware environments built and configured, you’re now fully prepared to launch the full system simulation and observe the boot process in action.
0 commit comments