User Tools

Site Tools


doc:howto:buildroot.exigence

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:howto:buildroot.exigence [2014/03/01 11:19]
brian arch dependencies
doc:howto:buildroot.exigence [2015/04/27 19:25] (current)
theoradicus move [Troubleshooting] to usage page
Line 1: Line 1:
 ====== OpenWrt Buildroot – Installation ====== ====== OpenWrt Buildroot – Installation ======
-[[about:​toolchain|OpenWrt Buildroot]] is the [[wp>​toolchain|buildsystem]] for the OpenWrt Linux distribution. OpenWrt Buildroot works on Linux, ​[[wp>​Comparison of BSD operating systems|~BSD]] ​or MacOSX operating system ​(case-sensitive filesystem required). It is recommended that you use a Linux distribution ([[wp>​Debian]] is recommended),​ either a standalone installation or one running in a virtual environment ([[wp>​VMware]] or [[wp>​Qemu]]).+[[about:​toolchain|OpenWrt Buildroot]] is the [[wp>​toolchain|buildsystem]] for the OpenWrt Linux distribution. OpenWrt Buildroot works on Linux, BSD or MacOSX operating system. A case-sensitive filesystem ​is required.
  
-[[wp>Cygwin]] will not be supported because of the lack of case sensitiveness ​in the file system.+It is recommended that you use a Linux distribution ([[wp>Debian]]), either a standalone installation or one running ​in a virtual environment ([[wp>​VMware]] or [[wp>​Qemu]]).
  
 +[[wp>​Cygwin]](Windows) will not be supported because of the lack of case sensitiveness in the file system.
  
 +Outdated information for old Buildroot versions, old Linux variants is archived at: [[doc:​howto:​buildroot.exigence.old]]
 +
 +:!: For common problems, benchmarks, common optimizations see [[doc:​faq:​development]]
 ===== Prerequisites ===== ===== Prerequisites =====
 to generate an [[doc:​howto:​generic.flashing|installable]] OpenWrt firmware image file with a size of e.g. 8MB: to generate an [[doc:​howto:​generic.flashing|installable]] OpenWrt firmware image file with a size of e.g. 8MB:
-  * ca. 150 MB of hard disk space for OpenWrt Buildroot +  * ca. 200 MB of hard disk space for OpenWrt Buildroot 
-  * ca. 350 MB of hard disk space for OpenWrt Buildroot + OpenWrt Feeds+  * ca. 300 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. 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
  
 +  * ca. 1-4 GB of RAM to build Openwrt.(build x86's img need 4GB RAM)
  
  ​{{tag>​wip}}  ​{{tag>​wip}}
  
- ===== Install procedure on Linux ===== +===== 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]] |
  \\  \\
 | {{:​meta:​icons:​tango:​48px-emblem-important.svg.png?​nolink}} | 1. Do everything as //​non//​-root user!\\ 2. Issue all OpenWrt Buildroot commands in the ''<​buildsystem root>''​ directory, e.g. ''​~/​openwrt/​trunk/''​\\ 3. Do not build in a directory that has spaces in its full path\\ 4. Change Ownership other than root user,of the directory where you Download the OpenWrt (sudo chown -R user:user /openwrt/)| | {{:​meta:​icons:​tango:​48px-emblem-important.svg.png?​nolink}} | 1. Do everything as //​non//​-root user!\\ 2. Issue all OpenWrt Buildroot commands in the ''<​buildsystem root>''​ directory, e.g. ''​~/​openwrt/​trunk/''​\\ 3. Do not build in a directory that has spaces in its full path\\ 4. Change Ownership other than root user,of the directory where you Download the OpenWrt (sudo chown -R user:user /openwrt/)|
  
