[syslinux] EFI: PXE: "My IP is 0.0.0.0"

Patrick Masotta masottaus at yahoo.com
Fri Jul 3 08:05:09 PDT 2015


>>>
 Lovely, the ServiceBindings are on a handle that resembles the NIC
 while the Pxebc is IP-type specific.  Looks like we should try to do a
 ServiceBinding based on Pxebc but fall back to MAC-based searching,
 saving all 3 handles, the image handle, Pxebc handle, and ServiceBinding handle. 
 Presumably the UDP and TCP handles _should_ be the same...
 -- 
 -Gene
<<<

OK now it works.
Everything is done within efi_create_binding(EFI_GUID *bguid, EFI_GUID *pguid)
from image_DeviceHandle I get the right DevPath handle, I parse it and I get the MAC address.
Next I LibLocateHandle(ByProtocol, bguid, NULL, &nr_handles, &handles)
what gives me all the handles that include the Service Binding Protocol "bguid".
For each of this handles I get the DevPath handle and I parse it looking for the matching MAC address.
The bguid handle with the right MAC is used for binding.

So far it works in the problematic HP 2570p but also in a Vmware 10 client with double NIC.
I'll test a bit more and I'll upload the code.

Best,
Patrick


 



More information about the Syslinux mailing list