diff -urN --exclude CVS ../src.org.20001029/release/Makefile release/Makefile --- ../src.org.20001029/release/Makefile Fri Oct 27 00:22:47 2000 +++ release/Makefile Sun Oct 29 14:08:07 2000 @@ -89,6 +89,8 @@ # Various floppy image parameters. # + +.if ${MACHINE_ARCH} == "i386" .if ${MACHINE} == "pc98" SMALLBOOTSIZE= 1200 BOOTSIZE= 1440 @@ -104,21 +106,28 @@ .else BOOTSIZE= 1440 FIXITSIZE= 1440 -MFSSIZE= 2880 +MFSSIZE= 4320 BIGBOOTSIZE= 2880 BOOTINODE= 80000 FIXITINODE= 4000 MFSINODE= 8000 BOOTLABEL= fd1440 FIXITLABEL= fd1440 -MFSLABEL= minimum2 +MFSLABEL= minimum3 BIGBOOTLABEL= minimum2 .endif - -# overrides. -.if ${MACHINE_ARCH} == "alpha" +.elif ${MACHINE_ARCH} == "alpha" +BOOTSIZE= 1440 FIXITSIZE= 2880 +MFSSIZE= 2880 +BIGBOOTSIZE= 2880 +BOOTINODE= 80000 +FIXITINODE= 4000 +MFSINODE= 8000 +BOOTLABEL= fd1440 FIXITLABEL= minimum2 +MFSLABEL= minimum2 +BIGBOOTLABEL= minimum2 .endif ZIPNSPLIT= gzip --no-name -9 -c | split -b 240640 - @@ -547,11 +556,19 @@ @mkdir -p ${RD}/mfsfd/boot @cp /boot/boot* ${RD}/mfsfd/boot @cp /boot/loader.help ${RD}/mfsfd/boot + @cd ${.CURDIR} && ${MAKE} createBOOTMFS +.if exists(${.CURDIR}/${MACHINE_ARCH}/drivers.conf) + @cd ${.CURDIR} && ${MAKE} doMODULES KERNEL=BOOTMFS KERNEL_KO=BOOTMFS KODIR="" +.endif @echo "Making the regular boot floppy." @tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \ tar xf - -C ${RD}/mfsfd/stand @echo "Compressing doc files..." @gzip -9 ${RD}/mfsfd/stand/help/*.hlp +.if exists(${.CURDIR}/${MACHINE_ARCH}/drivers.conf) + @mkdir -p ${RD}/mfsfd/stand/modules + @perl ${.CURDIR}/scripts/driver-copy2.pl ${.CURDIR}/${MACHINE_ARCH}/drivers.conf ${RD}/kernels ${RD}/mfsfd/stand/modules +.endif sh -e ${.CURDIR}/scripts/doFS.sh -s mfsroot ${RD} ${MNT} \ ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} @gzip -9vc mfsroot > mfsroot.gz @@ -768,6 +785,26 @@ fi # +# --==## BOOTMFS config file ##==-- +# + +createBOOTMFS: + @cd ${.CURDIR}/../sys/${MACHINE}/conf && \ + sh ${.CURDIR}/scripts/dokern.sh ${FDSIZE} < ${KERNCONF} > BOOTMFS && \ + [ -r ${KERNCONF}.hints ] && cp ${KERNCONF}.hints BOOTMFS.hints +.if ${MACHINE_ARCH} == "i386" + @echo "options INTRO_USERCONFIG" >> \ + ${.CURDIR}/../sys/${MACHINE}/conf/BOOTMFS +.endif +.if defined(FDSIZE) && ${FDSIZE} == "BIG" + @echo "options MD_ROOT_SIZE=`cat mfsroot.size`" >> \ + ${.CURDIR}/../sys/${MACHINE}/conf/BOOTMFS +.endif +.if exists(${.CURDIR}/${MACHINE_ARCH}/drivers.conf) + @perl ${.CURDIR}/scripts/driver-remove.pl ${.CURDIR}/${MACHINE_ARCH}/drivers.conf ${.CURDIR}/../sys/${MACHINE}/conf/BOOTMFS +.endif + +# # --==## Compile a kernel by name ${KERNEL} ##==-- # # We don't erase the sys/compile/${KERNEL} directory, since somebody @@ -783,6 +820,14 @@ [ -r ${.CURDIR}/../sys/${MACHINE}/conf/${KERNEL}.hints ] && \ cp ${.CURDIR}/../sys/${MACHINE}/conf/${KERNEL}.hints ${RD}/kernels +doMODULES: + @rm -f ${RD}/kernels/*.ko + @cd ${.CURDIR}/../sys/${MACHINE}/conf && config ${KERNEL} + @cd ${.CURDIR}/../sys/compile/${KERNEL} && \ + make kernel-depend && \ + make ${KERNEL_FLAGS} modules && \ + make modules-reinstall DESTDIR=${RD}/kernels && \ + doSTDKERNEL: @rm -f ${RD}/kernels/${KERNEL} @cd ${.CURDIR}/../sys/${MACHINE}/conf && config ${KERNEL} @@ -799,17 +844,7 @@ doMFSKERN: @echo "Running doMFSKERN for ${FSIMAGE}" @rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE} - @cd ${.CURDIR}/../sys/${MACHINE}/conf && \ - sh ${.CURDIR}/scripts/dokern.sh ${FDSIZE} < ${KERNCONF} > BOOTMFS && \ - [ -r ${KERNCONF}.hints ] && cp ${KERNCONF}.hints BOOTMFS.hints -.if ${MACHINE_ARCH} == "i386" - @echo "options INTRO_USERCONFIG" >> \ - ${.CURDIR}/../sys/${MACHINE}/conf/BOOTMFS -.endif -.if defined(FDSIZE) && ${FDSIZE} == "BIG" - @echo "options MD_ROOT_SIZE=`cat mfsroot.size`" >> \ - ${.CURDIR}/../sys/${MACHINE}/conf/BOOTMFS -.endif + @cd ${.CURDIR} && ${MAKE} createBOOTMFS @cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS KERNEL_KO=BOOTMFS KODIR="" @rm -rf ${RD}/image.${FSIMAGE} @mkdir ${RD}/image.${FSIMAGE} diff -urN --exclude CVS ../src.org.20001029/release/i386/drivers.conf release/i386/drivers.conf --- ../src.org.20001029/release/i386/drivers.conf Thu Jan 1 09:00:00 1970 +++ release/i386/drivers.conf Sun Oct 29 16:30:47 2000 @@ -0,0 +1,57 @@ +# Driver config file for boot floppies +# +# Copyright (c) 2000 "HOSOKAWA, Tatsumi" +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD:$ + +# +# drv: driver name in kernel config file +# filename: filename of kernel module (without .ko) +# floppy: 2 (mfsroot.flp), 3 (drivers.flp - not implemented yet) +# type: disk/floppy/network/cdrom/tape/any (currently not used) +# description: short description of the driver +# + +#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" +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" diff -urN --exclude CVS ../src.org.20001029/release/scripts/doFS.sh release/scripts/doFS.sh --- ../src.org.20001029/release/scripts/doFS.sh Sat Jul 8 16:46:01 2000 +++ release/scripts/doFS.sh Sun Oct 29 13:07:01 2000 @@ -48,6 +48,7 @@ vnconfig -s labels -c /dev/r${VNDEVICE} ${FSIMG} disklabel -Brw /dev/r${VNDEVICE} ${FSLABEL} newfs -i ${FSINODE} -T ${FSLABEL} -o space /dev/r${VNDEVICE}c + tunefs -m 0 /dev/r${VNDEVICE}c mount /dev/${VNDEVICE}c ${MNT} diff -urN --exclude CVS ../src.org.20001029/release/scripts/driver-copy2.pl release/scripts/driver-copy2.pl --- ../src.org.20001029/release/scripts/driver-copy2.pl Thu Jan 1 09:00:00 1970 +++ release/scripts/driver-copy2.pl Sun Oct 29 16:31:30 2000 @@ -0,0 +1,78 @@ +#!/usr/bin/perl +# +# Copyright (c) 2000 "HOSOKAWA, Tatsumi" +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD:$ +# + +if ($#ARGV != 2) { + print STDERR "Usage: driver-copy.pl config_file src_ko_dir dst_ko_dir\n"; + exit 1; +} + +$config = $ARGV[0]; +$srcdir = $ARGV[1]; +$dstdir = $ARGV[2]; + +open CONFIG, "< $config" or die "Cannot open $config.\n"; +while () { + s/#.*$//; + if (/^(\w+)\s+(\w+)\s+(\d+)\s+(\w+)\s+\"(.*)\"\s*$/) { + $flp{$2} = $3; + $dsc{$2} = $5; + } +} +close CONFIG; + +-d $srcdir or die "Cannot find $srcdir directory.\n"; +-d $dstdir or die "Cannot find $dstdir directory.\n"; + +undef $/; + +foreach $f (sort keys %flp) { + 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"; + open SRC, "< $srcfile" or die "Cannot open $srcfile\n"; + $file = ; + 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; + } + elsif ($flp{$f} == 3) { + # third driver floppy (currently not implemnted yet...) + print STDERR "3rd driver floppy support has not implemented yet\n"; + exit 1; + } +} diff -urN --exclude CVS ../src.org.20001029/release/scripts/driver-remove.pl release/scripts/driver-remove.pl --- ../src.org.20001029/release/scripts/driver-remove.pl Thu Jan 1 09:00:00 1970 +++ release/scripts/driver-remove.pl Sun Oct 29 16:31:49 2000 @@ -0,0 +1,58 @@ +#!/usr/bin/perl +# +# Copyright (c) 2000 "HOSOKAWA, Tatsumi" +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD:$ +# + +if ($#ARGV != 1) { + print STDERR "Usage: driver-remove.pl config_file BOOTMFS\n"; + exit 1; +} + +$config = $ARGV[0]; +$bootmfs = $ARGV[1]; + +open CONFIG, "< $config" or die "Cannot open $config.\n"; +while () { + s/#.*$//; + if (/^(\w+)\s+(\w+)\s+(\d+)\s+(\w+)\s+\"(.*)\"\s*$/) { + $drivers{$1} = 1; + } +} +close CONFIG; + +open BOOTMFS, "< $bootmfs" or die "Cannot open $bootmfs.\n"; +while () { + next if (/^device\s+(\w+)/ && $drivers{$1}); + push @bootmfs, $_; +} +close BOOTMFS; + +open BOOTMFS, "> $bootmfs" or die "Cannot open $bootmfs.\n"; +foreach (@bootmfs) { + print BOOTMFS; +} +close BOOTMFS; diff -urN --exclude CVS ../src.org.20001029/release/sysinstall/Makefile release/sysinstall/Makefile --- ../src.org.20001029/release/sysinstall/Makefile Sat Sep 16 12:56:25 2000 +++ release/sysinstall/Makefile Sun Oct 29 13:22:49 2000 @@ -12,8 +12,8 @@ SRCS= anonFTP.c cdrom.c command.c config.c devices.c dhcp.c kget.c \ disks.c dispatch.c dist.c dmenu.c doc.c dos.c floppy.c \ ftp.c globals.c http.c index.c install.c installUpgrade.c keymap.c \ - label.c lndir.c main.c makedevs.c media.c menus.c misc.c mouse.c \ - msg.c network.c nfs.c options.c package.c pccard.c \ + label.c lndir.c main.c makedevs.c media.c menus.c misc.c modules.c \ + mouse.c msg.c network.c nfs.c options.c package.c pccard.c \ system.c tape.c tcpip.c termcap.c ufs.c usb.c user.c variable.c \ wizard.c keymap.h diff -urN --exclude CVS ../src.org.20001029/release/sysinstall/main.c release/sysinstall/main.c --- ../src.org.20001029/release/sysinstall/main.c Mon Jun 5 22:17:22 2000 +++ release/sysinstall/main.c Sun Oct 29 13:18:00 2000 @@ -96,6 +96,9 @@ if (DebugFD) dup2(DebugFD, 2); + /* Initialize driver modules */ + moduleInitialize(); + /* Initialize PC-card */ pccardInitialize(); diff -urN --exclude CVS ../src.org.20001029/release/sysinstall/modules.c release/sysinstall/modules.c --- ../src.org.20001029/release/sysinstall/modules.c Thu Jan 1 09:00:00 1970 +++ release/sysinstall/modules.c Sun Oct 29 16:42:15 2000 @@ -0,0 +1,91 @@ +/*- + * Copyright (c) 2000 "HOSOKAWA, Tatsumi" + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD:$ + */ + +#include "sysinstall.h" +#include +#include +#include +#include +#include +#include +#include + +#define MODULESDIR "/stand/modules" + +void +moduleInitialize(void) +{ + int fd, len; + DIR *dirp; + struct dirent *dp; + char module[MAXPATHLEN], desc[MAXPATHLEN]; + char desc_str[BUFSIZ]; + + if (!RunningAsInit && !Fake) { + /* It's not my job... */ + return; + } + + dirp = opendir(MODULESDIR); + if (dirp) { + while ((dp = readdir(dirp))) { + if (dp->d_namlen < (sizeof(".ko") - 1)) continue; + if (strcmp(dp->d_name + dp->d_namlen - (sizeof(".ko") - 1), ".ko") == 0) { + strcpy(module, MODULESDIR); + strcat(module, "/"); + strcat(module, dp->d_name); + strcpy(desc, module); + len = strlen(desc); + strcpy(desc + (len - (sizeof(".ko") - 1)), ".dsc"); + fd = open(module, O_RDONLY); + if (fd < 0) continue; + close(fd); + fd = open(desc, O_RDONLY); + if (fd < 0) { + desc_str[0] = 0; + } + else { + len = read(fd, desc_str, BUFSIZ); + close(fd); + if (len < BUFSIZ) desc_str[len] = 0; + } + if (desc_str[0]) + msgDebug("Loading module %s (%s)\n", dp->d_name, desc_str); + else + msgDebug("Loading module %s\n", dp->d_name); + if (kldload(module) < 0) { + 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); + } + } + } + closedir(dirp); + } +} diff -urN --exclude CVS ../src.org.20001029/release/sysinstall/sysinstall.h release/sysinstall/sysinstall.h --- ../src.org.20001029/release/sysinstall/sysinstall.h Sun Oct 15 06:02:31 2000 +++ release/sysinstall/sysinstall.h Sun Oct 29 13:20:35 2000 @@ -669,6 +669,9 @@ extern void restorescr(WINDOW *w); extern char *sstrncpy(char *dst, const char *src, int size); +/* modules.c */ +extern void moduleInitialize(void); + /* mouse.c */ extern int mousedTest(dialogMenuItem *self); extern int mousedDisable(dialogMenuItem *self);