-  - Install ''​[[wp>​Apache Subversion|subversion]]'' ​(short: ''​svn''​), to conveniently download the OpenWrt source code, and ''​[[wp>​GNU build system|build tools]]''​ to do the cross-compilation process: <code bash>​sudo apt-get update +  - Install ''​[[wp>​Git (software)|git]]''​ , to conveniently download the OpenWrt source code, and ''​[[wp>​GNU build system|build tools]]''​ to do the cross-compilation process: <code bash>​sudo apt-get update 
-sudo apt-get install ​subversion ​build-essential</​code>​ Some feeds (e.g. LuCI, openwrt-routing and telephony) are not available over svn but only via ''​[[wp>​Git (software)|git]]''​. If you want to obtain their source-code,​ you need to install ​git as well:<​code bash> +sudo apt-get install ​git-core ​build-essential ​libssl-dev libncurses5-dev unzip</​code>​ Some feeds might not available over git but only via ''​[[wp>​Apache Subversion|subversion]]'' ​(short: ''​svn''​or ''​[[wp>​Mercurial|mercurial]]''​. If you want to obtain their source-code,​ you need to install ​svn and mercurial ​as well:<​code bash> 
-sudo apt-get install ​git-core</​code>​ +sudo apt-get install ​subversion mercurial</​code>​
-     * for information about the subversion tool see ''​[[man>​svn]]''​ and [[http://​svnbook.red-bean.com/​index.en.html|subversion documentation (multiple languages)]]+
      * 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> ​ +     * for information about the subversion tool see ''​[[man>​svn]]''​ and [[http://​svnbook.red-bean.com/​index.en.html|subversion documentation (multiple languages)]] 
-mkdir ~/openwrt +  ​- Download the OpenWrt bleeding edge(trunk Version) ​with ''​git''​ (//see [[#​Downloading Sources]] for more options!//​):<​code bash>
-cd ~/openwrt+
 git clone git://​git.openwrt.org/​openwrt.git git clone git://​git.openwrt.org/​openwrt.git
-</​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>​+</​code>​ <​HTML><​p style="​font-size:​small">​this creates a directory '​openwrt',​ which is the OpenWrt Buildroot build-directory </​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/openwrt+cd 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>​
   - Make OpenWrt Buildroot check for missing packages on your build-system using one of the following commands:<​code bash>   - Make OpenWrt Buildroot check for missing packages on your build-system using one of the following commands:<​code bash>
 make defconfig make defconfig
Line 46: Line 49:
 Here's a table with the package name for each prerequisite separated for different GNU/Linux and Unix like 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 ^ Arch ^ +^ 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| ?| asciidoc | app-text/asciidoc | 
-| [[wp>​Bash (Unix shell)|GNU Bash]] | 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]] | | | | | | bc| +| [[wp>​Bc_(programming_language)#​GNU_bc|GNU bc]] | bc| bc| | | bc| | bcsys-devel/bc | 
-| [[wp>GNU Binutils]] | 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| ?| bzip2| +| [[wp>​bzip2]] ​    | bzip2 | bzip2| bzip2| bzip2| bzip2| ?| bzip2| app-arch/bzip2 | 
-| fastjar ​         | fastjar|fastjar| libgcj| fastjar| libgcj| ?| fastjar| +| fastjar ​         | fastjar|fastjar| libgcj| fastjar| libgcj| ?| fastjar| app-arch/fastjar | 
-| [[wp>​flex lexical analyser|flex]] ​ | 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-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++| ?| gcc | +| [[wp>GNU C++ Compiler]] ​ | g++| gcc-c++| gcc-c++| ?| gcc-c++| ?| gcc | sys-devel/gcc | 
-| [[wp>GNU C Compiler]] ​   | gcc| 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| util-linux | +| 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| ?| 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 | +| gtk2.0-dev ​      | libgtk2.0-dev| ​gtk2-devel| gtk2-devel| gtk2| gtk2-devel| ?| gtk2 | x11-libs/​gtk+ (?) 
-| intltool-update ​ | intltool| 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| ---| ?| [[https://​aur.archlinux.org/​packages/​jikes/​|aur/​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| ?| zlib | +| libz, libz-dev ​  | zlib1g-dev | zlib-devel| zlib-devel| zlib| zlib-devel| ?| zlib | sys-libs/​zlib | 
-| make             | make | make| make | gmake| make| gmake| make | +| Mercurial / hg   | | mercurial| | | hg | | | 
-| mkisofs ​         | genisoimage | ?| ?| ?| ?| ?| cdrkit | +| make             | make | make| make | gmake| make| gmake| ​make | sys-devel/make | 
-| [[wp>​ncurses]] ​  | libncurses5-dev| ncurses-devel| ncurses-devel| ncurses| ncurses-devel| ?| ncurses | +| mkisofs ​         | genisoimage | genisoimage| ?| ?| genisoimage| ?| cdrkit ​| app-cdr/​cdrtools ​
-| openssl/​ssl.h ​   | libssl-dev| libopenssl-devel| openssl-devel| openssl| openssl-devel| ?| openssl | +| [[wp>​ncurses]] ​  | libncurses5-dev| ncurses-devel| ncurses-devel| ncurses| ncurses-devel| ?| ncurses | sys-libs/ncurses | 
-| patch| patch     | patch | patch | patchutils| patch| ?| 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| ?| perl-extutils-makemaker | +| patch| patch     | patch | patch | patchutils| patch| ?| patch | sys-devel/patch | 
-| python2.6-dev ​   | python2.6-dev | python-devel| ?| python26| python-devel | ?| python2 | +| 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| ?| rsync | +| python2.6-dev ​   | python2.6-dev | python-devel| ?| python26| python-devel | ?| python2 ​| dev-lang/​python ​
-| ruby             | ruby| ruby | ?| ruby| ruby| ?| ruby | +| rsync            | rsync| rsync| rsync | rsync| rsync| ?| rsync | net-misc/rsync | 
-| sdcc             | sdcc| sdcc| sdcc| sdcc| sdcc| ?| sdcc | +| ruby             | ruby| ruby | ?| ruby| ruby| ?| ruby | dev-lang/ruby | 
-| unzip            | unzip| unzip| unzip| unzip| unzip| ?| unzip | +| sdcc             | sdcc| sdcc| sdcc| sdcc| sdcc| ?| sdcc | dev-embedded/​sdcc | 
-| [[wp>GNU Wget]] ​ | 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| ?| gettext | +| xgettext ​        | gettext| ​gettext-tools| gettext | gettext| gettext| ?| gettext | sys-devel/gettext | 
-| xsltproc ​        | xsltproc| libxslt| ?| libxslt| libxslt| ?| libxslt | +| xsltproc ​        | xsltproc| libxslt-tools| ?| libxslt| libxslt| ?| libxslt | dev-libs/libxslt | 
-| zlib, zlib-static| zlib1g-dev| zlib-devel| zlib-devel | zlib-devel| zlib-devel | ?| zlib |+| 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 ^ Arch ^ +^ Package ^ Prerequisite ^ Debian ^ SUSE ^ Red Hat ^ OS X ^ Fedora ^ NetBSD ^ Arch ^ Gentoo ​
-| boost    | bjam / boost-jam ​  | libboost1.53-dev ​  | | | | boost-jam || boost | +| 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 | +| intltool | [Perl] XML::Parser | libxml-parser-perl | | perl-XML-Parser | | perl-XML-Parser | | intltool ​| dev-perl/​XML-Parser ​
-| libftdi ​ | libusb-config ​     | libusb-dev | | | | | | libusb | +| libftdi ​ | libusb-config ​     | libusb-dev | | | | libusb-devel ​| | libusb ​| dev-libs/​libusb-compat ​
-| lilo     | as86,​ld86 ​         | bin86 | | | | | | bin86 | +| lilo     | as86,​ld86 ​         | bin86 | | | | dev86 | | bin86 | sys-devel/bin86 | 
-| lilo     | bcc                | bcc | | | | | | [[https://​aur.archlinux.org/​packages/​bcc/​|aur/​bcc]] | +| lilo     | bcc                | bcc | | | | dev86 | | [[https://​aur.archlinux.org/​packages/​bcc/​|aur/​bcc]] ​| sys-devel/​dev86 ​
-| lilo     | uudecode ​          | sharutils | | | | | | sharutils | +| lilo     | uudecode ​          | sharutils | | | | sharutils ​| | sharutils | app-arch/sharutils | 
-| classpath| javac, gcj         | openjdk-7-jdk | | | | | | jdk7-openjdk | +| classpath| javac, gcj         | openjdk-7-jdk | | | | java-1.7.0-openjdk-devel ​| | jdk7-openjdk ​| dev-java/​icedtea-bin,​ dev-java/​oracle-jdk-bin,​ USE="​gcj"​ sys-devel/​gcc ​
-| mac80211 | b43-fwcutter ​      | | | | | | | b43-fwcutter |+| mac80211 | b43-fwcutter ​      | | | | | b43-fwcutter ​| | b43-fwcutter ​| net-wireless/​b43-fwcutter | 
 +| jamvm    | zip                | | | | | zip | | | |
  
 ==== Examples of Package Installations ==== ==== Examples of Package Installations ====
-  * **Debian 5 Lenny:**<​code>​apt-get install gawk ncurses-dev unzip zlib1g-dev</​code>​ +  * **Arch Linux**<​code>​pacman ​---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 boost libusb bin86 sharutils b43-fwcutter findutils</​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 13.10:​**<​code>​sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt xsltproc</​code>​ +  * **Fedora ​20 - 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 \
-  * **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 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</​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 \ +
- 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>​ +
-  * **Fedora 19 - 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 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 repositoriesSearch 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 13.2**<​code>​zypper install ​asciidoc bash bc binutils bzip2 fastjar flex git-core ​gcc-c++ ​gcc util-linux gawk gtk2-devel intltool jikes zlib-devel mercurial ​make genisoimage ​ncurses-devel libopenssl-devel patch perl-ExtUtils-MakeMaker python-devel rsync ruby sdcc unzip wget gettext-tools libxslt-tools ​zlib-devel ​subversion</​code>​ 
-  * **Arch Linux**<​code>​pacman ​---needed 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>​+  * **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 64bit:**<​code>​sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib ​flex git-core gettext libssl-dev</​code>​ 
 +  * **Centos x86-64:​**<​code>​yum install 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 wget git-core openssl-devel xz </​code>​ 
 +==== Known variants to be broken ==== 
 + 
 +  * **alpine linux** uses musl as libc replacement. Some host tools fail to compile (mtd-utils, e2fsprogs). Detection possibly has to be overridden (gcc -dumpmachine outputs a result where some scripts will fail - tools/​sed) 
  
 ===== Downloading Sources ===== ===== Downloading Sources =====
-(see [[https://​dev.openwrt.org/​wiki/​GetSource]]) You can either check out the OpenWrt source code via git or svn. 
  
 ==== GIT ==== ==== GIT ====
-The recommended way of checking out the OpenWrt source code is cloning the Git repository using one of the following commands:+cloning the Git repository using one of the following commands:
  
 === trunk (main development tree) === === trunk (main development tree) ===
Line 121: Line 123:
  
 <code bash>git clone git://​git.openwrt.org/​packages.git</​code>​ <code bash>git clone git://​git.openwrt.org/​packages.git</​code>​
 +
 +=== 14.07 branch (Barrier Breaker) ===
 +
 +== Main repository ==
 +<code bash>git clone git://​git.openwrt.org/​14.07/​openwrt.git</​code>​
 +
 +== Packages feed ==
 +
 +<code bash>git clone git://​git.openwrt.org/​14.07/​packages.git</​code>​
  
 === 12.09 branch (Attitude Adjustment) === === 12.09 branch (Attitude Adjustment) ===
Line 130: Line 141:
  
 <code bash>git clone git://​git.openwrt.org/​12.09/​packages.git</​code>​ <code bash>git clone git://​git.openwrt.org/​12.09/​packages.git</​code>​
 +
 +=== Merged main repository into a single Git repository ===
 +If you want all three repositories mentioned above in a single git repository (with history) do the following:
 +<code bash>git clone git://​git.openwrt.org/​openwrt.git ​
 +cd openwrt
 +# Add AA remote repository
 +git remote add aa-up git://​git.openwrt.org/​12.09/​openwrt.git
 +git fetch aa-up
 +AA_BRANCH=`git log aa-up/​master --pretty="​tformat:​%H %T" | tail -1`
 +AA_TIP=($AA_BRANCH)
 +OW_AA_MATCH=`git log master --pretty="​tformat:​%H %T" | grep ${AA_TIP[1]}`
 +OW_AA_BRANCH=($OW_AA_MATCH)
 +git checkout -b ow-aa ${OW_AA_BRANCH[0]}
 +echo "​${AA_TIP[0]} ${OW_AA_BRANCH[0]}"​ >> .git/​info/​grafts
 +git merge aa-up/​master
 +
 +# Add BB remote repository
 +git remote add bb-up git://​git.openwrt.org/​14.07/​openwrt.git
 +git fetch bb-up
 +BB_BRANCH=`git log bb-up/​master --pretty="​tformat:​%H %T" | tail -1`
 +BB_TIP=($BB_BRANCH)
 +OW_BB_MATCH=`git log master --pretty="​tformat:​%H %T" | grep ${BB_TIP[1]}`
 +OW_BB_BRANCH=($OW_BB_MATCH)
 +git checkout -b ow-bb ${OW_BB_BRANCH[0]}
 +echo "​${BB_TIP[0]} ${OW_BB_BRANCH[0]}"​ >> .git/​info/​grafts
 +git merge bb-up/​master</​code>​
 +After doing the above, you can simply do the following to pickup trunk, aa, or bb changes made.
 +<code bash>git checkout master
 +git pull
 +  AND/OR
 +git checkout ow-aa
 +git pull aa-up master
 +  AND/OR
 +git checkout ow-bb
 +git pull bb-up master</​code>​
  
 === Check out certain revision === === Check out certain revision ===
Line 136: Line 182:
  
 ==== SVN ==== ==== SVN ====
-You can checkout the source from the OpenWrt Subversion repository using one of the following commands: +see [[doc:howto:buildroot.exigence.old|Deprecated Buildroot-Installation Howto]]
- +
-=== trunk (main development tree) === +
-The development branch (trunk) contains everything from documentation to <color yellow>​**//​experimental//​**</​color>​ <color red>​**//​patches//​**</​color>​. +
-<code bash>svn co svn://​svn.openwrt.org/​openwrt/​trunk/</​code>​ +
- +
- +
-=== 12.09 branch "​Attitude Adjustment"​ === +
-<code bash>svn co svn://​svn.openwrt.org/​openwrt/​branches/​attitude_adjustment</​code>​ +
- +
- +
-=== 10.03 branch "​Backfire"​ === +
-<code bash>svn co svn://​svn.openwrt.org/​openwrt/​branches/​backfire</​code>​ +
- +
- +
-=== 8.09 branch "​Kamikaze"​ === +
-<code bash>svn co svn://​svn.openwrt.org/​openwrt/​branches/​8.09</​code>​ +
- +
- +
-=== 7.09 branch "​Kamikaze"​ === +
-<code bash>svn co svn://​svn.openwrt.org/​openwrt/​tags/​kamikaze_7.09</​code>​ +
- +
- +
-=== Tagged === +
-You could alternatively download a '​tagged'​ version of the backfire sources. For instance, if you insist on using the pristine release sources (no backported fixes applied after the last release), you could use: +
-<code bash>svn co svn://​svn.openwrt.org/​openwrt/​tags/​backfire_10.03</​code>​ +
- +
-=== Check out a certain revisions === +
-== Main repository == +
-<code bash>svn co --revision=24045 svn://​svn.openwrt.org/​openwrt/​branches/​backfire/​ ./​build_dir</​code>​ +
- +
-== Package feeds == +
-Create a copy of the file ''​./​build-directory/​feeds.conf.default''​ named ''​./​build-directory/​feeds.conf'',​ edit ''​feeds.conf''​ and add "​@24045"​ at the end of the line that checks out the package feed: +
-<code bash>​src-svn packages svn://​svn.openwrt.org/​openwrt/​packages@24045</​code>​ +
- +
- +
- +
-==== Downloading and Installing Feeds ===== +
-{{tag>​wip} +
-->[[doc:devel:feeds]] +
-  * to install only individual packages: <code bash>./​scripts/​feeds install PACKAGENAME</​code>​ +
- +
-**Problem downloading and installing feeds ? If yes follow below...** +
- +
-1 Open your directory where you have downloaded openwrt source using git or svn ... +
- +
-2 Edit feeds.conf.default +
- +
-3 Comment below +
- +
-src-svn packages svn://​svn.openwrt.org/​openwrt/​branches/​packages_10.03.2 svn://​svn.openwrt.org/​openwrt/​packages+
  
-src-svn luci http://svn.luci.subsignal.org/​luci/​branches/​luci-0.10/​contrib/​package+:!: Accessing SVN may get your IP blacklisted on SVN and forumFull SVN checkout can take a very long time compared to gitUsing git is recommended by the developers.
  
-4 Copy Below and Save 
  
-src-git packages http://​git.openwrt.org/​10.03/​packages.git http://​git.openwrt.org/​packages.git 
  
-src-git luci http://​git.openwrt.org/​project/​luci.git 
  
-5 ./​scripts/​feeds update -a 
  
-6 ./​scripts/​feeds install -a 
  
-===== Troubleshooting ===== 
-  * Beware of unusual environment variables such as 
-     * ''​GREP_OPTIONS''​ which should not have ''​--initial-tab''​ or other options affecting its output 
-     * **''​SED''​ should not be set.  If it is, run `unset SED` before compiling.** (See [[https://​dev.openwrt.org/​ticket/​10612|Ticket 10612]].) 
doc/howto/buildroot.exigence.1393669199.txt.bz2 · Last modified: 2014/03/01 11:19 by brian