blob: 634206de5016a9582f5640b574e70bcf59735a2e [file] [log] [blame]
0, Setup a workstation with 64-bit Linux OS installed (Ubuntu 14.04 and newer recommended)
Make sure the workstation has the ssh key authorized by ASR.
Make sure the ASR openwrt repositories are already cloned and updated
Works below are all based on above two prerequisites.
1, update the repos
$ cd openwrt
$ ./ugit.sh pull
2, install the host prerequisites by openwrt
$ apt-get install build-essential bison flex zlib1g-dev libncurses5-dev subversion quilt intltool ruby fastjar zip unzip gawk git-core
3, update the feeds
this is required at the first build, and the build after running 'make distclean'
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
4, build the image
First of first, let OpenWrt Buildroot check for missing packages on your build-system using
$ make prereq
Now, choose the proper defconfig files from the config directory according to the product profile.
There are many profiles supported by default based on ASR DKB/EVB designs, i.e.
- pxa1826, for type A DKB, called nand profile in documents as well
- pxa1826spinand, for type A DKB with SPI flash, called spinand profile in documents as well
- pxa1826spinor, for data module, called spinor profile in documents as well
- pxa1826p601, for new designed EVB board, called p601 profile in documents as well
Other profiles are not based on ASR DKB/EVB.
Take pxa1826 nand profile for example,
$make defconfig_pxa1826
Then start the build
$ make -j2 V=99
After build finished, you can find the images at folder bin/pxa1826
In the following development, just a simple build is enough if profile and config file are not changed.
$ make -j2 V=99
5, distclean uasge
After the first build it will generate the toolchain and host tools, creating openwrt/host, openwrt/owtoolchain.
In case you want to refresh those toolchains when some toolchain related configuration changed.
$ make distclean
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ make defconfig_pxa1826
$ make -j2 V=99
6, dirclean usage
If you want to change the profile, for example, to pxa1826p601
$make dirclean //make preclean is similar to dirclean but keeps the bin folder.
$make defconfig_pxa1826p601
$make -j2 V=99
7, collect and check the build logs
To save the build logs,
$ make -j2 V=99 2>&1 | tee build.log
To check error when build fails,
$ make -j2 V=99 2>&1 | tee build.log | grep -i Error
or
$ grep -i Error build.log
8, How to clean?
- To clean the bin folder:
$ make clean
- To clean the folders generated during build process:
$ make dirclean
- To clean the folders generated during build process except the images:
$ make preclean
- To clean everything, downloads, **configurations**, feeds,etc.
$ make distclean
Only use distclean when necessary to save build time.
9, How to build a specific package?
It depends on where the package is located, following examples,
$ make package/obm-mmp/clean V=99
$ make package/obm-mmp/compile V=99
$ make package/obm-mmp/install V=99
or
$ make package/obm-mmp/{clean,compile,install} V=99
$ make package/feeds/packages/nginx/{clean, compile, install} V=99
$ make tools/automake/compile
$ make toolchain/{clean, compile, install}
You can recompile only the kernel modules by issuing:
$ make target/linux/compile
To recompile the static part of the kernel, issuing:
$ make target/linux/install
Usually, you can do this for a complete kernel build,
$ make target/linux/{clean, compile, install}