[syslinux] lpxelinux hangs under Intel Boot Agent 1.3.81 (2.1 build 089) on Dell Optiplex 990 BIOS A16

Alexander Perlis aperlis at math.lsu.edu
Sat Jul 12 12:38:09 PDT 2014


On 07/12/2014 02:24 PM, Gene Cumm wrote:
> On Sat, Jul 12, 2014 at 3:15 PM, Alexander Perlis <aperlis at math.lsu.edu> wrote:
>> On 07/11/2014 09:39 PM, Gene Cumm wrote:
>>>
>>> With everything else from 6.03-pre18, try this binary (xzip-compressed):
>>> http://www.zytor.com/~genec/lpxelinux-6.03p18g3.tgz
>>
>> It works! Thanks!
>
> Oh fun.  That's the exact same workaround just now for different
> hardware.

I'm curious about the nature of the workaround. I'm guessing a bug in 
how the Dell NIC firmware handles ARP packets, and somehow you work 
around that? I did look at some packet traces with 6.03p18g3, and 
noticed some more unexpected ARP behavior (see below), which may 
indicate more things to be worked around?

This is with "stock" 6.03p18g3 (no pxelinux-options changes): After all 
the TFTP transfers are complete (at 1.3 seconds into the conversation), 
there is mostly silence, but at 5.3s, 6.3s, and 7.3s the PXE server 
makes an ARP request to the Optiplex990 client asking for the MAC (even 
though it already knows it since the ARP request isn't a broadcast but 
targeted to the client's MAC). These three requests are seemingly not 
answered by the client, and there is seemingly no further communication 
(I waited a few minutes).

If I instead use pxelinux-options to set an HTTP prefix in 6.03p18g3, 
then the initial TFTP transfer followed by all the HTTP data transfers 
are complete after 1.1 seconds, then I see some FIN/ACK closing of one 
HTTP connection at 3.5 seconds, another FIN/ACK HTTP closing at 9 
seconds, another at 20 seconds, and one more at 42 seconds, then at 
47,48,49 seconds I again see the PXE server making those three ARP 
requests targeted to the Optiplex990 client asking it for its MAC, no 
response by the client, silence for a while, then at 85 seconds the 
client sends another FIN/ACK to the server on port 80, and now at 
85,86,87 seconds the server makes a *broadcast* ARP request searching 
for the MAC of the client, and no one answers this and there follows 
only silence.

I'm guessing the earlier targeted ARP requests were to update a stale 
but not yet expired ARP entry in the server, in preparation for the 
server to say _something_ to the client, and the latter broadcast ARP 
requests are because the ARP entry is gone but the server still has 
something it wishes to say to the client.

I report this just in case you see something that concerns you and you 
wish to make more changes to your workaround. Certainly if I don't look 
at packet traces, and just wait for my vesamenu to come up, it does 
indeed come up, and I'm happy. :)

Alex


More information about the Syslinux mailing list