mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-29 20:04:59 +02:00
some more up to date information
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@1439 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
51eb9547f2
commit
c1b7257d2c
@ -15,7 +15,7 @@
|
|||||||
<h1>OpenWrt Buildroot</h1>
|
<h1>OpenWrt Buildroot</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Usage and documentation by Felix Fietkau, based on uClibc Buildroot
|
<p>Usage and documentation by Felix Fietkau and Waldemar Brodkorb, based on uClibc Buildroot
|
||||||
documentation by Thomas Petazzoni. Contributions from Karsten Kruse,
|
documentation by Thomas Petazzoni. Contributions from Karsten Kruse,
|
||||||
Ned Ludd, Martin Herren.</p>
|
Ned Ludd, Martin Herren.</p>
|
||||||
|
|
||||||
@ -129,8 +129,8 @@
|
|||||||
<li>squashfs</li>
|
<li>squashfs</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><code>jffs2</code> contains a writable root filesystem, which will expand to
|
<p><code>jffs2</code> contains a writable root filesystem, which will expand to
|
||||||
the size of your flash image. Note that you if you use the generic firmware
|
the size of your flash image. Note: if you use the generic firmware image, you
|
||||||
Image, you need to pick the right image for your Flash size, because of different
|
need to pick the right image for your flash size, because of different
|
||||||
eraseblock sizes.</p>
|
eraseblock sizes.</p>
|
||||||
|
|
||||||
<p><code>squashfs</code> contains a read-only root filesystem using a modified
|
<p><code>squashfs</code> contains a read-only root filesystem using a modified
|
||||||
@ -197,7 +197,7 @@
|
|||||||
configuration, and the latter is used if you have selected
|
configuration, and the latter is used if you have selected
|
||||||
locale support.</li>
|
locale support.</li>
|
||||||
|
|
||||||
<li>Run the compilation again</li>
|
<li>Run the compilation again.</li>
|
||||||
|
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
@ -232,7 +232,9 @@
|
|||||||
|
|
||||||
<li><b>target</b> (in the <code>target</code> directory) contains the
|
<li><b>target</b> (in the <code>target</code> directory) contains the
|
||||||
Makefiles and associated files for software related to the generation of
|
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.
|
: jffs2 and squashfs.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@ -276,7 +278,7 @@
|
|||||||
|
|
||||||
<li>Create the target directory (<code>build_ARCH/root/</code> by
|
<li>Create the target directory (<code>build_ARCH/root/</code> by
|
||||||
default) and the target filesystem skeleton. This directory will contain
|
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 <code>target/default/target_skeleton</code>
|
copies the skeleton available in <code>target/default/target_skeleton</code>
|
||||||
and then removes useless <code>CVS/</code> directories.</li>
|
and then removes useless <code>CVS/</code> directories.</li>
|
||||||
|
|
||||||
@ -302,10 +304,10 @@
|
|||||||
<p>For example, you may add the following to your
|
<p>For example, you may add the following to your
|
||||||
<code>.bashrc</code> (considering you're building for the MIPS
|
<code>.bashrc</code> (considering you're building for the MIPS
|
||||||
architecture and that Buildroot is located in
|
architecture and that Buildroot is located in
|
||||||
<code>~/buildroot/</code>) :</p>
|
<code>~/openwrt/</code>) :</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
export PATH=$PATH:~/buildroot/staging_dir_mipsel/bin/
|
export PATH=$PATH:~/openwrt/staging_dir_mipsel/bin/
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Then you can simply do :</p>
|
<p>Then you can simply do :</p>
|
||||||
@ -344,7 +346,7 @@ mipsel-linux-uclibc-gcc -o foo foo.c
|
|||||||
downloaded by the <i>Makefiles</i> are all stored in the
|
downloaded by the <i>Makefiles</i> are all stored in the
|
||||||
<code>DL_DIR</code> which by default is the <code>dl</code>
|
<code>DL_DIR</code> which by default is the <code>dl</code>
|
||||||
directory. It's useful for example if you want to keep a complete
|
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
|
associated tarballs. This will allow you to regenerate the
|
||||||
toolchain and the target filesystem with exactly the same
|
toolchain and the target filesystem with exactly the same
|
||||||
versions.</p>
|
versions.</p>
|
||||||
@ -369,8 +371,21 @@ mipsel-linux-uclibc-gcc -o foo foo.c
|
|||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
config BR2_PACKAGE_FOO
|
config BR2_PACKAGE_FOO
|
||||||
tristate "foo"
|
tristate "foo - some nice tool"
|
||||||
default n
|
default m if CONFIG_DEVEL
|
||||||
|
help
|
||||||
|
This is a comment that explains what foo is.
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>If you depend on other software or library inside the Buildroot, it
|
||||||
|
is important that you automatically select these packages in your
|
||||||
|
<code>Config.in</code>. Example if foo depends on bar library:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
config BR2_PACKAGE_FOO
|
||||||
|
tristate "foo - some nice tool"
|
||||||
|
default m if CONFIG_DEVEL
|
||||||
|
select BR2_PACKAGE_LIBBAR
|
||||||
help
|
help
|
||||||
This is a comment that explains what foo is.
|
This is a comment that explains what foo is.
|
||||||
</pre>
|
</pre>
|
||||||
@ -378,6 +393,17 @@ config BR2_PACKAGE_FOO
|
|||||||
<p>Of course, you can add other options to configure particular
|
<p>Of course, you can add other options to configure particular
|
||||||
things in your software.</p>
|
things in your software.</p>
|
||||||
|
|
||||||
|
<h3><code>Config.in</code> in the package directory</h3>
|
||||||
|
|
||||||
|
<p>To add your package to the configuration tool, you need
|
||||||
|
to add the following line to <code>package/Config.in</code>,
|
||||||
|
please add it to a section, which fits the purpose of foo:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
comment "Networking"
|
||||||
|
source "package/foo/Config.in"
|
||||||
|
</pre>
|
||||||
|
|
||||||
<h3><code>Makefile</code> in the package directory</h3>
|
<h3><code>Makefile</code> in the package directory</h3>
|
||||||
|
|
||||||
<p>To add your package to the build process, you need to edit
|
<p>To add your package to the build process, you need to edit
|
||||||
@ -391,7 +417,6 @@ package-$(BR2_PACKAGE_FOO) += foo
|
|||||||
<p>As you can see, this short line simply adds the target
|
<p>As you can see, this short line simply adds the target
|
||||||
<code>foo</code> to the list of targets handled by OpenWrt Buildroot.</p>
|
<code>foo</code> to the list of targets handled by OpenWrt Buildroot.</p>
|
||||||
|
|
||||||
|
|
||||||
<p>In addition to the default dependencies, you make your package
|
<p>In addition to the default dependencies, you make your package
|
||||||
depend on another package (e.g. a library) by adding a line:
|
depend on another package (e.g. a library) by adding a line:
|
||||||
|
|
||||||
@ -399,10 +424,11 @@ package-$(BR2_PACKAGE_FOO) += foo
|
|||||||
foo-compile: bar-compile
|
foo-compile: bar-compile
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h3>The <i>.control</i> file</h3>
|
<h3>The ipkg control file</h3>
|
||||||
<p>Additionally, you need to create a control file which contains
|
<p>Additionally, you need to create a control file which contains
|
||||||
information about your package, readable by the <i>ipkg</i> package
|
information about your package, readable by the <i>ipkg</i> package
|
||||||
utility.</p>
|
utility. It should be created as file:
|
||||||
|
<code>package/foo/ipkg/foo.control</code></p>
|
||||||
|
|
||||||
<p>The file looks like this</p>
|
<p>The file looks like this</p>
|
||||||
|
|
||||||
@ -412,12 +438,14 @@ foo-compile: bar-compile
|
|||||||
3 Section: net
|
3 Section: net
|
||||||
4 Maintainer: Foo Software <foo@foosoftware.com>
|
4 Maintainer: Foo Software <foo@foosoftware.com>
|
||||||
5 Source: http://foosoftware.com
|
5 Source: http://foosoftware.com
|
||||||
6 Description: Your Package Description
|
6 Depends: libbar
|
||||||
|
7 Description: Package Description
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>You can skip the usual <code>Version:</code> and <code>Architecture</code>
|
<p>You can skip the usual <code>Version:</code> and <code>Architecture</code>
|
||||||
fields, as they will be generated by the <code>make-ipkg-dir.sh</code> script
|
fields, as they will be generated by the <code>make-ipkg-dir.sh</code> script
|
||||||
called from your Makefile</p>
|
called from your Makefile. The Depends field is important, so that ipkg will
|
||||||
|
automatically fetch all dependend software on your target system.</p>
|
||||||
|
|
||||||
<h3>The real <i>Makefile</i></h3>
|
<h3>The real <i>Makefile</i></h3>
|
||||||
|
|
||||||
@ -434,7 +462,6 @@ foo-compile: bar-compile
|
|||||||
4 PKG_VERSION:=1.0
|
4 PKG_VERSION:=1.0
|
||||||
5 PKG_RELEASE:=1
|
5 PKG_RELEASE:=1
|
||||||
6 PKG_MD5SUM:=4584f226523776a3cdd2fb6f8212ba8d
|
6 PKG_MD5SUM:=4584f226523776a3cdd2fb6f8212ba8d
|
||||||
7
|
|
||||||
8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
9 PKG_SOURCE_URL:=http://www.foosoftware.org/downloads
|
9 PKG_SOURCE_URL:=http://www.foosoftware.org/downloads
|
||||||
10 PKG_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
10 PKG_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
Loading…
Reference in New Issue
Block a user