iPXE discussion forum

Full Version: HP 2570p (no network with iPXE undionly.kpxe) but ipxe.lkrn is working.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi!

I am testing iPXE on a "lab" network, with this config in my dhcpd.conf:

Code:
if exists user-class and option user-class = "iPXE" {
     filename "http://my.web.server/real_boot_script.php";
} else {
      filename "undionly.kpxe";
}

I've tried with undionly.kpxe/kkpxe/kkkpxe, no difference.
But with the ipxe.lkrn network is working as it should...

Both are based on the same source. iPXE 1.0.0+ (09cc).

Any ideas?

Torgeir
And if you build ipxe.pxe and replace it with undionly.kpxe in the config above, what do you get?
Good as gold Smile

Thank you very much. Testing back and fourth, on different versions/machines/vm and so on.

It is looking very good atm.

Torgeir
The reason ipxe.pxe works, but undionly.kpxe fails is because ipxe.pxe is using native iPXE drivers, while undionly tries to reuse the drivers available in your network card PXE stack. Sometimes this interaction causes unforseen bugs. In these cases you might also find luck by upgrading the ROM of your network card (or your BIOS if it is onboard).
Good to know Smile
Again thanks.
With ipxe.pxe the 2570p worked. But the z400 stopped working.
z400 works with undionly.kpxe, but not the 2570p...

As of now my main problems is between the HP z400 and the 2570p.

Any ideas?

In testing now I dont use pxelinux first, I test straight from DHCP (in case pxelinux have some bugs).

This is the base config:
Code:
if exists user-class and option user-class = "iPXE" {
      filename "http://my.web.server/real_boot_script.php";
} else {
       filename "undionly.kpxe";
}

I belive I have tried most of the ipxe.* and undionly.* (ipxe.kpxe did not work better with these two machines).

Is there a possibility that there is a bug, with ipxe.pxe and HP z400. And with undionly.kpxe and HP 2570p?

Torgeir
Some info on the network controllers in these two computers.

lspci -nn (on the hp 2570p)
Code:
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)

lspci -nn (on the hp z400)
Code:
01:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5764M Gigabit Ethernet PCIe [14e4:1684] (rev 10)

We have an extra broadcom we use on the z400 (with old Symantec LSD Windows XP installations) BCM5751KFBG, that card works great with both ipxe.* and undionly.*

Torgeir
Update.

Configuration (lab-network):
* Linux dhcp3, tftp-hpa
* Windows Server 2008 dhcp server, pointing to linux tftp

Now with ipxe.pxe (09cc) both z400 and 2570p started working. It did not work earlier today, but after switching between linux/windows dhcp it suddenly started working (I have not made any other changes to this configuration).

On our production network:
* Windows Server 2008 dhcp server, pointing to a windows 2003 server with some tftp32 (maybe it was integrated with older windows server. I could not find it with Server 2008).

The same files as above, 2570p is booting fine. But z400 does not get network. How can that be? What am I missing/overlooking?
I would suggest you try a network trace (http://ipxe.org/howto/pcap) and see if you get additional data on the production network that is making iPXE confused. Some of the vendor PXE stacks are not very good at dealing with uncommon network configurations.

I suggest that you register on the mailing-list and discuss this inconsistency with the developers. I have the same Intel card on my desktop computer, and have had no issues with that one.

I have a tg3-based Broadcom card on my laptop, and that one has had some issues in the past, but it's now working without problems. You might've encountered a bug in this driver. If your Broadcom card uses the bnx2 driver then it is known to be not very stable. We've had a GSoC project to rewrite that driver. You can read more about it on http://ipxe.org/gsoc/bnx2 and git clone the repo and see if it works better for you on that particular hardware.

Don't forget to include the lspci -nn info if you post to the mailing-list.
Quote:I have a tg3-based Broadcom card on my laptop, and that one has had some issues in the past, but it's now working without problems. You might've encountered a bug in this driver. If your Broadcom card uses the bnx2 driver then it is known to be not very stable. We've had a GSoC project to rewrite that driver. You can read more about it on http://ipxe.org/gsoc/bnx2 and git clone the repo and see if it works better for you on that particular hardware.

FYI.
This repo did not work any better.
(2012-09-28 14:42)robinsmidsrod Wrote: [ -> ]The reason ipxe.pxe works, but undionly.kpxe fails is because ipxe.pxe is using native iPXE drivers, while undionly tries to reuse the drivers available in your network card PXE stack. Sometimes this interaction causes unforseen bugs. In these cases you might also find luck by upgrading the ROM of your network card (or your BIOS if it is onboard).

Hi,

I am seeing the same problem, but in my case I am booting with ipxe.iso and not via DHCP / PXE.
Can you please tell if this solution (replacing undionly with ipxe.pxe) is also relevant when using ISO file ?

Thanks
@shayco: No, you can't use the UNDI driver when booting from CD or USB, because it is dependent on the vendor-provided PXE bootloader having already been started. When you boot from CD or USB that never happens.

If you use ipxe.iso/ipxe.usb you're using iPXE-provided drivers for your hardware. If there is a driver for your hardware it "Should Work". If you already have the iPXE source code available, you can run src/util/niclist.pl to get a list of all supported network adapters. USB-based adapters are not supported because we don't have a generic USB driver stack.
I am having the same problem booting ipxe with an HP 8470p using the 82579LM NIC. All versions I have tried I get "Connection timed out" when getting dhcp. My question is, where can I download ipxe.pxe? I can find undionly.kpxe but no information on ipxe.pxe.

Any help would be appreciated.

Thanks
@bzeto: You can compile ipxe.pxe like any other iPXE binary, like this:

Code:
make bin/ipxe.pxe

Follow the "compile from source" directions on http://ipxe.org/download and use this line instead of just "make".
Dont know if this made it to the main branch: But Richard Moore sent me an email, and the patch worked for me Smile

(bzeto has gotten an email regarding this too)

Quote:Hi,

I made a little override patch (attached) to fix the PXE booting on the new HP laptop hardware (XX70x's) which seems to have solved the problem in our environment.

I thought I would post it as other people had had problems and no better solution has been forthcoming.

(Have cc'd to everyone who seemed to have had some dealings with it in the past)
Hope this helps someone.

Regards
Rich

http://pastebin.com/rv3z0crs

Torgeir
Torgeir: yeah, the reason that patch is not included in the mainline is because it is a hack that uses a hard-coded identifier to make an exception, something which is generally frowned upon to solve a problem that is supposed to be generically solved. But I believe the problem is actually in the firmware and need to be fixed by the vendor for iPXE to work. I seem to recall it is about the hardware telling outside code that it uses interrupts for communication, but doesn't actually generate any interrupts at all.
Reference URL's