Difference between revisions of "Buildrom"

From coreboot
Jump to: navigation, search
(update supported platforms list)
m
Line 1: Line 1:
'''BuildROM''' is a tool that can construct a LinuxBIOS image (comprising the LinuxBIOS loader and payload) from scratch.  Starting from a configuration file, it will download and build all the code necessary to construct the final binary.
+
'''Buildrom''' is a tool that can construct a LinuxBIOS image (comprising the LinuxBIOS loader and payload) from scratch.  Starting from a configuration file, it will download and build all the code necessary to construct the final binary.
  
 
A tool with similar functionality is [[Etherboot]]'s [http://rom-o-matic.net/ ROM-o-matic] which builds etherboot as a LinuxBIOS ELF payload.
 
A tool with similar functionality is [[Etherboot]]'s [http://rom-o-matic.net/ ROM-o-matic] which builds etherboot as a LinuxBIOS ELF payload.
Line 8: Line 8:
  
 
* AMD Geode LX 'Norwich'
 
* AMD Geode LX 'Norwich'
* Artec Group dbe61
+
* Artec Group DBE61
 
* PC Engines ALIX1.C
 
* PC Engines ALIX1.C
* Digital Logic msm800sev
+
* Digital Logic MSM800SEV
 
* AMD DB800
 
* AMD DB800
* Gigabyte M57SLI-S4
+
* Gigabyte GA-M57SLI-S4
* Gigabyte 2761gxdk
+
* Gigabyte 2761GXDK
 
* Tyan S2882
 
* Tyan S2882
 
* Tyan S2891
 
* Tyan S2891
* AMD "Serengeti Cheetah"
+
* AMD 'Serengeti Cheetah'
  
 
== Supported Payloads ==
 
== Supported Payloads ==
Line 25: Line 25:
 
* [[Etherboot]]
 
* [[Etherboot]]
 
* [[FILO]]
 
* [[FILO]]
* "Linux-as-bootloader"
+
* "Linux-as-bootloader" (LAB)
* Memtest86+ (except the M57SLI and the TYAN S891)
+
* Memtest86+ (except on the GA-M57SLI-S4 and the Tyan S2891)
  
 
== Download ==
 
== Download ==
Line 33: Line 33:
  
 
== Prerequisites ==
 
== Prerequisites ==
 +
 
You will need the following packages on your system to use buildrom.  Please consult your distribution documentation on how to install new packages:
 
You will need the following packages on your system to use buildrom.  Please consult your distribution documentation on how to install new packages:
  
Line 55: Line 56:
 
Buildrom will download and build all the components of the ROM selected in the configuration stage.  if the build is successful, then the final ROM will be located in ''buildrom-devel/deploy''. If it is not successful, then you will see an error message.  You can see the build output for each package in by reading build.log in the work/<package>logs/ directory (i.e work/filo/logs/build.log).  
 
Buildrom will download and build all the components of the ROM selected in the configuration stage.  if the build is successful, then the final ROM will be located in ''buildrom-devel/deploy''. If it is not successful, then you will see an error message.  You can see the build output for each package in by reading build.log in the work/<package>logs/ directory (i.e work/filo/logs/build.log).  
 
   
 
   
== Developing within buildROM ==
+
== Developing within Buildrom ==
  
 
This section is for the developers who wish to change and rebuild the code. BuildROM builds the code for LinuxBIOS and the payloads in the work/ directory.  Here is a typical view of the buildROM work/ directory:
 
This section is for the developers who wish to change and rebuild the code. BuildROM builds the code for LinuxBIOS and the payloads in the work/ directory.  Here is a typical view of the buildROM work/ directory:

Revision as of 12:37, 9 November 2007

Buildrom is a tool that can construct a LinuxBIOS image (comprising the LinuxBIOS loader and payload) from scratch. Starting from a configuration file, it will download and build all the code necessary to construct the final binary.

A tool with similar functionality is Etherboot's ROM-o-matic which builds etherboot as a LinuxBIOS ELF payload.

Supported Platforms

Buildrom supports the following platforms:

  • AMD Geode LX 'Norwich'
  • Artec Group DBE61
  • PC Engines ALIX1.C
  • Digital Logic MSM800SEV
  • AMD DB800
  • Gigabyte GA-M57SLI-S4
  • Gigabyte 2761GXDK
  • Tyan S2882
  • Tyan S2891
  • AMD 'Serengeti Cheetah'

Supported Payloads

Buildrom supports the following payloads:

  • Linux kernel
  • Etherboot
  • FILO
  • "Linux-as-bootloader" (LAB)
  • Memtest86+ (except on the GA-M57SLI-S4 and the Tyan S2891)

Download

$ svn co svn://linuxbios.org/buildrom

Prerequisites

You will need the following packages on your system to use buildrom. Please consult your distribution documentation on how to install new packages:

  • subversion
  • make
  • quilt
  • GNU compiler tools (as, ld, gcc)
  • iasl (for AMD K8 platforms)

Configuration

In the buildrom-devel directory, type:

$  make menuconfig

You can now navigate the configuration system (this is the same configuration engine that the Linux kernel uses, so it should be familiar to some readers).

Building the ROM

Make sure you have access to the internet (to download new packages), and type the following to create your ROM:

$ make

Buildrom will download and build all the components of the ROM selected in the configuration stage. if the build is successful, then the final ROM will be located in buildrom-devel/deploy. If it is not successful, then you will see an error message. You can see the build output for each package in by reading build.log in the work/<package>logs/ directory (i.e work/filo/logs/build.log).

Developing within Buildrom

This section is for the developers who wish to change and rebuild the code. BuildROM builds the code for LinuxBIOS and the payloads in the work/ directory. Here is a typical view of the buildROM work/ directory:

$ ls work/
  linuxbios  filo

In each directory, you will find three directories. Logs from the build will be found in logs/ and timestamps that the build system uses are in stamps/. You normally won't have to touch these directories. The source code is located in the third directory. BuildROM provides several commands to make it easy to rebuild individual packages and ROMs. To clean a directory (but not remove the source code) use 'make <package>-clean'. You can build an individual packages with 'make <package>'. f you wish to completely erase the source code and start again with a pristine version, use 'make <package>-distclean'. Typing 'make' at any time will rebuild the ROM using the most current versions of the individual packages. Here is a typical work flow for modifying LinuxBIOS code:

  1. Build the initial ROM from scratch with 'make'
  2. Edit the LinuxBIOS source code in work/linuxbios/svn/
  3. Clean the linuxbios package with 'make linuxbios-clean'
  4. Rebuild the ROM with 'make'