- At least 25GB of free hard drive space
- >8GB of free RAM
Grabbing the sources
Raptor CS maintains a public git repository containing the complete source code for the firmware. To download the source code:
git clone --recursive https://git.raptorcs.com/git/talos-op-build
Building the firmware
Before building the firmware, all needed support packages must be installed. Please see the README.md file for directions on installing the needed packages.
Once the packages are installed, the firmware can be build using the following commands:
cd talos-op-build . op-build-env op-build talos_defconfig op-build
If you'd like to rebuild an individual package and recreate the flash image, the following can be run:
Updating the firmware
Copy the firmware to the BMC
scp ./output/images/talos.pnor root@<talos-openbmc>:/tmp/
At this point, you will want to connect two SSH sessions to OpenBMC. In one session, run the following to display the console during bootup:
On the BMC, ensure the system is off by running obmcutil. You should see the following:
root@talos:~# obmcutil state CurrentBMCState : xyz.openbmc_project.State.BMC.BMCState.Ready CurrentPowerState : xyz.openbmc_project.State.Chassis.PowerState.Off CurrentHostState : xyz.openbmc_project.State.Host.HostState.Off
The HostState must be Off before continuing with the procedure. If the HostState is not Off, please turn off the machine:
Once off, perform the update:
pflash -E -p /tmp/talos.pnor
Start the machine:
Note: the machine may reboot multiple times after the initial flash.
If you see the following message reported in the console, then the SBE update process did not work as expected:
16.74709|Error reported by sbe (0x2200) PLID 0x90000008 16.74823| SBE Image Version Miscompare with Master Target 16.74824| ModuleId 0x0d SBE_MASTER_VERSION_COMPARE 16.74825| ReasonCode 0x2215 SBE_MASTER_VERSION_DOWNLEVEL 16.74826| UserData1 Master Target HUID : 0x0000000000050000 16.74826| UserData2 Master Target Loop Index : 0x0000000000000000
The machine needs to be reset to finish the update proceedure using the following:
obmcutil chassisoff systemctl stop xyz.openbmc_project.State.Host.service systemctl start xyz.openbmc_project.State.Host.service obmcutil poweron
The update should now complete as expected.
A bug report is open to track this issue.