<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hello Ben,<div><br></div><div>I think the behavior that you're experiencing is similar to what usually baffles people the first time they try to drop gPXE into into a PXELINUX environment. &nbsp;Getting the protocols to be used when and where you want them without being extremely explicit in your scripts tends to be a bit of a configuration chore.</div><div><br></div><div>I <i>think</i>&nbsp;that what you're experiencing comes from your DHCP option 67, where I'm guessing you've specified an HTTP URI. &nbsp;Because that's a URI that starts with HTTP, gPXE will assume that any "unspecified" filenames will begin with the prefix that's sitting on your option 67 string. &nbsp;Conversely, when you perform the Ctrl-B and clear the filenames from the command line, it defaults back to TFTP behavior.</div><div><br></div><div>The only thing I can think of is to try taking your SMBIOS based CGI script and tossing the "clear filename" and/or "clear net0.dhcp/filename" directive[s] in it before the "chain pxegrub" command. &nbsp;As long as gPXE still has your boot server specified from DHCP (option 66 I think... I could have server/filename reversed in my head ;D) in the absence of HTTP being specified anywhere in the URI you present to the "chain" command, gPXE <i>should</i>&nbsp;default back to TFTP.... &nbsp;though I might be wrong there, as I've never tried it!</div><div><br></div><div>Secondly, the other thing you could do is to try specifying TFTP on your chain command like so:</div><div><br></div><div>chain <a href="TFTP://${next-server}/pxegrub">TFTP://${next-server}/pxegrub</a></div><div><br></div><div>That might work too.</div><div><br></div><div>Cheers,</div><div>Andrew Bobulsky</div><div><br></div><div><br><div><div>On Oct 31, 2010, at 6:40 AM, Ben Rockwood wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>I'm trying to augment my existing PXE deployment with gPXE to allow for<br>scripting via CGI, etc..<br><br>In the "usual" way (according to the docs) I TFTP gPXE, it autoboots and<br>grabs a URL from DHCP, then the gpxe script tells it to chainload a<br>different URL based on the SMBIOS serial (<a href="http://server/${serial}.gpxe">http://server/${serial}.gpxe</a>).<br> So up to the point of chainloading the second gpxe script everything is<br>by the book.<br><br>My problem is that from the HTTP script I want to TFTP boot. &nbsp;According<br>to the docs and video talks, any path that doesn't contain "http://"<br>should be interpreted as TFTP... but this isn't the case. &nbsp;Instead,<br>"chain pxegrub" acts as though I mistakenly left off the base URL and<br>fills it in for me. &nbsp;I've even tried "chain /pxegrub", etc, but no luck.<br><br>So here's the wierd part that confuses the hell out of me. &nbsp;If I boot to<br>gPXE, bail out to the CLI and then walk it though my steps manually it<br>works. &nbsp;That is, if I do the following I'm fine via CLI:<br><br>&lt;control-b&gt;<br>ifopen net0<br>dhcp net0<br>clear net0.dhcp/filename<br>clear filename<br>chain pxegrub<br><br>Like I said, the above proceedure done manually works just great. &nbsp;I can<br>boot my old SYSLINUX and PXEGRUB images via TFTP just as I always have.<br> But if I translate the above into gpxe scripts from HTTP it doesn't work.<br><br>I've tried all manner for clearing variables, imgfree, etc, etc, etc.<br>No matter what I do, I can't TFTP from an HTTP boot script.<br><br><br>Please oh please, can someone point me in the right direction? &nbsp;I've<br>spent hours going round and round, and I'm sure its gotta be something<br>simple I'm missing.<br><br>benr.<br>_______________________________________________<br>gPXE mailing list<br><a href="mailto:gPXE@etherboot.org">gPXE@etherboot.org</a><br>http://etherboot.org/mailman/listinfo/gpxe<br></div></blockquote></div><br></div></body></html>