xnu-792.1.5 netboot problems
xnu-792.1.5 netboot problems
- Subject: xnu-792.1.5 netboot problems
- From: email@hidden
- Date: Fri, 10 Jun 2005 03:36:31 +0300 (EEST)
Hello everyone,
We just bought our selves a batch of the new iMac G5:s with Tiger. We
encountered some problems when we tried to netboot an iMac from a freebsd
server. The server runs a isc-dhcpd and a tftpd.
One problem was the dhcp procedure, as the iMac is some what fastidious
with regarding to the dhcp options passed by the dhcp server. Any way, we
got some help from existing docs on the web on which options to pass.
Althoug no one document worked by it self, we managed to combine a few
to create a working solution.
The real problem presented it self when we tried to pass the root-path in
the form of nfs:server:share:image in order to boot into a NetRestore
image. When we took a look at the xnu-kernel, we noticed that the
bsd/kern/netboot.c tries to grab the root-path only from the bootloader,
BSDP- and BOOTP-responses, not from the DHCP responce.
Is there any reason why netboot.c doesn't try to grab the root-path
option from the dhcp response? We got ewverything working after a small
hack into the netboot.c (patch below).
We are considering of posting a complete STEP-BY-STEP manual on how to use
a i386 bsd/linux as an alternative for a OS X server. This would surely be
appreciated by people already running a unix-based server in the network,
and wanting to integrate som macs into it.
We would appreciate any response leading to a better solution than the
patch we now have or a confirmation that what we now use is sane.
Regards,
// Robert
PS: If the patch is of any use, here it is:
diff -aur xnu-792.1.5/bsd/kern/netboot.c xnu-792.1.5.patched/bsd/kern/netboot.c
--- xnu-792.1.5/bsd/kern/netboot.c 2005-05-17 01:29:23.000000000 +0300
+++ xnu-792.1.5.patched/bsd/kern/netboot.c 2005-06-10 03:32:00.000000000 +0300
@@ -324,7 +324,14 @@
if (pkt != NULL && pkt_len >= (int)sizeof(struct dhcp)) {
printf("netboot: retrieving root path from BOOTP response\n");
}
- }
+ else {
+ pkt = IOBSDRegistryEntryGetData(entry, DHCP_RESPONSE,
+ &pkt_len);
+ if (pkt != NULL && pkt_len >= (int)sizeof(struct dhcp)) {
+ printf("netboot: retrieving root path from DHCP response\n");
+ }
+ }
+ }
if (pkt != NULL) {
int len;
dhcpol_t options;
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden