Home Products Solutions Support Blogs Contact Us Company
corner Support corner
Neon User Manual
Windows CE support
Linux support
Boot Loader
corner corner
 

SUPPORT

   

Kernel compile

~/build$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2
~/build$ tar jxvf linux-2.6.22.tar.bz2
... kernel extracted here

~/build$ wget http://boundarydevices.com/boundary-2.6.22-2007-07-22.patch.bz2

~/build/linux-2.6.22$ cd linux-2.6.22
~/build/linux-2.6.22$ bzcat ../boundary-2.6.22-2007-07-22.patch.bz2 | patch -p1
... kernel patched here

~/build/linux-2.6.22$ make ARCH=arm CROSS_COMPILE=arm-linux- neon_defconfig

Optionally, run make menuconfig here to choose kernel components or restore a prior .config file.

~/build/linux-2.6.22$ make ARCH=arm CROSS_COMPILE=arm-linux- uImage modules
... kernel compiled here. Output is arch/arm/boot/uImage.

~/build/linux-2.6.22$ make INSTALL_MOD_PATH=path/to/filesystem modules_install
... copies kernel modules into filesystem tree, creates modules.*

Userland build

~/build$ wget http://boundarydevices.com/userland_20070723.tar.gz
~/build$ tar zxvf userland_20070723.tar.gz
... userland extracted here

~/build$ cd userland
~/build/userland$ make menuconfig

At a minimum, you'll need to set the path to your kernel tree, and verify
the cross-compiler path.

The most lengthy and failure-prone portion of the build targets shown below are the downloading of packages (make targets "*_get"). You may wish to perform them as a separate step by issuing:

~/build/userland$ make get

The other make targets tend to be inter-related. Some packages require that their dependent packages be installed (and thus compiled) before configuration. In other words, you're best off aiming for the target(s) you're after.

rootfs

This is the primary build target of the Userland build scripts. It creates a root file-system image suitable for booting directly over a local filesystem. It also serves as a baseline for some later targets (cramfs, jffs2).

~/build/userland$ make rootfs

cramfs

This target builds a file named cramfs.img in the userland top directory. The is often used to add symlinks in a filesystem which otherwise doesn't support them (i.e. FAT).

~/build/userland$ make ARCH=arm CROSS_COMPILE=arm-linux- cramfs

initrd.u-boot

This target builds an initrd image that is not very useful on its' own, but can serve as the basis for extension to boot from NFS or to extend with proper checking and mounting of SD card partitions. It contains basic networking support to allow downloads of tar-balls to recreate partitions if needed.

~/build/userland$ make ARCH=arm CROSS_COMPILE=arm-linux- initrd.u-boot

mmcinitrd.u-boot

This target extends the initrd.u-boot image to mount a FAT filesystem on the root of an SD card and launch the /mmc/linux_init script if present. This simple boot scheme is often sufficient to get an application up and running.

~/build/userland$ make ARCH=arm CROSS_COMPILE=arm-linux- mmcinitrd.u-boot

Other customization steps are possible here. In particular, the file userland/mmc.rcs is the startup script used in building this image.

Prerequisites

  • Cross compiler
  • Cross compiler in PATH
corner corner