Board Status: Difference between revisions
(Created page with "'''Board Status''' Semi-automated crowdsourced information about what boards are supported by which version of coreboot. =Intro= For many years the list of Supported Main...") |
mNo edit summary |
||
Line 1: | Line 1: | ||
'''Board Status''' | '''Board Status''' | ||
Semi-automated crowdsourced information about what boards | Semi-automated crowdsourced information about what boards and versions of coreboot are known to work together. | ||
=Intro= | =Intro= | ||
Line 19: | Line 19: | ||
# Read CBMEM log from DUT. | # Read CBMEM log from DUT. | ||
# Read kernel log from DUT | # Read kernel log from DUT | ||
# (Optional) Upload results to the board_status repository [https://review.coreboot.org/cgit/board-status.git] via git. The | # (Optional) Upload results to the board_status repository [https://review.coreboot.org/cgit/board-status.git] via git. The [[Supported Mainboards]] page is generated automatically using this data. | ||
To upload results, the user must have an account with commit rights on coreboot.org. This is simply to prevent spam and abuse. If you have an idea for how to improve this so that more people can contribute without needing an account please let us know on the [[Mailinglist]]! | To upload results, the user must have an account with commit rights on coreboot.org. This is simply to prevent spam and abuse. If you have an idea for how to improve this so that more people can contribute without needing an account please let us know on the [[Mailinglist]]! |
Revision as of 18:43, 16 September 2017
Board Status
Semi-automated crowdsourced information about what boards and versions of coreboot are known to work together.
Intro
For many years the list of Supported Mainboards was maintained by a small handful of people with wiki access. This was challenging in a couple of ways: Wiki access was different from repository commit access, and the process of updating the wiki is somewhat tedious especially if we want an ongoing list of which coreboot versions work on a particular mainboard.
To address this problem the board_status.sh script was created to glean some basic information using cbmem and the kernel log on a machine that had successfully booted coreboot. The script (both shell and Go versions) reside under the util/board_status directory.
How It Works
board_status.sh gathers build information and runtime information. Build information includes data from git such as the repository from where the code came from. Runtime information includes CBMEM data and kernel log.
Steps
In a nutshell, here are the steps involved:
- Read coreboot and payload configuration and version. This includes information from git metadata.
- Read CBMEM log from DUT.
- Read kernel log from DUT
- (Optional) Upload results to the board_status repository [1] via git. The Supported Mainboards page is generated automatically using this data.
To upload results, the user must have an account with commit rights on coreboot.org. This is simply to prevent spam and abuse. If you have an idea for how to improve this so that more people can contribute without needing an account please let us know on the Mailinglist!
What Is Tested
Currently the only thing that is tested is whether or not the machine booted successfully. Other tests may be added in the future, but for now the lowest common denominator is simply a test of whether the machine booted far enough to run the board_status script.
How To Use It
Dependencies
- The device under test must have the cbmem utility installed in the root user's $PATH.
Remote via SSH
In this setup coreboot is built on a separate machine from the DUT. The DUT is configured to allow root login via SSH pubkey authentication.
Steps:
- Set up DUT with public key authentication and root login.
- Build coreboot on local machine.
- Flash DUT with coreboot image and boot it.
- Run `util/board_status/board_status.sh -r <host>` on local machine. Add the `-u` option to upload the results (requires OpenID/OAth2 account; see https://www.coreboot.org/Git#Gerrit [2] for details).
Remote via Serial
TBA
Local
TBA