        Linux kernel release 2.4.xx for Handhelds.org

Assuming you have read the README, here are some tips on building a kernel
for handheld computers supported by handhelds.org (iPAQ, Jornada720, soon
zaurus).

0) Structure of this source tree

We have this source tree imported in CVS with the root of the Linux kernel
source code at linux/kernel.  This tree basically tracks Linux kernel 2.4.x
plus Russell M. King (RMK) patches.  David Woodhouse keeps MTD and JFFS2 up
to the latest stable version.  We also update individual drivers as we need
them.  In addition, we have imported the Mobile IPv6 support from
www.mipl.mediapoli.com. 

Start the build process in the linux/kernel directory.

linux/kernel25 is a linux-2.5.x tree. Already outdated because we can't keep up.

1) Cross Compiling

The top-level Makefile has been modified so that it defaults to
cross-compilation, using arm-linux-gcc and friends.

Many of us are using the arm-linux 2.95.2 toolchain compiled by George
France at CRL.  It installs under /skiff/local for historical reasons.
Just add /skiff/local/bin to your PATH.

2) Kernel Configuration

There are standard configurations available in arch/arm/def-configs for
h3600, and jornada720.  These are the ones used by Familiar and Linux
distributions based on Familiar.

        Machine                 Configuration to use
        h3600                   ipaqsa
        h3100                   ipaqsa
        h3700                   ipaqsa
        h3800                   ipaqsa
        h3900                   ipaqpxa
        h5400                   ipaqpxa
        h1900                   ipaqpxa
        jornada720              jornada720
	axim			ipaqpxa

You can install this as the .config file manually:

    cp arch/arm/def-configs/ipaqsa .config

or with the make <plat>_config command:

    make ipaqsa_config

That step just copies in the .config file -- you still need to run the
config parts of the Makefile:

    make oldconfig

3) Making Dependences

    make dep

4) Making the Kernel

    make zImage

There is no difference between zImage and bzImage with ARM Linux.  The
zImage will be in file arch/arm/boot/zImage. 

5) Making the Modules

    make modules

6) Making ipkg files

check out familiar/dist/ipkg from cvs.handhelds.org.  From the directory in
which you want the packages to be written, and logged in as root:

    $(HOME)/familiar/dist/ipkg/util/ipkg-make-kernel_packages $(HOME)/linux/kernel 2.4.17-rmk5 hh6



IF YOU HAVE PROBLEMS:

1) cd linux/kernel; make distclean

The kernel source tree contains many files generated during compilation.
make clean does not remove all of them.  Sometimes 'make distclean' or
'make mrproper' are needed.  Start at step 2 above after this.

