2014-09-18 21:39:24 +02:00
|
|
|
// -*- mode:doc; -*-
|
|
|
|
// vim: set syntax=asciidoc:
|
|
|
|
|
2014-09-18 21:39:25 +02:00
|
|
|
[[adding-board-support]]
|
|
|
|
== Adding support for a particular board
|
2014-09-18 21:39:24 +02:00
|
|
|
|
2014-09-18 21:39:25 +02:00
|
|
|
Buildroot contains basic configurations for several publicly available
|
|
|
|
hardware boards, so that users of such a board can easily build a system
|
|
|
|
that is known to work. You are welcome to add support for other boards
|
|
|
|
to Buildroot too.
|
2014-09-18 21:39:24 +02:00
|
|
|
|
|
|
|
To do so, you need to create a normal Buildroot configuration that
|
2020-09-02 23:32:55 +02:00
|
|
|
builds a basic system for the hardware: (internal) toolchain, kernel,
|
|
|
|
bootloader, filesystem and a simple BusyBox-only userspace. No specific
|
|
|
|
package should be selected: the configuration should be as minimal as
|
2014-09-18 21:39:24 +02:00
|
|
|
possible, and should only build a working basic BusyBox system for the
|
|
|
|
target platform. You can of course use more complicated configurations
|
|
|
|
for your internal projects, but the Buildroot project will only
|
|
|
|
integrate basic board configurations. This is because package
|
|
|
|
selections are highly application-specific.
|
|
|
|
|
|
|
|
Once you have a known working configuration, run +make
|
|
|
|
savedefconfig+. This will generate a minimal +defconfig+ file at the
|
|
|
|
root of the Buildroot source tree. Move this file into the +configs/+
|
2020-09-02 23:32:55 +02:00
|
|
|
directory, and rename it +<boardname>_defconfig+. If the configuration
|
|
|
|
is a bit more complicated, it is nice to manually reformat it and
|
|
|
|
separate it into sections, with a comment before each section. Typical
|
|
|
|
sections are _Architecture_, _Toolchain options_ (typically just linux
|
|
|
|
headers version), _Firmware_, _Bootloader_, _Kernel_, and _Filesystem_.
|
|
|
|
|
|
|
|
Always use fixed versions or commit hashes for the different
|
|
|
|
components, not the "latest" version. For example, set
|
|
|
|
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y+ and
|
|
|
|
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE+ to the kernel version you tested
|
|
|
|
with.
|
2014-09-18 21:39:24 +02:00
|
|
|
|
|
|
|
It is recommended to use as much as possible upstream versions of the
|
|
|
|
Linux kernel and bootloaders, and to use as much as possible default
|
|
|
|
kernel and bootloader configurations. If they are incorrect for your
|
|
|
|
board, or no default exists, we encourage you to send fixes to the
|
|
|
|
corresponding upstream projects.
|
|
|
|
|
|
|
|
However, in the mean time, you may want to store kernel or bootloader
|
|
|
|
configuration or patches specific to your target platform. To do so,
|
|
|
|
create a directory +board/<manufacturer>+ and a subdirectory
|
|
|
|
+board/<manufacturer>/<boardname>+. You can then store your patches
|
|
|
|
and configurations in these directories, and reference them from the main
|
2014-09-18 21:39:25 +02:00
|
|
|
Buildroot configuration. Refer to xref:customize[] for more details.
|