[ipxe-devel] Booting a Mac into WDS with ipxe.usb

Robin Smidsrød robin at smidsrod.no
Thu Jun 20 15:29:27 UTC 2013

On 19.06.2013 23:23, Yadin Flammer wrote:
>> Can you give us a screenshot/picture of what's going on? My guess is you
>> might be dealing with a driver strangeness, especially if you're using
>> the existing bnx2 (Broadcom) driver. I'd recommend you try to build with
>> DEBUG=bnx2,tg3 to see if you get any more info out of it. Also, when you
>> boot up iPXE, what value do you have for "chip" when using the "config"
>> command?
> Again, not understanding all the inner workings of this, I need
> something more to work with here.
> Are you saying I should delete the ipxe directory, git clone again, and
> then "make DEBUG=bnx2,tg3" then dd the ipxe.usb built from that?

Yes, or to be more precise: cd src; make bin/ipxe.usb DEBUG=bnx2,tg3

> I found the ipxe command line and pulled the config on 3 of the systems
> I'm working with most.  Their chip values are:

> Dell: 82566dm-2 (Intel gig ethernet?)

Intel driver indeed.

> MacBook Pro: ar5416  (Atheros?  I think it's listing the wireless
> instead of the ethernet since it seems to go through these in the
> "wrong" order?  Not sure how to pull "chip2" as it were...)

That seems to be a wifi adapter, so you'll need to look at the top of
the config output for net0 and net1. If you only have one adapter, and
that is the ar5416 then the ethernet adapter is indeed not supported.

> Mac Mini: 14e4-16b4  (broadcom?)

Broadcom indeed. That is the tg3 driver. src/util/niclist.pl --format
csv | grep -i 16b4 gave me that answer.

> Short of getting a camera and uploading a photo documentary somewhere of
> what I'm doing, I'm not sure what you're asking for here (I can do that
> if need be, just take a bit).

Actually, sometimes a photo of the screen is the best way to get the
details you need when other solutions are too hard. Just make sure the
text is readable.

>  I thought I had in my "talking" given a
> lot of details about what I'm doing and working with, sorry if it's not
> what you're looking for, it was all I knew to say.  With such a low
> level thing, and no readable file system, how are there any logs that I
> could send and where are they?

Since we're doing netboot, there are no local logs. You can log things
either by using a serial console or syslog. Both of these are mentioned
how to setup here: http://ipxe.org/console

> I have a WDS server set up with multiple boot images and restore images
> working as desired when PXE booting Dell systems to deploy a system
> image to them.

That's a common thing to do.

> I'd like to be able to do this same thing but on our dual boot Mac
> systems.  Because EFI on a Mac has no PXE layer, I can't boot from the
> WDS server natively.

If your Mac is booted in UEFI mode it will not work with anything that
is BIOS-based. Period. The important thing is to figure out if your Mac
is booting in BIOS or UEFI mode when it uses the different boot mediums
like CD or USB. As I mentioned before, I believe some Macs use BIOS for
CD and UEFI for USB. I'm not sure if there is an easy way to figure out
which mode is used with which media, but maybe someone else can chime in
and say so.

>  Google led me to gPXE, which works perfectly from
> CD.  So far so good.

Which seems to indicate CD boot mode is legacy BIOS, not UEFI.

> To be more convenient, I wanted to use gPXE from a USB key rather than
> have people deal with CDs both in bulk and speed.  Also, some Mac
> systems like the Air have no built in Cd drive.  This is where it all
> stopped.
> gPXE doesn't work from USB as it does from CD.

Which seems to indicate USB boot is UEFI-based.

> I have been told to stop trying to deal with gPXE because it's dead and
> I should use iPXE.

Indeed. Using software which is not maintained is not fun.

> iPXE does not work end to end at all on any system (3 different Mac, 2
> different Dell, all of which gPXE from CD works fine) from any boot
> media (CD or USB).  As mentioned, it fails to actually initiate the boot
> image once selected from WDS.

Then you'll need to stop earlier than WDS. When you're booting, can you
get to the iPXE shell and issue commands? If so, use the dhcp command,
wait some seconds and use ifstat. Give us the output or a picture of
that result and we can see what might be wrong. Please do this with a
DEBUG-enabled build.

> If there is a better way, or some other critical easy to miss info like
> issuing an eject command that would make iPXE work, I'm all ears.  Not
> being any more familiar with iPXE than what is at
> http://ipxe.org/download (and not even fully grasping all that), and not
> being a coder or low level unix guru, exact command walk-throughs would
> be helpful  :)

You might find some assistance in the documentation at
http://networkboot.org/ for beginners. The BIOS boot workflow is useful
to understand from a netboot perspective.

>  I wondered if there was something with that EFI note at
> the end I should be concerned about, but there is no supporting
> information to explain what that's all about.

UEFI is a tricky new standard, and there is a lot of confusion for the
non-hardcore users out there. I'm one of them. There was some Linux
Journal articles (e-magazine, not online) last year about how to get
Linux booting on UEFI. I found those quite useful in understanding more
about it. You might also be able to understand how iPXE would want to
deal with it in http://ipxe.org/efi/vision (that is, once we get decent

Hope this clears up some things.

-- Robin

More information about the ipxe-devel mailing list