VNUML Installation Guide
Fermin Galan (<a href=
"mailto:galan at dit.upm.es">galan at dit.upm.es</a>)
David Fernández (<a href=
"mailto:david at dit.upm.es">david at dit.upm.es</a>)
July 27th, 2006
|<a href="http://www.dit.upm.es/vnuml"><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>
<td class="title" colspan="2"><a name="debinstall">2.
Installing from .deb package</a></td>
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
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.
An APT respository has been set up for VNUML related packages. The installation
procedure is as follows:
- Add the following line to the /etc/apt/sources.list file:
deb http://jungla.dit.upm.es/~vnuml/debian binary/
- Update package list:
- Install VNUML along the packages it depends on
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 class="title" colspan="2"><a name="sourceinstall">3.
Installing from source .tgz</a></td>
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.
(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
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-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
The list of required modules is (newest versions can be found in
- XML::DOM, XML::Checker (these modules usually require some others: XML::RegExp, XML::Parser, XML::Parser::PerlSAX)
- Net::IPv6Addr (this module usually requires some others: Math::Base85, Net::IPv4Addr)
If you find some required module is missing in the list
before, please, <a href="mailto:email@example.com">tell us</a> in order to
Perl modules are distributed as .tar.gz files. The
standarized way to install them is the following:
- Uncompress file.
- Execute 'perl Makefile.PL'. This checks
dependencies and tell you if another required module have
to be installed previously.
- Execute 'make'.
- Execute 'make test'. Note that (curiously!)
not getting 100% success doesn't mean always that the
module is not going to work.
- Install the module with 'make install' (root
privilegies are needed).
In addition to manual installation, the VNUML installer can automate the missing modules
--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 vnumparser.pl 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="http://user-mode-linux.sourceforge.net/dl-sf.html">UML download page</a>
or compile from the sources .tar.bz2 at the same URL (we recommend you the second option).
<td class="title" colspan="2"><a name="troubleshooting">4.
- (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="http://sourceforge.net/tracker/index.php?func=detail&aid=1173967&group_id=113582&atid=665579">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="https://lists.dit.upm.es/pipermail/vnuml-devel/2005-July/000227.html">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>
From <a href="https://lists.dit.upm.es/pipermail/vnuml-users/2004-November/000115.html">https://lists.dit.upm.es/pipermail/vnuml-users/2004-November/000115.html</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
The /dev/net/tun device file only seems to exist when tun module is loaded.
So, you need to 'modprobe tun' before running vnumparser.pl 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.
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="https://lists.dit.upm.es/mailman/listinfo/vnuml-users">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
Last update: <script src=
var cur = new Date(document.lastModified);
var str = getString(cur);