From: Waldemar Brodkorb Usage and documentation by Felix Fietkau, based on uClibc Buildroot
+ Usage and documentation by Felix Fietkau and Waldemar Brodkorb, based on uClibc Buildroot
documentation by Thomas Petazzoni. Contributions from Karsten Kruse,
Ned Ludd, Martin Herren. For example, you may add the following to your
OpenWrt Buildroot
- jffs2
contains a writable root filesystem, which will expand to
- the size of your flash image. Note that you if you use the generic firmware
- Image, you need to pick the right image for your Flash size, because of different
+ the size of your flash image. Note: if you use the generic firmware image, you
+ need to pick the right image for your flash size, because of different
eraseblock sizes.squashfs
contains a read-only root filesystem using a modified
@@ -197,7 +197,7 @@
configuration, and the latter is used if you have selected
locale support.
- target
directory) contains the
Makefiles and associated files for software related to the generation of
- the target root filesystem image. Two types of filesystems are supported
+ the target root filesystem image and the linux kernel for the different
+ system on a chip boards, used in the Wireless Routers.
+ Two types of filesystems are supported
: jffs2 and squashfs.
@@ -276,7 +278,7 @@
build_ARCH/root/
by
default) and the target filesystem skeleton. This directory will contain
- the final root filesystem. To setup it up, it first deletes it, then it
+ the final root filesystem. To set it up, it first deletes it, then it
copies the skeleton available in target/default/target_skeleton
and then removes useless CVS/
directories..bashrc
(considering you're building for the MIPS
architecture and that Buildroot is located in
- ~/buildroot/
) :~/openwrt/
) :
-export PATH=$PATH:~/buildroot/staging_dir_mipsel/bin/ +export PATH=$PATH:~/openwrt/staging_dir_mipsel/bin/
Then you can simply do :
@@ -344,7 +346,7 @@ mipsel-linux-uclibc-gcc -o foo foo.c downloaded by the Makefiles are all stored in theDL_DIR
which by default is the dl
directory. It's useful for example if you want to keep a complete
- version of Buildroot which is know to be working with the
+ version of Buildroot which is known to be working with the
associated tarballs. This will allow you to regenerate the
toolchain and the target filesystem with exactly the same
versions.
@@ -369,15 +371,39 @@ mipsel-linux-uclibc-gcc -o foo foo.c
config BR2_PACKAGE_FOO - tristate "foo" - default n + tristate "foo - some nice tool" + default m if CONFIG_DEVEL help This is a comment that explains what foo is.+
If you depend on other software or library inside the Buildroot, it
+ is important that you automatically select these packages in your
+ Config.in
. Example if foo depends on bar library:
+
+config BR2_PACKAGE_FOO + tristate "foo - some nice tool" + default m if CONFIG_DEVEL + select BR2_PACKAGE_LIBBAR + help + This is a comment that explains what foo is. ++
Of course, you can add other options to configure particular things in your software.
+Config.in
in the package directoryTo add your package to the configuration tool, you need
+ to add the following line to package/Config.in
,
+ please add it to a section, which fits the purpose of foo:
+
+
+comment "Networking" +source "package/foo/Config.in" ++
Makefile
in the package directoryTo add your package to the build process, you need to edit @@ -391,18 +417,18 @@ package-$(BR2_PACKAGE_FOO) += foo
As you can see, this short line simply adds the target
foo
to the list of targets handled by OpenWrt Buildroot.
In addition to the default dependencies, you make your package - depend on another package (e.g. a library) by adding a line: +
In addition to the default dependencies, you make your package + depend on another package (e.g. a library) by adding a line:
foo-compile: bar-compile-
Additionally, you need to create a control file which contains information about your package, readable by the ipkg package - utility.
+ utility. It should be created as file: +package/foo/ipkg/foo.control
The file looks like this
@@ -412,12 +438,14 @@ foo-compile: bar-compile 3 Section: net 4 Maintainer: Foo Software <foo@foosoftware.com> 5 Source: http://foosoftware.com - 6 Description: Your Package Description + 6 Depends: libbar + 7 Description: Package DescriptionYou can skip the usual Version:
and Architecture
fields, as they will be generated by the make-ipkg-dir.sh
script
- called from your Makefile