VNUML Installation Guide
version 1.6

Authors:
Fermin Galan (galan at dit.upm.es)
David Fernández (david at dit.upm.es)

August 12th, 2005



Virtual Network User Mode Linux
Contents

1. Installation
   1.1. Libxml and expat installation
   1.2. External Perl Modules
   1.3. Required binaries
3. General Troubleshooting
3. SuSE specific issues
4. Mandrake specific issues

1. Installation

VNUML 1.6 package includes an easy to use installer thanks to Tony Prug and Casey T. Deccio contributions. The old tedious step-by-step installing way isn't needed anymore.

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 SuSE and Mandrake 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.

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

./configure
make
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.

1. 1. Libxml and expat installation

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.

1. 2. External Perl modules

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 CPAN):

  • Error
  • Exception::Class
  • XML::DOM, XML::Checker (these modules usually require some others: XML::RegExp, XML::Parser, XML::Parser::PerlSAX)
  • NetAddr::IP
  • 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, tell us 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.

1. 3. Required binaries

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. It can be found in the bridge-utils package (Debian .deb or SuSE .rpm)
  • vconfig. 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 UML download page or compile from the sources .tar.bz2 at the same URL (we recommend you the second option).

2. General Troubleshooting

  • 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.
  • 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 bug report 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 this posting in the vnuml-devel list for some more detail).

3. SuSE specific issues

SuSE releases seems to have a (yet strange) bug that imposes to change -eth0 network interface names to -ethX in order to work. Anyway, you don't have to worry if installing VNUML in a SuSE box, because of the installing scripts are cleaver enough to detect the situation and patch the program.

In the case of using VNUML in a SuSE box, you should see the "SuSE" string appended to the version number when getting the vnumlparser version:

kastrup# vnulmparser.pl -V
This is vnumlpaser.pl version: 1.6.0-rc1.SuSE (01/12/2004)
Fermín Galán Márquez. galan@dit.upm.es

4. Mandrake specific issues

From https://lists.dit.upm.es/pipermail/vnuml-users/2004-November/000115.html.

  • 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 vnumparser.pl in order to avoid the '/dev/net/tun is not a valid character device file' error message.

Last update: