Difference between revisions of "Buildroot directories"
m (moved Buildroot Verzeichnisse to Buildroot directories) |
|||
Line 1: | Line 1: | ||
− | After generating a new image the first time, a couple of new folders were created. | + | 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. |
− | + | ||
− | So if | + | == placeholders used == |
− | + | ||
− | 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. | + | === 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''. | ||
[[Category:Buildroot]] | [[Category:Buildroot]] |
Revision as of 17:22, 18 January 2011
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 |
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.