User Tools

Site Tools


de:doc:howto:buildroot.exigence
The Wiki is getting migrated to a new server, edits are disabled until further notice.

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
de:doc:howto:buildroot.exigence [2013/04/19 16:31]
de:doc:howto:buildroot.exigence [2014/05/16 10:49] (current)
tmomas Updated to AA
Line 1: Line 1:
 +====== OpenWrt Buildroot – Installation ======
 +[[de:​about:​toolchain|OpenWrt Buildroot]] ist die bevorzugte [[wpde>​Toolchain]] um OpenWrt zu compilieren. Es ist dringend empfohlen eine GNU/Linux Distribution ([[wpde>​Debian]] wird empfohlen) zu benutzen, entweder als direkte Installation oder auch als Virtuelles System auf [[wpde>​VMware]] oder [[wpde>​Qemu]].
  
 +[[wpde>​Cygwin]] wird sehr wahrscheinlich nicht korrekt funktionieren und obwohl es theoretisch möglich ist OpenWrt Buildroot erfolgreich auf [[wpde>​Vergleich der BSD-Betriebssysteme|~BSD]] oder auf MacOS X einzusetzen,​ wird ein Erfolg nicht garantiert!
 +
 +===== Voraussetzungen =====
 +um eine [[de:​doc:​howto:​generic.flashing|installierbares]] OpenWrt-firmware-Datei mit einer Größe von z.B. 8MB herzustellen:​
 +  * ca. 150 MB auf der Festplatte für OpenWrt Buildroot
 +  * ca. 350 MB auf der Festplatte für OpenWrt Buildroot + Pakete in den Feeds
 +  * ca. 3-4 GB auf der Festplatte für den Cross-Compiler-Prozess
 +
 +===== Vorgehensweise (auf Debain 7 "​Wheezy"​) =====
 +| ->​[[doc:​howto:​buildroot.exigence.bsd|Vorgehensweise auf ~BSD]] | ->​[[doc:​howto:​buildroot.exigence.macosx|Vorgehensweise auf Mac OS X]]  | ->​[[doc:​howto:​buildroot.exigence.cygwin|Vorgehensweise auf Cygwin]] |
 +
 +  - Installieren Sie ''​[[wpde>​Apache Subversion|subversion]]''​ (kurz: ''​svn''​) um den OpenWrt Quellcode in geeigneter Weise herunterzuladen und die typischen ''​[[wpde>​GNU Build System|Build Tools]]'',​ die Sie beim Kompilationsprozess unterstützen werden: <code bash>​sudo apt-get install subversion build-essential</​code>​
 +    * lesen Sie ''​[[man>​svn]]''​ und vergleichen Sie [[http://​packages.debian.org/​squeeze/​build-essential|build-essential]]
 +    * lesen Sie ''​[[man>​make]]''​ und die [[http://​svnbook.red-bean.com/​index.de.html|Subversion Dokumentation (deutsch!)]]
 +  - Mit ''​svn''​ könne Sie nun den OpenWrt Quellcode beziehen, er beinhaltet OpenWrt Buildroot. Konsultieren Sie [[#​Downloading Sources]] und führen Sie als gewöhnlicher,​ nicht-root, User folgendes aus: <code bash> ​
 +mkdir ~/openwrt
 +cd openwrt
 +svn co svn://​svn.openwrt.org/​openwrt/​trunk/​
 +</​code>​ Für trunk R27988, wird das 14.382 Dateien mit einer Gesamtgröße 147.2 MiB herunterladen
 +  - Beziehen und installieren Sie [[doc:​devel:​feeds]] (//nicht zwingend//​)<​code bash>
 +./​scripts/​feeds update -a
 +./​scripts/​feeds install -a</​code>​ (Nach diesem Befehl, Revision 7367, hat mein ''​trunk''​-Verzeichnis 26.650 Dateien beinhaltet, die insgesamt 302,0 MiB umfassen.)
 +  - begeben Sie sich nun in das <​buildroot root>​-Verzeichnis (z.B. ''​~/​openwrt/​trunk''​) und benutzen eines der folgenden Befehle<​code bash>
 +make defconfig
 +make prereq
 +make menuconfig</​code>​ um eine Liste der noch fehlenden Pakete zu erhalten um OpenWrt Buildroot erfolgreich einsetzen zu können
 +  - installieren Sie die fehlenden Pakete (sehen Sie die ihrer Distribution entsprechenden Paket-Namen in der unteren Tabelle nach)
 +  - fahren Sie nun mit [[de:​doc:​howto:​build]] fort  (vgl.  [[doc:​howto:​build|engl.]])
 +
 +(**''​Notiz:''​** Nach einem Build-Vorgang,​ beinhaltet mein ''​trunk''​-Verzeichnis 244.451 Dateien mit einer Gesamtgröße von 3,2GiB)
 +
 +===== Tabelle bekannter Voraussetzungen und ihre korrespondierenden Pakete =====
 +
 +^ Prerequisite ^ Debian ^ Suse ^ Red Hat ^ OS X ^ Fedora ^ NetBSD ^
 +| asciidoc| asciidoc| asciidoc| asciidoc| ?| asciidoc| ?|
 +| bash| ?|?| ?| ?| ?| bash| 
 +| binutils| binutils | binutils| binutils| ?| binutils| ?|
 +| bzip2| bzip2 | bzip2| bzip2| ?| bzip2| ?| 
 +| fastjar| fastjar|fastjar| libgcj| ?| libgcj| ?| 
 +| flex| flex|?| ?| ?| flex| ?| 
 +| g++| g++| gcc-c++| gcc-c++| ?| gcc-c++| ?| 
 +| gcc| gcc| gcc| gcc| ?| gcc| ?| 
 +| getopt| ?|?| ?| ?| ?| getopt| ​
 +| GNU awk| gawk| gawk| gawk| ?| gawk| ?| 
 +| gtk2.0-dev| libgtk2.0-dev| ?| gtk2-devel| ?| gtk2-devel| ?| 
 +| intltool-update| intltool| intltool| intltool| ?| intltool| ?| 
 +| jikes| ---| jikes| ?| ?| ---| ?| 
 +| libz, libz-dev| zlib1g-dev | zlib-devel| zlib-devel| ?| zlib-devel| ?| 
 +| make| make | make| ?| ?| make| gmake| ​
 +| ncurses| libncurses5-dev| ncurses-devel| ncurses-devel| ?| ncurses-devel| ?| 
 +| openssl/​ssl.h| libssl-dev| libopenssl-devel| openssl-devel| ?| openssl-devel| ?| 
 +| patch| patch | patch| ?| ?| patch| ?| 
 +| perl-ExtUtils-MakeMaker| perl-modules | perl-ExtUtils-MakeMaker| perl-ExtUtils-MakeMaker| ?| perl-ExtUtils-MakeMaker| ?| 
 +| rsync| rsync| rsync| ?| ?| rsync| ?| 
 +| ruby| ruby| ruby | ?| ?| ruby| ?| 
 +| sdcc| sdcc| sdcc| ?| ?| sdcc| ?| 
 +| unzip| unzip| unzip| ?| ?| unzip| ?| 
 +| wget| wget | wget| wget| ?| wget| ?| 
 +| working-sdcc| --- | ?| ?| ?| ---| ?| 
 +| xgettext| gettext| ?| ?| ?| gettext| ?| 
 +| xsltproc| xsltproc| libxslt| ?| ?| libxslt| ?| 
 +
 +Unfortunately not all dependencies are checked by ''​make config'':​
 +^ Package ^ Prerequisite ^ Debian ^ Suse ^ Red Hat ^ OS X ^ Fedora ^ NetBSD ^
 +| intltool | [Perl] XML::Parser | libxml-parser-perl | ? | perl-XML-Parser | ? | perl-XML-Parser | ?| 
 +
 +
 +===== Beispiele =====
 +Debian 5.0 Lenny:
 +| ''​**#​ aptitude install** gawk ncurses-dev unzip zlib1g-dev''​ |
 +
 +Debian 6.0 Squeeze:
 +| ''​**#​ aptitude install** libncurses5-dev zlib1g-dev gawk flex''​ |
 +
 +Fedora 11:
 +| ''​**#​ yum install** binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel \
 +patch unzip wget zlib-devel''​ |
 +
 +openSuSE 11.1
 +| ''​**#​ zypper install** binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel \
 +patch unzip wget zlib-devel''​ |
 +
 +Ubuntu:
 +| ''​**$ sudo apt-get install** build-essential subversion libncurses5-dev zlib1g-dev gawk flex''​ |
 +Ubuntu 9.10, I needed aldo these (30-03-2011):​
 +| ''​**$ sudo apt-get install** gcc-multilib bison autoconf screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core''​ |
 +
 +Ubuntu 64bit:
 +| ''​**$ sudo apt-get install** build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex''​ |
 +
 +
 +**''​Notizen:''​**
 +  *
 +  * Unter Debian benutzen Sie <​code>​apt-cache search ""</​code>​ um passende Pakete zu finden
 +  * Unter openSuSE benötigen einige Pakete zusätzliche Repositories. Suchen Sie auf [[http://​packages.opensuse-community.org]] und fügen Sie Repos folgendermaßen hinzu <​code>​zypper ar "​http://​download.opensuse.org/​repositories/​devel:/​languages:/​perl/​openSUSE_11.1/​devel:​languages:​perl.repo"</​code>​
 +  * Unter Mac OS X benötigen Sie lediglich das Paket "​fileutils"​ aus dem //fink Projekt//. (Getestet auf Leopard 10.5.3)
 +
 +
 +===== Downloading Sources =====
 +Short version: [[https://​dev.openwrt.org/​wiki/​GetSource]]\\
 +You have two choices: ​
 +  * Downloading the latest stable release (Attitude Adjustment; AA12.09), or 
 +  * Downloading the bleeding edge development snapshot (also called "​trunk"​).
 +
 +==== Using Release Sources (stable) ====
 +As of this writing, the latest stable release is OpenWrt 12.09 "​Attitude Adjustment"​. There is a Attitude Adjustment branch in SVN repository, which is still slowly being updated with verified patches. Using it will most likely produce a stable and working OpenWrt installation,​ but all the newest features and patches might not be there. As an example, this will check out the source code that the Attitude Adjustment release is built from (plus the latest backported fixes from trunk):
 +
 +<​code>​
 +svn checkout svn://​svn.openwrt.org/​openwrt/​branches/​attitude_adjustment
 +</​code>​
 +
 +You could alternatively download a '​tagged'​ version of the Attitude Adjustment sources. For instance, if you insist on using the pristine release sources (no backported fixes applied after the last release), you could use:
 +
 +<​code>​
 +svn checkout svn://​svn.openwrt.org/​openwrt/​tags/​attitude_adjustment_12.09
 +</​code>​
 +
 +You can checkout a certain revision:
 +<​code>​
 +svn checkout --revision=39407 svn://​svn.openwrt.org/​openwrt/​branches/​attitude_adjustment/​ ./build_dir
 +</​code>​
 +
 +As for the packages copy ''​feeds.conf.default''​ in ./build_dir to feeds.conf and add "​@24045"​ at the end of the line that checks out the package feed:
 +<​code>​
 +src-svn packages svn://​svn.openwrt.org/​openwrt/​packages@24045
 +</​code>​
 +
 +
 +==== Using Development Sources (bleeding edge) ====
 +The current development branch (trunk) contains everything from documentation to //​experimental patches//. It has all the features, but some of the new stuff may also break something for some hardware configurations,​ so using trunk is more adventurous. ​
 +
 +<​code>​
 +svn checkout svn://​svn.openwrt.org/​openwrt/​trunk/​
 +</​code>​