User Tools

Site Tools


doc:faq:development

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: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 dependencyPlease 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
doc/faq/development.1383429416.txt.bz2 · Last modified: 2013/11/02 22:56 by theoradicus