Date: Mon, 11 Jun 2018 04:33:20 +0300 From: Valery Ushakov To: port-macppc@NetBSD.org Cc: Christos Zoulas Subject: Netbooting mac mini g4 [-- Attachment #1 --] [-- Type: text/plain, Encoding: 7bit, Size: 0.5K --] 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 [-- Attachment #2: dhcpd.conf --] [-- Type: text/plain, Encoding: 7bit, Size: 1.4K --] 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"; }