Differences

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

doc:faq:development [2013/11/02 22:56]
theoradicus write about random build fails in VM
doc:faq:development [2014/10/26 18:16] (current)
theoradicus add build system list
Line 2: Line 2:
See also the OpenWrt [[http://dev.openwrt.org/|development center]] website. There you can browse the source code and send reproducible bugs with the ticket system (in trac). See also the OpenWrt [[http://dev.openwrt.org/|development center]] website. There you can browse the source code and send reproducible bugs with the ticket system (in trac).
-===== Requirements for compiling OpenWrt ===== +other articles worth reading:
-Please read:+
  - about the [[about:toolchain|Toolchain]]   - about the [[about:toolchain|Toolchain]]
  - about it's installation [[doc:howto:buildroot.exigence|OpenWrt Buildroot – Installation]]   - about it's installation [[doc:howto:buildroot.exigence|OpenWrt Buildroot – Installation]]
  - about it's usage [[doc:howto:build|OpenWrt Buildroot – Usage]]   - about it's usage [[doc:howto:build|OpenWrt Buildroot – Usage]]
-  - learn about it [[doc:techref:buildroot|OpenWrt Buildroot – Technical Reference]]+ 
 +===== Where is the source code? ===== 
 + 
 +Almost every software in OpenWrt is available as a package. OpenWrt *downloads* code (using archive, git ...) compiles it and includes in the final image. 
 +Every archive lands in "dl" directory". 
 +Every code (from archive or git) is available in build_dir. 
 + 
 +A mirror of package sources is maintained at [[http://mirror2.openwrt.org/sources/]]
 + 
 +===== How much disk space is needed for compiling ? =====
Approximately required disc space for compiling OpenWrt: Approximately required disc space for compiling OpenWrt:
^ Branch          ^    Min.  ^ Max. ^ ^ Branch          ^    Min.  ^ Max. ^
-| Stable Source    |  1.5 GB |  3.5 GB |+| typical, Stable |  1.5 GB |  3.5 GB |
| Development      |      ? |  3.8 GB | | Development      |      ? |  3.8 GB |
| Development+feeds|    ?  |  >5 GB | | Development+feeds|    ?  |  >5 GB |
 +| all feeds/pkgs  |        |  >30 GB |
 +| all feeds+debug  |        | FIXME  |
 +
 +Typical: Compile an Image that is working on typical consumer routers that have 4MB or 8MB flash.
Compiling also tested on some Windows OS under [[http://wiki.gp2x.org/wiki/AndLinux|AndLinux]] ([[http://www.colinux.org|coLinux]] + Ubuntu) Compiling also tested on some Windows OS under [[http://wiki.gp2x.org/wiki/AndLinux|AndLinux]] ([[http://www.colinux.org|coLinux]] + Ubuntu)
-Build-time is highly dependable on the number of Cores/Jobs and can be shrunk to less than 30 minutes (from 90 minutes). (make -j 4) +===== What System can I build OpenWrt on ? ===== 
 + 
 +OpenWrt Buildroot needs a case sensitive file system. 
 + 
 +It should work on almost any Linux Distribution. 
 +Tested: Debian (6, 7, Unstable(2014)), Ubuntu, Fedora 19,20 , Arch Linux, OpenSuse 13.3 
 +Exotic Linux variants might have some bugs regarding headers (Alpine Linux). 
 +BSD (FreeBSD), MacOSX are somewhat untested. 
 +Cygwin (Windows) has possible issues with file system being not case sensitive. 
 + 
 +Recommended: Build older versions with older Linux versions in a VM. 
 + 
 + 
 +===== How much time is needed for compiling ? ===== 
 + 
 +Build-time is highly dependable on the number of Cores/Jobs and can be shrunk to less than 30 minutes (from 90 minutes).  
 +**Build time with single core can take several hours.** 
 + 
 +FIXME see Hints to reduce build time 
 + 
 +^ make jobs ^ time needed ^ source ^ 
 +| 1, typical|          |        | 
 +| 1, all    | 10h48min | [[http://buildbot.openwrt.org:8010/grid|buildbot]] | 
 +| 2  all,local feed. mirrots      | 3h40min        |        | 
 +| 4,typical |  45min  |        | 
 +| 4, all,local feed, mirrors | 2h17min|| 
 +| 8 ||| 
 + 
 +Typical: select packages fitting into 8MB flash, build on HDD, ar71xx or brcm47xx target 
 + 
 +FIXME Test SSD vs. HDD
===== Should I report bugs related to the OpenWrt Buildroot ===== ===== Should I report bugs related to the OpenWrt Buildroot =====
Line 27: Line 69:
===== How do I create a package? ===== ===== How do I create a package? =====
See [[doc:devel:packages|Creating Packages]]. See [[doc:devel:packages|Creating Packages]].
 +
 +===== How can I help or contribute ? =====
 +
 +see: http://wiki.openwrt.org/about/start?#how.can.i.contribute
 +
 +see: https://dev.openwrt.org/wiki/SupportDonate
 +
 +**Development**
 +
 +The OpenWrt build bots provide a list of broken packages: [[http://buildbot.openwrt.org:8010/broken_packages/]]
 +
 +There is a comparison of OpenWrt and upstream package versions available: https://home.comcast.net/~sdwalker/uscan/index.html
 +
 +**Testing/Review**
 +
 +The mailing list: https://lists.openwrt.org/pipermail/openwrt-devel/
 +generates Patchwork entries: http://patchwork.openwrt.org/
 +
 +===== How can I speed up build process ? =====
 +
 +  * Use -j switch to enable parallel builds
 +
 +  * Use local mirror to avoid downloads (advanced build options)
 +<code>
 +
 +CONFIG_LOCALMIRROR="file:///home/username/mirror"
 +
 +</code>
 +
 +  * use local feeds ( src-link ) instead of downloading with git
 +
 +===== Help me - I build an image and it's too large ! My rootfs is too small! My router does not remember settings! =====
 +
 +  * you installed or selected too many packages
 +  * select packages with "y" / shows as "*" so they get included in squashfs instead of installing them later to jffs2
 +  * delete unused base packages: :!: be very careful :!:
 +
 +Example **ppp** :luci automatically selects ppp. This is not always needed.
 +    - de-select "luci"
 +    - pick the components manually: luci-base, luci-mod-admin-full, luci-theme-bootstrap
 +
 +
 +  * use extroot
 +  * disable busybox features
 +  * hardware mod your router with larger flash ( :!: possible bootloader modification )
===== Common errors ===== ===== Common errors =====
-Unclean buildroot:+**Unclean buildroot** 
 + 
 +- Files inside the buildroot are specific to host systems. 
 + 
 +<code> 
 +Build dependency: Please install GNU find 
 + 
 +# old files in staging_dir/host 
 +</code>
- **remove untracked files** with the help of svn or git - **remove untracked files** with the help of svn or git
-- use make targets depending what don't want+- use make targets depending on what you don't want
<code> <code>
make clean make clean

Back to top

doc/faq/development.1383429416.txt.bz2 · Last modified: 2013/11/02 22:56 by theoradicus