Again, this may be old hat to many, but here's a quick how-to on getting and cross compiling a kernel from our Github kernel repository.
~/$ git clone git://github.com/boundarydevices/linux-imx6.git
~/$ cd linux-imx6
~/linux-imx6$ export PATH=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/:$PATH
~/linux-imx6$ export ARCH=arm
~/linux-imx6$ export CROSS_COMPILE=arm-none-linux-gnueabi-
~/linux-imx6$ git checkout origin/boundary-imx-3.0.35_1.1.0
-b boundary-imx-3.0.35_1.1.0
~/linux-imx6$ make nitrogen6x_defconfig
~/linux-imx6$ make uImage modules
The output will be placed in ~/linux-imx6/arch/arm/boot/uImage
. If you've build any drivers as modules, you'll generally want to install them into
/lib/modules/kernelversion/...
. You can use the INSTALL_MOD_PATH
variable and the modules_install
make target to install them to a temporary location as follows. Note that before copying them to an SD card or filesystem image, you'll generally want to kill the link back to the source directory, or you'll copy 100s of MBytes of source code and increase your disk image size.~/linux-imx6$ make INSTALL_MOD_PATH=~/tmp modules_install
~/linux-imx6$ find ~/tmp/lib/modules -type l -exec rm -f {} ;
~/linux-imx6$ cp -ravf ~/tmp/lib/modules/* /media/myrootfs/lib/modules/