Implemented suggestions from meteger and stefanha
authorMarty Connor <mdc@etherboot.org>
Wed, 19 Aug 2009 16:47:03 +0000 (12:47 -0400)
committerMarty Connor <mdc@etherboot.org>
Wed, 19 Aug 2009 16:47:03 +0000 (12:47 -0400)
- Put all-drivers and gpxe at the top of the menu
- added .kpxe and .kkpxe to menu
- allowed 0xABCD syntax for PCI IDs.
- Audited and re-ordered flags.

build.php
directions.php
doc/COMCONSOLE.html
flag-table.php
index.php
utils.php

index b6d82d8..0046501 100644 (file)
--- a/build.php
+++ b/build.php
@@ -13,20 +13,20 @@ if ( $_POST['A'] == "Customize" ) {
 // The following conditional includes all other cases except "Get ROM"
 // particularly the explicit ($A == "Start Over") case
 } else if ( $_POST['A'] != "Get ROM" ) { 
-       
-       // Note that this method of redirections discards all the
-       // configuration flags, which is intentional in this case.
+    
+    // Note that this method of redirections discards all the
+    // configuration flags, which is intentional in this case.
 
     $dest = curDirURL ();
-       header ( "Location: $dest" );
+    header ( "Location: $dest" );
 
-       // This next "echo" should normally not be seen, because 
-       // the "header" statement above should cause immediate 
-       // redirection but just in case...
+    // This next "echo" should normally not be seen, because 
+    // the "header" statement above should cause immediate 
+    // redirection but just in case...
 
-       echo "Try this: <a href=\"$dest\">$dest</a>";
+    echo "Try this: <a href=\"$dest\">$dest</a>";
 
-       exit (); 
+    exit (); 
 }
 
 // OK, we're going to try to use whatever options have been set
@@ -56,16 +56,44 @@ write_gpxe_config_files ( $config_dir, $flags );
 $ofmt = isset ( $_POST['ofmt'] ) ? $_POST['ofmt'] : "";
 $fmt_extension = isset ( $ofmts[$ofmt] ) ? $ofmts[$ofmt] : 'dsk';
 
