Suse 10.1

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 " gnome-terminal,-t,-x " 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 2.6.15.7-bs3-tls-xt-1m 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:			download.opensuse.org 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 http://www.user-mode-linux.org/~blaisorblade/uml-utilities/uml_utilities_20060323.tar.bz2. 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 http://www.dit.upm.es/vnuml and:

> tar xfvz vnuml-1.7.0-rc1.tar.gz	 > cd vnuml-1.7.0-rc1 > ./configure --with-build_modules > make > 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) 5 - If executed now, vnumparser.pl fails because some perl modules (NetAddr::IP, Net::IPv4Addr, Net::IPv6Addr and Net::Pcap) have not been correctly installed. Install them manually using MCPAN:

> 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 www.cpan.org and install them (files NetAddr-IP-XXX.tar.gz, Net-IPv6Addr-XXX.tar.gz and Net-IPv4Addr-0.08.tar.gz).

6 - Download root filesystem (root_fs_tutorial-0.4.0.bz2) from VNUML site (http://jungla.dit.upm.es/~vnuml/download/filesystems/root_fs_tutorial-0.4.0.bz2) and copy it to /usr/local/share/vnuml/filesystems. Create a symbolic link to it named "root_fs_tutorial": > 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 7 - Download guest kernel (linux-2.6.15.7-bs3-tls-xt-1m.tar.bz2) from VNUML site (http://jungla.dit.upm.es/~vnuml/download/linux/linux-2.6.15.7-bs3-tls-xt-1m.tar.bz2) and copy it to /usr/local/share/vnuml/kernels/src. Untar the file, copy the kernel and create a symbolic link to it:

> mkdir /usr/local/share/vnuml/kernels/src > cp linux-2.6.15.7-bs3-tls-xt-1m.tar.bz2 /usr/local/share/vnuml/kernels/src > cd /usr/local/share/vnuml/kernels/src > tar xfvj linux-2.6.15.7-bs3-tls-xt-1m.tar.bz2 > cp linux-2.6.15.7-bs3-tls-xt-1m/linux-2.6.15.7-bs3-tls-xt-1m .. > cd .. > ln -s linux-2.6.15.7-bs3-tls-xt-1m linux 8 - Installation is finished. Edit simple.xml example and uncoment the "gnome-terminal" line and start it to see if everything works:

> vnumparser.pl -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 host kernel with SKAS patch --

To patch the host kernel with the SKAS3 patch:

- Download kernel sources using Yast (package kernel-source). The sources are installed in /usr/src/linux.

- Download skas-2.6.16-v8.2.patch.bz2 from Blaisorblade's site: > cd /usr/src > wget http://www.user-mode-linux.org/~blaisorblade/patches/skas3-2.6/skas-2.6.16-v8.2/skas-2.6.16-v8.2.patch.bz2 - Apply the patch:

> 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 > make modules > make modules_install > make install - 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:

> uname -a > Linux vallecas 2.6.16.13-4-skas3-v8.2-smp #1 SMP Thu Jul 13 19:29:47 CEST 2006 i686 i686 i386 GNU/Linux

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

old, old, old
Notas:

- añadir install Net::Pcap

Installing VNUML 1.6.1 over a fresh Suse 10.1 distribution --

Test results:

Installation steps:


 * 1) Do the normal installation using Suse 10.1 DVD. It is recomended to download updates using YOU (Yast Online Update). You can do that during the installation phase or later once the system has started.
 * 2) Install "bridge_utils" and "uml-utilities". In my case, bridge_utils were already installed. In the case of uml-utilities, as they have been eliminated from the distribution (in Suse 10.0 can be installed directly from Yast), I installed them directly from the source package I downloaded from http://user-mode-linux.sourceforge.net. Just download the source, uncompress it and "make; make install". You have to previosuly install "readline-devel" package from Yast. from Yast2 (the standard Suse package installer). Both of them come with the Suse 10.0 DVD.
 * 3) Install the perl module named "Module::Build".

The easiest way to do that is using MCPAN: > perl -MCPAN -e shell cpan> install Module::Build (Say NO if asked "Are you ready for manual configuration?")

