Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Oct 2001 09:19:02 +0900
From:      Makoto MATSUSHITA <matusita@jp.FreeBSD.org>
To:        current@FreeBSD.org
Subject:   Patch: mfsroot.flp to include more and more kernel modules
Message-ID:  <20011012091902E.matusita@jp.FreeBSD.org>

next in thread | raw e-mail | index | archive | help

I've posted (old version of) this patch before at cvs-committers, but
current@FreeBSD.org is more appropriate list so I post a new version
of patch here.

***

Attached below is a patch to make more kernel-modularize installation
flopppies.

- Why need this?

	Because we have very few space in kern.flp since kernel itself
	becomes bigger than before.  Kernel core should be in the
	kernel, but drivers can be move out to kernel module.

- What's changed?

	1) ed, fe, lnc, sl, tun, txp, vx, asr, mly, amr, mlx, and twe
	drivers are moved from the kernel to kernel modules.  These
	modules are put into mfsroot.flp.

	2) bge and lge, our gigabit ethernet drivers, are also added
	to GENERIC kernel (just missing I think).  These two drivers
	are also modularized in mfsroot.flp.

	3) In fact, there are already several kernel modules in a
	mfsroot.flp.  To reduce the size of modules, ALL kernel
	modules are combined into a single one.

- OK, how many bytes we can get in kern.flp? Any advantages/disadvantages?

	Before patch:
		kern.flp	 59 kbytes left
		mfsroot.flp	311 kbytes left
	After patch:
		kern.flp	139 kbytes left
		mfsroot.flp	167 kbytes left

	We have 80 kbytes free space in kern.flp, and losts 144 kbytes
	in mfsroot.flp.  But don't forget that we have also get two
	new drivers (bge and lge).

There are something to blush up in my patch, but if you wanna test
these 'merged kernel modules, have [bl]ge drivers' installation
floppies now, try:

<URL:http://home.jp.FreeBSD.org/~matusita/more-kld-floppies/boot.flp>;
<URL:http://home.jp.FreeBSD.org/~matusita/more-kld-floppies/kern.flp>;
<URL:http://home.jp.FreeBSD.org/~matusita/more-kld-floppies/mfsroot.flp>;

If you have any comments on this, please feel free to send to me.

P.S.: I've tested kern.flp/mfsroot.flp with my VMware 3.0beta box, and
      work fine (kernel detects VMware ethernet device as lnc1).

