 |
Support |
 |
|
|
|
|
| |
|
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
|
|
|
|
|
|
| |
|
|