Alexander Perlis
2016-Jun-14 20:44 UTC
[syslinux] Getting HTTP path-prefix to work with syslinux.efi
>> Doesn't work. Apparently the Dell UEFI PXE firmware doesn't know HTTP. > > There's a lot of variation. Do you have a shell option > in your boot selections?None of Dell OptiPlex 990 (firmware A19), 9010 (firmware A22), nor 9020 (firmware A16) seem have a built-in EFI shell option, but in all three cases I had success running the external EFI shell from github.com/tianocore/edk2/tree/master/EdkShellBinPkg (naming it /efi/boot/bootx64.efi on a FAT USB stick).> I'm guessing a lack of TCPv4Sb (an alias for the > EFI_TCP4_SERVICE_BINDING_PROTOCOL ).You're onto something. All three systems do report TCPv4Sb identically in their "guid" output, TCPv4Sb : 00720665-67EB-4A99-BAF7-D3C33A1C7CC9 yet in the "dh -p Net" output, only the OptiPlex 9020 lists TCPv4Sb. That is also the only one of the three systems for which syslinux.efi is indeed able to load HTTP URLs. What does it mean for TCPv4Sb to be listed under "guid" yet not under "dh -p Net"? Curiously, on the OptiPlex 990, the "dh -p Net" output is bizarrely essentially empty: Dell OptiPlex 990 A19 (EFI 2.0 Revision 4.632 American Megatrends): Shell> dh -p Net Handle dump by protocol 'Net' Dell OptiPlex 9010 A22 (EFI 2.31 Revision 4.653 American Megatrends): Shell> dh -p Net Handle dump by protocol 'Net' 326: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess 341: DevPath (..HCP,0.0.0.0,0.0.0.0,0.0.0.0))Load Net Pxebc 349: DevPath (..00:0000:0000:0000:0000:0000))Load Net Pxebc Dell OptiPlex 9020 A16 (EFI 2.31 Revision 4.653 American Megatrends): Shell> dh -p Net Handle dump by protocol 'Net' 335: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb TCPv4Sb IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess 344: DevPath (..00:0000:0000:0000:0000:0000))Load Net Pxebc 359: DevPath (..HCP,0.0.0.0,0.0.0.0,0.0.0.0))Load Net Pxebc Thanks, Alex
Gene Cumm
2016-Jun-15 13:48 UTC
[syslinux] Getting HTTP path-prefix to work with syslinux.efi
On Tue, Jun 14, 2016 at 4:44 PM, Alexander Perlis <aperlis at math.lsu.edu> wrote:>>> Doesn't work. Apparently the Dell UEFI PXE firmware doesn't know HTTP. >> >> >> There's a lot of variation. Do you have a shell option >> in your boot selections? > > > None of Dell OptiPlex 990 (firmware A19), 9010 (firmware A22), nor 9020 > (firmware A16) seem have a built-in EFI shell option, but in all three cases > I had success running the external EFI shell from > github.com/tianocore/edk2/tree/master/EdkShellBinPkg (naming it > /efi/boot/bootx64.efi on a FAT USB stick).Examining a 9020 I have access to, I'm guessing that depends on what's on the HDD.>> I'm guessing a lack of TCPv4Sb (an alias for the >> EFI_TCP4_SERVICE_BINDING_PROTOCOL ). > > > You're onto something. All three systems do report TCPv4Sb identically in > their "guid" output, > > TCPv4Sb : 00720665-67EB-4A99-BAF7-D3C33A1C7CC9 > > yet in the "dh -p Net" output, only the OptiPlex 9020 lists TCPv4Sb. That is > also the only one of the three systems for which syslinux.efi is indeed able > to load HTTP URLs. > > What does it mean for TCPv4Sb to be listed under "guid" yet not under "dh -p > Net"? Curiously, on the OptiPlex 990, the "dh -p Net" output is bizarrely > essentially empty:It means it understands what alias to assign for the GUID but might not have a binding for it or placed it elsewhere. The following would find the binding if it existed elsewhere. dh -p TCPv4Sb> Dell OptiPlex 990 A19 (EFI 2.0 Revision 4.632 American Megatrends): > > Shell> dh -p Net > Handle dump by protocol 'Net' > > > > Dell OptiPlex 9010 A22 (EFI 2.31 Revision 4.653 American Megatrends): > > Shell> dh -p Net > Handle dump by protocol 'Net' > > 326: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb > IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess > > 341: DevPath (..HCP,0.0.0.0,0.0.0.0,0.0.0.0))Load Net Pxebc > > 349: DevPath (..00:0000:0000:0000:0000:0000))Load Net Pxebc > > > > Dell OptiPlex 9020 A16 (EFI 2.31 Revision 4.653 American Megatrends): > > Shell> dh -p Net > Handle dump by protocol 'Net' > > 335: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb > TCPv4Sb IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess > > 344: DevPath (..00:0000:0000:0000:0000:0000))Load Net Pxebc > > 359: DevPath (..HCP,0.0.0.0,0.0.0.0,0.0.0.0))Load Net PxebcThanks for the results. The observed behavior is inline with my expectations for this output. -- -Gene
Alexander Perlis
2016-Jun-15 14:21 UTC
[syslinux] Getting HTTP path-prefix to work with syslinux.efi
>> None of Dell OptiPlex 990 (firmware A19), 9010 (firmware A22),>> nor 9020 (firmware A16) seem have a built-in EFI shell option, >> but in all three cases I had success running the external EFI >> shell from github.com/tianocore/edk2/tree/master/EdkShellBinPkg >> (naming it /efi/boot/bootx64.efi on a FAT USB stick). > > Examining a 9020 I have access to, I'm guessing that depends on what's > on the HDD. Ah yes, I suppose my original HDD contents (long gone) might have had a shell EFI on it. >> What does it mean for TCPv4Sb to be listed under "guid" yet not >> under "dh -p Net"? Curiously, on the OptiPlex 990, the "dh -p Net" >> output is bizarrely essentially empty: > > It means it understands what alias to assign for the GUID but might > not have a binding for it or placed it elsewhere. The following would > find the binding if it existed elsewhere. > > dh -p TCPv4Sb Unfortunately for me the binding doesn't exist elsewhere. Output below. Dell OptiPlex 990 A19 (EFI 2.0 Revision 4.632 American Megatrends): Shell> dh -p Net Handle dump by protocol 'Net' Shell> dh -p TCPv4Sb Handle dump by protocol 'TCPv4Sb' Dell OptiPlex 9010 A22 (EFI 2.31 Revision 4.653 American Megatrends): Shell> dh -p Net Handle dump by protocol 'Net' 326: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess Shell> dh -p TCPv4Sb Handle dump by protocol 'TCPv4Sb' Dell OptiPlex 9020 A16 (EFI 2.31 Revision 4.653 American Megatrends): Shell> dh -p Net Handle dump by protocol 'Net' 335: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb TCPv4Sb IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess Shell> dh -p TCPv4Sb Handle dump by protocol 'TCPv4Sb' 32F: DevPath (..9,0x0)/MAC(xxxxxxxxxxxx,0x0))Net MNPSb ARPSb DHCPv4Sb TCPv4Sb IPv4Sb IPv4Config UDPv4Sb MTFTPv4Sb HiiConfAccess > The observed behavior is inline with my > expectations for this output. I appreciate having now learned about EFI shells and how to dig deeper to an explanation of the behavior. Alas, it looks like I'll have to keep my 990 and 9010 in BIOS mode, and start using EFI with the 9020 and newer, at least until I have a chance to try something like the ipxe snponly that you suggested. My actual motivation pursuing EFI is to ultimately get newer Macs to EFI pxe boot to our pxe server menu (which we use for media installation), since for Macs we don't have the BIOS alternative. I just wanted to first tackle our Dell EFI systems before chewing on the Mac EFI. Thanks, Alex