I've posted (old version of) this patch before at cvs-committers, but
[EMAIL PROTECTED] 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to