Skip navigation.
Home
A virtual network infrastructure
PlanetLab logo
Powered by PlanetLab

Customizing the PL-VINI UML Filesystem Image

You can easily add new software to your UML filesystem image by creating a simple PL-VINI experiment that connects to the Internet and downloads software via yum. Follow these steps:

  1. Disable copy-on-write for the UML filesystem image and add some more memory to UML for yum to use. In file StartupGenerator.rb, change the line
        f.print "sudo $UMLDIR/vmlinux ubd0=$UMLDIR/cow,$UMLDIR/FedoraCore5-x86-vini-root_fs ubd1=./umlnet.cfg mem=128M "
    

    to

        f.print "sudo $UMLDIR/vmlinux ubd0=$UMLDIR/FedoraCore5-x86-vini-root_fs ubd1=./umlnet.cfg mem=512M "
    
  2. Create a simple experiment with a default route through the NAT, something like the following:

    $iias = Slice.new(13654, 4801, 'princeton_iias', true, 'XORP')
    $pr = Node.new('vini1.princeton.vini-veritas.net', $iias, 'pr')
    $pr.add_nat_dests(['0.0.0.0/0'])
    $pr.hostinfo("128.112.139.43", "10.0.1.1",  "00:FF:0A:00:01:01")
    
  3. Start the experiment and use yum to install whatever software you require to the base filesystem image. Note that this is really slow, probably because the uml_switch is dropping packets and causing problems for TCP. Once you're done, shut down the experiment.

  4. Compress the resulting filesystem image:
    # cd 
    # tar cjf uml.tar.bz2 uml
    
  5. Copy the new uml.tar.bz2 to a Web server, and change visp/iias/Makefile to point to your version.