Revision as of 01:04, 15 October 2006 by David (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Installing VNUML 1.7

<tbody> <tr> <td class="title" colspan="2"><a name="debinstall">2. Installing from .deb package</a></td> </tr> <tr> <td colspan="2">

An APT respository has been set up for VNUML related packages. The installation procedure is as follows:

  1. Add the following line to the /etc/apt/sources.list file:
  2. deb binary/
  3. Update package list:
  4. apt-get update
  5. Install VNUML along the packages it depends on
  6. apt-get install vnuml

In addition, although they are not mandatory packages to work with VNUML, it is strongly recommended you install the following:

apt-get install vlan xterm bridge-utils screen

That's all! :)

         <td colspan="2">
<tr> <td class="title" colspan="2"><a name="sourceinstall">3. Installing from source .tgz</a></td> </tr> <tr> <td colspan="2">

VNUML 1.7 source package includes an easy to use installer thanks to Tony Prug and Casey T. Deccio contributions.

The most of the cases, all you need to install VNUML is untar the package in your GNU/Linux box (the package is quite distribution agnostic, but specific issues for <a href="#mandrake">Mandrake</a> can be found later in this document) and perform the following operations. A Internet connection is needed, in order the installation scripts connect to CPAN (and other places) to get Perl modules and other libraries.

make install

(The lastest command needs root privileges in the host)

Several options can be configured using configure script (for example, the installation prefix). The ./configure --help give the list of the available options.

Host kernel needs include tun and loop support in order to work properly. Skas support is also very desirable. 8012q is also required if you plan to use the VLAN features of VNUML.

Please read the INSTALL file that comes with the package in order to get futher information and details.

<a name="libxml_expat">3. 1. Libxml and expat installation</a>

VNUML needs libxml2 and expat2 to work. By default, the VNUML install program doesn't perform special actions about it, assuming the libraries are installed in your system (for example, as RPM or .deb packages). This is the recomended procedure.

However, if you want VNUML installer to install libxml2 and/or expat2 being installed from the source (downloading the packages through Internet) use --with-libxml=yes and/or --with-expat=yes ./configure options, respectively.

<a name="modules_manual_install">3. 2. External Perl modules</a>

The VNUML tool requires some external Perl modules to work. By default, the installer (./configure) check if the required modules are installed. If not, the installer will report the user about the missing modules, in order he can install them before running again the installer.

The list of required modules is (newest versions can be found in <a href="">CPAN</a>):

  • Error
  • Exception::Class
  • XML::DOM, XML::Checker (these modules usually require some others: XML::RegExp, XML::Parser, XML::Parser::PerlSAX)
  • NetAddr::IP
  • Net::Pcap
  • IO::Socket
  • Term::ReadKey
  • Net::IPv6Addr (this module usually requires some others: Math::Base85, Net::IPv4Addr)
  • File::Glob

If you find some required module is missing in the list before, please, <a href="">tell us</a> in order to add it.

Perl modules are distributed as .tar.gz files. The standarized way to install them is the following:

  1. Uncompress file.
  2. Execute 'perl Makefile.PL'. This checks dependencies and tell you if another required module have to be installed previously.
  3. Execute 'make'.
  4. Execute 'make test'. Note that (curiously!) not getting 100% success doesn't mean always that the module is not going to work.
  5. Install the module with 'make install' (root privilegies are needed).

In addition to manual installation, the VNUML installer can automate the missing modules installation using --with-build_modules=yes configure option. This is done throught the CPAN public repository and requires Internet connection.

<a name="required_binaries">3. 3. Required binaries</a>

The program needs some external binaries in order to work. The parser is able to check if the required binaries are in the command path (configure your PATH enviroment variable properly!) and report to the user if some required binary is missing.

The most of this binaries are common things, like cp, mv, rm and the like. However, some others may be difficult to find, in particular the following:

  • brctl (only if you plan tu use virtual bridge based virtual networks). It can be found in the bridge-utils package (Debian .deb or SuSE .rpm)
  • vconfig (only if you plan tu use VLAN features). It can be found in the vlan package (Debian .deb or SuSE .rpm)
  • tunctl, uml_mconsole, uml_switch. In Debian, it can be found in the uml-utilities package (just use 'apt-get install uml-utilities' to install). In other distribution you can use the RPM in the <a href="">UML download page</a> or compile from the sources .tar.bz2 at the same URL (we recommend you the second option).
</td> </tr>

         <td class="title" colspan="2"><a name="troubleshooting">4. 
         General Troubleshooting</a></td>
         <td colspan="2">
  • (Installation from source package) The usual './configure ; make ; make install' may fail in the last step if the perl-devel package is not installed. In particular, the problem seems not finding the /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/config.h file, that is included in that package.
  • (Installation from source package) In order to compile the UML tools you maybe need install previously the readline-devel and ncurses-level packages (at least in SuSE 9.0 and Mandrake 10.0, see this <a href="">bug report</a> for details).
  • The installation procedure of VNUML may create new users and/or group. To avoid permission problems accesing some resources (for example, socket files), it is recommended logging completely out and logging back in (see <a href="">this posting</a> in the vnuml-devel list for some more detail).


         <td class="title" colspan="2"><a name="mandrake">5.
         Mandrake specific issues</a></td>
         <td colspan="2">

From <a href=""></a>.

  • perl-devel RPM package seems not being installed in the default Mandrake 10.0 installation
  • The libreadline4-devel RPM package (required to compile UML tools) seems not being installed in the default Mandrake 10.0 installation).
  • The /dev/net/tun device file only seems to exist when tun module is loaded. So, you need to 'modprobe tun' before running in order to avoid the '/dev/net/tun is not a valid character device file' error message.

         <td class="title" colspan="2"><a name="contrib">6.
         Contributed software</a></td>
         <td colspan="2">

