Blessing Fog server doesn't work on Macmini7,1

Server

FOG Version: 1.3

OS: RHEL 7

Client

Service Version:

OS: OS X 10.11

Description

I’m trying to set up a Mac Mini (Macmini7,1) to automatically boot from my Fog server. I used csrutil to authorize the Fog server as a netboot source, and then used bless --netboot --server bsdp://192.168.1.10 to tell the Mac to boot from that server. When I reboot, it loads iPXE, which then says “Could not open net1: input/output error”. It then very briefly displays a hex dump of some sort before booting from the hard drive.

When I hold Alt at boot to access startup options and select Fog from there, the same thing happens, except that it doesn’t boot from the hard drive. After the hex dump goes on for a bit, it successfully boots using net0 and pulls up the Fog menu.

Any idea what’s going on? I have a video of the failed autoboot I can upload if it’d help.

@Tom-Elliott I looked through the rom-o-matic for the iPXE kernels and I didn’t specifically see a tc3 or tigon3 card called out specifically. BUT, if you can use a specific iPXE kernel with only the driver for the tigon broadcom network interface, you may luck out and the wireless adapter may not be seen at all by the iPXE kernel as it would if you use one of the general purpose efi kernels.

Once you can narrow it down to a specific ipxe kernel that will only see the ethernet adapter then we have options for us to use. If you dhcp server is isc-dhcp (linux), dnsmasq (linux) or windows 2012 dhcp we can create a custom filter to only send the tc3.efi kernel name to the booting efi device when a MAC is detected. That part is a bit more complex but it is possible and we can make it all automatic, but the key is finding an iPXE efi kernel that only sees the broadcom network adapter.

@Tom-Elliott I tried both snp and snponly and neither supported a deploy operation. The Mac Mini uses Broadcom, so I tried building a tg3.efi iPXE, and that seems to be working. If other Macs don’t use a tg3.efi driver, is there a way to build multiple drivers into one EFI that’s not ipxe.efi?

@cpast So using snponly.efi wasn’t expected to work, just was hoping to see if it would try the wifi address.

If exit type isn’t working (and obviously sanboot isn’t) then I think the only option left for mac’s is to use the rEFInd exit type (though you may need to edit the config for yourself as I don’t know it’s inner workings yet.)

@Tom-Elliott Setting “EFI Exit Type” to “EXIT” (in the host settings, in global settings, and in group settings) didn’t work. Also, I noticed an issue with the snponly.efi solution: trying to deploy an image results in nothing happening after it says “bzImage loaded” and “init.xy” (it just stays on that screen).

@Wayne-Workman It was booting to ipxe.efi fine; the issue was that once ipxe.efi loaded it didn’t work right.

@Tom-Elliott snponly.efi worked on a Mini with the wifi card still in. It showed the same error message (with DUView.c and AppleBootUI.c) that net1 showed in ipxe.efi, but it tried net0 first instead of net1 and successfully loaded the menu.

Once it reached the menu, “Boot from hard drive” failed with a “chainloading failed” message. Should I use this thread for that question or start a new one?

@cpast THis shouldn’t even be possible. Why? There are 0 wireless drivers built in with the ipxe binaries that I’m providing. At the least, we don’t have the wireless capabilities even enabled though either.

On a hunch, I physically pulled the Wi-Fi card out of the Mac Mini. It no longer tries booting to net1, and ipxe.efi works (though it does pop up error messages initially). Unfortunately, pulling the Wi-Fi card from all computers isn’t necessarily a viable option. It seems, though, that it’s trying the Wi-Fi card before the Ethernet for some reason.

@Sebastian-Roth My test environment uses a normal desktop switch, so I don’t think I can do that. I did look at a tcpdump on the FOG server, and didn’t see any traffic from iPXE before it tries net1.

@Quazz My ultimate goal is centralized management of computers across a large campus, so I’d prefer something that let me reimage a lot of computers without running all around campus. If I want to do that, is it possible to do without setting netboot as the default?

@Tom-Elliott Blessing ipxe.efi directly leads to it not even loading iPXE.

@Quazz I was under the impression that FOG is supposed to be the default boot option for machines (so that they’ll complete any assigned tasks automatically on startup). Is that wrong? (although if that’s how it’s supposed to work, there’s another issue that should maybe be a separate question: the menu’s “boot from hard drive” option leads to a “chainload failed” message).

@Sebastian-Roth The weird thing is that if I launch it from the boot menu, after net1 fails it then tries net0 (which works).