Thanks, Michael.
The patch works! I don't know how to express my gratitude to you!
After applying your patch, I can see the consistent result with ipxe and
gpxe.
In gpxe, the screen hanged at "Registerd as BIOS drive 0x80/Booting from
BIOS drive 0x80".
In ipxe, I got more detail fail reason. The screen hanged at "Couldn't open
driver multi(0)disk(0)rdisk(0)partition(1)".
By comparing wireshark trace, both of them seemed to fail to read LUN0
(LBA:0x007ff5f7, Len: 8).
I think it should be the similiar issue like "booting windows xp from USB
device". Do you have any idea or suggestion about this issue?
Thanks again for your great help!
Regards,
Jerry
----- Original Message -----
From: "Michael Brown" <[email protected]>
To: "jerrycheng-hinet" <[email protected]>; <[email protected]>
Sent: Friday, March 04, 2011 1:07 AM
Subject: Re: [ipxe-devel] SAN Boot Windows XP with USB-NIC.
On Thursday 03 Mar 2011 16:56:37 jerrycheng-hinet wrote:
> a) try running the "dhcp" command at the command line and, after it
> fails
> with
> the same "Connection timed out" error message, run the "ifstat" command
> (http://ipxe.org/cmd/ifstat)
Still got connection timeout message. Then run the "ifstat" command, it
showed:
net0: 00:50:fc:8e:c7:8d on UNDI (closed)
[Link:up, TX:4 TXE:0 RX:0 RXE:0]
That confirms that iPXE is seeing no received packets.
> b) try setting a static IP address as described on the error page
> (http://ipxe.org/4c106035), and see if you can ping it from the DHCP
> server.
Fail to ping the static IP address. Got "Destination Host Unreachable"
message.
That is consistent with not seeing any received packets in iPXE.
It's weird that by using the same USB-NIC, and almost identical DHCP
configuration, DHCP function seems to be ok in gpxe.
If you have a known-working version tag (e.g. v1.0.0, which is common with
gPXE), then you could use git bisection (http://ipxe.org/howto/bisect) to
track down the commit that causes the problem.
The only change I can think of that might be relevant to the UNDI driver
is
http://git.ipxe.org/ipxe.git/commitdiff/006d9f1
It's possible that your card is erroneously reporting that it doesn't
support
interrupts, when in fact it requires the interrupt-triggered call to
PXENV_UNDI_ISR_IN_START in order to make packet reception work. You could
try
overriding the interrupts-supported detection logic using the attached
patch.
Michael
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo/ipxe-devel