Differences

This shows you the differences between two versions of the page.

doc:howto:buildroot.exigence [2013/10/30 15:20]
apparichit
doc:howto:buildroot.exigence [2014/03/09 15:59] (current)
theoradicus zip is required by jamvm
Line 9: Line 9:
  * ca. 150 MB of hard disk space for OpenWrt Buildroot   * ca. 150 MB of hard disk space for OpenWrt Buildroot
  * ca. 350 MB of hard disk space for OpenWrt Buildroot + OpenWrt Feeds   * ca. 350 MB of hard disk space for OpenWrt Buildroot + OpenWrt Feeds
 +  * ca. 2.1 GB of hard disk space for source packages downloaded during build from OpenWrt Feeds
  * ca. 3-4 GB of available hard disk space to build (i.e. cross-compile) OpenWrt and generate the firmware file   * ca. 3-4 GB of available hard disk space to build (i.e. cross-compile) OpenWrt and generate the firmware file
Line 14: Line 15:
{{tag>wip}} {{tag>wip}}
- ===== Procedure (on Debian 7 "Wheezy") =====+ ===== Install procedure on Linux =====
| ->[[doc:howto:buildroot.exigence.bsd|Procedure on ~BSD]] | ->[[doc:howto:buildroot.exigence.macosx|Procedure on Mac OS X]] | | ->[[doc:howto:buildroot.exigence.bsd|Procedure on ~BSD]] | ->[[doc:howto:buildroot.exigence.macosx|Procedure on Mac OS X]] |
\\ \\
Line 25: Line 26:
    * for information about the build tools see ''[[man>make]]'' and [[http://packages.debian.org/wheezy/build-essential|build-essential]]     * for information about the build tools see ''[[man>make]]'' and [[http://packages.debian.org/wheezy/build-essential|build-essential]]
    * for information about git see ''[[man>git(7)]]''     * for information about git see ''[[man>git(7)]]''
-  - Download the OpenWrt bleeding edge with ''svn'' (//see [[#Downloading Sources]] for more options!//):<code bash> +  - Download the OpenWrt bleeding edge with ''git'' (//see [[#Downloading Sources]] for more options!//):<code bash>
mkdir ~/openwrt mkdir ~/openwrt
cd ~/openwrt cd ~/openwrt
-svn co svn://svn.openwrt.org/openwrt/trunk/ +git clone git://git.openwrt.org/openwrt.git 
-</code> <HTML><p style="font-size:small">this creates a directory 'trunk', which is the OpenWrt Buildroot build-directory </br>for OpenWrt trunk R27988, it contains 14,382 files with an overall size of 150 MiB</br>the OpenWrt toolchain "OpenWrt Buildroot" is included</p></HTML>+</code> <HTML><p style="font-size:small">this creates a directory 'openwrt', which is the OpenWrt Buildroot build-directory </br>for OpenWrt trunk R27988, it contains 14,382 files with an overall size of 150 MiB</br>the OpenWrt toolchain "OpenWrt Buildroot" is included</p></HTML>
  - (//optional//) Download and install all available "feeds" (//see [[#Downloading and Installing Feeds]] for more options!//):<code bash>   - (//optional//) Download and install all available "feeds" (//see [[#Downloading and Installing Feeds]] for more options!//):<code bash>
-cd ~/openwrt/trunk+cd ~/openwrt/openwrt
./scripts/feeds update -a ./scripts/feeds update -a
./scripts/feeds install -a</code> <HTML><p style="font-size:small">after this, Revision 7367, the trunk-dir contained 26,650 files with an overall size of 302 MiB.</p></HTML> ./scripts/feeds install -a</code> <HTML><p style="font-size:small">after this, Revision 7367, the trunk-dir contained 26,650 files with an overall size of 302 MiB.</p></HTML>
Line 37: Line 38:
make defconfig make defconfig
make prereq make prereq
-make menuconfig</code> <HTML><p style="font-size:small">this will list missing system packages required to successfully build OpenWrt using OpenWrt Buildroot</p></HTML+make menuconfig</code> <HTML><p style="font-size:small">There you will need to select what you want to compile.</p></HTML>
-  - Install the missing packages. On a fresh //Debian 7 Wheezy 32/64Bit// these are:<code bash>sudo apt-get install libncurses5-dev zlib1g-dev gawk</code>+
  - Proceed with [[build]] (i.e. cross-compile the downloaded sources to binaries)<HTML><p style="font-size:small">After the cross-compilation process the ''trunk''-directory contained 244,451 files with a total size of 3.2GiB!</p></HTML>   - Proceed with [[build]] (i.e. cross-compile the downloaded sources to binaries)<HTML><p style="font-size:small">After the cross-compilation process the ''trunk''-directory contained 244,451 files with a total size of 3.2GiB!</p></HTML>
Line 44: Line 44:
===== Table of known prerequisites and their corresponding packages ===== ===== Table of known prerequisites and their corresponding packages =====
-Here's a table with the package name for each prerequisite separated for different Linux distributions.+Here's a table with the package name for each prerequisite separated for different GNU/Linux and Unix like distributions.
-^ Prerequisite ^ Debian ^ Suse ^ Red Hat ^ OS X (via MacPorts) ^ Fedora ^ NetBSD ^ +^ Prerequisite ^ Debian ^ Suse ^ Red Hat ^ OS X (via MacPorts) ^ Fedora ^ NetBSD ^ Arch ^ Gentoo
-| asciidoc        | asciidoc| asciidoc| asciidoc| asciidoc | asciidoc| ?| +| asciidoc        | asciidoc| asciidoc| asciidoc| asciidoc | asciidoc| ?| asciidoc | app-text/asciidoc
-| [[wp>Bash (Unix shell)|GNU Bash]] | bash |bash| bash | bash | bash| bash|  +| [[wp>Bash (Unix shell)|GNU Bash]] | bash |bash| bash | bash | bash| bash| bash| app-shells/bash | 
-| [[wp>Bc_(programming_language)#GNU_bc|GNU bc]] | [[http://packages.debian.org/jessie/bc|bc]] | | | | | | +| [[wp>Bc_(programming_language)#GNU_bc|GNU bc]] | [[http://packages.debian.org/jessie/bc|bc]] | | | | | | bc| sys-devel/bc
-| [[wp>GNU Binutils]] | binutils | binutils| binutils| binutils| binutils| ?| +| [[wp>GNU Binutils]] | binutils | binutils| binutils| binutils| binutils| ?| binutils| sys-devel/binutils
-| [[wp>bzip2]]    | bzip2 | bzip2| bzip2| bzip2| bzip2| ?|  +| [[wp>bzip2]]    | bzip2 | bzip2| bzip2| bzip2| bzip2| ?| bzip2| app-arch/bzip2
-| fastjar          | fastjar|fastjar| libgcj| fastjar| libgcj| ?|  +| fastjar          | fastjar|fastjar| libgcj| fastjar| libgcj| ?| fastjar| app-arch/fastjar
-| [[wp>flex lexical analyser|flex]]  | flex|flex| flex | flex| flex| ?|  +| [[wp>flex lexical analyser|flex]]  | flex|flex| flex | flex| flex| ?| flex| sys-devel/flex
-| [[wp>Git (software)|git]] | git-core| git-core| git | ?| git | ?| +| [[wp>Git (software)|git]] | git-core| git-core| git | git-core | git | ?| git| dev-vcs/git
-| [[wp>GNU C++ Compiler]]  | g++| gcc-c++| gcc-c++| ?| gcc-c++| ?|  +| [[wp>GNU C++ Compiler]]  | g++| gcc-c++| gcc-c++| ?| gcc-c++| ?| gcc | sys-devel/gcc
-| [[wp>GNU C Compiler]]    | gcc| gcc| gcc| ?| gcc| ?|  +| [[wp>GNU C Compiler]]    | gcc| gcc| gcc| ?| gcc| ?| gcc| sys-devel/gcc
-| getopt          | util-linux | util-linux | util-linux | getopt| util-linux | getopt|  +| getopt          | util-linux | util-linux | util-linux | getopt| util-linux | getopt| util-linux | sys-apps/util-linux
-| [[wp>GNU awk]]  | gawk| gawk| gawk| gawk| gawk| ?|  +| [[wp>GNU awk]]  | gawk| gawk| gawk| gawk| gawk| ?| gawk| sys-apps/gawk
-| gtk2.0-dev      | libgtk2.0-dev| ?| gtk2-devel| gtk2| gtk2-devel| ?|  +| gtk2.0-dev      | libgtk2.0-dev| ?| gtk2-devel| gtk2| gtk2-devel| ?| gtk2 | x11-libs/gtk+ (?)
-| intltool-update  | intltool| intltool| intltool| intltool| intltool| ?|  +| intltool-update  | intltool| intltool| intltool| intltool| intltool| ?| intltool | dev-util/intltool
-| jikes            | [[http://packages.debian.org/jessie/jikespg|jikespg]] | jikes| ?| jikes| ---| ?|  +| jikes            | [[http://packages.debian.org/jessie/jikespg|jikespg]] | jikes| ?| jikes| ---| ?| [[https://aur.archlinux.org/packages/jikes/|aur/jikes]] | dev-java/jikes
-| libz, libz-dev  | zlib1g-dev | zlib-devel| zlib-devel| zlib| zlib-devel| ?|  +| libz, libz-dev  | zlib1g-dev | zlib-devel| zlib-devel| zlib| zlib-devel| ?| zlib | sys-libs/zlib
-| make            | make | make| make | gmake| make| gmake|  +| make            | make | make| make | gmake| make| gmake| make | sys-devel/make | 
-| [[wp>ncurses]]  | libncurses5-dev| ncurses-devel| ncurses-devel| ncurses| ncurses-devel| ?|  +| mkisofs          | genisoimage | ?| ?| ?| ?| ?| cdrkit | app-cdr/cdrtools
-| openssl/ssl.h    | libssl-dev| libopenssl-devel| openssl-devel| openssl| openssl-devel| ?|  +| [[wp>ncurses]]  | libncurses5-dev| ncurses-devel| ncurses-devel| ncurses| ncurses-devel| ?| ncurses | sys-libs/ncurses
-| patch| patch    | patch | patch | patchutils| patch| ?|  +| openssl/ssl.h    | libssl-dev| libopenssl-devel| openssl-devel| openssl| openssl-devel| ?| openssl | dev-libs/openssl
-| perl-ExtUtils-MakeMaker| perl-modules | perl-ExtUtils-MakeMaker| perl-ExtUtils-MakeMaker| p5-extutils-makemaker| perl-ExtUtils-MakeMaker| ?|  +| patch| patch    | patch | patch | patchutils| patch| ?| patch | sys-devel/patch
-| python2.6-dev    | python2.6-dev | python-devel| ?| python26| python-devel | ?|  +| perl-ExtUtils-MakeMaker| perl-modules | perl-ExtUtils-MakeMaker| perl-ExtUtils-MakeMaker| p5-extutils-makemaker| perl-ExtUtils-MakeMaker| ?| perl-extutils-makemaker | virtual/perl-ExtUtils-MakeMaker
-| rsync            | rsync| rsync| rsync | rsync| rsync| ?|  +| python2.6-dev    | python2.6-dev | python-devel| ?| python26| python-devel | ?| python2 | dev-lang/python
-| ruby            | ruby| ruby | ?| ruby| ruby| ?|  +| rsync            | rsync| rsync| rsync | rsync| rsync| ?| rsync | net-misc/rsync
-| sdcc            | sdcc| sdcc| sdcc| sdcc| sdcc| ?|  +| ruby            | ruby| ruby | ?| ruby| ruby| ?| ruby | dev-lang/ruby
-| unzip            | unzip| unzip| unzip| unzip| unzip| ?|  +| sdcc            | sdcc| sdcc| sdcc| sdcc| sdcc| ?| sdcc | dev-embedded/sdcc
-| [[wp>GNU Wget]]  | wget | wget| wget| wget| wget| ?|  +| unzip            | unzip| unzip| unzip| unzip| unzip| ?| unzip | app-arch/unzip
-| working-sdcc    | --- | ?| ?| ?| ---| ?|  +| [[wp>GNU Wget]]  | wget | wget| wget| wget| wget| ?| wget | net-misc/wget
-| xgettext        | gettext| ?| gettext | gettext| gettext| ?|  +| working-sdcc    | 
-| xsltproc        | xsltproc| libxslt| ?| libxslt| libxslt| ?|  +| xgettext        | gettext| ?| gettext | gettext| gettext| ?| gettext | sys-devel/gettext
-| zlib, zlib-static| zlib1g-dev| zlib-devel| zlib-devel | zlib-devel| zlib-devel | ?|+| xsltproc        | xsltproc| libxslt| ?| libxslt| libxslt| ?| libxslt | dev-libs/libxslt
 +| zlib, zlib-static| zlib1g-dev| zlib-devel| zlib-devel | zlib-devel| zlib-devel | ?| zlib | sys-libs/zlib |
Unfortunately not all dependencies are checked by ''make config'': Unfortunately not all dependencies are checked by ''make config'':
-^ Package ^ Prerequisite ^ Debian ^ Suse ^ Red Hat ^ OS X ^ Fedora ^ NetBSD ^ +^ Package ^ Prerequisite ^ Debian ^ Suse ^ Red Hat ^ OS X ^ Fedora ^ NetBSD ^ Arch ^ Gentoo ^ 
-| intltool | [Perl] XML::Parser | libxml-parser-perl | ? | perl-XML-Parser | ? | perl-XML-Parser | ?| +| boost    | bjam / boost-jam  | libboost1.53-dev  | | | | boost-jam || boost | dev-util/boost-build | 
 +| intltool | [Perl] XML::Parser | libxml-parser-perl | | perl-XML-Parser | | perl-XML-Parser | | intltool | dev-perl/XML-Parser | 
 +| libftdi  | libusb-config      | libusb-dev | | | | | | libusb | dev-libs/libusb-compat | 
 +| lilo    | as86,ld86          | bin86 | | | | | | bin86 | sys-devel/bin86 | 
 +| lilo    | bcc                | bcc | | | | | | [[https://aur.archlinux.org/packages/bcc/|aur/bcc]] | sys-devel/dev86 | 
 +| lilo    | uudecode          | sharutils | | | | | | sharutils | app-arch/sharutils | 
 +| classpath| javac, gcj        | openjdk-7-jdk | | | | | | jdk7-openjdk | dev-java/icedtea-bin, dev-java/oracle-jdk-bin, USE="gcj" sys-devel/gcc | 
 +| mac80211 | b43-fwcutter      | | | | | | | b43-fwcutter | net-wireless/b43-fwcutter | 
 +| jamvm    | zip                | | | | | | | | |
==== Examples of Package Installations ==== ==== Examples of Package Installations ====
Line 87: Line 96:
  * **Debian 6 Squeeze:**<code>apt-get install libncurses5-dev zlib1g-dev gawk flex libssl-dev sdcc-nf</code>   * **Debian 6 Squeeze:**<code>apt-get install libncurses5-dev zlib1g-dev gawk flex libssl-dev sdcc-nf</code>
  * **Debian 7 Wheezy:**<code>apt-get install libncurses5-dev zlib1g-dev gawk</code>   * **Debian 7 Wheezy:**<code>apt-get install libncurses5-dev zlib1g-dev gawk</code>
-  * **Ubuntu 9.10:**<code>sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib bison autoconf screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core</code> +  * **Ubuntu 13.10:**<code>sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt xsltproc</code> 
-  * **Ubuntu 11.10:**<code>sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt</code> +  * **Ubuntu 12.04LTS:**<code>sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip</code>
-  * **Ubuntu 12.04LTS:**<code>sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs</code>+
  * **Ubuntu 64bit:**<code>sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext</code>   * **Ubuntu 64bit:**<code>sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext</code>
-  * **Fedora 17:**<code>yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex libz-dev flex ncurses-devel zlib-devel make patch unzip  perl-ExtUtils-MakeMaker +  * **Fedora 17:**<code>yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex libz-dev flex ncurses-devel zlib-devel make patch unzip  perl-ExtUtils-MakeMaker</code>
-mkdir ~/openwrt +
-cd openwrt +
-svn co svn://svn.openwrt.org/openwrt/trunk/ +
-cd trunk +
-./scripts/feeds update -a +
-./scripts/feeds install -a +
-make prereq +
-make menuconfig +
-ionice -c 3 nice -n 20 make -j 3 #always put nproc +1 </code>+
  * **Fedora 18 - 64Bit** (Maybe also for lower versions, some packages seem to be missing above):<code>yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker \   * **Fedora 18 - 64Bit** (Maybe also for lower versions, some packages seem to be missing above):<code>yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker \
glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison</code><code>#Maybe you need glibc.i686 glibc-static.i686 glibc-devel.i686 libgcc.i686 too</code> glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison</code><code>#Maybe you need glibc.i686 glibc-static.i686 glibc-devel.i686 libgcc.i686 too</code>
Line 106: Line 105:
glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison wget</code> glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison wget</code>
  * **openSuSE 11.1**<code>zypper install binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel flex git-core</code>In openSuSE some packages require additional repositories. Search on http://packages.opensuse-community.org and add repositories like that: <code>zypper ar "http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.1/devel:languages:perl.repo"</code>   * **openSuSE 11.1**<code>zypper install binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel flex git-core</code>In openSuSE some packages require additional repositories. Search on http://packages.opensuse-community.org and add repositories like that: <code>zypper ar "http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.1/devel:languages:perl.repo"</code>
 +  * **Arch Linux**<code>pacman -S --needed subversion asciidoc bash bc binutils bzip2 fastjar flex git gcc util-linux gawk intltool zlib make cdrkit ncurses openssl patch perl-extutils-makemaker rsync sdcc unzip wget gettext libxslt zlib boost libusb bin86 sharutils b43-fwcutter findutils</code>
===== Downloading Sources ===== ===== Downloading Sources =====

Back to top

doc/howto/buildroot.exigence.1383142808.txt.bz2 · Last modified: 2013/10/30 15:20 by apparichit