Jump to: navigation, search

Installing VNUML 1.7.0 over a fresh Suse 10.1 distribution (version 3, 19/7/2006)

Main recommendations to use VNUML in Suse 10.1:

  • Use gnome-terminal. If you plan to use xterm based consoles, include the "<xterm>gnome-terminal,-t,-x</xterm>" directive. Using standard xterms, I had a problem in two of the machines I tested: the simulation does not start correctly and some UML related processes will remain hanged after you stop the simulation.
  • Use VNUML v1.7-0-rc1 with kernel and root_fs_tutorial-0.4.0. Tests with VNUML 1.6 and old guest kernels and filesystems have failed.
  • Optionally, you can install SKAS3 patch to the host kernel to improve performance (security is the same with SKAS0 and SKAS3). VNUML 1.7 works without it in SKAS0. The performance differences are not big (for example, when starting simple.xml, it takes 14 s with SKAS0 and 12 with SKAS3).

Installation steps:

  1. Do the normal installation using Suse 10.1 DVD (I selected compiler and C/C++ development tools and kernel development in software options). It is recommended to download all updates when asked to do that (you can do it also after installation).
  2. Add the following repository (or a mirror) to the installation sources: Protocol: http Server: Directory: /distribution/SL-10.1/inst-source/suse/
  3. Launch Yast2 and install the following packages: "bridge_utils", "uml-utilities", "perl-Module-Build" and, if you plan to use VLANs functionallity, "vlan". Note: A new version of uml-utilities can be downloaded from To install it, just download the source, uncompress it and "make; make install". You have to previosuly install "readline-devel" package from Yast. Either versions worked for me.
  4. Download the latest version of VNUML from and:
  5.  tar xfvz vnuml-1.7.0-rc1.tar.gz
     cd vnuml-1.7.0-rc1
     ./configure --with-build_modules
     make install
       (answer "NO" if asked "Are you ready for manual configuration?". Answer the default option to other questions).
       (repeat "make install" as sometimes some of the modules are not downloaded correctly)
  6. If executed now, fails because some perl modules (NetAddr::IP, Net::IPv4Addr, Net::IPv6Addr and Net::Pcap) have not been correctly installed. Install them manually using MCPAN:
  7.  perl -MCPAN -e shell
     cpan> install Net::IPv4Addr
     cpan> install Net::IPv6Addr
     cpan> force install NetAddr::IP
     cpan> install Net::Pcap

    (In my case, module NetAddr::IP fails one of the tests and it is not installed; that is why I have to use the "force" option to install it).

    Or alternatively download the perl modules from and install them (files NetAddr-IP-XXX.tar.gz, Net-IPv6Addr-XXX.tar.gz and Net-IPv4Addr-0.08.tar.gz).

  8. Download root filesystem (root_fs_tutorial-0.4.0.bz2) from VNUML site ( and copy it to /usr/local/share/vnuml/filesystems. Create a symbolic link to it named "root_fs_tutorial":
  9.  cp root_fs_tutorial-0.4.0.bz2 /usr/local/share/vnuml/filesystems
     cd /usr/local/share/vnuml/filesystems
     bunzip2 root_fs_tutorial-0.4.0.bz2
     ln -s root_fs_tutorial-0.4.0 root_fs_tutorial  
  10. Download guest kernel (linux- from VNUML site ( and copy it to /usr/local/share/vnuml/kernels/src. Untar the file, copy the kernel and create a symbolic link to it:
  11.  mkdir /usr/local/share/vnuml/kernels/src
     cp linux- /usr/local/share/vnuml/kernels/src
     cd /usr/local/share/vnuml/kernels/src
     tar xfvj linux-
     cp linux- ..
     cd ..
     ln -s linux- linux
  12. Installation is finished. Edit simple.xml example and uncoment the "gnome-terminal" line and start it to see if everything works:
  13. -t /usr/local/share/vnuml/examples/simple.xml -v 

    Note: if you execute the example from a "root" session, you should add the option "-u root" at the end of the line. There are some pending bugs that prevent a simulation to work when executed as "vnuml" user (the default when you do not use -u option) from a root session.

Installing SKAS patch in host kernel

To patch the host kernel with the SKAS3 patch:

  1. Download kernel sources using Yast (package kernel-source). The sources are installed in /usr/src/linux.
  2. Download skas-2.6.16-v8.2.patch.bz2 from Blaisorblade's site:
  3.  cd /usr/src
  4. Apply the patch:
  5.  cd /usr/src/linux
     bzcat ../skas-2.6.16-v8.2.patch.bz2 | patch -p1
     make clean
     make oldconfig
     make menuconfig (only if you want to change anything)
     make modules
     make modules_install
     make install
  6. Edit /boot/grub/menu.lst to add an option to boot the new kernel and restart the machine. After restarting, check if the kernel has been correctly installed:
  7.  uname -a
     Linux vallecas #1 SMP Thu Jul 13 19:29:47 CEST 2006 i686 i686 i386 GNU/Linux
  8. Finally, take into account that if you later upgrade the kernel using YOU, you will loose the SKAS patch. Instead you will have to upgrade the kernel manually, as described here.