+// Handle some special cases
+
 if ( $nic == 'undionly' && $fmt_extension == "pxe" ) {
+
     $fmt_extension = "kpxe";
+
 } else if ( $fmt_extension == "rom" ) {
+
+    if ( ! isset ( $_POST['pci_vendor_code'] )
+                || ! isset ( $_POST['pci_device_code'] ) ) {
+               die ( "rom output format selected but PCI code(s) missing!" );
+       }
+
+       $pci_vendor_code = $_POST['pci_vendor_code'];
+       $pci_device_code = $_POST['pci_device_code'];
+
+    if ( $pci_vendor_code == ""
+                || $pci_device_code == "" ) {
+               die ( "rom output format selected but PCI code(s) missing!" );
+       }
+
+       // Try to be forgiving of 0xAAAA format
+       if ( strtolower ( substr ( $pci_vendor_code, 0, 2 ) ) == "0x" 
+                && strlen ( $pci_vendor_code ) == 6 ) {
+               $pci_vendor_code = substr ( $pci_vendor_code, 2, 4 );
+       }
+       if ( strtolower ( substr ( $pci_device_code, 0, 2 ) ) == "0x" 
+                && strlen ( $pci_device_code ) == 6 ) {
+               $pci_device_code = substr ( $pci_device_code, 2, 4 );
+       }
+
     // concatenate the pci codes to get the $nic part of the
     // Make target
-    $pci_codes = strtolower (  $_POST['pci_vendor_code']
-                             . $_POST['pci_device_code'] );
+    $pci_codes = strtolower (  $pci_vendor_code . $pci_device_code );
+
     $nic = $pci_codes;
     if ( ! isset ( $roms[$pci_codes] ) ) {
-        die (   "Sorry, no driver supports device <br>"
+        die (   "Sorry, no network driver supports PCI codes<br>"
               . "${_POST['pci_vendor_code']}:"
               . "${_POST['pci_device_code']}" );
     }
@@ -91,7 +119,7 @@ exec ( $make_cmd, $maketxt, $status );
 /**
 echo "<h2>build.php:</h2>";
 echo "<h3>Build options:</h3>";
-echo "<b>Build directory is:</b> $dir" . "<br><br>";
+echo "<strong>Build directory is:</strong> $dir" . "<br><br>";
 echo "\$_POST['ofmt'] = " . "\"${_POST['ofmt']}\"" . "<br>";
 echo "\$_POST['nic'] = " . "\"${_POST['nic']}\"" .  "<br>";
 echo "\$_POST['pci_vendor_code'] = " . "\"${_POST['pci_vendor_code']}\"" . "<br>";
@@ -134,7 +162,7 @@ if ( $status == 0 ) {
             deltempdir ( $dir );
 
             $output_filename = "gpxe-${version}-${nic}.${fmt_extension}";
-               //echo "${output_filename}<br>"; exit ();
+            //echo "${output_filename}<br>"; exit ();
 
             // Try to force IE to handle downloading right.
             Header ( "Cache-control: private");
@@ -160,7 +188,7 @@ deltempdir ( $dir );
 echo "<h2>Build failed.  Status = " . $status . "</h2>";
 echo "<h2>build.php:</h2>";
 echo "<h3>Build options:</h3>";
-echo "<b>Build directory is:</b> $dir" . "<br><br>";
+echo "<strong>Build directory is:</strong> $dir" . "<br><br>";
 echo "\$_POST['ofmt'] = " . "\"${_POST['ofmt']}\"" . "<br>";
 echo "\$_POST['nic'] = " . "\"${_POST['nic']}\"" .  "<br>";
 echo "\$_POST['pci_vendor_code'] = " . "\"${_POST['pci_vendor_code']}\"" . "<br>";
@@ -191,6 +219,6 @@ include_once $bottom_inc;
 //  c-basic-offset: 4
 //  c-indent-level: 4
 //  tab-width: 4
-// End:
+//  End:
 
 ?>
index 0dccf66..13f3f4e 100644 (file)
@@ -9,10 +9,10 @@
       <br><br>
     </li>
     <li>
-      (optional -- <b>for binary ROM image format only</b>) <br><br>
-      If you have chosen to create a binary ROM as your output format,<br>
-      you must enter 4 hex digits below for PCI VENDOR CODE and
-      PCI DEVICE CODE<br>
+      <strong>( optional &mdash; for binary ROM image format only )</strong> <br><br>
+      If you choose <em>Binary ROM image</em> as your output format, you must<br>
+      enter <strong>4 hex digits</strong> below for
+      <em>PCI VENDOR CODE</em> and <em>PCI DEVICE CODE</em>  <br>
       for the NIC device for which you are making the ROM image.<br><br>
       Information on how to determine NIC PCI IDs may be found
       <a href="http://etherboot.org/wiki/romburning" 
       <br><br>
       PCI VENDOR CODE:  <? echo textbox ( "pci_vendor_code",
       isset ( $_POST['pci_vendor_code'] ) ? $_POST['pci_vendor_code'] 
-              : "", 5 ); ?> 
+              : "", 6 ); ?> 
       &nbsp;&nbsp;
       PCI DEVICE CODE:  <? echo textbox ( "pci_device_code",
       isset ( $_POST['pci_device_code'] ) ? $_POST['pci_device_code']
-              : "", 5 ); ?> 
+              : "", 6 ); ?> 
       <h4>Please note for ROM images:</h4>
       <ul>
         <li>
index 684603c..e7036c0 100644 (file)
@@ -1 +1,3 @@
-Serial Console I/O port address
\ No newline at end of file
+Serial Console I/O port address.  Common addresses are:<br>
+COM1 =>        0x3f8, COM2 => 0x2f8, COM3 => 0x3e8, COM4 => 0x2e8
+
index 93991c4..b8f15b9 100644 (file)
@@ -1,14 +1,16 @@
 <?php // -*- Mode: PHP; -*-
 
 $ofmts = array  
-    ( "Floppy bootable Image (.dsk)" => "dsk",
-      "SYSLINUX floppy Image (.sdsk)" => "sdsk",
+    ( "Floppy bootable image (.dsk)" => "dsk",
+      "SYSLINUX-based bootable floppy image (.sdsk)" => "sdsk",
       "ISO bootable image (.iso)" => "iso",
       "ISO bootable image with legacy floppy emulation (.liso)" => "liso",
-      "LILO/GRUB/SYSLINUX loadable Linux kernel format (.lkrn)" => "lkrn",
-      "PXE bootstrap loader format Image (.pxe)" => "pxe",
-      "USB Keychain Disk Image (.usb)" => "usb",
-      "Binary ROM Image (.rom)" => "rom",
+      "Linux kernel (SYSLINUX/GRUB/LILO) loadable image (.lkrn)" => "lkrn",
+      "USB Keychain disk image (.usb)" => "usb",
+      "Binary (flashable) ROM Image (.rom)" => "rom",
+      "PXE bootstrap loader image [Unload PXE stack] (.pxe)" => "pxe",
+      "PXE bootstrap loader keep [Keep PXE stack method 1] (.kpxe)" => "kpxe",
+      "PXE bootstrap loader keep [Keep PXE stack method 2] (.kkpxe)" => "kkpxe",
     );
 
 $flag_table = array (
@@ -128,7 +130,7 @@ $flag_table = array (
        => array (
           "flag" => "COMSPEED",
           "type" => "integer",
-          "value" => "9600",
+          "value" => "115200",
           "cfgsec" => "serial"
           ),
        
@@ -183,6 +185,14 @@ $flag_table = array (
           "cfgsec" => "general"
           ),
        
+       "DOWNLOAD_PROTO_HTTPS"
+       => array (
+          "flag" => "DOWNLOAD_PROTO_HTTPS",
+          "type" => "on/off",
+          "value" => "off",
+          "cfgsec" => "general"
+          ),
+       
        "DOWNLOAD_PROTO_FTP"
        => array (
           "flag" => "DOWNLOAD_PROTO_FTP",
@@ -193,6 +203,33 @@ $flag_table = array (
        
        // End Download Protocols
        
+       // Begin SAN boot protocols
+
+       "HDR_SANBOOT_PROTOCOLS"
+       => array ( 
+          "flag" => "HDR_SANBOOT_PROTOCOLS",
+          "type" => "header",
+          "label" => "SAN Boot Protocols"
+               ),
+       
+       "SANBOOT_PROTO_ISCSI"
+       => array (
+          "flag" => "SANBOOT_PROTO_ISCSI",
+          "type" => "on/off",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
+       "SANBOOT_PROTO_AOE"
+       => array (
+          "flag" => "SANBOOT_PROTO_AOE",
+          "type" => "on/off",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
+       // End SAN boot protocols
+
        // Begin Name resolution modules
        
        "HDR_NAME_RESOLUTION_MODULES"
@@ -210,6 +247,15 @@ $flag_table = array (
           "cfgsec" => "general"
                ),
        
+       "NMB_RESOLVER"
+       => array ( 
+          "flag" => "NMB_RESOLVER",
+          "type" => "on/off",
+          "value" => "off",
+          "hide_from_user" => "yes",
+          "cfgsec" => "general"
+               ),
+       
        // End Name resolution modules
        
        // Begin Image types
@@ -269,6 +315,14 @@ $flag_table = array (
           "cfgsec" => "general"
           ),
        
+       "IMAGE_COMBOOT"
+       => array (
+          "flag" => "IMAGE_COMBOOT",
+          "type" => "on/off",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        // End Image types
        
        // Begin Command-line commands to include
@@ -280,14 +334,6 @@ $flag_table = array (
           "label" => "Command Line Options",
           ),
        
-       "IMAGE_CMD"
-       => array (
-          "flag" => "IMAGE_CMD",
-          "type" => "on/off",
-          "value" => "on",
-          "cfgsec" => "general"
-          ),
-       
        "AUTOBOOT_CMD"
        => array (
           "flag" => "AUTOBOOT_CMD",
@@ -328,6 +374,14 @@ $flag_table = array (
           "cfgsec" => "general"
           ),
        
+       "IMAGE_CMD"
+       => array (
+          "flag" => "IMAGE_CMD",
+          "type" => "on/off",
+          "value" => "on",
+          "cfgsec" => "general"
+          ),
+       
        "DHCP_CMD"
        => array ( 
           "flag" => "DHCP_CMD",
@@ -344,6 +398,30 @@ $flag_table = array (
           "cfgsec" => "general"
                ),
        
+       "LOGIN_CMD"
+       => array ( 
+          "flag" => "LOGIN_CMD",
+          "type" => "on/off",
+          "value" => "on",
+          "cfgsec" => "general"
+               ),
+       
+       "TIME_CMD"
+       => array ( 
+          "flag" => "TIME_CMD",
+          "type" => "on/off",
+          "value" => "off",
+          "cfgsec" => "general"
+               ),
+       
+       "DIGEST_CMD"
+       => array ( 
+          "flag" => "DIGEST_CMD",
+          "type" => "on/off",
+          "value" => "off",
+          "cfgsec" => "general"
+               ),
+       
        // End Command-line commands to include
        
 );
index f1aa89c..ccccdaf 100644 (file)
--- a/index.php
+++ b/index.php
@@ -12,13 +12,13 @@ include_once $top_inc;
   <ol>
     <? require ( "directions.php" ); ?>
     <li>
-      (optional) To customize image configuration
-      <input type="submit" name="A" value="Customize">
+      To generate and download an image
+      <input type="submit" name="A" value="Get ROM">
       <br><br>
     </li>
     <li>
-      To generate and download an image
-      <input type="submit" name="A" value="Get ROM">
+      (optional) To customize image configuration
+      <input type="submit" name="A" value="Customize">
       <br><br>
     </li>
   </ol>
index 947ab91..da338d9 100644 (file)
--- a/utils.php
+++ b/utils.php
@@ -119,14 +119,22 @@ function parse_nic_file ()
     }
     fclose ( $fd );
 
-    // add special cases
-    $nics["undi"] = "undionly";
-    $nics["gpxe-all-drivers"] = "gpxe";
-
-    // put NICs in nice alpha order for menu
+    // put most NICs in nice alpha order for menu
     ksort ( $nics );
 
-    return ( array ( $nics, $roms ) );
+    // add special cases to the top
+
+       $new_nics = array ( "all-drivers" => "gpxe",
+                                               "undi" => "undionly" );
+
+       foreach ( $nics as $key => $value ) {
+               // skip the undi driver
+               if ( $key != "undi" ) {
+                       $new_nics[$key] = $value;
+               }
+       }
+
+       return ( array ( $new_nics, $roms ) );
 }
 
 ////
@@ -289,11 +297,11 @@ function echo_flags ( $flags )
 
             } else if ($type == "on/off" ) {
 
-                echo "<td>", checkbox ( $flag, $value ), "</td><td><b>$flag</b></td>";
+                echo "<td>", checkbox ( $flag, $value ), "</td><td><strong>$flag</strong></td>";
 
             } else {   // don't display checkbox for non-on/off flags
 
-                echo "<td>&nbsp;</td><td><b>$flag: </b>";
+                echo "<td>&nbsp;</td><td><strong>$flag: </strong>";
 
                 if ($type == "choice" ) {
                     $options = $props["options"];
@@ -301,17 +309,19 @@ function echo_flags ( $flags )
 
                 } else {
 
-                    echo textbox($flag, $value, ($type == "integer" ? 5 : 25));
+                    echo textbox($flag, $value, ($type == "integer" ? 7 : 25));
                 }
                 echo "</td>";
             }
             echo "</tr>\n";
 
             if ( $type != "header" ) {
-                echo "<tr><td>&nbsp;</td>";
-                echo "<td>\n";
-                include_once "doc/$flag.html";
-                echo "\n</td></tr>\n";
+                               echo "<tr><td>&nbsp;</td>";
+                               echo "<td>\n";
+                               if ( is_file ( "doc/$flag.html" ) ) { 
+                                       include_once "doc/$flag.html";
+                               }
+                               echo "\n</td></tr>\n";
             }
         }
     }
@@ -343,7 +353,7 @@ function mktempcopy ( $src, $dst )
     }
 
     $dir = tempnam ( $dst, "MDCROM" );
-    unlink( $dir );
+    unlink ( $dir );
 
     exec ( "/bin/cp -a '$src' '$dir' 2>&1", $cpytxt, $status );  
     if ( $status != 0 ) {