Modifications in rom-o-matic.net code to support BKO
authorPravin Shinde <pravin@black-perl.(none)>
Mon, 15 Jun 2009 13:33:07 +0000 (15:33 +0200)
committerPravin Shinde <pravin@black-perl.(none)>
Mon, 15 Jun 2009 13:33:07 +0000 (15:33 +0200)
bottom.php
build.php
configinfo.php
flags.php
index.php
setup.php [new file with mode: 0644]
top.php

index e14c339..11dacb2 100644 (file)
@@ -1,3 +1,4 @@
+<?php include 'setup.php'?>\r
 <hr>\r
 \r
 <h4>\r
@@ -45,7 +46,8 @@ Notes:
 <hr>\r
   <font size="-1">\r
     <br>\r
-    Please email <a href="mailto:webmaster@etherboot.org">webmaster@etherboot.org</a>\r
+    Please email <?php \r
+    print  "<a href=\"mailto:$WEBMASTER_EMAIL\">$WEBMASTER_EMAIL</a>" ?>\r
     with questions or comments about this website.\r
   </font>\r
 \r
index 2637b1a..3e7bbc8 100644 (file)
--- a/build.php
+++ b/build.php
@@ -1,4 +1,5 @@
 <?php // -*- Mode: PHP; -*-
+include 'setup.php' ;
 
 // If user chose "Configure" option on form
 if ( $_GET['A'] == "Configure" ) {
@@ -33,7 +34,7 @@ if ( $_GET['A'] == "Configure" ) {
   $dest = ( $isHTTPS ? 'https://' : 'http://' ) .
           $_SERVER["SERVER_NAME"] . $dir . "/";
 
 header ( "Location: $dest" );
+ header ( "Location: $dest" );
 
   // This should normally not be seen, but just in case...
   echo "Try this: <a href=\"$dest\">$dest</a>";
@@ -50,15 +51,22 @@ include "configinfo.php";
 $flags = get_flags ();
 
 // (debug) show flags
-//echo "<p>Flags: </p>";
-//showflags ( $flags );
-//exit ();
+if ($DEBUG) {
+       echo "<p>Flags: </p>";
+       showflags ( $flags );
+       //exit ();
+}
 
 /*
 ** Make temporary copy of src directory
 */
 $dir = mktempcopy ( "$src_dir", "/tmp" );
 
+if ($DEBUG) {
+       print "<blockquote>"."<pre>\n";
+       print "tempdir is [$dir]\n" ;
+       print "</pre>"."</blockquote>\n";
+}
 // $dir = "/var/romtmp/src";
 
 /*
@@ -76,15 +84,47 @@ $nicfile = get_nicfile();
 $nicfilename = "gpxe-$version-$nicfile";
 $target = "bin/$nicfile";
 
-// Make the requested image.  $status is set to 0 on success
-exec ( "make -C '$dir' '$target' 2>&1", $maketxt, $status );
+if ($DEBUG) {
+       print "<blockquote>"."<pre>\n";
+       print "nicfile is $nicfile, nicfilename = $nicfilename, target is $target \n";
+       print "</pre>"."</blockquote>\n" ;
+       
+}
+if ( $_GET['BKO'] == "on" ) {
+       
+       if ($DEBUG) {
+               print "BKO requested ... so adding embedded scripts" ;
+               print "<blockquote>"."<pre>\n";
+               print "make -C $dir EMBEDDED_IMAGE=./forpxeknifeDHCP.gpxe $target \n" ;
+               print "</pre>"."</blockquote>\n" ;
+               
+       }
+       
+//     Make the requested image with embedded script.  $status is set to 0 on success
+       exec ( "make -C '$dir' EMBEDDED_IMAGE=./pxeDHCP.gpxe,./pxeSTATIC.gpxe '$target' 2>&1", $maketxt, $status );
+       
+} else {
+       
+       if ($DEBUG) {
+               print "Not adding BKO" ;
+               print "<blockquote>"."<pre>\n";
+               print "make -C $dir EMBEDDED_IMAGE=./forpxeknifeDHCP.gpxe $target \n" ;
+               print "</pre>"."</blockquote>\n" ;
+               
+       }
+//     Make the requested image.  $status is set to 0 on success
+       exec ( "make -C '$dir' '$target' 2>&1", $maketxt, $status );
+}
 
 // (debugging) take a look at the Make output
 // deltempdir ( $dir );
-// echo "<blockquote>"."<pre>";
-// echo htmlentities ( implode("\n", $maketxt ) );
-// echo "</pre>"."</blockquote>";
-// exit ();
+if ($DEBUG) {
+       print "<blockquote>"."<pre>";
+       print htmlentities ( implode("\n", $maketxt ) );
+       print "</pre>"."</blockquote>";
+       print "<h2> Downloading is disabled for debugging purpose </h2>" ;
+       exit ();
+}
 
 /*
 ** Send ROM to browser (with extreme prejudice)
@@ -121,7 +161,7 @@ if ( $status == 0 ) {
 // Remove build directory
 deltempdir ( $dir );
 
-$header_title = "ROM-o-matic.net: $nicfile Build Failed";
+$header_title = "$HOME_URL: $nicfile Build Failed";
 $html_title   = "$nicfile Build Failed";
 $description  = "$nicfile ROM driver build failed";
 
index c04f448..8ac167b 100644 (file)
@@ -1,7 +1,7 @@
 <? // -*- Mode: PHP; -*-
-
-$version = "git";
-$src_dir = "../../../gpxe.git/src"; // TODO temporary hack to work around symlink git
+include "setup.php" ;
+$version = $gpxe_source_type;
+$src_dir = "$gpxe_source_location/src"; // TODO temporary hack to work around symlink git
 
 include ( "flag_table.php" );
 
@@ -408,6 +408,37 @@ function get_cfgsecs ()
   return ( $cfgsecs );
 }
 
+function write_gpxe_config_file ( $fname, $IP, $NetMask, $GateWay, $DNS) 
+{
+  $fp = fopen ( $fname, "wb" );
+  if ( $fp <= 0 ) {
+    die ( "Unable to open $fname file for output!" );
+  }
+
+    fwrite ( $fp, "#!gpxe\n" );
+    fwrite ( $fp, "echo \"Hi, We will be using PXEKnife from URL $PXELINUX_PATH\"\n");
+       fwrite ( $fp, "echo \"It is assumed that you have Static networking\" \n");
+    fwrite ( $fp, "echo \"Using net0 card\" \n");
+       fwrite ( $fp, "echo \"Using net0/ip = $IP \" \n" ); 
+       fwrite ( $fp, "echo \"Using net0/netmask = $NetMask \" \n" );
+       fwrite ( $fp, "echo \"Using net0/gateway = $GateWay \" \n" );
+       fwrite ( $fp, "echo \"Using net0/dns = $DNS \" \n" );
+       
+       
+       fwrite ( $fp, "set net0/ip $IP\n" ); 
+       fwrite ( $fp, "set net0/netmask $NetMask\n" );
+       fwrite ( $fp, "set net0/gateway $GateWay\n" );
+       fwrite ( $fp, "set net0/dns $DNS\n" );
+       fwrite ( $fp, "set 209:string /pxeknife.cfg/default \n");
+       fwrite ( $fp, "set 210:string http://www.alien.doesntexist.org/pxeknife/ \n");
+       fwrite ( $fp, "echo \"Here we go\" \n" );
+       fwrite ( $fp, "chain http://www.alien.doesntexist.org/pxeknife/pxelinux.0 \n" );
+       
+       fclose($fp);
+}
+
 function write_config_file ( $fname, $arch, $flags ) 
 {
   global $flag_table;
index 1a35ed9..778452f 100644 (file)
--- a/flags.php
+++ b/flags.php
@@ -1,14 +1,14 @@
 <?php // -*- Mode: PHP; -*-
 
 include "configinfo.php";
-
+include "setup.php";
 $nics = get_nics();
 $flags = get_flags();
 $nicfile = get_nicfile();
 $arch = cleanstring($_GET['arch']);
 
-$header_title = "ROM-o-matic.net: gpxe-$version ($arch)";
-$html_title   = "<a href=\"http://rom-o-matic.net/\">ROM-o-matic.net</a> for gPXE version $version ($arch)";
+$header_title = "$HOME_URL: gpxe-$version ($arch)";
+$html_title   = "<a href=\"http://$HOME_URL/\">$HOME_URL</a> for gPXE version $version ($arch)";
 $description = "Configuration flags";
 
 include $top_inc;
index 7855053..0a8592d 100644 (file)
--- a/index.php
+++ b/index.php
@@ -5,8 +5,8 @@
   $flags = get_flags();
   $encoded_flags = encode_flags($flags);
 
-  $header_title = "ROM-o-matic.net: for gPXE version $version";
-  $html_title   = "<a href=\"http://rom-o-matic.net/\">ROM-o-matic.net</a> for gPXE version $version";
+  $header_title = "$HOME_URL: for gPXE version $version";
+  $html_title   = "<a href=\"http://$HOME_URL/\">$HOME_URL</a> for gPXE version $version";
   $description  = "a dynamic gPXE and Etherboot image generator";
 
   // Begin html output
   <input type="hidden" name="arch" value="<? echo (isset($_GET['arch']) ? cleanstring($_GET['arch']) : "i386")?>">
 
 <h3>
-ROM-o-matic.net dynamically generates gPXE and Etherboot ROM images.
+<?php print "$HOME_URL "?> dynamically generates gPXE and Etherboot ROM images, which can boot from pxeKnife.
 </h3>
 
+
 <h4>
 Supporting <? echo count($nics) ?> NIC variations and <? echo count($ofmts) ?> output formats.
 </h4>
@@ -53,6 +54,25 @@ To create and download a gPXE ROM image:
   
 </li>
 
+<li>
+
+<div>
+You can create Custom pxe images/rom for your network card,  
+<br/>which can directly  boot from PxeKnife using HTTP.
+<br/>This site which will allow you to generate custom ROM images, 
+<br/> which are having embedded scripts to boot from PXEKnife over HTTP.
+<br/>As this code is based on rom-o-matic, it allows same amount of cusomizability.
+<br/><strong>Visit <a href="http://etherboot.org/wiki/soc/2009/pravin/journal/pxekniferomomatichttp"> 
+here<a> for more details</strong>
+<br/>
+<br/>Select the checkbox if you want to embedd the automatic boot facility.
+<br/>Embed PXEKnife booting<input type="checkbox" value="on" name="BKO" checked> 
+<br/> <input type="hidden" name="DHCP" value = "yes">
+<br/>
+<br/>
+</div>
+</li>
+
 <li>
 
   (optional) To customize ROM configuration press: <input type="submit" name="A" value="Configure">
@@ -69,7 +89,7 @@ To create and download a gPXE ROM image:
 
 <li>
 
-  Take a look at the <a href="../../README" target="_blank">README</a> for <? echo "gpxe-$version"; ?>
+<?php print "Take a look at the <a href=\"$gpxe_source_location/README\" target=\"_blank\">README</a> for gpxe-$version"; ?>
   <br><br>
 
 </li>
diff --git a/setup.php b/setup.php
new file mode 100644 (file)
index 0000000..09b52a8
--- /dev/null
+++ b/setup.php
@@ -0,0 +1,13 @@
+<?php
+$gpxe_source_location = "/home/pravin/Etherboot/v2/gpxe";
+#$gpxe_source_location = "../../../gpxe.git";
+
+$DEBUG=true ;
+
+$gpxe_source_type = "git" ;
+$HOME_URL = "localhost/pxeknife/PHP/gpxe_generation/";
+$WEBMASTER_EMAIL = "shindepravin@gmail.com" ;
+
+/* only place where hardcoded URL  is still used is bottom.php where irc info 
+ * and mailing list info is given */
+?>
diff --git a/top.php b/top.php
index c73ec97..2c619b9 100644 (file)
--- a/top.php
+++ b/top.php
@@ -1,10 +1,13 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
 <html>
-
+<?php include 'setup.php'?>
 <head>
-  <link rev="made" href="mailto:webaster@etherboot.org">
-  <meta name="keywords" content="rom, etherboot, gpxe, open source, rom-o-matic.net">
+<?php 
+       print "<link rev=\"made\" href=\"mailto:$WEBMASTER_EMAIL\">\n" ; 
+       print "<meta name=\"keywords\" content=\"rom, etherboot, gpxe, open source,
+        $HOME_URL\">\n" ;
+  ?>
   <title><? echo $header_title ?></title>
   <meta name="description" content="<? echo $description ?>">
 </head>