INSTALLING AND USING KASUARI

The Kasuari framework is available as source code from our Subversion repository and as pre-compiled Debian packages for different x86 architectures. The installation using the Debian packages is highly recommended as it is quicker, easier and more reliable than building it from source.


Installation on Debian GNU/Linux etch

  1. Become root
  2. Add the following line to your /etc/apt/sources.list
    deb http://ptmc.org/public/kasuari/debian sid main
    deb-src http://ptmc.org/public/kasuari/debian sid main
    
  3. Run apt-get update
  4. PLEASE NOTE: Some Xen packages have recently been updated and renamed in Debian. Please download and install the xen-hypervisor-3.0-i386 or xen-hypervisor-3.0-amd64 and xen-utils-3.0 packages manually from our cache (http://ptmc.org/public/kasuari/debian-2.6.16/) until the next version of the Kasuari framework is released.
  5. Run apt-get install bridge-utils iproute libc6-xen ethtool initrd-tools kasuari udev
  6. install the kernel images by running apt-get install linux-xen0-2.6.16-kasuari-dom0-2-xen-686 linux-xenu-2.6.16-kasuari-domu-2-xen-686 cowloop-modules-2.6.16-kasuari-dom0-2-xen-686 cowloop-utils (replace "686" with "k7", "amd64-k8" or "emt64-p4" depending on your machine type)
  7. If you get a hotplug warning from the udev package, purge it with dpkg -P hotplug
  8. Create a dom0 initrd: mkinitrd -o /boot/initrd.img-2.6.16-kasuari-dom0-2-xen-686 2.6.16-kasuari-dom0-2-xen-686 (again, replace "686" accordingly)
  9. Create a symlink to the current initrd: ln -s /boot/initrd.img-2.6.16-kasuari-dom0-2-xen-686 /boot/xen0-linux-kasuari-initrd (again, replace "686" accordingly)
  10. Create a symlink to the current domU kernel: ln -s /boot/xenu-linux-2.6.16-kasuari-domu-2-xen-686 /boot/xenu-linux-kasuari (again, replace "686" accordingly)
  11. Create a symlink to the current dom0 kernel: ln -s /boot/xen0-linux-2.6.16-kasuari-dom0-2-xen-686 /boot/xen0-linux-kasuari (again, replace "686" accordingly)
  12. Add something like the following to your /boot/grub/menu.lst file, replace "i386" by "amd64" on 64bit machines and change "hda1" as well as "hd(0,0)" if the Kasuari framework has not been installed on the primary partition of the first hard drive:
    title Xen 3.0 / Debian / Kasuari
    root    (hd0,0)
    kernel /boot/xen-3.0-i386.gz
    module /boot/xen0-linux-kasuari  root=/dev/hda1 ro 
    module /boot/xen0-linux-kasuari-initrd
    boot
    
    # If you have more than 4GB of RAM add this to the "kernel" line: max_addr=16G (or whatever your RAM size is).
    # If you run on x86_64 you might want to increase the Xen heap size, add this to the "kernel" line: xenheap_megabytes=64.
    
  13. Edit /etc/xen/xend-config.sxp and comment out the following lines:
    (network-script network-dummy) 
    (vif-script vif-bridge) 
    
  14. Reboot into Xen
  15. If you see error messages relating to "devfs" and "/dev/null", you may need to install the Debian package initramfs-tools and repeat the mkinitrd step above, replacing mkinitrd by mkinitramfs.
  16. Run "xm top" and check if the Xen daemon is running. A list should pop up that shows the dom0 and no domUs.
  17. Run mkdir -p /home/kasuari/images
  18. Download the default filesystem image (e.g. wget http://ptmc.org/public/kasuari/images/kasuari.img.gz) and gunzip it in /home/kasuari/images
  19. Open /etc/xen/kasuari.cfg in an editor and change the lines starting with kernel (domU kernel symlink), memory (dom0 memory size) and disk (dom0 filesystem location) if you don't want to use the default settings
  20. Fire up your first ten Kasuari framework nodes by entering kas-create 10 0 and see the usage instructions below

Building Debian packages from source (kernel images and scripts)

  1. Change to /usr/src on your local Debian installation and check out kasuari (and aodv-uu-dtn if you need it) from our Subversion repository: svn co https://prj.tzi.org/repos/dmn/kasuari/trunk kasuari and svn co https://prj.tzi.org/repos/dmn/aodv-uu-dtn/trunk aodv-uu-dtn
  2. Install some packages required for building using apt-get install dpkg-dev debhelper ocaml-interp python2.4 kernel-package gcc-4.0 module-assistant libc6-dev udev
  3. Optional: put your maintainer details in /etc/kernel-pkg.conf
  4. If you are building the Kasuari packages in a 32bit chroot on a 64bit kernel, make sure you export ARCH=i386
  5. change to /usr/src/kasuari/kernel and run ./build-kpkg.sh 2.6.16 1 (kernel release 2.6.16, target package revision 1)

Installation from source

Short instructions, for advanced users only:

  1. Download Xen from the mercurial repository (using the mercurial Debian package): hg pull http://xenbits.xensource.com/xen-unstable.hg
  2. Check out revision 9697 as used in Debian: hg co -C 9697
  3. Check out the kasuari SVN repository as described in the previous section
  4. Compile Xen from source according to the instructions on the Xen website after applying the kernel and Xen patches from Kasuari
  5. Install Xen and add the Xen daemon to the Debian startup scripts by running update-rc.d xend defaults
  6. Configure the bootloader to boot Xen and reboot
  7. Run make install in the Kasuari source directory to install the scripts locally
  8. Run mkdir -p /home/kasuari/images
  9. Download the default filesystem image (e.g. wget http://ptmc.org/public/kasuari/images/kasuari.img.gz) and gunzip it in /home/kasuari/images
  10. Edit the Kasuari scripts to match your domU kernel name, location and initrd image
  11. Now you should be able to start Kasuari framework nodes as described in the "Usage" section below

Nsemulation installation on Debian GNU/Linux etch

Nsemulation is an emulation-optimised ns2. Although it is not necessary for the Kasuari framework, it is highly recommended to simulate a realistic network between the virtual nodes.

  1. add our nsemulation mirror to your /etc/apt/sources.list :
    deb http://ptmc.org/public/kasuari/nse-mirror sid ns2
    deb-src http://ptmc.org/public/kasuari/nse-mirror sid ns2
    
  2. run apt-get update; apt-get install ns nam

Nsemulation installation from source

see the instructions in this document