Port-macppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Netbooting mac mini g4



I've finally got around to investigate how to netboot mac mini g4 as I
promised Christos (quite) a while ago.

OFW in that machine *really* wants to talk Apple's BSDP it seems.
Attached is the sekeleton dhcpd.conf that seems to make it happy.
There are still two ~15 seconds delays in the process, but that is
tolerable.

The idea is from

  http://brandon.penglase.net/index.php?title=Getting_*nix_to_Netboot_Macs

but expressed properly using dhcpd option defintions instead of bunch
of hex.

-uwe
subnet 192.168.42.0 netmask 255.255.255.0 {
  authoritative;
  range 192.168.42.200 192.168.42.250;
  next-server = config-option dhcp-server-identifier;
}

# Defintions for Apple's Boot Server Discovery Protocol (BSDP)
option space BSDP;
option BSDP.message-type	code 1 = unsigned integer 8;
option BSDP.version		code 2 = unsigned integer 16;
option BSDP.server-identifier	code 3 = ip-address;
option BSDP.server-priority	code 4 = unsigned integer 16;
option BSDP.reply-port		code 5 = unsigned integer 16;

# Implement dummy BSDP interaction to keep OFW happy
class "Apple-BSDP" {
  match if substring (option vendor-class-identifier, 0, 10) = "AAPLBSDPC/";
  vendor-option-space BSDP; 
  
  if (option dhcp-message-type = 8) {	# DHCP INFORM
    option vendor-class-identifier "AAPLBSDPC";

    parse-vendor-option;

    # reply with an empty list
    if (option BSDP.message-type = 1) { # BSDP LIST
      log(info, "BSDP_LIST");
      option BSDP.message-type 1;
      option BSDP.server-identifier = config-option dhcp-server-identifier;
      option BSDP.server-priority 32768;
    }

    # just ack SELECT
    elsif (option BSDP.message-type = 2) { # BSDP SELECT
      log(info, "BSDP_SELECT");
      option BSDP.message-type 2;
    }
  } # INFORM
}

host snips {
  hardware ethernet 00:11:24:6f:0f:e6; 
  fixed-address 192.168.42.199;
  filename "ofwboot.elf";
  option root-path "/export/root/snips";
}


Home | Main Index | Thread Index | Old Index