Difference between revisions of "Buildroot directories"

From InCircuit
Jump to: navigation, search
(not generated directories)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
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.
 
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.
 +
 +
= 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
 +
 +
<span style="color:#ff0000;">New products will be shipped without a CD.</span> Please visit [[Downloads]] for the CD image.
 +
 +
=== 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 ==
 
== placeholders used ==
Line 7: Line 36:
 
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.
Line 13: Line 42:
 
=== architecture ===
 
=== 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.
+
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 ==
 
== directories ==
Line 26: Line 55:
 
* ''target'', ''project'' miscallaneous package description, needed to built the images
 
* ''target'', ''project'' miscallaneous package description, needed to built the images
 
* ''docs'' some documentation provided by the buildroot project
 
* ''docs'' some documentation provided by the buildroot project
 +
 +
<span style="color:#ff0000;">New products will be shipped without a CD.</span> Please visit [[Downloads]] for the CD image.
  
 
=== generated directories ===
 
=== generated directories ===
Line 42: Line 73:
 
All other directories contain the files, found in the corresponding template at ''project_build_arm/<project>/root''.
 
All other directories contain the files, found in the corresponding template at ''project_build_arm/<project>/root''.
  
[[Category:Buildroot]]
+
[[Category:Buildroot]] [[Category:HowTo]]

Latest revision as of 16:39, 17 August 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

[edit] Buildroot 2012

[edit] 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

New products will be shipped without a CD. Please visit Downloads for the CD image.

[edit] 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

[edit] Buildroot 2009

[edit] placeholders used

[edit] projects

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

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.

[edit] 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.

[edit] directories

[edit] 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

New products will be shipped without a CD. Please visit Downloads for the CD image.

[edit] 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

[edit] 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