Difference between revisions of "Buildroot directories"

From InCircuit
Jump to: navigation, search
(projects)
m (Reverted edits by CGruenig (talk) to last revision by TBlocher)
Line 35: Line 35:
 
Buildroot supports to generate multiple ''projects'' with the same toolchain. The name of each project can be configured within ''make menuconfig''.
 
Buildroot supports to generate multiple ''projects'' with the same toolchain. The name of each project can be configured within ''make menuconfig''.
  
[[File:Buildroot_projectname.png]]
+
[[File:buildroot_projectname.png]]
  
 
In the default configurations shipped, the projectname is always the same as the config-file name without .config. The project used by adb1000g45.config is adb1000g45, for example. This projectname is used within the generated directory and will be referenced as <project> within this document.
 
In the default configurations shipped, the projectname is always the same as the config-file name without .config. The project used by adb1000g45.config is adb1000g45, for example. This projectname is used within the generated directory and will be referenced as <project> within this document.

Revision as of 13:27, 28 March 2017

After generating a new image the first time, a couple of new folders were created. These contain sources, object-files, binaries and the generated images.

Contents

Buildroot 2012

not generated directories

These directories were copied from cd

  • board hold the board sepecific patch files used to build the system
  • boot contains sources for bootloaders
  • configs contains defconfig files for the different projects
  • dl contains all downloaded files; this are mainly packed source-archives of the software in use.
  • docs some documentation provided by the buildroot projects
  • package contains a subdirectory for each package selectable within make menuconfig to be installed on the target. Within this subdirectory, the recipe, how to built it, is stored for buildroot.
  • toolchain is the same as package, but mainly for those packages needed to generate the toolchain
  • fs, linux, support, target miscallaneous package description, needed to built the images

generated directories

The project is built within the output directory which afterwards contains following items:

  • build working directory for the compiler. Holds sources objectfiles and other stuff for each used package. Modifications made here are included in the kernel after issuing make linux-rebuild.
  • images holds generated images from the project. Here the built kernel, rootfs and bootloader are stored.
  • target contains the skeleton for the generated rootfs. Files added here are included in the generated images.
  • toolchain holds the built toolchain used to generate the project.
  • host, staging, stamps misc directories used by the compiler


Buildroot 2009

placeholders used

projects

Buildroot supports to generate multiple projects with the same toolchain. The name of each project can be configured within make menuconfig.

File:buildroot projectname.png

In the default configurations shipped, the projectname is always the same as the config-file name without .config. The project used by adb1000g45.config is adb1000g45, for example. This projectname is used within the generated directory and will be referenced as <project> within this document.

architecture

In addition to the projects, some directories contain the architecture, for which their contents are built. These can be avr32 or arm. Throughout this document, arm will be used, to mark these places. Due to this naming it is possible to built a toolchain for ICnova SAM9G45 OEM and ICnova AP7000 OEM in the same directory.

directories

not generated directories

These directories were copied from the support CD

  • dl contains all downloaded files; this are mainly packed source-archives of the software in use.
  • package contains a subdirectory for each package selectable within make menuconfig to be installed on the target. Within this subdirectory, the recipe, how to built it, is stored for buildroot.
  • toolchain is the same as package, but mainly for those packages needed to generate the toolchain
  • target, project miscallaneous package description, needed to built the images
  • docs some documentation provided by the buildroot project

generated directories

  • binaries/<project> contains the compiled and ready to use images of the kernel, bootloader and the filesystem.
  • project_build_arm/<project> this contains the built sources for project-specific software, mainly the kernel and the bootloader.
  • project_build_arm/<project>/root holds the contents of the image which gets to be created. If a file is copied here, it is included in the image, the next time make is called. So if an application is compiled externaly, the resulting binary can be placed within project_build_arm/<project>/root/usr/bin and can then be called by the target, after the image has been built. This directory cannot be used to boot from. During the creation of the images, some files become a special meaning or get to be set to specific users/privileges needed to make the system bootable.
  • project_build_arm/<project>/autotools_stamps contains one empty file for each installed software-package. This is done to signal which packages have to be built, when calling make. To force a new installation of a software, the corresponding file has to be deleted.
  • toolchain_build_arm contains the built sources for the toolchain. This includes the cross-compiler (gcc) as well as the binutils and uclibc.
  • build_arm contains the built sources of project-independent packages.
  • build_arm/staging_dir/usr/bin contains the generated toolchain. Here's the arm-linux-gcc which should be used to compile custom applications

directories on the target

After the ICnova is booted, per default any file within the directory /tmp is written to the systems RAM only, so no access of the real filesystem is made. The directories /sys and /proc are generated by the kernel and contain virtual files only. All other directories contain the files, found in the corresponding template at project_build_arm/<project>/root.

Personal tools