i.MX51 kernel compilation in four easy steps
Published on September 15, 2010
Step 1:
Get a toolchain that supports Cortex-A8. We suggest using Codesourcery because they did the heavy lifting for Cortex-A8. They also provide very nice packages in both free and feature-complete development toolkits.Step 2:
Get the latest Boundary devices kernel. Use the snapshot link to download the appropriate version.Step 3:
Extract and prepare the kernel (the hex digits at the end will change with each release):user@host:~$ unzip ~/Downloads/Downloads/linux-bd-a4c6406.zip
user@host:~$ cd linux-bd-a4c6406
user@host:~/linux-bd-a4c6406$ export PATH=/opt/arm-2010q1/bin/:$PATH
user@host:~/linux-bd-a4c6406$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- nitrogen_defconfig
Step 4:
Compile and copy:user@host:~/linux-bd-a4c6406$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage modules
user@host:~/linux-bd-a4c6406$ cp -fv arch/arm/boot/uImage /media/boot
user@host:~/linux-bd-a4c6406$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
INSTALL_MOD_PATH=/media/rootfs/ modules_install
The example above is the most common, but there are a few different nitrogen_defconfig
files to choose from:
nitrogen_defconfig
- Useful for Busybox, Debian, LTIB, or Buildroot userlandsnitrogen_ubuntu_defconfig
- This version includes the Ubuntu compcache, aufs, and squashfs components. This usually also requires a special branch in our tree because the aufs component conflicts with the UnionFS that we keep up-to-date in our main branches,nitrogen_android_defconfig
- This config file includes Android-specific components