-- -
Makoto `MAR' MATSUSHITA

Index: sys/i386/conf/GENERIC
===================================================================
RCS file: /pub/cvsup/FreeBSD.cvs/src/sys/i386/conf/GENERIC,v
retrieving revision 1.322
diff -u -r1.322 GENERIC
--- sys/i386/conf/GENERIC	25 Sep 2001 18:56:37 -0000	1.322
+++ sys/i386/conf/GENERIC	10 Oct 2001 05:16:50 -0000
@@ -166,8 +166,10 @@
 # PCI Ethernet NICs that use the common MII bus controller code.
 # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
 device		miibus		# MII bus support
+device		bge		# Broadcom BCM570x gigabit ether
 device		dc		# DEC/Intel 21143 and various workalikes
 device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)
+device		lge		# Level 1 LXT1001 NetCellerator gigabit ether
 device		pcn		# AMD Am79C97x PCI 10/100 NICs
 device		rl		# RealTek 8129/8139
 device		sf		# Adaptec AIC-6915 (``Starfire'')
Index: release/i386/drivers.conf
===================================================================
RCS file: /pub/cvsup/FreeBSD.cvs/src/release/i386/drivers.conf,v
retrieving revision 1.2
diff -u -r1.2 drivers.conf
--- release/i386/drivers.conf	7 Nov 2000 14:00:04 -0000	1.2
+++ release/i386/drivers.conf	11 Oct 2001 18:12:27 -0000
@@ -35,24 +35,46 @@
 #
 
 #drv	filename	floppy	type	description
-an	if_an		2	network	"Aironet 4500/4800 802.11 PCMCIA/ISA/PCI card"
-#aue	if_aue		2	network	"ADMtek USB ethernet adapter"
-#cue	if_cue		2	network	"CATC USB ethernet adapter"
-dc	if_dc		2	network	"DEC/Intel 21143 (and clones) PCI fast ethernet card"
-de	if_de		2	network	"DEC DE435 PCI NIC or other DC21040-AA based card"
-fxp	if_fxp		2	network	"Intel EtherExpress Pro/100B PCI Fast Ethernet card"
-#kue	if_kue		2	network	"Kawasaki LSI USB ethernet adapter"
-pcn	if_pcn		2	network	"AMD Am79c79x PCI ethernet card"
-rl	if_rl		2	network	"RealTek 8129/8139 PCI ethernet card"
-sf	if_sf		2	network	"Adaptec AIC-6915 PCI ethernet card"
-sis	if_sis		2	network	"SiS 900/SiS 7016 PCI ethernet card"
-sk	if_sk		2	network	"SysKonnect PCI gigabit ethernet card"
-ste	if_ste		2	network	"Sundance ST201 PCI ethernet card"
-ti	if_ti		2	network	"Alteon Networks PCI gigabit ethernet card"
-tl	if_tl		2	network	"Texas Instruments ThunderLAN PCI ethernet card"
-tx	if_tx		2	network	"SMC 9432TX ethernet card"
-vr	if_vr		2	network	"VIA VT3043/VT86C100A Rhine PCI ethernet card"
-wb	if_wb		2	network	"Winbond W89C840F PCI ethernet card"
-wi	if_wi		2	network	"Lucent WaveLAN/IEEE 802.11 PCMCIA card"
-wx	if_wx		2	network	"Intel Gigabit Ethernet (82452) card"
-xl	if_xl		2	network	"3COM 3c90x / 3c90xB PCI ethernet card"
+an	an/if_an	2	network	"Aironet 4500/4800 802.11 PCMCIA/ISA/PCI card"
+#ar	ar/if_ar	2	network "Synchronous Digi/Arnet"
+#aue	aue/if_aue	2	network	"ADMtek USB ethernet adapter"
+bge	bge/if_bge	2	network	"Broadcom BCM570x PCI gigabit ethernet adapter"
+#cue	cue/if_cue	2	network	"CATC USB ethernet adapter"
+dc	dc/if_dc	2	network	"DEC/Intel 21143 (and clones) PCI fast ethernet card"
+ed	ed/if_ed	2	network "National Semiconductor DS8390 based ethernet"
+de	de/if_de	2	network	"DEC DE435 PCI NIC or other DC21040-AA based card"
+fe	fe/if_fe	2	network "Fujitsu MB86960A/MB86965A based Ethernet adapters"
+fxp	fxp/if_fxp	2	network	"Intel EtherExpress Pro/100B PCI Fast Ethernet card"
+lnc	lnc/if_lnc	2	network "AMD Lance/PCnet Ethernet"
+#kue	kue/if_kue	2	network	"Kawasaki LSI USB ethernet adapter"
+lge	lge/if_lge	2	network "Level 1 LXT1001 NetCellerator PCI gigabit ethernet adapter"
+#oltr	oltr/if_oltr	2	network "Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX UTP"
+pcn	pcn/if_pcn	2	network	"AMD Am79c79x PCI ethernet card"
+#ray	ray/if_ray	2	network "Raytheon Raylink/Webgear Aviator PCCard"
+rl	rl/if_rl	2	network	"RealTek 8129/8139 PCI ethernet card"
+sf	sf/if_sf	2	network	"Adaptec AIC-6915 PCI ethernet card"
+sis	sis/if_sis	2	network	"SiS 900/SiS 7016 PCI ethernet card"
+sk	sk/if_sk	2	network	"SysKonnect PCI gigabit ethernet card"
+sl	if_sl/if_sl	2	network	"SLIP network interface"
+#sn	sn/if_sn	2	network "Ethernet driver for SMC91Cxx based cards"
+#sr	sr/if_sr	2	network "Synchronous RISCom/N2 / WANic 400/405"
+ste	ste/if_ste	2	network	"Sundance ST201 PCI ethernet card"
+ti	ti/if_ti	2	network	"Alteon Networks PCI gigabit ethernet card"
+tl	tl/if_tl	2	network	"Texas Instruments ThunderLAN PCI ethernet card"
+tun	if_tun/if_tun	2	network	"Tunnel software network interface"
+tx	tx/if_tx	2	network	"SMC 9432TX ethernet card"
+txp	txp/if_txp	2	network "3Com 3XP Typhoon/Sidewinder (3CR990) Ethernet interface"
+vr	vr/if_vr	2	network	"VIA VT3043/VT86C100A Rhine PCI ethernet card"
+vx	vx/if_vx	2	network	"3Com 3c590 and 3c595 EtherLink III family"
+wb	wb/if_wb	2	network	"Winbond W89C840F PCI ethernet card"
+wi	wi/if_wi	2	network	"Lucent WaveLAN/IEEE 802.11 PCMCIA card"
+wx	wx/if_wx	2	network	"Intel Gigabit Ethernet (82452) card"
+xl	xl/if_xl	2	network	"3COM 3c90x / 3c90xB PCI ethernet card"
+
+asr	asr/asr		2	disk	"Adaptec I2O based SCSI host bus adapters"
+mly	mly/mly		2	disk	"Mylex AcceleRAID/eXtremeRAID family"
+
+#aac	aac/aac		2	disk	"Adaptec AdvancedRAID Controller"
+amr	amr/amr		2	disk	"AMI MegaRAID PCI-SCSI RAID"
+mlx	mlx/mlx		2	disk	"Mylex DAC-family RAID"
+twe	twe/twe		2	disk	"3ware Escalade ATA RAID adapter"
Index: release/scripts/driver-copy2.pl
===================================================================
RCS file: /pub/cvsup/FreeBSD.cvs/src/release/scripts/driver-copy2.pl,v
retrieving revision 1.1
diff -u -r1.1 driver-copy2.pl
--- release/scripts/driver-copy2.pl	31 Oct 2000 07:39:07 -0000	1.1
+++ release/scripts/driver-copy2.pl	11 Oct 2001 18:31:18 -0000
@@ -39,7 +39,7 @@
 open CONFIG, "< $config" or die "Cannot open $config.\n";
 while (<CONFIG>) {
     s/#.*$//;
-    if (/^(\w+)\s+(\w+)\s+(\d+)\s+(\w+)\s+\"(.*)\"\s*$/) {
+    if (/^(\w+)\s+([\w\/]+)\s+(\d+)\s+(\w+)\s+\"(.*)\"\s*$/) {
 	$flp{$2} = $3;
 	$dsc{$2} = $5;
     }
@@ -52,23 +52,24 @@
 undef $/;
 
 foreach $f (sort keys %flp) {
+    ($kmod = $f) =~ s,/(\w+)$,$1,;
     if ($flp{$f} == 1) {
 	print STDERR "$f: There's nothing to do with driver on first floppy.\n";
     }
     elsif ($flp{$f} == 2) {
-	$srcfile = $srcdir . '/' . $f . '.ko';
-	$dstfile = $dstdir . '/' . $f . '.ko';
-	$dscfile = $dstdir . '/' . $f . '.dsc';
-	print STDERR "Copying $f.ko to $dstdir\n";
+	$srcfile = $srcdir . '/' . $f . '.kld';
+	$dstfile = $dstdir . '/' . $kmod . '.kld';
+	$dscfile = $dstdir . '/' . $kmod . '.dsc';
+	print STDERR "Copying $f.kld to $dstdir\n";
 	open SRC, "< $srcfile" or die "Cannot open $srcfile\n";
 	$file = <SRC>;
 	close SRC;
 	open DST, "> $dstfile" or die "Cannot open $dstfile\n";
 	print DST $file;
 	close DST;
-	open DSC, "> $dscfile" or die "Cannot open $dscfile\n";
-	print DSC $dsc{$f};
-	close DSC;
+#	open DSC, "> $dscfile" or die "Cannot open $dscfile\n";
+#	print DSC $dsc{$f};
+#	close DSC;
     }
     elsif ($flp{$f} == 3) {
 	# third driver floppy (currently not implemnted yet...)
Index: release/scripts/driver-remove.pl
===================================================================
RCS file: /pub/cvsup/FreeBSD.cvs/src/release/scripts/driver-remove.pl,v
retrieving revision 1.1
diff -u -r1.1 driver-remove.pl
--- release/scripts/driver-remove.pl	31 Oct 2000 07:39:07 -0000	1.1
+++ release/scripts/driver-remove.pl	11 Oct 2001 18:36:21 -0000
@@ -38,7 +38,7 @@
 open CONFIG, "< $config" or die "Cannot open $config.\n";
 while (<CONFIG>) {
     s/#.*$//;
-    if (/^(\w+)\s+(\w+)\s+(\d+)\s+(\w+)\s+\"(.*)\"\s*$/) {
+    if (/^(\w+)\s+([\w\/]+)\s+(\d+)\s+(\w+)\s+\"(.*)\"\s*$/) {
 	$drivers{$1} = 1;
     }
 }

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011012091902E.matusita>