diff -u -r linux/fs/Config.in linux-nfsroot/fs/Config.in
--- linux/fs/Config.in	Tue Jul  3 05:03:04 2001
+++ linux-nfsroot/fs/Config.in	Sat Sep 15 13:06:29 2001
@@ -80,7 +80,7 @@
    dep_tristate 'Coda file system support (advanced network fs)' CONFIG_CODA_FS $CONFIG_INET
    dep_tristate 'NFS file system support' CONFIG_NFS_FS $CONFIG_INET
    dep_mbool '  Provide NFSv3 client support' CONFIG_NFS_V3 $CONFIG_NFS_FS
-   dep_bool '  Root file system on NFS' CONFIG_ROOT_NFS $CONFIG_NFS_FS $CONFIG_IP_PNP
+   dep_bool '  Root file system on NFS' CONFIG_ROOT_NFS $CONFIG_NFS_FS
 
    dep_tristate 'NFS server support' CONFIG_NFSD $CONFIG_INET
    dep_mbool '  Provide NFSv3 server support' CONFIG_NFSD_V3 $CONFIG_NFSD
diff -u -r linux/fs/nfs/nfsroot.c linux-nfsroot/fs/nfs/nfsroot.c
--- linux/fs/nfs/nfsroot.c	Fri Aug 17 00:55:52 2001
+++ linux-nfsroot/fs/nfs/nfsroot.c	Sat Sep 15 13:06:29 2001
@@ -82,6 +82,7 @@
 #include <linux/major.h>
 #include <linux/utsname.h>
 #include <net/ipconfig.h>
+#include <linux/module.h>
 
 /* Define this to allow debugging output */
 #undef NFSROOT_DEBUG
@@ -104,6 +105,8 @@
 static int nfs_port __initdata = 0;		/* Port to connect to for NFS */
 static int mount_port __initdata = 0;		/* Mount daemon port number */
 
+u32 root_server_addr __initdata  = INADDR_NONE;     /* Address of NFS server */
+u8 root_server_path[256] __initdata = { 0, } ;      /* Path to mount as root */
 
 /***************************************************************************
 
@@ -464,3 +467,5 @@
 	set_sockaddr((struct sockaddr_in *) &nfs_data.addr, servaddr, nfs_port);
 	return (void*)&nfs_data;
 }
+EXPORT_SYMBOL(root_server_addr);
+EXPORT_SYMBOL(root_server_path);
diff -u -r linux/include/net/ipconfig.h linux-nfsroot/include/net/ipconfig.h
--- linux/include/net/ipconfig.h	Wed May  2 11:59:24 2001
+++ linux-nfsroot/include/net/ipconfig.h	Sat Sep 15 13:06:29 2001
@@ -21,7 +21,7 @@
 extern u32 ic_servaddr;		/* Boot server IP address */
 
 extern u32 root_server_addr;	/* Address of NFS server */
-extern u8 root_server_path[];	/* Path to mount as root */
+extern u8 root_server_path[256];	/* Path to mount as root */
 
 
 
@@ -36,3 +36,4 @@
 #define IC_BOOTP	0x01	/*   BOOTP (or DHCP, see below) */
 #define IC_RARP		0x02	/*   RARP */
 #define IC_USE_DHCP    0x100	/* If on, use DHCP instead of BOOTP */
+
diff -u -r linux/net/core/dev.c linux-nfsroot/net/core/dev.c
--- linux/net/core/dev.c	Fri Aug 17 00:56:10 2001
+++ linux-nfsroot/net/core/dev.c	Sat Sep 15 13:06:29 2001
@@ -2818,3 +2818,5 @@
 	return call_usermodehelper(argv [0], argv, envp);
 }
 #endif
+
+EXPORT_SYMBOL(dev_change_flags);
diff -u -r linux/net/ipv4/Config.in linux-nfsroot/net/ipv4/Config.in
--- linux/net/ipv4/Config.in	Wed May  2 11:59:24 2001
+++ linux-nfsroot/net/ipv4/Config.in	Sat Sep 15 13:06:29 2001
@@ -18,8 +18,8 @@
    bool '    IP: verbose route monitoring' CONFIG_IP_ROUTE_VERBOSE
    bool '    IP: large routing tables' CONFIG_IP_ROUTE_LARGE_TABLES
 fi
-bool '  IP: kernel level autoconfiguration' CONFIG_IP_PNP
-if [ "$CONFIG_IP_PNP" = "y" ]; then
+tristate '  IP: kernel level autoconfiguration' CONFIG_IP_PNP
+if [ "$CONFIG_IP_PNP" != "n"  ]; then
    bool '    IP: DHCP support' CONFIG_IP_PNP_DHCP
    bool '    IP: BOOTP support' CONFIG_IP_PNP_BOOTP
    bool '    IP: RARP support' CONFIG_IP_PNP_RARP
diff -u -r linux/net/ipv4/ipconfig.c linux-nfsroot/net/ipv4/ipconfig.c
--- linux/net/ipv4/ipconfig.c	Wed May  2 11:59:24 2001
+++ linux-nfsroot/net/ipv4/ipconfig.c	Sat Sep 15 13:07:51 2001
@@ -29,6 +29,7 @@
  */
 
 #include <linux/config.h>
+#include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
@@ -123,8 +124,8 @@
 
 u32 ic_servaddr __initdata = INADDR_NONE;	/* Boot server IP address */
 
-u32 root_server_addr __initdata = INADDR_NONE;	/* Address of NFS server */
-u8 root_server_path[256] __initdata = { 0, };	/* Path to mount as root */
+//u32 root_server_addr __initdata = INADDR_NONE;	/* Address of NFS server */
+//u8 root_server_path[256] __initdata = { 0, };	/* Path to mount as root */
 
 /* Persistent data: */
 
@@ -1212,7 +1213,7 @@
 	return 0;
 }
 
-module_init(ip_auto_config);
+//module_init(ip_auto_config);
 
 
 /*
@@ -1340,5 +1341,13 @@
 	return ip_auto_config_setup(addrs);
 }
 
+int init_module(void)
+{
+#ifdef MODULE
+  ic_enable = 1;
+#endif
+  ip_auto_config();
+  return 0;
+}
 __setup("ip=", ip_auto_config_setup);
 __setup("nfsaddrs=", nfsaddrs_config_setup);
