Problem:
Attempting to use grub as a network boot loader installed in the MBR of a local
disk yielded endless messages of the form:
ALERT: got a fragmented packet - reconfigure your server
Hardware & OS:
Server: Debian/GNU Linux 3.0 distribution
Node/client: Dual Athlon mainboard (Tyan Tiger MPX with 3c905C onboard)
Diagnosis:
It appears that the bootp is sending too large a packet for the MTU size of
1500. And, I think, that the driver can not handle fragments (?)
Fix:
I changed the dhcp discocver and request sizes in netboot/main.c and now
everything is working fine. The sizes were based on an older version of
grub. This will no doubt break some other fix that motivated an increased
request size. But I am not aware the issues there. I notice that this will
fix problems that other users have posted to the grub newsgroup that I found
in the archive.
Patch:
This documents the changes I made to main.c.
--- main.c Tue May 7 11:36:22 2002
+++ main.c.orig Tue May 7 11:35:34 2002
@@ -80,7 +80,8 @@
static const unsigned char dhcpdiscover[] =
{
RFC2132_MSG_TYPE, 1, DHCPDISCOVER,
- RFC2132_MAX_SIZE, 2, 2, 64,
+ RFC2132_MAX_SIZE,2, /* request as much as we can */
+ ETH_MAX_MTU / 256, ETH_MAX_MTU % 256,
RFC2132_PARAM_LIST, 4, RFC1533_NETMASK, RFC1533_GATEWAY,
RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH
};
@@ -90,7 +91,8 @@
RFC2132_MSG_TYPE, 1, DHCPREQUEST,
RFC2132_SRV_ID, 4, 0, 0, 0, 0,
RFC2132_REQ_ADDR, 4, 0, 0, 0, 0,
- RFC2132_MAX_SIZE, 2, 2, 64,
+ RFC2132_MAX_SIZE, 2, /* request as much as we can */
+ ETH_MAX_MTU / 256, ETH_MAX_MTU % 256,
/* request parameters */
RFC2132_PARAM_LIST,
/* 4 standard + 2 vendortags */
--
Martin Weinberg Phone: (413) 545-3821
Dept. of Astronomy FAX: (413) 545-2117/0648
530 Graduate Research Tower [EMAIL PROTECTED]
University of Massachusetts http://www.astro.umass.edu/~weinberg/
Amherst, MA 01003-4525
_______________________________________________
Bug-grub mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-grub