Linux for the IA64
Linux runs just fine on IA64. You can get a standard distribution from various places. We use Debian at UNSW. Useful individual debian packages (e.g., libunwind) are available from the apt-gettable GelatoDebianRepository.
Other help is on the Main Gelato webpage.
Getting and Compiling a Kernel
Getting Kernel Source
There are three ways to get a kernel for IA64.
- Use the kernel(s) packaged with your distribution. As Linux is under the GPL, your distribution vendor must make the source available to you.
Get a numbered distribution from ftp://ftp.kernel.org/pub/linux/kernel/ For 2.4 kernels (deprecated), you need to apply the patch from ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/ that matches your kernel revision.
- Clone Linus's tree
(Local UNSW/NICTA users, cg-clone git://paulaner/home/gelato/linux-2.6-git )
- Clone the IA64 release
See the Git repositories for other trees that you can clone.
After cg-clone you will have full access to a full source tree.
To update your local tree cd linux-2.6-git and cg-update
- Clone Linus's tree
Check out Kerncomp for the current build status.
Building your Kernel
- Build and install your kernel.
To make a compressed kernel, do make compressed; the bzImage target you are used to on IA32 won't work. With recent (2.6) kernels, the compressed output is the default.
I use an Installation script to install my kernel; but you can do it by hand if you want.
Optimising Your Kernel
Kernels should be compiled with gcc .x (x>2), as the 2.9 series can sometimes produce incorrect code.
You can also try the IntelCompiler for parts of the code.
Building out-of-tree modules
Having built your kernel, you may wish to build other modules.
You need to know:
The name of the source directory (When installed, a symlink is in /lib/modules/`uname -r`/source )
The name of the output directory (When installed, a symlink is in /lib/modules/`uname -r`/build )
Then in your module source directory do, e.g.,
KERNEL=/lib/modules/`uname -r` make -C $KERNEL/source O=$KERNEL/build M=`pwd`
Altix -- notes on kernels on SGI Altix machines