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.

If you don't have an IA64 box, HP have a simulator available. More information on using the simulator can be found on the SkiSimulator page.

Other help is on the Main Gelato webpage.

You may also want to look at CrossCompilation, NetBooting, and PerformanceTuning. Also at DebianInstall for installing a whole distribution from scratch.

Getting and Compiling a Kernel

Getting Kernel Source

There are three ways to get a kernel for IA64.

  1. Use the kernel(s) packaged with your distribution. As Linux is under the GPL, your distribution vendor must make the source available to you.
  2. Get a numbered distribution from For 2.4 kernels (deprecated), you need to apply the patch from that matches your kernel revision.

  3. Use Cogito (See CogitoHowTo)

    1. Clone Linus's tree
      •  cg-clone git:// 
        (Local UNSW/NICTA users,  cg-clone git://paulaner/home/gelato/linux-2.6-git )

    2. Clone the IA64 release
      •  cg-clone git:// 

    3. See the Git repositories for other trees that you can clone.

    4. After cg-clone you will have full access to a full source tree.

    5. To update your local tree cd linux-2.6-git and cg-update

Check out Kerncomp for the current build status.

Building your Kernel

  1. Configure your kernel

  2. Build and install your kernel.
    1. 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.

    2. On 2.6, I (PeterChubb} use  make  to build kernel and modules in one go, or kbuild, a script to build in a separate directory using a cross compiler if necessary.

    3. I use an Installation script to install my kernel; but you can do it by hand if you want.

  3. ReBoot.

Optimising Your Kernel

Kernels should be compiled with gcc [34].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:

  1. The name of the source directory (When installed, a symlink is in /lib/modules/`uname -r`/source )

  2. 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`

Platform Notes

Altix -- notes on kernels on SGI Altix machines

IA64wiki: IA64 Linux (last edited 2009-12-10 03:13:55 by localhost)

Gelato@UNSW is sponsored by
the University of New South Wales National ICT Australia The Gelato Federation Hewlett-Packard Company Australian Research Council
Please contact us with any questions or comments.