KernelBuild
Differences between revisions 17 and 18
Size: 2557
Comment: needed to config the kernel
|
← Revision 18 as of 2012-11-13 11:07:36 ⇥
Size: 25
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
<<Include(Nexus7/Header)>> Here's how to cross-build the kernel from the git repository. == Initial setup == Having ccache installed is optional but helpful if you are often rebuilding the package from scratch with minor modifications. {{{ sudo apt-get install gcc-arm-linux-gnueabihf ccache git kernel-wedge libncursesw5-dev }}} Get the source {{{ git clone git://kernel.ubuntu.com/hwe/ubuntu-nexus7.git }}} Create an alias called fdr that points to fakeroot debian/rules. You can stick this in ~/.bash_aliases and then source the file to make it permanent. {{{ alias fdr="fakeroot debian/rules" }}} == Rebuild the package == Go to the source directory {{{ cd ubuntu-nexus7 }}} Remove leftover from previous builds or other cruft {{{ git clean -xdf }}} You need to do the following in order to disable cross-building of the linux-tools binary package, as that requires multiarch setup and some armhf libs installed in the host system. {{{ sed -i '/do_tools/ s/true/false/' debian.linaro/rules.d/armhf.mk }}} Calling fakeroot debian/rules (fdr) clean is necessary before each build. {{{ fdr clean }}} Next we create the package, and depending on your system speed, ccache and on the kernel configurations that are enabled it can take anywhere between 3 minutes and a couple of hours. The value for parallel works best when it equals the number of CPUs in your system + 1. {{{ debuild -eDEB_BUILD_OPTIONS="parallel=3" -eCROSS_COMPILE="ccache arm-linux-gnueabihf-" -b -aarmhf -us -uc -nc }}} == Change the configuration == The configuration file is in debian.linaro/config/config.common.ubuntu Bring up menuconfig {{{ fdr editconfigs }}} See what you have changed {{{ git diff }}} Or edit that file manually and then updateconfigs so it checks your changes and fixes up any possible side-effects {{{ fdr updateconfigs }}} Then run debuild again as above == Build zImage only == Sometimes you just want a zImage for a quick test such as inserting it in a boot.img and trying it out without a full deb installation. This does an out of source tree build of a zImage (no modules) using the current Ubuntu configs. Faster than a full package build. Like the value for parallel mentioned above, the -j value works best when it is number of CPUs + 1. {{{ cd ubuntu-nexus7 mkdir ../build cp debian.linaro/config/config.common.ubuntu ../build/.config CROSS_COMPILE="ccache arm-linux-gnueabihf-" ARCH=arm make O=../build -j3 zImage }}} |
#redirect Nexus7/Kernel |
Nexus7/KernelBuild (last edited 2012-11-13 11:07:36 by dholbach)