X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fbuild%2Fdocs%2Fmanual%2Fquickstart.txt;fp=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fbuild%2Fdocs%2Fmanual%2Fquickstart.txt;h=74158ae24990ea076b2b9328dc04fe41453bf563;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/buildroot-2015.05/build/docs/manual/quickstart.txt b/cirros-testvm/src-cirros/buildroot-2015.05/build/docs/manual/quickstart.txt new file mode 100644 index 0000000..74158ae --- /dev/null +++ b/cirros-testvm/src-cirros/buildroot-2015.05/build/docs/manual/quickstart.txt @@ -0,0 +1,123 @@ +// -*- mode:doc; -*- +// vim: set syntax=asciidoc: + +== Buildroot quick start + +*Important*: you can and should *build everything as a normal user*. There +is no need to be root to configure and use Buildroot. By running all +commands as a regular user, you protect your system against packages +behaving badly during compilation and installation. + +The first step when using Buildroot is to create a configuration. +Buildroot has a nice configuration tool similar to the one you can +find in the http://www.kernel.org/[Linux kernel] or in +http://www.busybox.net/[BusyBox]. + +From the buildroot directory, run + +-------------------- + $ make menuconfig +-------------------- + +for the original curses-based configurator, or + +-------------------- + $ make nconfig +-------------------- + +for the new curses-based configurator, or + +-------------------- + $ make xconfig +-------------------- + +for the Qt-based configurator, or + +-------------------- + $ make gconfig +-------------------- + +for the GTK-based configurator. + +All of these "make" commands will need to build a configuration +utility (including the interface), so you may need to install +"development" packages for relevant libraries used by the +configuration utilities. Refer to xref:requirement[] for more details, +specifically the xref:requirement-optional[optional requirements] +to get the dependencies of your favorite interface. + +For each menu entry in the configuration tool, you can find associated +help that describes the purpose of the entry. Refer to xref:configure[] +for details on some specific configuration aspects. + +Once everything is configured, the configuration tool generates a ++.config+ file that contains the entire configuration. This file will be +read by the top-level Makefile. + +To start the build process, simply run: + +-------------------- + $ make +-------------------- + +You *should never* use +make -jN+ with Buildroot: top-level parallel +make is currently not supported. Instead, use the +BR2_JLEVEL+ option +to tell Buildroot to run the compilation of each individual package +with +make -jN+. + +The `make` command will generally perform the following steps: + +* download source files (as required); +* configure, build and install the cross-compilation toolchain, or + simply import an external toolchain; +* configure, build and install selected target packages; +* build a kernel image, if selected; +* build a bootloader image, if selected; +* create a root filesystem in selected formats. + +Buildroot output is stored in a single directory, +output/+. +This directory contains several subdirectories: + +* +images/+ where all the images (kernel image, bootloader and root + filesystem images) are stored. These are the files you need to put + on your target system. + +* +build/+ where all the components are built (this includes tools + needed by Buildroot on the host and packages compiled for the + target). This directory contains one subdirectory for each of these + components. + +* +staging/+ which contains a hierarchy similar to a root filesystem + hierarchy. This directory contains the headers and libraries of the + cross-compilation toolchain and all the userspace packages selected + for the target. However, this directory is 'not' intended to be + the root filesystem for the target: it contains a lot of development + files, unstripped binaries and libraries that make it far too big + for an embedded system. These development files are used to compile + libraries and applications for the target that depend on other + libraries. + +* +target/+ which contains 'almost' the complete root filesystem for + the target: everything needed is present except the device files in + +/dev/+ (Buildroot can't create them because Buildroot doesn't run + as root and doesn't want to run as root). Also, it doesn't have the correct + permissions (e.g. setuid for the busybox binary). Therefore, this directory + *should not be used on your target*. Instead, you should use one of + the images built in the +images/+ directory. If you need an + extracted image of the root filesystem for booting over NFS, then + use the tarball image generated in +images/+ and extract it as + root. Compared to +staging/+, +target/+ contains only the files and + libraries needed to run the selected target applications: the + development files (headers, etc.) are not present, the binaries are + stripped. + +* +host/+ contains the installation of tools compiled for the host + that are needed for the proper execution of Buildroot, including the + cross-compilation toolchain. + +These commands, +make menuconfig|nconfig|gconfig|xconfig+ and +make+, are the +basic ones that allow to easily and quickly generate images fitting +your needs, with all the features and applications you enabled. + +More details about the "make" command usage are given in +xref:make-tips[].