Ubuntu

Installation using debian package and vnuml repository


 Open a shell terminal ("Applications|Accesories|Terminal" menu option) and give it root priviledges:

sudo su

 Activate Ubuntu community package sources (universe). They are necesary to install some of the packages VNUML depends on. You can do it by one of two methods: 


 * Editing /etc/apt/sources.list and uncommenting the "deb ..." lines that end with "universe", or
 * Starting "synaptic" application (you can find it in System|Administration menu) and going to "Configuration|Repositories" menu option and selecting the the community repositories (universe).

 Add VNUML repository to sources.list file:

echo "deb http://jungla.dit.upm.es/~vnuml/debian binary/" >> /etc/apt/sources.list

 Update and upgrade the system: 

sudo su      apt-get update apt-get upgrade Note: remember that in Ubuntu when you issue a command preceded by sudo you have to type your own password, not the root one, which is normally disabled. You should restart the system after upgrading, as a new version of the kernel is installed.

 Install vnuml package: 

apt-get install vnuml

 Download root filesystem (root_fs_tutorial-0.4.1.bz2) from VNUML site and: 

cp root_fs_tutorial-0.4.1.bz2 /usr/local/share/vnuml/filesystems cd /usr/local/share/vnuml/filesystems bunzip2 root_fs_tutorial-0.4.1.bz2 ln -s root_fs_tutorial-0.4.1 root_fs_tutorial  Download guest kernel (linux-2.6.16.27-bs2-xt-1m.tar.bz2) from VNUML site and: 

mkdir /usr/local/share/vnuml/kernels/src cp linux-2.6.16.27-bs2-xt-1m.tar.bz2 /usr/local/share/vnuml/kernels/src cd /usr/local/share/vnuml/kernels/src tar xfvj linux-2.6.16.27-bs2-xt-1m.tar.bz2 cp linux-2.6.16.27-bs2-xt-1m/linux-2.6.16.27-bs2-xt-1m .. cd .. ln -s linux-2.6.16.27-bs2-xt-1m linux

 Create ssh key: </li>

ssh-keygen -t rsa1

 Installation is finished. Test simple.xml example to see if everything works: </li>

vnumparser.pl -t /usr/local/share/vnuml/examples/simple.xml -v -u root 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.

</ol>

Manual installation from tar file
<ol>

 Activate Ubuntu community package sources (universe). They are necesary to install some of the packages VNUML depends on. You can do it by one of two methods: </li>


 * Editing /etc/apt/sources.list and uncommenting the "deb ..." lines that end with "universe", or
 * Starting "synaptic" application (you can find it in System|Administration menu) and going to "Configuration|Repositories" menu option and selecting the the community repositories (universe).

 Update and upgrade the system: </li>

sudo su      apt-get update apt-get upgrade Note: remember that in Ubuntu when you issue a command preceded by sudo you have to type your own password, not the root one, which is normally disabled. You should restart the system after upgrading, as a new version of the kernel is installed.

 Install development utils and vlan support (optional): </li>

apt-get -y install build-essential vlan  Install VNUML related utilities and perl libraries: </li>

apt-get install bridge-utils uml-utilities apt-get -y install libmodule-build-perl liberror-perl libexception-class-perl libxml-dom-perl libxml-checker-perl libterm-readkey-perl libnet-pcap-perl libnetwork-ipv4addr-perl libnetaddr-ip-perl

Net::IPv6Addr perl module is not avalaible as debian package, so it has to be installed using MCPAN: perl -MCPAN -e "install Net::IPv6Addr" (Note: answer "NO" if asked "Are you ready for manual configuration?") Download the latest version of vnuml parser from VNUML site and install it: </li>

tar xfvz vnuml_1.7.3.orig.tar.gz cd vnuml-1.7.3 ./configure --with-build_modules make make install   (Note: answer "NO" if asked "Are you ready for manual configuration?")

 Download root filesystem (root_fs_tutorial-0.4.1.bz2) from VNUML site and: </li>

cp root_fs_tutorial-0.4.1.bz2 /usr/local/share/vnuml/filesystems cd /usr/local/share/vnuml/filesystems bunzip2 root_fs_tutorial-0.4.1.bz2 ln -s root_fs_tutorial-0.4.1 root_fs_tutorial  Download guest kernel (linux-2.6.16.27-bs2-xt-1m.tar.bz2) from VNUML site and: </li>

mkdir /usr/local/share/vnuml/kernels/src cp linux-2.6.16.27-bs2-xt-1m.tar.bz2 /usr/local/share/vnuml/kernels/src cd /usr/local/share/vnuml/kernels/src tar xfvj linux-2.6.16.27-bs2-xt-1m.tar.bz2 cp linux-2.6.16.27-bs2-xt-1m/linux-2.6.16.27-bs2-xt-1m .. cd .. ln -s linux-2.6.16.27-bs2-xt-1m linux

 Create ssh key: </li>

ssh-keygen -t rsa1

 Installation is finished. Test simple.xml example to see if everything works: </li>

vnumparser.pl -t /usr/local/share/vnuml/examples/simple.xml -v -u root 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.

</ol>

Installing SKAS patch in host kernel
VNUML works well over the standard kernel that comes with Ubuntu (using SKAS 0 mode). However, if you want to improve the performance, you can install the the SKAS 3 patch to the kernel. To do that:

<ol>  Install kernel sources and some system utilities: </li>

apt-get install linux-source libncurses5-dev initrd-tools

 Download SKAS3 patch from Blaisorblade's server and apply it to kernel sources: </li>

cd /usr/src wget http://www.user-mode-linux.org/~blaisorblade/patches/skas3-2.6/skas-2.6.15-v8.2/skas-2.6.15-v8.2.patch.bz2 tar xfvj linux-source-2.6.15.tar.bz2 cd linux-source-2.6.15 bzcat ../skas-2.6.15-v8.2.patch.bz2 | patch -p1

 Configure, compile and install the new kernel: </li>

make oldconfig make Note: I´ve got an error related to "drivers/usb/net/zd1211/zddevlist.h"; to solve it, do a "make menuconfig" and desactivate support for that usb card in "Device drivers|USB support|USB network adapters") make modules  make modules_install  make install Note: make install fails and does neither generate initrd file nor configure grub. Do it by hand:  mkinitrd -o /boot/initrd.img-2.6-15.7-ubuntu1-skas3-v8.2 2.6-15.7-ubuntu1-skas3-v8.2 And edit /boot/grub/menu.lst and add a new entry for the new kernel like (this is just an example; change the parameters as appropriate to your system):  title		Ubuntu, kernel 2.6.15.7-ubuntu1-skas3-v8.2  root		(hd0,3)  kernel		/boot/vmlinuz-2.6.15.7-ubuntu1-skas3-v8.2 root=/dev/hda4 ro quiet splash  initrd		/boot/initrd.img-2.6.15.7-ubuntu1-skas3-v8.2  savedefault  boot </ol>