Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Guest-side test tools, config, and X11 stuff for PARAGRAPH graphics device
[palacios.git] / v3_config_guest.pl
index dd781e2..abe7d49 100755 (executable)
@@ -9,7 +9,7 @@ These guests *should* work for any host embedding (e.g., Kitten) but
 there may be hidden Linux assumptions.
 
 The tool assumes you have already built Palacios, the Linux embedding,
-and the Linux user-sapce tools.  If you haven't done this, hit CTRL-C
+and the Linux user-space tools.  If you haven't done this, hit CTRL-C
 now, configure and build Palacios, the user-space tools, and run
 v3_config_v3vee.pl.
 
@@ -154,7 +154,7 @@ if (is_palacios_core_feature_enabled($pdir,"V3_CONFIG_MPTABLE")) {
   print "We will include a classic MPTABLE constructor to describe your machine to the guest\n";
   add_device(\%config, "MPTABLE", "mptable");
 } else {
-  if ($numcores>1 &&  is_palacios_core_feature_enabled($pdir,"V3_CONFIG_BOCHSBIOS")) {
+  if ($config{numcores}>1 &&  is_palacios_core_feature_enabled($pdir,"V3_CONFIG_BOCHSBIOS")) {
     print "This is a multicore guest, and your Palacios configuration uses the classic BOCHS BIOS\n".
       "but does not have the MPTABLE constructor enabled...  This guest will almost\n".
        "certainly fail to work.  Do you want to continue anyway? [n] :";
@@ -192,6 +192,14 @@ do_storage(\%config, $pdir, $dir, $name, "pci0", "southbridge");
 
 
 #
+# NVRAM 
+#
+# Note: do_storage *must* have placed an IDE named ide0 in order for this to work
+#
+do_device(\%config, $pdir, "V3_CONFIG_NVRAM", "NVRAM", "nvram", 1, undef, "     <storage>ide0</storage>\n"); #must have
+
+
+#
 # Network interfaces (attached to PCI bus)
 #
 #
@@ -226,7 +234,14 @@ print $target "</vm>\n";
 
 close(PAL);
 
-print "\n\nYour guest is now ready in the directory $dir\n";
+print "\n\nYour guest is now ready in the directory $dir\n\n";
+print "To run it, do:\n\n";
+print "  cd $dir\n";
+print "  v3_create -b $name.pal $name\n";
+print "  v3_launch /dev/v3-vmN (N given by v3_create\n\n";
+print "Other useful tools:\n\n";
+print "  v3_console (CGA console)\n";
+print "  v3_stream (connect to stream, for example, serial port)\n\n";
 
 exit;
 
@@ -411,7 +426,7 @@ sub do_consoles_and_ports {
   print "The CGA and VGA options are mutually exclusive\n";
   print "THe VGA and PARAGRAPH options are mutually exclusive\n";
   
-  if (!($cancga || $canvga || $canserial || $canvirioconsole)) { 
+  if (!($cancga || $canvga || $canserial || $canvirtioconsole)) { 
     print "Hmm... No console mechanism is enabled in your Palacios build...\n";
     print "  This is probably not what you want...\n";
 }
@@ -476,7 +491,7 @@ sub do_consoles_and_ports {
     }
   }
   
-  if (!($didcga || $didvga || $didserial || $didvirioconsole || $didparagraph)) { 
+  if (!($didcga || $didvga || $didserial || $didvirtioconsole || $didparagraph)) { 
     print "You have configured your guest without any obvious way of interacting with it....\n";
     print "  This is probably not what you want...\n";
   } 
@@ -570,7 +585,7 @@ sub do_network {
        $host=get_user("eth0");
        add_device($cr,"NIC_BRIDGE","net$num-back",undef,
                   "    <frontend tag=\"net$num\" />\n".
-                  "    <hostnic>$host</hostnic>\n");
+                  "    <hostnic name=\"$host\" />\n");
     }
 
     if ($back eq "vnet") { 
@@ -670,7 +685,6 @@ sub do_storage_backend {
     print "  * FILEDISK - the data is kept in a host file (common) : ".($canfiledisk ? "available" : "UNAVAILABLE")."\n";
     print "  * NETDISK - the data is accessed via the network (uncommon) : ".($cannetdisk ? "available" : "UNAVAILABLE")."\n";
     print "  * TMPDISK - the data is kept in memory and discarded (common) : ".($cantmpdisk ? "available" : "UNAVAILABLE")."\n";
-    print "  * RAMDISK - the data is kept in memory (common) : ".($canramdisk ? "available" : "UNAVAILABLE")."\n";
     while (1) {
       print "Which option do you want for this device? {".join(", ",@disks)."} [] : ";
       $type = get_user("");