From 9599dbf80580efea35a9d970fb20eae6ba606cac Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 15 Jul 2005 15:42:08 +0000 Subject: some more up to date information git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1439 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- docs/buildroot-documentation.html | 65 +++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/docs/buildroot-documentation.html b/docs/buildroot-documentation.html index bd9642202f..36f294e602 100644 --- a/docs/buildroot-documentation.html +++ b/docs/buildroot-documentation.html @@ -15,7 +15,7 @@

OpenWrt Buildroot

-

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.

@@ -129,8 +129,8 @@
  • squashfs
  • 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. -

  • Run the compilation again
  • +
  • Run the compilation again.
  • @@ -232,7 +232,9 @@
  • target (in the 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 @@
  • Create the target directory (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.
  • @@ -302,10 +304,10 @@

    For example, you may add the following to your .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 the DL_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 directory

    + +

    To 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 directory

    To 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
     
    -

    The .control file

    +

    The ipkg control file

    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 Description

    You can skip the usual Version: and Architecture fields, as they will be generated by the make-ipkg-dir.sh script - called from your Makefile

    + called from your Makefile. The Depends field is important, so that ipkg will + automatically fetch all dependend software on your target system.

    The real Makefile

    @@ -434,7 +462,6 @@ foo-compile: bar-compile 4 PKG_VERSION:=1.0 5 PKG_RELEASE:=1 6 PKG_MD5SUM:=4584f226523776a3cdd2fb6f8212ba8d - 7 8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 9 PKG_SOURCE_URL:=http://www.foosoftware.org/downloads 10 PKG_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -- cgit v1.2.3