61 lines
1.7 KiB
Plaintext
61 lines
1.7 KiB
Plaintext
/** @page building Building
|
|
|
|
<i>This section describes how to build the Barebox bootloader.</i>
|
|
|
|
@a Barebox uses Kconfig/Kbuild from the Linux kernel to build it's
|
|
sources. It consists of two parts: the makefile infrastructure (kbuild)
|
|
and a configuration system (kconfig). So building @a barebox is very
|
|
similar to building the Linux kernel.
|
|
|
|
In the examples below we use the "sandbox" configuration, which is a
|
|
port of @a Barebox to the Linux userspace. This makes it possible to
|
|
test the code without having real hardware or even qemu. Note that the
|
|
sandbox architecture does only work well on x86 and has some issues on
|
|
x86_64.
|
|
|
|
\todo Find out about issues on x86_64.
|
|
|
|
Selecting the architecture and the corresponding cross compiler is done
|
|
by setting the following environment variables:
|
|
|
|
- ARCH=\<architecture>
|
|
- CROSS_COMPILE=\<compiler-prefix>
|
|
|
|
For @p ARCH=sandbox we do not need a cross compiler, so it is sufficient
|
|
to specify the architecture:
|
|
|
|
@code
|
|
# export ARCH=sandbox
|
|
@endcode
|
|
|
|
In order to configure the various aspects of @a barebox, start the
|
|
@a barebox configuration system:
|
|
|
|
@code
|
|
# make menuconfig
|
|
@endcode
|
|
|
|
This command starts a menu box and lets you select all the different
|
|
options available for the selected architecture. Once the configuration
|
|
is finished (you can simulate this by using the default config file with
|
|
'make sandbox_defconfig'), there is a .config file in the toplevel
|
|
directory of the sourcecode.
|
|
|
|
After @a barebox is configured, we can start the compilation:
|
|
|
|
@code
|
|
# make
|
|
@endcode
|
|
|
|
You can use '-j \<n\>' in order to do a parallel build if you have more
|
|
than one cpus.
|
|
|
|
If everything goes well, the result is a file called @p barebox:
|
|
|
|
@code
|
|
# ls -l barebox
|
|
-rwxr-xr-x 1 rsc ptx 114073 Jun 26 22:34 barebox
|
|
@endcode
|
|
|
|
*/
|