Alternatively, you can download it from www.cpan.org (file Module-Build-XXXX.tar.gz) and follow the standar installation process: tar xfvz Module-Build... ; cd Module-Build...; perl Makefile.PL; make; make test; make install. 4 - Download the latest version of VNUML from http://www.dit.upm.es/vnuml and:

> tar xfvz vnuml-1.6.1-1.tar.gz	 > cd vnuml-1.6.1-1 > ./configure --with-build_modules > make > make install (answer "NO" to the question "Are you ready for manual configuration?". Answer the default option to other questions). > reexecute "make install" (I noticed some modules are not correctly downloaded sometimes...)

5 - If executed now, vnumparser.pl fails because some perl modules (NetAddr::IP, Net::IPv4Addr and Net::IPv6Addr) have not been correctly installed. Install them manually using MCPAN:

> perl -MCPAN -e shell cpan> install Net::IPv4Addr cpan> install Net::IPv6Addr cpan> force install NetAddr::IP (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 and install them from www.cpan.org (files NetAddr-IP-XXX.tar.gz, Net-IPv6Addr-XXX.tar.gz and Net-IPv4Addr-0.08.tar.gz).

6 - Download root filesystem (root_fs_tutorial-0.3.X.bz2) from VNUML sourceforge site and copy it to /usr/local/share/vnuml/filesystems. Create a symbolic link to it named "root_fs_tutorial": > cp root_fs_tutorial-0.3.2.bz2 /usr/local/share/vnuml/filesystems > cd /usr/local/share/vnuml/filesystems > bunzip2 root_fs_tutorial-0.3.2.bz2 > ln -s root_fs_tutorial-0.3.2 root_fs_tutorial 7 - Download guest kernel (linux-2.6.XXXX.tar.bz2) from VNUML sourceforge site and copy it to /usr/local/share/vnuml/kernels/src. Untar the file, copy the kernel and create a symbolic link to it:

> mkdir /usr/local/share/vnuml/kernels/src > cp linux-2.6.XXXX.tar.bz2 /usr/local/share/vnuml/kernels/src > cd /usr/local/share/vnuml/kernels/src > tar xfvj linux-2.6.XXXX.tar.bz2 > cp linux-2.6.XXXX/linux-2.6.XXXX .. > cd .. > ln -s linux-2.6.XXXX linux 8 - Installation is finished. Launch the "simple" example to see if everything works:

> vnumparser.pl -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 bugs in 1.6.1-1 version 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 host kernel with SKAS patch --

- Download kernel sources using YAst (they are installed in /usr/src/linux)

- Run: /etc/init.d/running-kernel start ??

- Download skas-2.6.16-v8.2.patch.bz2: > cd /usr/src > wget http://www.user-mode-linux.org/~blaisorblade/patches/skas3-2.6/skas-2.6.16-v8.2/skas-2.6.16-v8.2.patch.bz2 - Apply patch:

> 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 > make modules >

-

VNUML works well over the default kernel that comes with Suse 10.0 (2.6.13-15) without the SKAS3 patch. However, the behaviour is improved if you recompile the host kernel with BlaisorBlade's SKAS3 patch.

To do that:

1 - Download kernel 2.6.13.4 sources from www.kernel.org

2 - Download SKAS patch from Blaisorblade's page (http://www.user-mode-linux.org/~blaisorblade/patches/skas3-2.6/skas-2.6.13-rc7-v8.2/)

3 - Execute the following steps: > bunzip2 ../skas-2.6.13-rc7-v8.2.patch.bz2 > tar xfj linux-2.6.13.4.tar.bz2 > cd linux-2.6.13.4/ > patch -p1 < ../skas-2.6.13-rc7-v8.2.patch > cp /boot/config-2.6.13-15-smp .config > make oldconfig > make > make modules > make modules_install > make install

4 - Restart the machine and test vnuml Note: I used the original kernel.org sources instead of the modified kernel sources distributed in Suse 10.0 (you can download them from Yast2, package kernel-sources) because I was not able to apply SKAS paches to that sources. 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.