The contrib/ directory in the source package after untaring contains contributed software that can be used with VNUML. For example, the contrib/uml_router is a uml_switch modification for traffic capture. Each contribution has its own README or INSTALL file, with installation steps and brief how-to descriptions (if you find this information insufficient the <a href="">vnuml-user</a> maillist is the right place to ask for :)</a> <p>We strongly recommend you to review the contrib/ directory. Maybe you find something useful!

         <td colspan="2">

             Last update: <script src=
             "../js/fecha.js" type="text/javascript">
             </script> <script language="JavaScript" type=
             var cur = new Date(document.lastModified);
             var str = getString(cur);

</body> </html>

VNUML Installation Guide
version 1.7

Fermin Galan (<a href= "mailto:galan at">galan at</a>)
David Fernández (<a href= "mailto:david at">david at</a>)

July 27th, 2006

<a href=""><img alt=
         "Virtual Network User Mode Linux" src=
         "../images/vnuml.png" border="0" align="right" width=

         <a href="#installation">1. Introduction</a>
<a href="#debinstall">2. Installing from .deb package</a>
<a href="#sourceinstall">3. Installation from source .tgz</a>
   <a href="#libxml_expat">3.1. Libxml and expat installation</a>
   <a href="#modules_manual_install">3.2. External Perl Modules</a>
   <a href="#required_binaries">3.3. Required binaries</a>
   <a href="#contrib">3.4. Contrib software</a>
<a href="#troubleshooting">4. General Troubleshooting</a>
<a href="#mandrake">5. Mandrake specific issues</a>
<a href="#contrib">6. Contributed software</a>

<a name="installation">1. Introduction</a>

There are two ways of installing VNUML:

  • From APT package in deb-based distribution (Debian, Ubuntu, Kubuntu, MEPIS,...).
  • From source .tgz

The recommended installation procedure is the former, due to it is much easier than the later (for example, dependencies are calculated and installed automaticly). However, this manual describes also the source based installation for users not using .deb based distributions (like Fedora or SuSE).

Note the installation prefix in both cases is different: /usr/share for the .deb package and /usr/local/share for the source .tgz installation (except if you use a differente PREFIX when ./configure).

UML simulations generally consume a lot of physical host resources (CPU, disk storage, RAM, etc). As a minimum, you need a standard Pentium III 500 Mhz with 128 Mb RAM to perform the tutorial included in the documentation. However, at least 256 Mb (better 512 Mb) and a faster CPU are recomended to execute more complex scenarios.