See also the OpenWrt development center website. There you can browse the source code and send reproducible bugs with the ticket system (in trac).
other articles worth reading:
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/.
Approximately required disc space for compiling OpenWrt:
|typical, Stable||1.5 GB||3.5 GB|
|all feeds/pkgs||>30 GB|
Typical: Compile an Image that is working on typical consumer routers that have 4MB or 8MB flash.
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.
see Hints to reduce build time
|make jobs||time needed||source|
|2 all,local feed. mirrots||3h40min|
|4, all,local feed, mirrors||2h17min|
Typical: select packages fitting into 8MB flash, build on HDD, ar71xx or brcm47xx target
Test SSD vs. HDD
Yes, of course. If you find any bugs, please use our ticket system or send a report to firstname.lastname@example.org . You can send patches for the bugs as well.
/!\ NOTE: Changes to the buildroot system or the associated
Makefilescould break the compile process. Please do not submit bug reports against modified copies of buildroot. Thanks!
See Creating Packages.
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
The mailing list: https://lists.openwrt.org/pipermail/openwrt-devel/ generates Patchwork entries: http://patchwork.openwrt.org/
- Use -j switch to enable parallel builds
- Use local mirror to avoid downloads (advanced build options)
- 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 )
- Files inside the buildroot are specific to host systems.
Build dependency: Please install GNU find # old files in staging_dir/host
- remove untracked files with the help of svn or git
- use make targets depending on what you don't want
make clean make dirclean make distclean make target/linux/clean * rm -rf tmp/ rm .config .config.old* Kernel Config change is not triggering rebuild, see: openwrt-devel
If you are running a buildroot inside a VM with many threads you might experience random build failures.
Setup: Host: i7 16GB RAM, VM on Harddisk, Win 7 64bit, VMWare Player Guest: Lubuntu 13.04 64bit 4GB RAM ext4 partition make -j 8
Errors: Build fails like
mv: cannot stat '.deps/dlog.Tpo': No such file or directory or ../libtool: line 46: -c: command not found libtool: Version mismatch error. This is libtool 2.4, but the libtool: definition of this LT_INIT comes from libtool 2.2.6. libtool: You should recreate aclocal.m4 with macros from libtool 2.4 libtool: and run autoconf again.cleaning up buildroot helps sometimes, reduce concurrency
doc/faq/development.txt · Last modified: 2014/07/16 08:03 by theoradicus