compressed modules

M. Warner Losh imp at bsdimp.com
Sun Jul 20 12:08:14 PDT 2003


Please try the enclosed patch.  It adds support to sysinstall for
compressed modules.  I think this will save some space on the drivers
disk since it isn't currently compressed (unless I'm smoking the good
stuff).

Warner
-------------- next part --------------
Index: modules.c
===================================================================
RCS file: /cache/ncvs/src/usr.sbin/sysinstall/modules.c,v
retrieving revision 1.6
diff -u -r1.6 modules.c
--- modules.c	15 Jan 2003 21:47:36 -0000	1.6
+++ modules.c	18 May 2003 05:52:55 -0000
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: src/usr.sbin/sysinstall/modules.c,v 1.6 2003/01/15 21:47:36 jhb Exp $
  */
 
 #include "sysinstall.h"
@@ -91,6 +91,20 @@
 		    else
 			msgConfirm("Loading module %s failed", dp->d_name);
 		}
+	    }
+	    if (strcmp(dp->d_name + dp->d_namlen - (sizeof(".ko.gz") - 1), ".ko.gz") == 0) {
+		snprintf(module, sizeof(module), "/tmp/%s", dp->d_name);
+		module[strlen(module) - sizeof(".gz")] = '\0';
+		snprintf(desc, sizeof(desc), "zcat < %s/%s > %s", MODULESDIR,
+		  dp->d_name, module);
+		system(desc);
+		if (kldload(module) < 0 && errno != EEXIST) {
+		    if (desc_str[0])
+			msgConfirm("Loading module %s failed\n%s", dp->d_name, desc_str);
+		    else
+			msgConfirm("Loading module %s failed", dp->d_name);
+		}
+		unlink(module);
 	    }
 	}
 	closedir(dirp);


More information about the freebsd-current mailing list