diff options
Diffstat (limited to 'release')
511 files changed, 41441 insertions, 0 deletions
diff --git a/release/Makefile b/release/Makefile new file mode 100644 index 000000000000..cd02a72d2d5c --- /dev/null +++ b/release/Makefile @@ -0,0 +1,904 @@ +# $FreeBSD$ +# +# make release CHROOTDIR=/some/dir BUILDNAME=somename CVSROOT=/cvs/dir \ +# [ RELEASETAG=tag ] +# +# Where "/some/dir" is the pathname of a directory on a some filesystem with +# at least 1000MB of free space, "somename" is what you want the release to +# call itself, "/cvs/dir" is where our source repo resides and, optionally, +# which CVS "tag" name should be used when checking out the sources to build +# the release (default is HEAD). +# +# Please note: the vn driver must also be compiled into your kernel, +# otherwise the target 'release.8' and possibly others will fail. +# +# Set these, release builder! +# +# Fixed version: +#BUILDNAME=5.0-RELEASE +# +# Automatic SNAP versioning: +DATE != date +%Y%m%d +BASE = 5.0 +BUILDNAME?=${BASE}-${DATE}-SNAP +# +#CHROOTDIR=/junk/release +# If this is a -stable snapshot, then set +#RELEASETAG=RELENG_4 +# +# Non-zero if ${RELEASETAG} is in the form "RELENG_ver_RELEASE"; we +# are building an official release. Otherwise, we are building for +# a branch. +.if defined(RELEASETAG) +ISRELEASE!= expr ${RELEASETAG} : '^RELENG_.*_RELEASE$$' || true +.if ${ISRELEASE} != 0 +# Convert "RELENG_ver_RELEASE" to "RELEASE_ver" for ports and doc trees. +AUXRELEASETAG!= echo ${RELEASETAG} | sed -e 's/^RELENG_/RELEASE_/' -e 's/_RELEASE$$//' +DOCRELEASETAG?= ${AUXRELEASETAG} +PORTSRELEASETAG?= ${AUXRELEASETAG} +.endif +.endif + +KERNCONF=GENERIC + +# If you want to pass flags to the world build such as -j X, use +# WORLD_FLAGS. Similarly, you can specify make flags for kernel +# builds via KERNEL_FLAGS. +#WORLD_FLAGS=-j4 +#KERNEL_FLAGS=-j4 + +# If you are using a local CVS repository with components stored in +# non-standard modules, override these on the make commandline or +# in the environment. +RELEASESRCMODULE?= src +RELEASEDOCMODULE?= doc +RELEASEPORTSMODULE?= ports + +# Unless set elsewhere, indicate the object format we'll be using. +OBJFORMAT?= elf + +# Uncomment this to disable the doc.1 target. It is also an ERROR +# to set NOPORTS and not set NODOC since docs depend on ports. +#NODOC= YES +#NOPORTS= YES +# Set ALLLANG=no if you want the release documentation to be +# in English only. +ALLLANG?= yes +DOCPORTS= textproc/docproj +# Set this to wherever the distfiles required by ${DOCPORTS} live. +DOCDISTFILES?= ${.CURDIR}/../../ports/distfiles +# Set this to 1 if you want -P to be used for automatic keyboard detection +# on the boot floppy. WARNING: Breaks on some Athlon (K7) motherboards. +AUTO_KEYBOARD_DETECT?= 0 + + +DIST_DOCS= ABOUT.TXT ERRATA.TXT LAYOUT.TXT README.TXT HARDWARE.TXT \ + RELNOTES.TXT TROUBLE.TXT UPGRADE.TXT INSTALL.TXT + +# Things which without too much trouble can be considered variables +# BIN_DISTS are special in that they get full /etc installation sets. +# +.if ${MACHINE_ARCH} == "i386" +COMPAT_DISTS?= compat1x compat20 compat21 compat22 compat3x compat4x +.else +COMPAT_DISTS?= compat4x +.endif +OTHER_DISTS?= manpages catpages games proflibs dict info doc +CRYPTO_DISTS?= crypto krb4 krb5 +BIN_DISTS?= bin +DISTRIBUTIONS?= ${BIN_DISTS} ${OTHER_DISTS} ${COMPAT_DISTS} ${CRYPTO_DISTS} +KERNELS?= GENERIC + +BOOT1= etc/protocols etc/netconfig etc/defaults/rc.conf + +# mountpoint for filesystems. +MNT= /mnt + +# Various floppy image parameters. +# + +.if ${MACHINE_ARCH} == "i386" +.if ${MACHINE} == "pc98" +SMALLBOOTSIZE= 1200 +BOOTSIZE= 1440 +FIXITSIZE= 1440 +MFSSIZE= 2880 +BOOTINODE= 80000 +FIXITINODE= 4000 +MFSINODE= 8000 +SMALLBOOTLABEL= fd1200 +BOOTLABEL= fd1440 +FIXITLABEL= fd1440 +MFSLABEL= minimum2 +.else +BOOTSIZE= 1440 +FIXITSIZE= 1440 +MFSSIZE= 4320 +BIGBOOTSIZE= 2880 +BOOTINODE= 80000 +FIXITINODE= 4000 +MFSINODE= 8000 +BOOTLABEL= fd1440 +FIXITLABEL= fd1440 +MFSLABEL= minimum3 +BIGBOOTLABEL= minimum2 +.endif +.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 - + + +VNDEVICE?= vn0 + +# Things which may get you into trouble if you change them +MTREEFILES= ${.CURDIR}/../etc/mtree +_R= /R +RD= ${_R}/stage +FD= ${_R}/ftp +CD= ${_R}/cdrom +CD_DISC1= ${CD}/disc1 +CD_DISC2= ${CD}/disc2 + +# Where the bootstrap ports (see DOCPORTS) get installed. +LOCALDIR= /usr/local/bin + +# ${BOOTSTRAPDIR} is for those utilities that refer to the hosting +# environment, rather than the target environment. This is specifically +# intended for kernel-dependent utilities that are used during the build. +# +# ${BOOTSTRAPDIR} is actually being used by prepending it to the normal +# ${PATH}. Thus, it's also available to outside utilities like doFS.sh. +BOOTSTRAPDIR= /bootstrap +# +# The mount subsystem has been changed between 2.2 and 3.0 by the +# Lite2 import. +BOOTSTRAPUTILS= /sbin/mount /sbin/umount +# +# 3.0 cpio tries to reference lchown(2) which is not available in 2.2 +BOOTSTRAPUTILS+= /usr/bin/cpio + +.if !defined(CRUNCH_TARGETS) +CRUNCH_TARGETS= boot fixit +.endif + +.if ${MACHINE} == "pc98" +EXTRAS= ftp.1 +.else +EXTRAS= cdrom.1 ftp.1 +.endif + +.if !defined(NODOC) +DOCREL= doc.1 +.endif + +.if !defined(NOPORTREADMES) +MAKEREADMES= make readmes PORTSDIR=${CHROOTDIR}/usr/ports +.else +MAKEREADMES= true +.endif + +rerelease release: +.if !defined(CHROOTDIR) || !defined(BUILDNAME) || !defined(CVSROOT) + @echo "To make a release you must set CHROOTDIR, BUILDNAME and CVSROOT" && false +.endif +.if defined(NOPORTS) && !defined(NODOC) + @echo "Ports are required for building the docs. Either set NODOC or" + @echo "unset NOPORTS!" + @exit 1 +.endif + -vnconfig 2>/dev/null +.if make(release) +.if exists(${CHROOTDIR}) +# The first command will fail on a handful of files that have their schg +# flags set. But it greatly speeds up the next two commands. + -rm -rf ${CHROOTDIR} 2>/dev/null + -chflags -R noschg ${CHROOTDIR}/. + -rm -rf ${CHROOTDIR} +.endif + mkdir -p ${CHROOTDIR} + @echo ">>> make release started on `LC_ALL=C TZ=GMT date`" + cd ${.CURDIR}/../etc && ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR} + cd ${.CURDIR}/../etc && ${MAKE} distribution DESTDIR=${CHROOTDIR} + if [ -f /etc/resolv.conf ]; then \ + cp -p /etc/resolv.conf ${CHROOTDIR}/etc; \ + fi + cd ${.CURDIR}/.. && ${MAKE} installworld DESTDIR=${CHROOTDIR} NOMAN=1 + mkdir ${CHROOTDIR}/${BOOTSTRAPDIR} + for i in ${BOOTSTRAPUTILS} ; do \ + cp -p ${CHROOTDIR}$$i ${CHROOTDIR}/${BOOTSTRAPDIR} ; \ + done +.if !defined(RELEASETAG) + cd ${CHROOTDIR}/usr && rm -rf src && \ + cvs -R -d ${CVSROOT} co -P ${RELEASESRCMODULE} +.else + cd ${CHROOTDIR}/usr && rm -rf src && \ + cvs -R -d ${CVSROOT} co -P -r ${RELEASETAG} ${RELEASESRCMODULE} +.endif +.if defined(LOCAL_PATCHES) && exists(${LOCAL_PATCHES}) + cd ${CHROOTDIR}/usr/src && patch ${PATCH_FLAGS} < ${LOCAL_PATCHES} +.endif +.if defined(LOCAL_SCRIPT) && exists(${LOCAL_SCRIPT}) + cd ${CHROOTDIR} && env CHROOTDIR=${CHROOTDIR} BUILDNAME=${BUILDNAME} RELEASETAG=${RELEASETAG} ${LOCAL_SCRIPT} +.endif +.if !defined(NOPORTS) +.if defined(PORTSRELEASETAG) + cd ${CHROOTDIR}/usr && rm -rf ports && cvs -R -d ${CVSROOT} co -P -r ${PORTSRELEASETAG} ${RELEASEPORTSMODULE} && cd ports && ${MAKEREADMES} +.else + cd ${CHROOTDIR}/usr && rm -rf ports && cvs -R -d ${CVSROOT} co -P ${RELEASEPORTSMODULE} && cd ports && ${MAKEREADMES} +.endif +.endif +.if !defined(NODOC) +.if defined(DOCRELEASETAG) + cd ${CHROOTDIR}/usr && rm -rf doc && cvs -R -d ${CVSROOT} co -P -r ${DOCRELEASETAG} ${RELEASEDOCMODULE} +.else + cd ${CHROOTDIR}/usr && rm -rf doc && cvs -R -d ${CVSROOT} co -P ${RELEASEDOCMODULE} +.endif + if [ -d ${DOCDISTFILES}/ ]; then \ + cp -rp ${DOCDISTFILES} ${CHROOTDIR}/usr/ports/distfiles; \ + fi +.endif +.endif +.if make(rerelease) +.if !defined(RELEASENOUPDATE) +.if !defined(RELEASETAG) + cd ${CHROOTDIR}/usr/src && cvs -R -q update -P -d +.else + cd ${CHROOTDIR}/usr/src && cvs -R -q update -P -d -r ${RELEASETAG} +.endif +.if !defined(NOPORTS) + cd ${CHROOTDIR}/usr/ports && cvs -R -q update -P -d +.endif +.if !defined(NODOC) + cd ${CHROOTDIR}/usr/doc && cvs -R -q update -P -d +.endif +.endif +.endif + # Add version information to those things that need it. + ( cd ${CHROOTDIR}/usr/src/sys/conf && \ + mv newvers.sh foo && \ + sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh && rm foo ) + echo OBJFORMAT=${OBJFORMAT} > ${CHROOTDIR}/etc/objformat + -test -f install.cfg && cp install.cfg ${CHROOTDIR}/usr/src/release + echo "#!/bin/sh" > ${CHROOTDIR}/mk + echo "set -ex" >> ${CHROOTDIR}/mk + echo "_RELTARGET=\$${1:-doRELEASE}" >> ${CHROOTDIR}/mk + echo "export CFLAGS='-O -pipe'" >> ${CHROOTDIR}/mk + echo "export NO_X=YES" >> ${CHROOTDIR}/mk + echo "export DISTRIBUTIONS=\"${DISTRIBUTIONS}\"" >> ${CHROOTDIR}/mk + echo "export BUILDNAME=${BUILDNAME}" >> ${CHROOTDIR}/mk + echo "export VNDEVICE=${VNDEVICE}" >> ${CHROOTDIR}/mk + echo "export OBJFORMAT=${OBJFORMAT}" >> ${CHROOTDIR}/mk +.if defined(RELEASETAG) + echo "export RELEASETAG=${RELEASETAG}" >> ${CHROOTDIR}/mk +.endif +.if defined(NOPORTS) + echo "export NOPORTS=${NOPORTS}" >> ${CHROOTDIR}/mk +.endif +.if defined(NODOC) + echo "export NODOC=${NODOC}" >> ${CHROOTDIR}/mk +.endif +.if defined(ALLLANG) && ${ALLLANG} != "NO" && ${ALLLANG} != "no" + echo "export ALLLANG=${ALLLANG}" >> ${CHROOTDIR}/mk +.else + echo "export DOC_LANG=en_US.ISO_8859-1" >> ${CHROOTDIR}/mk +.endif +.if defined(NOSRC) + echo "export NOSRC=${NOSRC}" >> ${CHROOTDIR}/mk +.endif +.if defined(NOSHARED) + echo "export NOSHARED=${NOSHARED}" >> ${CHROOTDIR}/mk +.endif +.if defined(BOOT_CONFIG) + echo "export BOOT_CONFIG=\"${BOOT_CONFIG}\"">> ${CHROOTDIR}/mk +.endif +.if defined(KERNEL_FLAGS) + echo "export KERNEL_FLAGS=\"${KERNEL_FLAGS}\"" >> ${CHROOTDIR}/mk +.endif + # Don't remove this, or the build will fall over! + echo "export RELEASEDIR=${_R}" >> ${CHROOTDIR}/mk + echo "export PATH=${BOOTSTRAPDIR}:$${PATH}:${LOCALDIR}" >> ${CHROOTDIR}/mk + echo "if [ ! -f /tmp/.world_done ]; then" >> ${CHROOTDIR}/mk + echo " cd /usr/src" >> ${CHROOTDIR}/mk +.if make(release) + echo " (cd etc; make distrib-dirs distribution)" >> ${CHROOTDIR}/mk + echo " make ${WORLD_FLAGS} world && \\" >> ${CHROOTDIR}/mk +.endif +.if make(rerelease) + echo " make ${WORLD_FLAGS} all install && \\" >> ${CHROOTDIR}/mk +.endif + echo " touch /tmp/.world_done" >> ${CHROOTDIR}/mk + echo "fi" >> ${CHROOTDIR}/mk + echo "cd /usr/src/release" >> ${CHROOTDIR}/mk + echo "make \$${_RELTARGET}" >> ${CHROOTDIR}/mk + echo "echo \">>> make ${.TARGET} finished on \`LC_ALL=C TZ=GMT date\`\"" >> ${CHROOTDIR}/mk + chmod 755 ${CHROOTDIR}/mk + chroot ${CHROOTDIR} /mk + +clean: + rm -rf boot_crunch release.[0-9] + +# Clean out ${_R} and make the directory structure. +release.1: + mkdir -p ${_R} + -rm -rf ${_R}/* 2> /dev/null + -chflags -R noschg ${_R}/. + rm -rf ${_R}/* + mkdir ${RD} + mkdir ${RD}/floppies + mkdir ${RD}/trees + mkdir ${RD}/dists + mkdir ${RD}/kernels + for i in ${DISTRIBUTIONS} ; do \ + mkdir ${RD}/trees/$$i && \ + mkdir ${RD}/dists/$$i && \ + mtree -deU -f ${MTREEFILES}/BSD.root.dist \ + -p ${RD}/trees/$$i > /dev/null && \ + mtree -deU -f ${MTREEFILES}/BSD.usr.dist \ + -p ${RD}/trees/$$i/usr > /dev/null && \ + mtree -deU -f ${MTREEFILES}/BSD.include.dist \ + -p ${RD}/trees/$$i/usr/include > /dev/null && \ + mtree -deU -f ${MTREEFILES}/BSD.var.dist \ + -p ${RD}/trees/$$i/var > /dev/null ; \ + done + touch release.1 + +# Install the system into the various distributions. +release.2: + cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin + cd ${.CURDIR}/.. && make distribworld DISTDIR=${RD}/trees +.if exists(${.CURDIR}/../kerberosIV) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS) + cd ${.CURDIR}/../kerberosIV && ( \ + make bootstrap &&\ + make obj all help-distribute DISTDIR=${RD}/trees &&\ + make kprog \ + ) +.endif +.if exists(${.CURDIR}/../kerberos5) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS) + cd ${.CURDIR}/../kerberos5 && ( \ + make bootstrap &&\ + make obj all help-distribute DISTDIR=${RD}/trees &&\ + make kprog \ + ) +.endif + -chflags -R noschg ${RD}/trees + touch release.2 + +# Make and install the generic kernel(s). +release.3: +.for kernel in ${KERNELS} + -chflags -R noschg ${RD}/kernels/${kernel} + rm -rf ${RD}/kernels/${kernel} + rm -rf ${.CURDIR}/../sys/compile/${kernel} + cd ${.CURDIR} && ${MAKE} doSTDKERNEL KERNEL=${kernel} KODIR=/${kernel} + rm -rf ${.CURDIR}/../sys/compile/${kernel} + -mkdir ${RD}/trees/bin/boot/${kernel} + cp -p ${RD}/kernels/${kernel}/kernel ${RD}/trees/bin/boot/${kernel} +.endfor + # Install a standard boot kernel+modules + mkdir -p ${RD}/trees/bin/boot/kernel + cp -Rp ${RD}/kernels/GENERIC/* ${RD}/trees/bin/boot/kernel + touch release.3 + +# Make and install the three crunched binaries which live on the floppies. +# You are not supposed to like this :-) +# +# NB: the "RELEASE_BUILD_FIXIT" magic prevents vi from including the +# Tcl and Perl APIs. See also /usr/src/usr.bin/vi/Makefile. +# It also prevents ls linking against termcap by disabling color support. +# See /usr/src/bin/ls/Makefile. +release.4: + @mkdir -p /stand + rm -rf ${RD}/crunch + mkdir -p ${RD}/crunch + export RELEASE_BUILD_FIXIT=noway ; \ + for j in ${CRUNCH_TARGETS} ; do \ + rm -rf $${j}_crunch && \ + mkdir $${j}_crunch && \ + ( cd $${j}_crunch && \ + ( ( [ -f ${.CURDIR}/${MACHINE}/$${j}_crunch.conf ] && \ + crunchgen ${.CURDIR}/${MACHINE}/$${j}_crunch.conf ) || \ + ( crunchgen ${.CURDIR}/$${j}_crunch.conf ) ) && \ + ${MAKE} -DRELEASE_CRUNCH -f $${j}_crunch.mk subclean all \ + NOCRYPT=yes "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \ + mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \ + true || { rm -rf $${j}_crunch ; false ; } ; \ + done + touch release.4 + +# +# --==## Fix up the distributions. ##==-- +# +release.5: + # Handle some grief caused by the munition braindeadness. + for i in bin/ed usr.sbin/ppp usr.sbin/pppd usr.sbin/sendmail usr.sbin/tcpdump/tcpdump ; do \ + ( cd ${.CURDIR}/../$$i; \ + make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \ + done + + # Create any "synthetic dists" now. + @for i in ${DISTRIBUTIONS}; do \ + if [ -f ${.CURDIR}/scripts/$${i}-make.sh ]; then \ + echo -n "Running $$i dist creation script... "; \ + env OBJFORMAT=${OBJFORMAT} RD=${RD} sh ${.CURDIR}/scripts/$${i}-make.sh || echo "$$i distribution script returned bad status."; \ + echo "Done."; \ + fi \ + done \ + + # Remove all the directories we don't need. + -cd ${RD}/trees && \ + find ${OTHER_DISTS} ${COMPAT_DISTS} ${CRYPTO_DISTS} -depth -type d -print | xargs rmdir + touch release.5 + +# +# --==## Package up the tarballs from assembled trees ##==-- +# +release.6: + rm -rf ${RD}/dists + mkdir -p ${RD}/dists + @for i in ${DISTRIBUTIONS} ; \ + do \ + if [ -d ${RD}/trees/$${i} ] ; then \ + cd ${.CURDIR} && $(MAKE) doTARBALL \ + SD=${RD}/trees/$${i} \ + TN=$$i TD=$$i ARG="." && \ + echo "$${i} distribution is finished."; \ + fi ; \ + done + # More munition braindeadness. + ( cd ${RD}/dists && \ + if [ -f krb4/krb4.aa ] ; then \ + mv krb4/krb4.* crypto && \ + cat krb4/CHECKSUM.MD5 >> crypto/CHECKSUM.MD5 && \ + rm -r krb4; \ + fi ) + ( cd ${RD}/dists && \ + if [ -f krb5/krb5.aa ] ; then \ + mv krb5/krb5.* crypto && \ + cat krb5/CHECKSUM.MD5 >> crypto/CHECKSUM.MD5 && \ + rm -r krb5; \ + fi ) + touch release.6 + + +# +# --==## Make source dists ##==-- +# +release.7: +.if !defined(NOSRC) + @cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \ + TD=src TN=sbase ARG="[A-Z]*" + @for i in `cd /usr/src && echo [a-z]*` ; do \ + if [ -d /usr/src/$$i ] ; then \ + cd ${.CURDIR} && $(MAKE) doTARBALL \ + TN=`echo s$$i | tr -d '.' | \ + sed -e 's/usr/u/' \ + -e 's/kerberosIV/krb4/' \ + -e 's/kerberos5/krb5/'` \ + SD=/usr/src TD=src ARG="$$i" ; \ + fi ; \ + done +.if defined(EXTRA_SRC) + @set ${EXTRA_SRC} && \ + while [ $$# -ge 2 ] ; do \ + if [ -d /usr/src/$$1 ] ; then \ + cd ${.CURDIR} && $(MAKE) doTARBALL \ + SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \ + fi && shift && shift ; \ + done +.endif + if [ -d ${RD}/dists/crypto ] ; then ( cd ${RD}/dists/src && \ + if [ -f ssecure.aa ] ; then mv ssecure.* ../crypto ; fi && \ + if [ -f scrypto.aa ] ; then mv scrypto.* ../crypto ; fi && \ + if [ -f skrb4.aa ] ; then mv skrb4.* ../crypto ; fi && \ + if [ -f skrb5.aa ] ; then mv skrb5.* ../crypto ; fi ; ) ; fi + @echo "src distribution is finished." +.endif + touch release.7 + +# Complete the bootfd +# +# Now, just to get this picture down once and for all: +# +# +------------------------------------------------------------------------+ +# |boot.flp | +# +-----+-----+------------------------------------------------------------+ +# |boot1|boot2|floppy filesystem "bootfd" | +# +-----+-----+-+--------------------------------------------------------+-+ +# |kernel | +# +------------+-----------------------------------------+-+ +# |mfs filesystem "mfsfd" | +# +-----------------------------------------+ +# + +release.8: write_mfs_in_kernel + rm -rf ${RD}/mfsfd + mkdir ${RD}/mfsfd + cd ${RD}/mfsfd && \ + mkdir -p etc/defaults dev mnt stand/help + @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \ + DIR=${RD}/mfsfd/stand ZIP=false + ( cd ${RD}/trees/bin/dev && \ + ls console tty bpf0 ttyv0 ttyv1 ttyv2 ttyv3 null zero card0 card1 card2 card3 usb usb0 uhid0 ums0 ulpt0 ugen0 kbd0 kmem mem | \ + cpio -dump ${RD}/mfsfd/dev ) + ( cd ${RD}/mfsfd/dev && rm -f *[swo]d*[bdefgh] ) + ( cd ${RD}/mfsfd && \ + for dir in bin sbin ; do \ + ln -sf /stand $$dir; \ + done ) + cp /sbin/dhclient-script ${RD}/mfsfd/stand + cp ${.CURDIR}/../etc/defaults/pccard.conf ${RD}/mfsfd/etc/defaults/pccard.conf + cp ${.CURDIR}/../etc/usbd.conf ${RD}/mfsfd/etc/usbd.conf + cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand + grep -E '^(ftp|nameserver|domain|sunrpc|cmd|nfsd)[^-\w]' \ + ${.CURDIR}/../etc/services > ${RD}/mfsfd/stand/etc/services + ln ${RD}/mfsfd/stand/etc/services ${RD}/mfsfd/etc/services + ln ${RD}/mfsfd/stand/etc/netconfig ${RD}/mfsfd/etc/netconfig + gzip -9c ${.CURDIR}/../COPYRIGHT > ${RD}/mfsfd/stand/help/COPYRIGHT.hlp.gz + @for i in README.TXT RELNOTES.TXT INSTALL.TXT UPGRADE.TXT HARDWARE.TXT; do \ + if [ -f ${.CURDIR}/texts/${MACHINE_ARCH}/$${i} ]; then \ + gzip -9c ${.CURDIR}/texts/${MACHINE_ARCH}/$${i} > ${RD}/mfsfd/stand/help/$${i}.gz; \ + else \ + gzip -9c ${.CURDIR}/texts/$${i} > ${RD}/mfsfd/stand/help/$${i}.gz; \ + fi; \ + done + -test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd + @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 /usr/src/usr.sbin/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 +.if ${MACHINE} == "pc98" + @sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/mfsroot.flp \ + ${RD} ${MNT} ${SMALLBOOTSIZE} mfsroot.gz \ + ${BOOTINODE} ${SMALLBOOTLABEL} + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern-small FDSIZE=SMALL + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern +.else + @sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/mfsroot.flp \ + ${RD} ${MNT} ${BOOTSIZE} mfsroot.gz ${BOOTINODE} ${BOOTLABEL} + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=boot FDSIZE=BIG +.endif + @rm mfsroot mfsroot.gz mfsroot.size + @echo "Regular and MFS boot floppies made." + touch release.8 + +# +# --==## Create a fixit floppy ##==-- +# +release.9: + @echo "Making fixit floppy." + @rm -rf ${RD}/fixitfd + @mkdir ${RD}/fixitfd + @cd ${RD}/fixitfd && \ + mkdir -p dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp \ + usr/share/misc + @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \ + DIR=${RD}/fixitfd/stand ZIP=false + @( cd ${RD}/fixitfd/dev && \ + cp ${RD}/trees/bin/dev/MAKEDEV MAKEDEV && \ + chmod 755 MAKEDEV && \ + sh MAKEDEV fixit ) + @cp ${RD}/trees/bin/etc/spwd.db ${RD}/trees/bin/etc/group \ + ${RD}/trees/bin/etc/protocols ${RD}/fixitfd/etc + @cp ${RD}/trees/bin/usr/share/misc/scsi_modes \ + ${RD}/fixitfd/usr/share/misc + @cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile + @cp ${.CURDIR}/fixit.services ${RD}/fixitfd/etc/services + @cp ${.CURDIR}/scripts/tar.sh ${RD}/fixitfd/stand/tar + @chmod 555 ${RD}/fixitfd/stand/tar + @sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/fixit.flp ${RD} \ + ${MNT} ${FIXITSIZE} ${RD}/fixitfd ${FIXITINODE} ${FIXITLABEL} +# Do our last minute floppies directory setup in a convenient place. + @cp ${.CURDIR}/texts/FLOPPIES.TXT ${RD}/floppies/README.TXT + @(cd ${RD}/floppies; md5 README.TXT *.flp > CHECKSUM.MD5) + touch release.9 + +# +# --==## Setup a suitable ftp-area ##==-- +# +ftp.1: + @echo "Setting up FTP distribution area" + @mkdir -p ${FD} + -@ln -s . ${FD}/${BUILDNAME} + @cd ${RD} && find floppies -print | cpio -dumpl ${FD} + @cd ${RD}/dists && find . -print | cpio -dumpl ${FD} + @for i in ${DIST_DOCS}; do \ + if [ -f ${.CURDIR}/texts/$${i} ]; then \ + cp ${.CURDIR}/texts/$${i} ${FD}; \ + fi; \ + if [ -f ${.CURDIR}/texts/${MACHINE_ARCH}/$${i} ]; then \ + echo "=== Platform specifics for ${MACHINE_ARCH}" >> ${FD}/$${i}; \ + cat ${.CURDIR}/texts/${MACHINE_ARCH}/$${i} >> ${FD}/$${i}; \ + fi; \ + done + @echo "CD_VERSION = ${BUILDNAME}" > ${FD}/cdrom.inf +.if !defined(NOPORTS) + @tar --exclude CVS -cBf - -C ${CD_DISC1} ports | tar -xBf - -C ${FD} +.endif + touch ftp.1 + +# +# --==## Setup a suitable cdrom-area ##==-- +# +cdrom.1: + @echo "Setting up CDROM distribution area" + @mkdir -p ${CD_DISC1} ${CD_DISC2} + @cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1} + @cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DISC1} + @ln -f ${RD}/kernels/MFSKERNEL.boot ${CD_DISC1}/kernel + @for i in ${DISTRIBUTIONS} ; \ + do \ + if [ -d ${RD}/trees/$${i} ] ; then \ + chflags -R noschg ${RD}/trees/$${i} || true ; \ + ( cd ${RD}/trees/$${i} && \ + find . -depth -print | cpio -dumpl ${CD_DISC2} ) ; \ + fi \ + done + @rm -f ${CD_DISC2}/.profile + @cp ${.CURDIR}/fixit.profile ${CD_DISC2}/.profile + @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC1}/cdrom.inf + @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf + @for i in ${DIST_DOCS}; do \ + if [ -f ${.CURDIR}/texts/$${i} ]; then \ + cp ${.CURDIR}/texts/$${i} ${CD_DISC1}; \ + fi; \ + if [ -f ${.CURDIR}/texts/${MACHINE_ARCH}/$${i} ]; then \ + echo "=== Platform specifics for ${MACHINE_ARCH}" >> ${CD_DISC1}/$${i}; \ + cat ${.CURDIR}/texts/${MACHINE_ARCH}/$${i} >> ${CD_DISC1}/$${i}; \ + fi; \ + done +.if ${MACHINE_ARCH} == "alpha" + @echo "Setting up Alpha CD disc1 for booting" + @cp -Rp ${RD}/image.boot/boot ${CD_DISC1} + @ln -f ${CD_DISC2}/boot/cdboot ${CD_DISC1}/boot + @ln -f ${CD_DISC1}/boot/loader.rc ${CD_DISC2}/boot + @ln -f ${CD_DISC1}/kernel ${CD_DISC2}/kernel +.endif +.if !defined(NOPORTS) + @-rm -rf /usr/ports/distfiles/* + @mkdir -p ${CD_DISC1}/ports && \ + tar --exclude CVS -czf ${CD_DISC1}/ports/ports.tgz -C /usr ports && \ + cp ${.CURDIR}/scripts/ports-install.sh ${CD_DISC1}/ports/install.sh \ + && (cd ${CD_DISC1}/ports; md5 * > CHECKSUM.MD5) +.endif + touch cdrom.1 + +doc.1: + @echo "Making docs..." + @for i in ${DOCPORTS}; do \ + cd /usr/ports/$$i && make all install clean JADETEX=no FORCE_PKG_REGISTER=yes; \ + done + @cd /usr/doc && make all install 'FORMATS=html html-split txt' INSTALL_COMPRESSED='' DOCDIR=${RD}/trees/bin/usr/share/doc + touch doc.1 + +# Various "subroutine" and other supporting targets. + +# RD= +# SD= +# TD= +# ARG= +doTARBALL: +.if !defined(SD) + @echo "SD undefined in doTARBALL" && exit 1 +.endif +.if !defined(TD) + @echo "TB undefined in doTARBALL" && exit 1 +.endif +.if !defined(ARG) + @echo "ARG undefined in doTARBALL" && exit 1 +.endif + @rm -rf ${RD}/dists/${TD}/${TN}* + @mkdir -p ${RD}/dists/${TD} + @( cd ${SD} && \ + tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \ + echo rolling ${TD}/$$tn tarball &&\ + tar --exclude CVS --exclude obj --exclude BOOTMFS -cf - ${ARG} | \ + ${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \ + sh ${.CURDIR}/scripts/info.sh ${RD}/dists/${TD}/$$tn > \ + ${RD}/dists/${TD}/$$tn.inf && \ + if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \ + cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \ + fi && \ + if [ "${SD}" != "/usr/src" ]; then \ + mtree -c -i -p ${SD}/${ARG} \ + -k gname,md5digest,mode,nlink,uname,size,link,type \ + > ${RD}/dists/${TD}/$$tn.mtree ; \ + else \ + true; \ + fi; \ + (cd ${RD}/dists/${TD}; \ + rm -f CHECKSUM.MD5; \ + md5 * > CHECKSUM.MD5) \ + ) + +doRELEASE: release.1 release.2 ${DOCREL} release.3 release.4 release.5 \ + release.6 release.7 release.8 release.9 + @cd ${.CURDIR} && ${MAKE} ${EXTRAS} + @echo "Release done" + +floppies: + @cd ${.CURDIR} && ${MAKE} boot.flp + @cd ${.CURDIR} && ${MAKE} fixit.flp + @cd ${RD} && find floppies -print | cpio -dumpl ${FD} + +boot.flp: + @rm -f release.4 release.8 + @cd ${.CURDIR} && ${MAKE} release.4 release.8 CRUNCH_TARGETS=boot + +fixit.flp: + @rm -f release.4 release.9 + @cd ${.CURDIR} && ${MAKE} release.4 release.9 CRUNCH_TARGETS=fixit + +write_mfs_in_kernel: ${.CURDIR}/write_mfs_in_kernel.c + ${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c + +installCRUNCH: +.if !defined(CRUNCH) + @echo "CRUNCH undefined in installCRUNCH" && exit 1 +.endif +.if !defined(DIR) + @echo "DIR undefined in installCRUNCH" && exit 1 +.endif +.if !defined(ZIP) + @echo "ZIP undefined in installCRUNCH" && exit 1 +.endif + @if ${ZIP} ; then \ + gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \ + else \ + ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \ + fi + @chmod 555 ${DIR}/${CRUNCH}_crunch + @if [ -f ${.CURDIR}/${MACHINE}/${CRUNCH}_crunch.conf ] ; then \ + for i in `crunchgen -l ${.CURDIR}/${MACHINE}/${CRUNCH}_crunch.conf` ; do \ + ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \ + done \ + else \ + for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \ + ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \ + done \ + 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 +# may want to reuse it (release.8 presently) +# +doKERNEL: + @rm -f ${RD}/kernels/${KERNEL} + @cd ${.CURDIR}/../sys/${MACHINE}/conf && config ${KERNEL} + @cd ${.CURDIR}/../sys/compile/${KERNEL} && \ + make kernel-depend && \ + make ${KERNEL_FLAGS} ${KERNEL_KO} && \ + make kernel-reinstall DESTDIR=${RD}/kernels && \ + [ -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} + @cd ${.CURDIR}/../sys/compile/${KERNEL} && \ + make depend && \ + make ${KERNEL_FLAGS} KERNEL=${kernel} && \ + make KERNEL=${kernel} DESTDIR=${RD}/kernels install && \ + [ -r ${.CURDIR}/../sys/${MACHINE}/conf/${KERNEL}.hints ] && \ + cp ${.CURDIR}/../sys/${MACHINE}/conf/${KERNEL}.hints ${RD}/kernels + +# +# --==## Put a filesystem into a BOOTMFS kernel ##==-- +# +doMFSKERN: + @echo "Running doMFSKERN for ${FSIMAGE}" + @rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE} + @cd ${.CURDIR} && ${MAKE} createBOOTMFS + @cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS KERNEL_KO=BOOTMFS KODIR="" + @rm -rf ${RD}/image.${FSIMAGE} + @mkdir ${RD}/image.${FSIMAGE} + @cd ${RD}/kernels && \ + (chflags noschg BOOTMFS || true) && \ + strip BOOTMFS && \ + cp BOOTMFS BOOTMFS.${FSIMAGE} && \ + [ -r BOOTMFS.hints ] && mv BOOTMFS.hints BOOTMFS.${FSIMAGE}.hints + mv ${RD}/kernels/BOOTMFS ${RD}/image.${FSIMAGE}/kernel + @echo "Setting up /boot directory for ${FSIMAGE} floppy" + @mkdir -p ${RD}/image.${FSIMAGE}/boot + @cp /boot/loader ${RD}/image.${FSIMAGE}/boot + @[ -r ${RD}/kernels/BOOTMFS.${FSIMAGE}.hints ] && \ + sed -e '/^hint/s/^/set /' -e '/^#/d' \ + ${RD}/kernels/BOOTMFS.${FSIMAGE}.hints > \ + ${RD}/image.${FSIMAGE}/boot/device.hints && \ + echo "include /boot/device.hints" > ${RD}/image.${FSIMAGE}/boot/loader.rc + @echo "load /kernel" >> ${RD}/image.${FSIMAGE}/boot/loader.rc +.if !defined(FDSIZE) || ${FDSIZE} != "BIG" + @echo "echo \\007\\007" >> ${RD}/image.${FSIMAGE}/boot/loader.rc + @echo "echo Please insert MFS root floppy and press enter:" >> ${RD}/image.${FSIMAGE}/boot/loader.rc + @echo "read" >> ${RD}/image.${FSIMAGE}/boot/loader.rc + @echo "load -t mfs_root /mfsroot" >> ${RD}/image.${FSIMAGE}/boot/loader.rc +.endif + @echo "echo \\007\\007" >> ${RD}/image.${FSIMAGE}/boot/loader.rc + @echo "autoboot 10" >> ${RD}/image.${FSIMAGE}/boot/loader.rc +.if ${MACHINE_ARCH} == "i386" && ${AUTO_KEYBOARD_DETECT} + @echo "-P" >> ${RD}/image.${FSIMAGE}/boot.config +.endif +.if defined(FDSIZE) && ${FDSIZE} == "BIG" + @echo "Writing MFS image into kernel for ${FSIMAGE} floppy" + @./write_mfs_in_kernel ${RD}/image.${FSIMAGE}/kernel mfsroot + @cp ${RD}/image.${FSIMAGE}/kernel ${RD}/kernels/MFSKERNEL.${FSIMAGE} +.endif + @gzip -9v ${RD}/image.${FSIMAGE}/kernel + @rm -f ${RD}/floppies/${FSIMAGE}.flp +.if defined(FDSIZE) && ${FDSIZE} == "BIG" + sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/${FSIMAGE}.flp \ + ${RD} ${MNT} ${BIGBOOTSIZE} ${RD}/image.${FSIMAGE} \ + ${BOOTINODE} ${BIGBOOTLABEL} +.elif defined(FDSIZE) && ${FDSIZE} == "SMALL" + sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/${FSIMAGE}.flp \ + ${RD} ${MNT} ${SMALLBOOTSIZE} ${RD}/image.${FSIMAGE} \ + ${BOOTINODE} ${SMALLBOOTLABEL} +.else + sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/${FSIMAGE}.flp \ + ${RD} ${MNT} ${BOOTSIZE} ${RD}/image.${FSIMAGE} \ + ${BOOTINODE} ${BOOTLABEL} +.endif + @echo "Created ${RD}/floppies/${FSIMAGE}.flp" + +.include <bsd.prog.mk> diff --git a/release/alpha/boot_crunch.conf b/release/alpha/boot_crunch.conf new file mode 100644 index 000000000000..9d14ccf08ec4 --- /dev/null +++ b/release/alpha/boot_crunch.conf @@ -0,0 +1,24 @@ +# $FreeBSD$ + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/usr.sbin/pccard + +progs sh find sed test rm +progs pwd ppp +progs sysinstall newfs minigzip cpio fsck fsck_4.2bsd ifconfig route slattach +progs mount_nfs +progs dhclient arp hostname +progs rtsol +progs pccardc pccardd +progs usbd usbdevs +progs tunefs +ln minigzip gzip +ln minigzip gunzip +ln minigzip zcat +ln sh -sh +ln test [ +ln newfs mount_mfs + +libs -ll -ledit -lutil -lkvm -lmd -lcrypt -lftpio -lz -lnetgraph +libs -ldialog -lncurses -lmytinfo -ldisk -lipx diff --git a/release/alpha/dokern.sh b/release/alpha/dokern.sh new file mode 100755 index 000000000000..47296bdc7aae --- /dev/null +++ b/release/alpha/dokern.sh @@ -0,0 +1,161 @@ +#!/bin/sh + +# $FreeBSD$ + +if [ $# -lt 1 ]; then + FDSIZE=NORMAL +else + FDSIZE=$1 +fi + +ARCH="`uname -m`" + +# First check for the standard x86 PC class. +if [ "${ARCH}" = "i386" ]; then + +if [ "${FDSIZE}" = "SMALL" ]; then + +sed -e '/ pci$/d' \ + -e '/ adv/d' \ + -e '/ ahc/d' \ + -e '/ amd/d' \ + -e '/ isp/d' \ + -e '/ ncr/d' \ + -e '/ sym/d' \ + -e '/ de/d' \ + -e '/ fxp/d' \ + -e '/ tx/d' \ + -e '/ vx/d' \ + -e '/ wx/d' \ + -e '/ dc/d' \ + -e '/ pcn/d' \ + -e '/ rl/d' \ + -e '/ sf/d' \ + -e '/ sis/d' \ + -e '/ ste/d' \ + -e '/ tl/d' \ + -e '/ vr/d' \ + -e '/ wb/d' \ + -e '/ xl/d' \ + -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +else + +sed -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/ncr/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/wds/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +fi + +echo "options NETGRAPH" +echo "options NETGRAPH_ETHER" +echo "options NETGRAPH_PPPOE" +echo "options NETGRAPH_SOCKET" + +# Otherwise maybe it's an alpha, and it has big binaries. +elif [ "${ARCH}" = "alpha" ]; then + +sed -e '/pty/d' \ + -e '/DEC_3000_300/d' \ + -e '/DEC_3000_500/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ sl /d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/NOBLOCKRANDOM/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSV/d' \ + -e '/P1003_1B/d' \ + -e '/_KPOSIX_PRIORITY_SCHEDULING/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/MSDOSFS/d' \ + -e '/ncr/d' \ + -e '/ le /d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/vpo/d' \ + -e '/uhci/d' \ + -e '/ohci/d' \ + -e '/usb/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ukbd/d' \ + -e '/ulpt/d' \ + -e '/umass/d' \ + -e '/ums/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/aue/d' \ + -e '/cue/d' \ + -e '/kue/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' +fi + +# reset maxusers to something lower +echo "maxusers 5" + +echo "options NFS_NOSERVER" +echo "options SCSI_NO_OP_STRINGS" +echo "options SCSI_NO_SENSE_STRINGS" diff --git a/release/alpha/fixit_crunch.conf b/release/alpha/fixit_crunch.conf new file mode 100644 index 000000000000..e8bd0ed6bd83 --- /dev/null +++ b/release/alpha/fixit_crunch.conf @@ -0,0 +1,37 @@ +# $FreeBSD$ + +# first, we list the source dirs that our programs reside in. These are +# searched in order listed to find the dir containing each program. + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.bin/vi + +# second, we list all the programs we want to include in our crunched binary. +# The order doesn't matter. Any program that needs hard links to it gets an +# `ln' directive. + +# /bin stuff + +progs cat chmod chroot cp dd df echo expr kill ln ls mkdir +progs mv rm rmdir sleep sync + +# /sbin stuff + +progs chown clri disklabel dmesg +progs mknod mount reboot restore swapon umount + +progs mount_msdos mount_cd9660 + +ln restore rrestore +ln chown chgrp + +# /usr/bin stuff + +progs ftp telnet vi grep +ln vi view +ln vi ex + +# finally, we specify the libraries to link in with our binary + +libs -lcrypt -ltelnet -lutil -ll -lm +libs -lcurses -ltermcap -ledit -lgnuregex -lkvm -lz diff --git a/release/amd64/boot_crunch.conf b/release/amd64/boot_crunch.conf new file mode 100644 index 000000000000..9d14ccf08ec4 --- /dev/null +++ b/release/amd64/boot_crunch.conf @@ -0,0 +1,24 @@ +# $FreeBSD$ + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/usr.sbin/pccard + +progs sh find sed test rm +progs pwd ppp +progs sysinstall newfs minigzip cpio fsck fsck_4.2bsd ifconfig route slattach +progs mount_nfs +progs dhclient arp hostname +progs rtsol +progs pccardc pccardd +progs usbd usbdevs +progs tunefs +ln minigzip gzip +ln minigzip gunzip +ln minigzip zcat +ln sh -sh +ln test [ +ln newfs mount_mfs + +libs -ll -ledit -lutil -lkvm -lmd -lcrypt -lftpio -lz -lnetgraph +libs -ldialog -lncurses -lmytinfo -ldisk -lipx diff --git a/release/amd64/dokern.sh b/release/amd64/dokern.sh new file mode 100755 index 000000000000..47296bdc7aae --- /dev/null +++ b/release/amd64/dokern.sh @@ -0,0 +1,161 @@ +#!/bin/sh + +# $FreeBSD$ + +if [ $# -lt 1 ]; then + FDSIZE=NORMAL +else + FDSIZE=$1 +fi + +ARCH="`uname -m`" + +# First check for the standard x86 PC class. +if [ "${ARCH}" = "i386" ]; then + +if [ "${FDSIZE}" = "SMALL" ]; then + +sed -e '/ pci$/d' \ + -e '/ adv/d' \ + -e '/ ahc/d' \ + -e '/ amd/d' \ + -e '/ isp/d' \ + -e '/ ncr/d' \ + -e '/ sym/d' \ + -e '/ de/d' \ + -e '/ fxp/d' \ + -e '/ tx/d' \ + -e '/ vx/d' \ + -e '/ wx/d' \ + -e '/ dc/d' \ + -e '/ pcn/d' \ + -e '/ rl/d' \ + -e '/ sf/d' \ + -e '/ sis/d' \ + -e '/ ste/d' \ + -e '/ tl/d' \ + -e '/ vr/d' \ + -e '/ wb/d' \ + -e '/ xl/d' \ + -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +else + +sed -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/ncr/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/wds/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +fi + +echo "options NETGRAPH" +echo "options NETGRAPH_ETHER" +echo "options NETGRAPH_PPPOE" +echo "options NETGRAPH_SOCKET" + +# Otherwise maybe it's an alpha, and it has big binaries. +elif [ "${ARCH}" = "alpha" ]; then + +sed -e '/pty/d' \ + -e '/DEC_3000_300/d' \ + -e '/DEC_3000_500/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ sl /d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/NOBLOCKRANDOM/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSV/d' \ + -e '/P1003_1B/d' \ + -e '/_KPOSIX_PRIORITY_SCHEDULING/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/MSDOSFS/d' \ + -e '/ncr/d' \ + -e '/ le /d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/vpo/d' \ + -e '/uhci/d' \ + -e '/ohci/d' \ + -e '/usb/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ukbd/d' \ + -e '/ulpt/d' \ + -e '/umass/d' \ + -e '/ums/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/aue/d' \ + -e '/cue/d' \ + -e '/kue/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' +fi + +# reset maxusers to something lower +echo "maxusers 5" + +echo "options NFS_NOSERVER" +echo "options SCSI_NO_OP_STRINGS" +echo "options SCSI_NO_SENSE_STRINGS" diff --git a/release/amd64/fixit_crunch.conf b/release/amd64/fixit_crunch.conf new file mode 100644 index 000000000000..7dca73777999 --- /dev/null +++ b/release/amd64/fixit_crunch.conf @@ -0,0 +1,38 @@ +# $FreeBSD$ + +# first, we list the source dirs that our programs reside in. These are +# searched in order listed to find the dir containing each program. + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.bin/vi +srcdirs /usr/src/sbin/i386 + +# second, we list all the programs we want to include in our crunched binary. +# The order doesn't matter. Any program that needs hard links to it gets an +# `ln' directive. + +# /bin stuff + +progs cat chmod chroot cp dd df echo expr kill ln ls mkdir +progs mv rm rmdir sleep sync + +# /sbin stuff + +progs chown clri disklabel dmesg fdisk +progs mknod mount reboot restore swapon umount + +progs mount_msdos mount_cd9660 + +ln restore rrestore +ln chown chgrp + +# /usr/bin stuff + +progs ftp telnet vi grep +ln vi view +ln vi ex + +# finally, we specify the libraries to link in with our binary + +libs -lcrypt -ltelnet -lutil -ll -lm +libs -lcurses -ltermcap -ledit -lgnuregex -lkvm -lz diff --git a/release/boot_crunch.conf b/release/boot_crunch.conf new file mode 100644 index 000000000000..9d14ccf08ec4 --- /dev/null +++ b/release/boot_crunch.conf @@ -0,0 +1,24 @@ +# $FreeBSD$ + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/usr.sbin/pccard + +progs sh find sed test rm +progs pwd ppp +progs sysinstall newfs minigzip cpio fsck fsck_4.2bsd ifconfig route slattach +progs mount_nfs +progs dhclient arp hostname +progs rtsol +progs pccardc pccardd +progs usbd usbdevs +progs tunefs +ln minigzip gzip +ln minigzip gunzip +ln minigzip zcat +ln sh -sh +ln test [ +ln newfs mount_mfs + +libs -ll -ledit -lutil -lkvm -lmd -lcrypt -lftpio -lz -lnetgraph +libs -ldialog -lncurses -lmytinfo -ldisk -lipx diff --git a/release/fixit.profile b/release/fixit.profile new file mode 100644 index 000000000000..fcd2830756a1 --- /dev/null +++ b/release/fixit.profile @@ -0,0 +1,36 @@ +: +# $FreeBSD$ + +export BLOCKSIZE=K +export PS1="Fixit# " +export EDITOR="/mnt2/stand/vi" +export PAGER="/mnt2/stand/more" +export SCSI_MODES="/mnt2/usr/share/misc/scsi_modes" +# the root MFS doesn't have /dev/nrsa0, pick a better default for mt(1) +export TAPE=/mnt2/dev/nrsa0 + +alias ls="ls -F" +alias ll="ls -l" +alias m="more -e" + +echo '+---------------------------------------------------------------+' +echo '| You are now running from a FreeBSD "fixit" floppy. |' +echo '| ------------------------------------------------------------- |' +echo "| When you're finished with this shell, please type exit. |" +echo '| The fixit floppy itself is mounted as /mnt2. |' +echo '| |' +echo '| You might want to symlink /mnt/etc/*pwd.db and /mnt/etc/group |' +echo '| to /etc after mounting a root filesystem from your disk. |' +echo '| tar(1) will not restore all permissions correctly otherwise! |' +echo '| |' +echo '| Note: you might use the arrow keys to browse through the |' +echo '| command history of this shell. |' +echo '+---------------------------------------------------------------+' +echo +echo 'Good Luck!' +echo + +# Make the arrow keys work; everybody will love this. +set -o emacs 2>/dev/null + +cd / diff --git a/release/fixit.services b/release/fixit.services new file mode 100644 index 000000000000..ff776b2b6265 --- /dev/null +++ b/release/fixit.services @@ -0,0 +1,108 @@ +# +# Network services, Internet style +# +# Stripped-down version. +# +# $FreeBSD$ +# +# WELL KNOWN PORT NUMBERS +# +echo 7/tcp +echo 7/udp +discard 9/tcp sink null +discard 9/udp sink null +systat 11/tcp users #Active Users +systat 11/udp users #Active Users +daytime 13/tcp +daytime 13/udp +chargen 19/tcp ttytst source #Character Generator +chargen 19/udp ttytst source #Character Generator +ftp-data 20/tcp #File Transfer [Default Data] +ftp-data 20/udp #File Transfer [Default Data] +ftp 21/tcp #File Transfer [Control] +ftp 21/udp #File Transfer [Control] +ssh 22/tcp #Secure Shell Login +ssh 22/udp #Secure Shell Login +telnet 23/tcp +telnet 23/udp +# 24/tcp any private mail system +# 24/udp any private mail system +smtp 25/tcp mail #Simple Mail Transfer +smtp 25/udp mail #Simple Mail Transfer +time 37/tcp timserver +time 37/udp timserver +domain 53/tcp #Domain Name Server +domain 53/udp #Domain Name Server +bootps 67/tcp dhcps #Bootstrap Protocol Server +bootps 67/udp dhcps #Bootstrap Protocol Server +bootpc 68/tcp dhcpc #Bootstrap Protocol Client +bootpc 68/udp dhcpc #Bootstrap Protocol Client +tftp 69/tcp #Trivial File Transfer +tftp 69/udp #Trivial File Transfer +gopher 70/tcp +gopher 70/udp +finger 79/tcp +finger 79/udp +http 80/tcp www www-http #World Wide Web HTTP +http 80/udp www www-http #World Wide Web HTTP +sunrpc 111/tcp rpcbind #SUN Remote Procedure Call +sunrpc 111/udp rpcbind #SUN Remote Procedure Call +auth 113/tcp ident tap #Authentication Service +auth 113/udp ident tap #Authentication Service +nntp 119/tcp usenet #Network News Transfer Protocol +nntp 119/udp usenet #Network News Transfer Protocol +rmt 411/tcp #Remote MT Protocol +rmt 411/udp #Remote MT Protocol +https 443/tcp +https 443/udp +# +# Berkeley-specific services +# +exec 512/tcp #remote process execution; +# authentication performed using +# passwords and UNIX loppgin names +biff 512/udp comsat #used by mail system to notify users +# of new mail received; currently +# receives messages only from +# processes on the same machine +login 513/tcp #remote login a la telnet; +# automatic authentication performed +# based on priviledged port numbers +# and distributed data bases which +# identify "authentication domains" +who 513/udp whod #maintains data bases showing who's +# logged in to machines on a local +# net and the load average of the +# machine +cmd 514/tcp shell #like exec, but automatic +# authentication is performed as for +# login server +syslog 514/udp +printer 515/tcp spooler +printer 515/udp spooler +talk 517/tcp #like tenex link, but across +# machine - unfortunately, doesn't +# use link protocol (this is actually +# just a rendezvous port from which a +# tcp connection is established) +talk 517/udp #like tenex link, but across +# machine - unfortunately, doesn't +# use link protocol (this is actually +# just a rendezvous port from which a +# tcp connection is established) +ntalk 518/tcp +ntalk 518/udp +utime 519/tcp unixtime +utime 519/udp unixtime +efs 520/tcp #extended file name server +router 520/udp route routed #local routing process (on site); +# uses variant of Xerox NS routing +# information protocol +uucp 540/tcp uucpd +uucp 540/udp uucpd +uucp-rlogin 541/tcp +uucp-rlogin 541/udp +klogin 543/tcp # Kerberos (v4/v5) +klogin 543/udp # Kerberos (v4/v5) +kshell 544/tcp krcmd # Kerberos (v4/v5) +kshell 544/udp krcmd # Kerberos (v4/v5) diff --git a/release/fixit_crunch.conf b/release/fixit_crunch.conf new file mode 100644 index 000000000000..e8bd0ed6bd83 --- /dev/null +++ b/release/fixit_crunch.conf @@ -0,0 +1,37 @@ +# $FreeBSD$ + +# first, we list the source dirs that our programs reside in. These are +# searched in order listed to find the dir containing each program. + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.bin/vi + +# second, we list all the programs we want to include in our crunched binary. +# The order doesn't matter. Any program that needs hard links to it gets an +# `ln' directive. + +# /bin stuff + +progs cat chmod chroot cp dd df echo expr kill ln ls mkdir +progs mv rm rmdir sleep sync + +# /sbin stuff + +progs chown clri disklabel dmesg +progs mknod mount reboot restore swapon umount + +progs mount_msdos mount_cd9660 + +ln restore rrestore +ln chown chgrp + +# /usr/bin stuff + +progs ftp telnet vi grep +ln vi view +ln vi ex + +# finally, we specify the libraries to link in with our binary + +libs -lcrypt -ltelnet -lutil -ll -lm +libs -lcurses -ltermcap -ledit -lgnuregex -lkvm -lz diff --git a/release/i386/boot_crunch.conf b/release/i386/boot_crunch.conf new file mode 100644 index 000000000000..9d14ccf08ec4 --- /dev/null +++ b/release/i386/boot_crunch.conf @@ -0,0 +1,24 @@ +# $FreeBSD$ + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/usr.sbin/pccard + +progs sh find sed test rm +progs pwd ppp +progs sysinstall newfs minigzip cpio fsck fsck_4.2bsd ifconfig route slattach +progs mount_nfs +progs dhclient arp hostname +progs rtsol +progs pccardc pccardd +progs usbd usbdevs +progs tunefs +ln minigzip gzip +ln minigzip gunzip +ln minigzip zcat +ln sh -sh +ln test [ +ln newfs mount_mfs + +libs -ll -ledit -lutil -lkvm -lmd -lcrypt -lftpio -lz -lnetgraph +libs -ldialog -lncurses -lmytinfo -ldisk -lipx diff --git a/release/i386/dokern.sh b/release/i386/dokern.sh new file mode 100755 index 000000000000..47296bdc7aae --- /dev/null +++ b/release/i386/dokern.sh @@ -0,0 +1,161 @@ +#!/bin/sh + +# $FreeBSD$ + +if [ $# -lt 1 ]; then + FDSIZE=NORMAL +else + FDSIZE=$1 +fi + +ARCH="`uname -m`" + +# First check for the standard x86 PC class. +if [ "${ARCH}" = "i386" ]; then + +if [ "${FDSIZE}" = "SMALL" ]; then + +sed -e '/ pci$/d' \ + -e '/ adv/d' \ + -e '/ ahc/d' \ + -e '/ amd/d' \ + -e '/ isp/d' \ + -e '/ ncr/d' \ + -e '/ sym/d' \ + -e '/ de/d' \ + -e '/ fxp/d' \ + -e '/ tx/d' \ + -e '/ vx/d' \ + -e '/ wx/d' \ + -e '/ dc/d' \ + -e '/ pcn/d' \ + -e '/ rl/d' \ + -e '/ sf/d' \ + -e '/ sis/d' \ + -e '/ ste/d' \ + -e '/ tl/d' \ + -e '/ vr/d' \ + -e '/ wb/d' \ + -e '/ xl/d' \ + -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +else + +sed -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/ncr/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/wds/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +fi + +echo "options NETGRAPH" +echo "options NETGRAPH_ETHER" +echo "options NETGRAPH_PPPOE" +echo "options NETGRAPH_SOCKET" + +# Otherwise maybe it's an alpha, and it has big binaries. +elif [ "${ARCH}" = "alpha" ]; then + +sed -e '/pty/d' \ + -e '/DEC_3000_300/d' \ + -e '/DEC_3000_500/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ sl /d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/NOBLOCKRANDOM/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSV/d' \ + -e '/P1003_1B/d' \ + -e '/_KPOSIX_PRIORITY_SCHEDULING/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/MSDOSFS/d' \ + -e '/ncr/d' \ + -e '/ le /d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/vpo/d' \ + -e '/uhci/d' \ + -e '/ohci/d' \ + -e '/usb/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ukbd/d' \ + -e '/ulpt/d' \ + -e '/umass/d' \ + -e '/ums/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/aue/d' \ + -e '/cue/d' \ + -e '/kue/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' +fi + +# reset maxusers to something lower +echo "maxusers 5" + +echo "options NFS_NOSERVER" +echo "options SCSI_NO_OP_STRINGS" +echo "options SCSI_NO_SENSE_STRINGS" diff --git a/release/i386/drivers.conf b/release/i386/drivers.conf new file mode 100644 index 000000000000..71c673a601d8 --- /dev/null +++ b/release/i386/drivers.conf @@ -0,0 +1,58 @@ +# Driver config file for boot floppies +# +# Copyright (c) 2000 "HOSOKAWA, Tatsumi" <hosokawa@FreeBSD.org> +# 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" +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" diff --git a/release/i386/fixit_crunch.conf b/release/i386/fixit_crunch.conf new file mode 100644 index 000000000000..7dca73777999 --- /dev/null +++ b/release/i386/fixit_crunch.conf @@ -0,0 +1,38 @@ +# $FreeBSD$ + +# first, we list the source dirs that our programs reside in. These are +# searched in order listed to find the dir containing each program. + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.bin/vi +srcdirs /usr/src/sbin/i386 + +# second, we list all the programs we want to include in our crunched binary. +# The order doesn't matter. Any program that needs hard links to it gets an +# `ln' directive. + +# /bin stuff + +progs cat chmod chroot cp dd df echo expr kill ln ls mkdir +progs mv rm rmdir sleep sync + +# /sbin stuff + +progs chown clri disklabel dmesg fdisk +progs mknod mount reboot restore swapon umount + +progs mount_msdos mount_cd9660 + +ln restore rrestore +ln chown chgrp + +# /usr/bin stuff + +progs ftp telnet vi grep +ln vi view +ln vi ex + +# finally, we specify the libraries to link in with our binary + +libs -lcrypt -ltelnet -lutil -ll -lm +libs -lcurses -ltermcap -ledit -lgnuregex -lkvm -lz diff --git a/release/pc98/boot_crunch.conf b/release/pc98/boot_crunch.conf new file mode 100644 index 000000000000..9d14ccf08ec4 --- /dev/null +++ b/release/pc98/boot_crunch.conf @@ -0,0 +1,24 @@ +# $FreeBSD$ + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/usr.sbin/pccard + +progs sh find sed test rm +progs pwd ppp +progs sysinstall newfs minigzip cpio fsck fsck_4.2bsd ifconfig route slattach +progs mount_nfs +progs dhclient arp hostname +progs rtsol +progs pccardc pccardd +progs usbd usbdevs +progs tunefs +ln minigzip gzip +ln minigzip gunzip +ln minigzip zcat +ln sh -sh +ln test [ +ln newfs mount_mfs + +libs -ll -ledit -lutil -lkvm -lmd -lcrypt -lftpio -lz -lnetgraph +libs -ldialog -lncurses -lmytinfo -ldisk -lipx diff --git a/release/pc98/dokern.sh b/release/pc98/dokern.sh new file mode 100755 index 000000000000..47296bdc7aae --- /dev/null +++ b/release/pc98/dokern.sh @@ -0,0 +1,161 @@ +#!/bin/sh + +# $FreeBSD$ + +if [ $# -lt 1 ]; then + FDSIZE=NORMAL +else + FDSIZE=$1 +fi + +ARCH="`uname -m`" + +# First check for the standard x86 PC class. +if [ "${ARCH}" = "i386" ]; then + +if [ "${FDSIZE}" = "SMALL" ]; then + +sed -e '/ pci$/d' \ + -e '/ adv/d' \ + -e '/ ahc/d' \ + -e '/ amd/d' \ + -e '/ isp/d' \ + -e '/ ncr/d' \ + -e '/ sym/d' \ + -e '/ de/d' \ + -e '/ fxp/d' \ + -e '/ tx/d' \ + -e '/ vx/d' \ + -e '/ wx/d' \ + -e '/ dc/d' \ + -e '/ pcn/d' \ + -e '/ rl/d' \ + -e '/ sf/d' \ + -e '/ sis/d' \ + -e '/ ste/d' \ + -e '/ tl/d' \ + -e '/ vr/d' \ + -e '/ wb/d' \ + -e '/ xl/d' \ + -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +else + +sed -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/ncr/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/wds/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +fi + +echo "options NETGRAPH" +echo "options NETGRAPH_ETHER" +echo "options NETGRAPH_PPPOE" +echo "options NETGRAPH_SOCKET" + +# Otherwise maybe it's an alpha, and it has big binaries. +elif [ "${ARCH}" = "alpha" ]; then + +sed -e '/pty/d' \ + -e '/DEC_3000_300/d' \ + -e '/DEC_3000_500/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ sl /d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/NOBLOCKRANDOM/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSV/d' \ + -e '/P1003_1B/d' \ + -e '/_KPOSIX_PRIORITY_SCHEDULING/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/MSDOSFS/d' \ + -e '/ncr/d' \ + -e '/ le /d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/vpo/d' \ + -e '/uhci/d' \ + -e '/ohci/d' \ + -e '/usb/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ukbd/d' \ + -e '/ulpt/d' \ + -e '/umass/d' \ + -e '/ums/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/aue/d' \ + -e '/cue/d' \ + -e '/kue/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' +fi + +# reset maxusers to something lower +echo "maxusers 5" + +echo "options NFS_NOSERVER" +echo "options SCSI_NO_OP_STRINGS" +echo "options SCSI_NO_SENSE_STRINGS" diff --git a/release/pc98/fixit_crunch.conf b/release/pc98/fixit_crunch.conf new file mode 100644 index 000000000000..29a0b0128d13 --- /dev/null +++ b/release/pc98/fixit_crunch.conf @@ -0,0 +1,38 @@ +# $FreeBSD$ + +# first, we list the source dirs that our programs reside in. These are +# searched in order listed to find the dir containing each program. + +srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin +srcdirs /usr/src/gnu/usr.bin /usr/src/usr.bin/vi +srcdirs /usr/src/sbin/pc98 + +# second, we list all the programs we want to include in our crunched binary. +# The order doesn't matter. Any program that needs hard links to it gets an +# `ln' directive. + +# /bin stuff + +progs cat chmod chroot cp dd df echo expr kill ln ls mkdir +progs mv rm rmdir sleep sync + +# /sbin stuff + +progs chown clri disklabel dmesg fdisk +progs mknod mount reboot restore swapon umount + +progs mount_msdos mount_cd9660 + +ln restore rrestore +ln chown chgrp + +# /usr/bin stuff + +progs ftp telnet vi grep +ln vi view +ln vi ex + +# finally, we specify the libraries to link in with our binary + +libs -lcrypt -ltelnet -lutil -ll -lm +libs -lcurses -ltermcap -ledit -lgnuregex -lkvm -lz diff --git a/release/picobsd/Makefile b/release/picobsd/Makefile new file mode 100644 index 000000000000..238a82126e2b --- /dev/null +++ b/release/picobsd/Makefile @@ -0,0 +1,31 @@ +# $FreeBSD$ +# +# Top level Makefile for PicoBSD + +# Please submit any changes to the freebsd-small mailing list for +# discussion prior to committing. + +MAINTAINER= freebsd-small + +# install looks like a partially completed target, +# but I don't want to finish this work. +# FIXME +# CONFIGS = custom dial isp net router +CONFIGS = custom + +all clean tidy: + for i in ${CONFIGS}; do \ + (cd $$i; \ + echo '----- Building in' $$i; \ + make $@); \ + done + @if [ "$@" = "clean" ]; then \ + rm -f *~; \ + fi + +floppy floppy2: + @echo Please build this target from one of the ${CONFIGS} subdirectories. + +# Build one subdirectory +${CONFIGS}: + cd $@; make clean all diff --git a/release/picobsd/README.html b/release/picobsd/README.html new file mode 100644 index 000000000000..aca246fe0d73 --- /dev/null +++ b/release/picobsd/README.html @@ -0,0 +1,19 @@ +<html> +<body> +<h1><b><center> PicoBSD Development Kit </center></b></h1> + +<p>All documentation, instructions, list of supported hardware and FAQ are +in doc/ directory. If they are missing, go to the doc/src/ subdirectory and +do a 'make'. The docs are marked with HTML tags, but we try to keep +them readable even without a browser. + +<p>Please start from <A HREF="doc/intro.html">here</a> for general +description of the project and its features, or just go directly +<A HREF="doc/how2build.html">here</a> for detailed instructions on how to +build your version of PicoBSD. + +<p>Enjoy!</p> + +<! $FreeBSD$ > +</body> +</html> diff --git a/release/picobsd/README.luigi b/release/picobsd/README.luigi new file mode 100644 index 000000000000..4261a1a797c7 --- /dev/null +++ b/release/picobsd/README.luigi @@ -0,0 +1,77 @@ +In this file i try to document the overall architecture of PicoBSD +source tree. + + ./ Per-image directory-tree and generic trees. + + build/ Main build scripts and Makefiles. + build: main build script + stage1: invoked by build + clean: to clean up previous compilations + Makefile.conf + makefile to edit config file and build kernel + Makefile.mfs + makefile to create the memory filesystem + Makefile.crunch + makefile to handle the crunched directory + mfs.mtree + mtree cmd -- structure of the mfs tree + + floppy.tree/ + Default files to fill the floppy and mfs trees. + Can be overridden by listing files to be removed in + ${TYPE}/floppy.tree.exclude, and putting files to be replaced + in ${TYPE}/floppy.tree/ + + doc/ + documentation (unchanged from original) + + help/ + help files in various languages. The suffix is the two letter + country code for the language. Currently only .en and .pl + used. + + tinyware/ + various small programs used instead of the corresponding + full-blown utilities. + + $TYPE/ source and config files for the various image types. + +Structure of each image type is as follows: + + Makefile.mfs + Makefile used to build/populate the MFS. Only needs two + lines typically: + + MY_DEVS=std .... + .include "../build/Makefile.mfs" + + PICOBSD + kernel config file. One line is required + + #PicoBSD mfs_size init_name mfs_inodes floppy_inodes + e.g. + #PicoBSD 2400 init 4096 32768 + + crunch1/ + Directory with crunched config etc. Main files: + crunch.conf main config file for crunchgen + crunch.inc (optional) file included in crunchgen + Makefiles, used e.g. to set make variables + such as RELEASE_CRUNCH or similar. + + floppy.tree/ + local files to be put into the floppy/mfs trees instead + of the ones in ../build/floppy.tree + + floppy.tree.exclude + list of files to be omitted in the copy from ../build/floppy.tree + + floppy.tree.${SITE}/ + site-specific files which update the ones taken from one + of the two places above. Typically they are passwd, hosts, + rc.conf, rc.firewall things to go in /etc + + lang/ + language-dependant files (trimmed from the original one) + + diff --git a/release/picobsd/Version b/release/picobsd/Version new file mode 100644 index 000000000000..871bd81a0d5f --- /dev/null +++ b/release/picobsd/Version @@ -0,0 +1 @@ +VER=0.500 diff --git a/release/picobsd/bridge/Makefile.mfs b/release/picobsd/bridge/Makefile.mfs new file mode 100644 index 000000000000..3579e34c6f34 --- /dev/null +++ b/release/picobsd/bridge/Makefile.mfs @@ -0,0 +1,8 @@ +# +# $FreeBSD$ +# + +MY_DEVS= std tun2 vty10 fd0 ad0 pty0 cuaa0 cuaa1 bpf0 bpf1 bpf2 + +.include "../build/Makefile.mfs" + diff --git a/release/picobsd/bridge/PICOBSD b/release/picobsd/bridge/PICOBSD new file mode 100644 index 000000000000..b25dab8024f5 --- /dev/null +++ b/release/picobsd/bridge/PICOBSD @@ -0,0 +1,117 @@ +# +# $FreeBSD$ +# +# Line starting with #PicoBSD contains PicoBSD build parameters +#marker def_sz init MFS_inodes floppy_inodes +#PicoBSD 2200 init 8192 32768 +options MD_ROOT_SIZE=2200 # same as def_sz + +machine i386 +#cpu I386_CPU # we do not want this on current... +cpu I486_CPU +cpu I586_CPU +cpu I686_CPU +ident PICOBSD +maxusers 20 + +#options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +#options INET6 +options FFS #Berkeley Fast Filesystem +options FFS_ROOT #FFS usable as root device [keep this!] +#options BOOTP #Use BOOTP to obtain IP address/hostname +options MD_ROOT #MD is a potential root device + +#options NFS #Network Filesystem +#options NFS_ROOT #NFS usable as root device, NFS required + +#options MSDOSFS #MSDOS Filesystem +#options CD9660 #ISO 9660 Filesystem +#options CD9660_ROOT #CD-ROM usable as root, CD9660 required +#options DEVFS #Device Filesystem +#options PROCFS #Process filesystem +#options USERCONFIG #boot -c editor +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] + +options DDB + +options IPFIREWALL +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPDIVERT # divert (for natd) +options PCI_QUIET #quiets PCI code on chipset settings + +# Support for bridging and bandwidth limiting +options DUMMYNET +options BRIDGE +options HZ=1000 +options NMBCLUSTERS=4096 + +device isa +device pci + +# Floppy drives +device fdc + +# ATA and ATAPI devices +device ata +device atadisk # ATA disk drives +device atapicd # ATAPI CDROM drives +options ATA_STATIC_ID #Static device numbering + +# atkbdc0 controls both the keyboard and the PS/2 mouse +device atkbdc 1 # At keyboard controller +device atkbd +#device psm # do we need the mouse ?? + +device vga # VGA screen + +# syscons is the default console driver, resembling an SCO console +device sc 1 + +# Floating point support - do not disable. +device npx + +# Serial (COM) ports +device sio + +# Audio support +#device pcm + +# PCCARD (PCMCIA) support +#device card # pccard bus +#device pcic # PCMCIA bridge + +# Parallel port +#device ppc +#device ppbus # Parallel port bus (required) +#device lpt # Printer +#device plip # TCP/IP over parallel +#device ppi # Parallel port interface device + +# +# The following Ethernet NICs are all PCI devices. +# +device miibus +#device de # DEC/Intel DC21x4x (``Tulip'') +device fxp # Intel EtherExpress PRO/100B (82557, 82558) +device xl # 3Com +device rl # RealTek 8129/8139 +device vx # 3Com 3c590, 3c595 (``Vortex'') +device wx # Intel Gigabit Ethernet Card (``Wiseman'') +device dc # DEC/Intel 21143 and various workalikes +device ed + +device loop # Network loopback +device ether # Ethernet support +device tun # Packet tunnel. +#device vn #Vnode driver (turns a file into a device) +device pty # Pseudo-ttys (telnet etc) +device md # Memory "disks" +#device gif 4 # IPv6 and IPv4 tunneling +#device faith 1 # IPv6-to-IPv4 relaying (translation) +#device tap + + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +#device bpf # Berkeley packet filter diff --git a/release/picobsd/bridge/PICOBSD.hints b/release/picobsd/bridge/PICOBSD.hints new file mode 100644 index 000000000000..580dd1a3381e --- /dev/null +++ b/release/picobsd/bridge/PICOBSD.hints @@ -0,0 +1,39 @@ +# $FreeBSD$ +hint.fdc.0.at="isa" +hint.fdc.0.port="0x3F0" +hint.fdc.0.irq="6" +hint.fdc.0.drq="2" +hint.fd.0.at="fdc0" +hint.fd.0.drive="0" +hint.ata.0.at="isa" +hint.ata.0.port="0x1F0" +hint.ata.0.irq="14" +hint.ata.1.at="isa" +hint.ata.1.port="0x170" +hint.ata.1.irq="15" +hint.atkbdc.0.at="isa" +hint.atkbdc.0.port="0x060" +hint.atkbd.0.at="atkbdc" +hint.atkbd.0.irq="1" +hint.psm.0.at="atkbdc" +hint.psm.0.irq="12" +hint.vga.0.at="isa" +hint.sc.0.at="isa" +hint.npx.0.at="nexus" +hint.npx.0.port="0x0F0" +hint.npx.0.irq="13" +hint.sio.0.at="isa" +hint.sio.0.port="0x3F8" +hint.sio.0.flags="0x10" +hint.sio.0.irq="4" +hint.sio.1.at="isa" +hint.sio.1.port="0x2F8" +hint.sio.1.irq="3" +hint.ed.0.at="isa" +hint.ed.0.port="0x280" +hint.ed.0.irq="5" +hint.ed.0.maddr="0xd8000" +hint.ed.1.at="isa" +hint.ed.1.port="0x300" +hint.ed.1.irq="5" +hint.ed.1.maddr="0xd0000" diff --git a/release/picobsd/bridge/crunch1/crunch.conf b/release/picobsd/bridge/crunch1/crunch.conf new file mode 100644 index 000000000000..7b3845621c71 --- /dev/null +++ b/release/picobsd/bridge/crunch1/crunch.conf @@ -0,0 +1,123 @@ +# +# $FreeBSD$ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# Default build options. +buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec +# sources for ns & vm +srcdirs ../../tinyware + +progs init # 4KB. +progs fsck # 24KB. +progs ifconfig # 4KB. +progs sh # 36KB. +ln sh -sh +progs inetd # 12KB. +progs df # 0KB. +progs ps # 4KB. +progs ns # 4KB. +ln ns netstat +progs vm # 0KB. +progs cat # 0KB. +progs test # 0KB. +ln test [ +progs echo # 0KB. +progs hostname # 0KB. +progs ln # 0KB. +progs login # 4KB. +progs getty # 4KB. +progs stty # 4KB. +progs w # 0KB. +progs msg # 0KB. +ln msg dmesg +progs kget # 0KB. +progs reboot # 0KB. +progs cp # 0KB. (strange!) +progs rm +progs mkdir +progs rmdir +progs ls +progs chmod +progs chown +progs mv +progs sysctl +progs route +progs swapon # 0KB. +progs pwd_mkdb # 0KB. +progs dev_mkdb # 0KB. +progs mount +progs umount +# progs # mount_msdos umount # comcontrol +progs kill mount_std # natd + +progs minigzip # 0KB. +ln minigzip gzip +progs ee # 32KB. +libs -lncurses +progs tcpdump # 48KB. +special tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump +progs arp # 0KB. +progs disklabel # 4KB. +progs fdisk # 4KB. +progs vnconfig # 0KB. +progs du # 0KB. +progs tail # 0KB. +progs tee # 0KB. + +progs pwd less # pppd +ln less more +progs grep # 16KB. +progs passwd # 0KB. +progs date # 4KB. +progs mount_nfs # 0KB. +ln mount_nfs nfs +progs ping # 4KB. +progs routed # 28KB. +progs ipfw # 12KB. +progs traceroute # 0KB. +# progs mount_cd9660 # 4KB. +# ln mount_cd9660 cd9660 +# progs newfs # 12KB. +#ln newfs mount_mfs +ln chown chgrp +# ln mount_msdos msdos +ln mount_std procfs +ln mount_std mount_procfs + +# you can either use telnet/telnetd, or ssh +progs telnet # 20KB. +progs telnetd # 12KB. +#progs ftp # 28KB. +#progs tar # 32KB. + +### Check the ssh license! If you want to use this, +### go to /usr/ports/security/ssh, do a make extract configure +#progs sshd +#special sshd srcdir /usr/ports/security/ssh/work/ssh-1.2.27 +#special sshd objvar SSHD_OBJS +#progs ssh +#ln ssh ssh1 +#special ssh srcdir /usr/ports/security/ssh/work/ssh-1.2.27 +#special ssh objvar SSH_OBJS +#progs scp +#special scp srcdir /usr/ports/security/ssh/work/ssh-1.2.27 +#special scp objvar SCP_OBJS + +# progs vi # ?? +# libs -lcurses # for vi + +### ee uses ncurses instead of curses +libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -lmytinfo -lipx -lz -lpcap -lalias -lwrap +libs -ltermcap -lgnuregex -ltelnet # -lcurses diff --git a/release/picobsd/bridge/floppy.tree.exclude b/release/picobsd/bridge/floppy.tree.exclude new file mode 100644 index 000000000000..adfc6cc75420 --- /dev/null +++ b/release/picobsd/bridge/floppy.tree.exclude @@ -0,0 +1,2 @@ +etc/snmpd.conf +etc/ppp diff --git a/release/picobsd/bridge/lang/motd.en b/release/picobsd/bridge/lang/motd.en new file mode 100644 index 000000000000..23675879a00f --- /dev/null +++ b/release/picobsd/bridge/lang/motd.en @@ -0,0 +1,9 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (bridge) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m + +For more info contact the author (abial@freebsd.org). + diff --git a/release/picobsd/build/Makefile b/release/picobsd/build/Makefile new file mode 100644 index 000000000000..d0b2aea4f4ad --- /dev/null +++ b/release/picobsd/build/Makefile @@ -0,0 +1,250 @@ +# PicoBSD Makefile +# +# $FreeBSD$ +# + +# Building a PicoBSD kernel involves four basic operations: +# +# 1. Build a kernel. This is done by the 'kernel' target. +# 2. Build a PicoBSD file system. This file system is loaded into an +# MFS at boot time. This is done by the 'fs' target. +# 3. Build a single executable file for all the programs, and install it in +# the mfs image. This is done by the 'crunch' target. +# 4. Build a floppy image containing the MFS image and some helper code +# to boot it. This is done by the 'image' target. +# 5. Copy the image to the floppy. Done by the 'copy' target. + +# You can set the SRC variable which points to your source tree. It's +# /usr/src by default (most people shouldn't change it). +SRC ?= /usr/src +EDITOR = vi + +# LANGUAGE language to be used (en or pl) +LANGUAGE = en + +# FLOPPY_SIZE floppy size in KB (default to 1440) +FLOPPY_SIZE = 1440 + +# BUILDDIR is this directory +BUILDDIR = ${.CURDIR} + +# These programs are built with non-standard parameters. To be sure of +# getting them right, we need to rebuild every time; otherwise we might +# trip over the 'make world' objects. +# To do this right, we need to build the objects in a different directory. +# FIXME. +SPECIAL_PROGS = ../../../usr.bin/login ../../../usr.bin/passwd + +# Get default parameters for MFS +.include "mfsinfo" + +# MFS information +MFS_NAME = fs.PICOBSD +MFS_MOUNTPOINT = mmnt +MFS_VNODE = /dev/vn0 +# /etc/rc for the mfs image. This reads the real stuff off the floppy +MFS_RC = floppy.tree/etc/mfs.rc + +FLOPPY_NAME = picobsd.bin +FLOPPY_VNODE = /dev/vn1 +FLOPPY_MOUNTPOINT = fmnt + +# Variables for building kernel +CONF ?= $(SRC)/sys/i386/conf +CONFFILE = PICOBSD${suffix} +COMPILE = $(SRC)/sys/compile/$(CONFFILE) +KERNFILE = $(COMPILE)/kernel + +FDEV ?= /dev/fd0 + +# DEVFS is currently broken. Always set this. +# +NO_DEVFS = yes + +# Should we keep this? +VER = 0.445 + +all: kernel.gz ${MFS_NAME} crunch ${FLOPPY_NAME} copy crunch-2 + +kernel.gz: ${COMPILE}/kernel + @echo "--> Compressing kernel" + cp -p ${COMPILE}/kernel kernel + strip kernel + strip --remove-section=.note --remove-section=.comment kernel + gzip -f -9 -v -n kernel + @ls -l kernel.gz + +# Create the MFS image file +${MFS_NAME}: ${MFS_VNODE} ${MFS_MOUNTPOINT} + @echo "--> Building and mounting MFS image vnode" + -umount -f ${MFS_MOUNTPOINT} + -umount -f ${MFS_VNODE} + rm -f .mfs_mounted + -vnconfig -u ${MFS_VNODE} + rm -f ${MFS_NAME} + dd of=${MFS_NAME} if=/dev/zero count=${MFS_SIZE} bs=1k + awk 'BEGIN {printf "%c%c", 85, 170}' | \ + dd of=${MFS_NAME} obs=1 seek=510 conv=notrunc 2> /dev/null + vnconfig -s labels -c ${MFS_VNODE} ${MFS_NAME} + dd if=/boot/boot1 of=${MFS_NAME} conv=notrunc + disklabel -rw vn0 auto + newfs -i ${MFS_INODES} -m 0 -p 0 -o space ${MFS_VNODE}c + make .mfs_mounted + make -f Makefile.mfs DESTDIR=${MFS_MOUNTPOINT} LANGUAGE=${LANGUAGE} + make -f Makefile.mfs devnodes DESTDIR=${MFS_MOUNTPOINT} LANGUAGE=${LANGUAGE} + MFS_MOUNTPOINT=${MFS_MOUNTPOINT} INIT=${INIT} VER=${VER} BUILDDIR=${BUILDDIR} LANGUAGE=${LANGUAGE} + +# Populate the MFS image. +crunch: ${MFS_MOUNTPOINT} + @echo "--> Populating MFS image" + -vnconfig -c ${MFS_VNODE} ${MFS_NAME} + make .mfs_mounted + # We need to make login with other options + for i in ${SPECIAL_PROGS}; do (cd $$i; make clean); done + cd crunch1; make SRC=${SRC} INIT=${INIT}; make install MFS_MOUNTPOINT=../${MFS_MOUNTPOINT} + # who can tell me how these damned help files get in here? + rm -rf ${MFS_MOUNTPOINT}/sbin/help + # Other files for the mfs file system + (cd mfs; tar cXf ../floppy.tree.exclude - . | (cd ../${MFS_MOUNTPOINT}; tar xf -)) + cd ${MFS_MOUNTPOINT}; chown -R root * + df -ik ${MFS_MOUNTPOINT} + umount ${MFS_MOUNTPOINT} + rm .mfs_mounted + fsck -p ${MFS_VNODE} + +# Create and mount the floppy image +${FLOPPY_NAME}: ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} ${MFS_NAME} .mfs_mounted + @echo "--> Preparing ${FLOPPY_SIZE}kB floppy filesystem" + -umount ${FLOPPY_VNODE} + rm -f .floppy_mounted + -vnconfig -u ${FLOPPY_VNODE} + dd of=${FLOPPY_NAME} if=/dev/zero count=${FLOPPY_SIZE} bs=1k + awk 'BEGIN {printf "%c%c", 85, 170}' | \ + dd of=${FLOPPY_NAME} obs=1 seek=510 conv=notrunc + -vnconfig -s labels -c ${FLOPPY_VNODE} ${FLOPPY_NAME} + dd if=/boot/boot1 of=${FLOPPY_NAME} conv=notrunc + disklabel -Brw -b /boot/boot1 -s /boot/boot2 ${FLOPPY_VNODE}c fd${FLOPPY_SIZE} + newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space ${FLOPPY_VNODE}c + make .floppy_mounted + +copy: ../floppy.tree/boot .floppy_mounted + @echo "--> Populating floppy filesystem from ../floppy.tree" + @echo -- Make a loader + kgzip -o floppy.tree/boot/loader /boot/loader + @echo -- copy base floppy tree + (wd=`pwd`; cd ../floppy.tree ; tar cXhf $${wd}/floppy.tree.exclude - . ) | \ + (cd ${FLOPPY_MOUNTPOINT} ; tar xvf - ) + @echo -- Now update from our private floppy tree if it exists + @echo -- Local files in `pwd`/floppy.tree + if [ -d floppy.tree ] ; then \ + (cd floppy.tree; tar cXhf ../floppy.tree.exclude - .) | \ + (cd ${FLOPPY_MOUNTPOINT} ; tar xvf - ); \ + fi + # We get stuff here that we can't use. When the transition + # to Makefile-based build is complete, we can delete this. + # XXX + rm -rf ${FLOPPY_MOUNTPOINT}/etc + (cd floppy.etc; tar czvXf ../floppy.tree.exclude ../${FLOPPY_MOUNTPOINT}/etc.tar.gz .) + df -ik ${FLOPPY_MOUNTPOINT} + @echo -- Generate password file if we don't have one on the floppy. + @echo -- The variable PASSWD is defined in mfsinfo + if [ ${PASSWD} = NO ] ; then \ + cp -p ${FLOPPY_MOUNTPOINT}/etc/master.passwd .; \ + pwd_mkdb -d . master.passwd; \ + mv spwd.db ${FLOPPY_MOUNTPOINT}/etc/; \ + rm pwd.db master.passwd; \ + fi + cp kernel.gz ${FLOPPY_MOUNTPOINT}/kernel.gz + if [ -f .mfs_mounted ]; then \ + umount ${MFS_VNODE}; \ + rm .mfs_mounted; \ + fi + @echo -- Insert the MFS image + gzip -9cv ${MFS_NAME} > ${FLOPPY_MOUNTPOINT}/${MFS_NAME}.gz + (echo "-> Fixing permissions"; cd ${FLOPPY_MOUNTPOINT}; chown -R root *) + df -ik ${FLOPPY_MOUNTPOINT} + umount ${FLOPPY_MOUNTPOINT} + rm .floppy_mounted + +floppy: + @if [ -f .floppy_mounted ]; then \ + umount ${FLOPPY_MOUNTPOINT}; \ + rm .floppy_mounted; \ + fi + @echo Copying ${FLOPPY_NAME} to ${FDEV}c. This will take about 50 seconds. + @dd if=${FLOPPY_NAME} of=${FDEV}c bs=36b >/dev/null + @echo Safe to remove disk from ${FDEV} + +floppy2: + @if [ -d crunch2 ]; then \ + if [ ! -d crunch2/floppy2 ]; then \ + (cd crunch2; make); \ + fi; \ + echo copying crunch2/floppy to ${FDEV}c. This will take about 50 seconds.; \ + cd crunch2/floppy2; tar czvf - . | dd of=/dev/rfd0 conv=sync; \ + echo Safe to remove disk from ${FDEV}; \ + else \ + echo No second floppy; \ + fi + +# crunch-2: Build second floppy +crunch-2: + if [ -d crunch2 ]; then cd crunch2; make; fi + +# Secondary targets + +${COMPILE}/kernel: ${CONFFILE} + @echo "--> Building kernel" + grep -q MD_ROOT ${CONFFILE}; if [ $$? -ne 0 ]; then \ + echo -- '***** Config file must include MD_ROOT'; \ + exit 1; \ + fi + cp ${CONFFILE} ${CONF}; \ + cd ${CONF}; \ + config ${CONFFILE}; \ + cd ${COMPILE}; \ + make depend all + +# Device nodes for the vnode devices +${FLOPPY_VNODE} ${MFS_VNODE}: + (cd /dev; ./MAKEDEV `basename $@`) + +# Directories to make +${MFS_MOUNTPOINT} ${FLOPPY_MOUNTPOINT} ../floppy.tree/boot: + mkdir -p $@ + +tidy: umount vnunconfig + rm -f ${MFS_NAME} ${MFS_NAME}.gz ${FLOPPY_NAME} *~ Make.log kernel.gz + +clean: tidy + if [ -d floppy.tree ]; then \ + cd floppy.tree; rm -f boot/loader; \ + fi + rm -rf ${MFS_MOUNTPOINT} ${FLOPPY_MOUNTPOINT} crunch1.conf + cd crunch1; make clean + if [ -d crunch2 ]; then cd crunch2; make clean; fi + if [ -d ${COMPILE} ] ; then cd ${COMPILE}; make clean; fi + +# XXX Just for testing +vnconfig: vnunconfig + vnconfig -c ${MFS_VNODE} ${MFS_NAME} + vnconfig -c ${FLOPPY_VNODE} ${FLOPPY_NAME} + +vnunconfig: + -vnconfig -u ${MFS_VNODE} + -vnconfig -u ${FLOPPY_VNODE} + +mount: .floppy_mounted .mfs_mounted + +umount: + -umount ${MFS_VNODE} ${MFS_MOUNTPOINT} ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} + rm -f .floppy_mounted .mfs_mounted + +.floppy_mounted: + mount ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} + touch $@ + +.mfs_mounted: + mount ${MFS_VNODE} ${MFS_MOUNTPOINT} + touch $@ + diff --git a/release/picobsd/build/Makefile.conf b/release/picobsd/build/Makefile.conf new file mode 100644 index 000000000000..92bf2ec4914b --- /dev/null +++ b/release/picobsd/build/Makefile.conf @@ -0,0 +1,26 @@ +# $FreeBSD$ +# +# Makefile for building PICOBSD kernels + +SRC?=/usr/src +CONF?=$(SRC)/sys/i386/conf + +CONFFILE=PICOBSD${suffix} +COMPILE=$(SRC)/sys/compile/$(CONFFILE) +KERNFILE=$(COMPILE)/kernel + +all: $(KERNFILE) + + +${CONF}/${CONFFILE}: PICOBSD + cp PICOBSD ${CONF}/${CONFFILE} + cp PICOBSD.hints ${CONF}/${CONFFILE}.hints + +${COMPILE}: ${CONF}/${CONFFILE} + (cd ${CONF}; config ${CONFFILE}; cd ${COMPILE}; \ + make KERNEL=kernel -DNO_MODULES depend ) + +$(KERNFILE): ${COMPILE} + (cd ${COMPILE}; \ + make KERNEL=kernel -DNO_MODULES) + diff --git a/release/picobsd/build/Makefile.crunch b/release/picobsd/build/Makefile.crunch new file mode 100644 index 000000000000..62e899c06363 --- /dev/null +++ b/release/picobsd/build/Makefile.crunch @@ -0,0 +1,38 @@ +# +# $FreeBSD$ +# +SRC?=/usr/src + +all: crunch + +crunch: + @cat crunch.conf|sed -e "s@/usr/src@${SRC}@" >crunch1.conf + -@( if [ -f crunch.inc ] ; then \ + crunchgen -p ${PICO_OBJ} -o -h ./crunch.inc ./crunch1.conf ; \ + else \ + crunchgen -p ${PICO_OBJ} -o ./crunch1.conf ; \ + fi ) + @${MAKE} -f crunch1.mk + strip --remove-section=.note --remove-section=.comment crunch1 + + +clean: + if [ -f crunch1.mk ]; then \ + make -f crunch1.mk realclean ; \ + fi ; + rm -f crunch1* + +install: + cp crunch1 ${MFS_MOUNTPOINT}/stand/crunch + chmod 555 ${MFS_MOUNTPOINT}/stand/crunch + for i in `crunchgen -l crunch1.conf` ; \ + do \ + ln ${MFS_MOUNTPOINT}/stand/crunch ${MFS_MOUNTPOINT}/stand/$${i}; \ + done + rm ${MFS_MOUNTPOINT}/stand/crunch + # Install the MIB files + #mkdir -p ${MFS_MOUNTPOINT}/usr/local/share/snmp/mibs + #cp ../../net/crunch1/mibs/*.txt ${MFS_MOUNTPOINT}/usr/local/share/snmp/mibs/ + + +.include <bsd.prog.mk> diff --git a/release/picobsd/build/Makefile.mfs b/release/picobsd/build/Makefile.mfs new file mode 100644 index 000000000000..f1b501dc9f5d --- /dev/null +++ b/release/picobsd/build/Makefile.mfs @@ -0,0 +1,48 @@ +# +# $FreeBSD$ +# + +DESTDIR?=${MFS_MOUNTPOINT} + +STAND_LINKS?= bin sbin usr/local/bin +USR_LINKS?= bin sbin libexec +#PL_LOCALE_LINKS?= pl polish +MY_DEVS?= std tun2 cuaa0 cuaa1 cuaa2 vty10 fd0 ad0 pty0 ttyd0 cuaa0 wd1 wd2 wd3 bpf0 bpf1 sa0 sa1 + +all: tree links + +tree: + @echo "--- making tree" + @( if [ -f mfs.mtree ] ; then \ + mtree -deU -f mfs.mtree -p ${DESTDIR}; \ + else \ + mtree -deU -f ../build/mfs.mtree -p ${DESTDIR} ; \ + fi ) + +links: tree + @echo "--- making links" + (cd ${DESTDIR}; \ + for i in ${STAND_LINKS}; \ + do \ + ln -s /stand $${i}; \ + done; \ + cd var/run; \ + ln -s /dev/null log; \ + cd ../../usr; \ + for i in ${USR_LINKS}; \ + do \ + ln -s /stand $${i}; \ + done; \ + cd share/misc;\ + ln -s /etc/termcap termcap; ) + + +# We don't do it under 'all' because it's needed only on non-DEVFS systems +devnodes: tree + @echo "--- making device nodes" + (cd ${DESTDIR}/dev; \ + ln -s /dev/MAKEDEV; \ + ./MAKEDEV ${MY_DEVS}; \ + rm MAKEDEV) + +clean: diff --git a/release/picobsd/build/build b/release/picobsd/build/build new file mode 100755 index 000000000000..1e8a6a5677ac --- /dev/null +++ b/release/picobsd/build/build @@ -0,0 +1,387 @@ +#!/bin/sh - + +# +# $FreeBSD$ +# +# You can set the SRC variable which points to your source tree. It's +# /usr/src by default (most people shouldn't change it). +SRC=/usr/src +OBJ=/usr/obj-pico + +# --------- YOU SHOULD NOT NEED TO CHANGE ANYTHING BELOW ----------- +# The "build" script will ask you for parameters. Just run it... :-) +# --------- YOU SHOULD NOT NEED TO CHANGE ANYTHING BELOW ----------- + +# EDITOR is the editor you use +EDITOR=${EDITOR:-vi} +# LANGUAGE language to be used (en or pl) +LANGUAGE=en +# SITE site-specific files +SITE= + +# FLOPPY_SIZE floppy size in KB (default to 1440) +FLOPPY_SIZE=1440 # 1440 1480 1720 (the latter will not boot!) + +# DEVFS is currently broken. Always set this. +# +NO_DEVFS=yes + +# RISU is where dialog replies go. +RISU=.build.reply + +# abort in case of error... +set -e + +. ../Version + +# support symbolically linked custom directory +BUILDDIR=`pwd` +export BUILDDIR + +# assign default values to variables. +set_defaults() { + TYPE=${TYPE:-dial} # PicoBSD type (isp, router, net, custom, ... + + # build image list + cat /dev/null > .image.list + for i in ../* ; do + if [ -d $i -a -f $i/PICOBSD ] ; then + a=`awk '/^#PicoBSD/ {print $2, $3, $4, $5, $6}' < $i/PICOBSD` + if [ "$a" != "" ]; then + echo "`basename $i` $a" >>.image.list + fi + fi + done + while read name sz init mfs_in floppy_in ; do + if [ "$name" != "#" -a $name != "" ] ; then + eval ${name}_DFLT_SIZE=$sz + eval ${name}_INIT=$init + eval ${name}_MFS_INODES=$mfs_in + eval ${name}_FLOPPY_INODES=$floppy_in + fi + done < .image.list +} + +set_msgs() { + MSG1="Type: ${TYPE}" + if [ "X${TYPE}" = "Xcustom" ] ; then + MSG1="${MSG1} (from ${CUST_DIR})" + fi + + MSG="PicoBSD build -- Current parameters:\n\n\t1. ${MSG1}\n\ +\t2. MFS size: ${MFS_SIZE} kB\n\t3. Language: ${LANGUAGE}\n\ +\t4. Site-info: ${SITE}\n" +} + + +# Main build procedure. It calls another script (stage1) +main() { + + if [ "X${TYPE}" = "X" ] ; then + echo "^G^G^G-> wrong floppy type" + exit 10 + fi + + export suffix + + clear + set_msgs + printf "${MSG}" + echo "-> We'll use the sources living in ${SRC}" + echo "" + echo "-> I hope you have checked the ../${TYPE}/PICOBSD config file..." + echo "" + echo "" + sleep 2 + + export MFS_SIZE LANGUAGE TYPE SRC OBJ NO_DEVFS INIT + export SITE MFS_INODES FLOPPY_INODES FLOPPY_SIZE + + ./stage1 + if [ "X$?" != "X0" ] ; then + echo "" + echo "-> ERROR in \"${i}\" script. Aborting the build process." + echo -n "-> Cleaning temporary files... " + umount -f ${MFS_MOUNTPOINT} + rm -rf ${MFS_MOUNTPOINT} + vnconfig -u /dev/rvn${VNUM} + ./clean ${TYPE} + echo "Done." + exit 10 + fi + echo "==================== ${i} completed =====================" +} + +# check for existing custom config directory and ask user if they want to use it +# +# Note that specifying an alternate directory is broken due to relative +# path assumptions during the kernel compilation phase of the build. +# For now just dialog-ify. + +check_for_old_custom() { + KEEP_CUSTOM=no + if [ ! -d ../custom ] ; then + return + fi + + CUSTOMLINK=`ls -l ../custom | awk -F\> '{ print $2 }' | awk '{ print $1 }'` + if dialog --title "Custom directory setup" --yesno "A custom configuration\n ${CUSTOMLINK}\nalready exists. Would you like to use it?" 7 50 ; then + KEEP_CUSTOM=yes + CUST_DIR=${CUSTOMLINK} + else + KEEP_CUSTOM=no + fi + + # If custom is just a simple directory, assume the user wants it + +} + +# Ask for, and set the custom config directory + +set_custom() { + dialog --title "Custom directory setup" --inputbox \ + "Please enter the full path to the directory containing your \ + custom setup. \ + This directory tree must be laid out exactly like the standard \ + ones. (E.g. you can type in /home/abial/work/custom, which \ + should contain crunch1/, floppy.tree/, lang/ )." \ + 10 70 2> ${RISU} + CUST_DIR=`cat ${RISU}` +} + +# Set type of floppy interactively. Also set the various defaults +# associated to each type. We can override them manually afterwards. + +set_type() { + eval MFS_SIZE=$"${TYPE}_DFLT_SIZE" + eval INIT=$"${TYPE}_INIT" + eval MFS_INODES=$"${TYPE}_MFS_INODES" + eval FLOPPY_INODES=$"${TYPE}_FLOPPY_INODES" + suffix="-${TYPE}" + if [ "${MFS_SIZE}" = "" ] ; then + echo "TYPE $TYPE not found!" + sleep 2 + TYPE="" + fi + + case ${TYPE} in + custom) + check_for_old_custom + if [ "X${KEEP_CUSTOM}" != "Xyes" ] ; then + [ -r ../custom ] && rm -f ../custom + set_custom + (cd ..; ln -sf ${CUST_DIR} custom) + fi + ;; + esac + +} + + +build_package() { + touch build.status + echo "##############################################" >>build.status + echo "## `date` ">>build.status + echo "##############################################" >>build.status + ./clean dial + for y in en pl ; do + for z in dial router net isp ; do + TYPE=${z} + LANGUAGE=${y} + set_type + echo "---------------------------------------------">>build.status + echo "Building TYPE=${z}, LANGUAGE=${y}, SIZE=${MFS_SIZE}" >>build.status + main + if [ "X$?" != "X0" ] ; then + echo " ** FAILED! **">>build.status + else + echo " (ok)">>build.status + fi + mv picobsd.bin pb_${y}${suffix}.bin + echo "Calling ./clean for ${TYPE}, ${LANGUAGE}, ${MFS_SIZE}">>build.status + ./clean ${TYPE} + done + done + exit 0 +} + +# Set build parameters interactively + +main_dialog() { + while [ true ] ; do + set_msgs + dialog --menu "PicoBSD build menu -- ver ${VER} (22aug1999)" 19 70 12 \ + N "No change, build it" \ + T "${MSG1}" \ + K "edit Kernel config file for ${TYPE}" \ + E "Edit crunch.conf file for ${TYPE}" \ + S "MFS Size: ${MFS_SIZE}kB" \ + L "Language: ${LANGUAGE}" \ + I "Init type: ${INIT}" \ + F "Floppy size: ${FLOPPY_SIZE}kB" \ + M "MFS bytes per inode: ${MFS_INODES}" \ + U "UFS bytes per inode: ${FLOPPY_INODES}" \ + $ "Site-info: ${SITE}" \ + Q "Quit" \ + 2> ${RISU} + ans=`cat ${RISU}` + rm ${RISU} + case ${ans} in + T) + dialog --menu "Setup the type of configuration" 12 70 5 \ + `awk '{ print $1, $1 }' < .image.list` \ + 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + TYPE=`cat ${RISU}` + set_type + fi + ;; + I) + dialog --menu "Choose your init(8) program" \ + 10 70 2 init "Standard init (requires getty)" \ + oinit "small init from TinyWare" 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + INIT=`cat ${RISU}` + fi + ;; + + K) ${EDITOR} ../${TYPE}/PICOBSD ;; + + E) ${EDITOR} ../${TYPE}/crunch1/crunch.conf ;; + + S) + dialog --title "MFS Size setup" --inputbox \ +"MFS size depends on what you need to put on the MFS image. Typically \ +ranges between 820kB (for very small bridge/router images) to \ +as much as 2500kB kB for a densely packed image. \ +Keep in mind that this memory is \ +totally lost to other programs. Usually you want to keep \ +this as small as possible. " 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + MFS_SIZE=`cat ${RISU}` + if [ "${MFS_SIZE}" = "" ] ; then + eval MFS_SIZE=$"${TYPE}_DFLT_SIZE" + fi + fi + ;; + + L) + dialog --menu "Please choose language" \ + 10 40 2 en English pl Polish 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + LANGUAGE=`cat ${RISU}` + fi + ;; + + \$) + dialog --title "Site info setup" --inputbox \ + "Please enter the full path to the directory \ + containing site-specific setup. \ + This directory tree must contain files that replace \ + standard ones in floppy.tree/ and mfs.tree/ . " \ + 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + SITE=`cat ${RISU}` + fi + ;; + + F) + dialog --menu "Set floppy size" 15 70 4 \ + 1440 "1.44MB" 1720 "1.72MB" \ + 2880 "2.88MB" 4096 "4MB" 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + FLOPPY_SIZE=`cat ${RISU}` + fi + ;; + + M) + dialog --title "MFS bytes per inode:" --inputbox \ + "Enter MFS bytes per inode (typically 4096..65536). \ + A larger value means fewer inodes but more space on MFS" \ + 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + MFS_INODES=`cat ${RISU}` + if [ "${MFS_INODES}" = "" ] ; then + eval MFS_INODES=$"${TYPE}_DFLT_MFS_INODES" + fi + fi + ;; + + U) + dialog --title "Floppy bytes per inode:" --inputbox \ + "Enter floppy bytes per inode (typically 3072..65536). \ + A larger value means fewer inodes but more space on the floppy." \ + 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + FLOPPY_INODES=`cat ${RISU}` + if [ "${FLOPPY_INODES}" = "" ] ; then + eval FLOPPY_INODES=$"${TYPE}_DFLT_FLOPPY_INODES" + fi + fi + ;; + + N) break 2 + ;; + + Q) exit 0 ;; + + *) echo "Unknown option \"${ans}\". Try again." + sleep 2 + clear + ;; + esac + done +} + +# Call the build procedure +# Install image +do_install() { + dialog --title "Build ${TYPE} completed" --inputbox \ +"\nThe build process was completed successfuly.\n\ +`cat .build.reply` \n\n\ +Now we are going to install the image on the floppy.\n\ +Please insert a blank floppy in /dev/fd0.\\n +WARNING: the contents of the floppy will be permanently erased!\n\ +\n\ +Your options:\n\ + * ^C or [Cancel] to abort,\n\ + * Enter to install \"picobsd.bin\",\n\ + * name of other file to install.\n\ +" 20 80 2> ${RISU} + if [ "$?" = "0" ]; then + FILENAME=`cat ${RISU}` + if [ "${FILENAME}" = "" ] ; then + FILENAME=picobsd.bin + fi + echo "Writing ${FILENAME}..." + dd if=${FILENAME} of=/dev/rfd0.${FLOPPY_SIZE} + else + echo "Ok, the image is in picobsd.bin" + fi + echo "Done." +} + +#------------------------------------------------------------------- +# Main entry of the script + +interactive="YES" +if [ "$1" = "-n" ] ; then + interactive="NO" + shift +fi +TYPE=$1 +SITE=$2 +set_defaults +set_type + +# If $1="package", it creates a neat set of floppies + +if [ "$1" = "package" ] ; then + build_package +fi +if [ "$interactive" = "YES" ] ; then + main_dialog +fi +main # build ${TYPE} +do_install +exit 0 diff --git a/release/picobsd/build/clean b/release/picobsd/build/clean new file mode 100755 index 000000000000..8e579ae6744f --- /dev/null +++ b/release/picobsd/build/clean @@ -0,0 +1,47 @@ +#! /bin/sh - + +# +# $FreeBSD$ +# +set -e + +# Get a list of targets. +TARGETS="" +for i in ../* ; do + if [ -d $i -a -f $i/PICOBSD ] ; then + TARGETS="$TARGETS `basename $i`" + fi +done + +if [ $# -lt 1 ]; then + echo "What to clean?" + echo "Possible targets are:${TARGETS} or 'all'" + exit 1 +fi + +if [ "$1" = "all" ]; then + list=${TARGETS} + old="old" +else + list=$1 + old=$1 +fi +if [ -f picobsd.bin ]; then + mv -f picobsd.bin picobsd.bin.${old} +fi + +rm -fr kernel kernel.gz fs.PICOBSD *.o *core *.db \ + .build.reply stage1.out build.status .image.list \ + floppy.tree loader +cd .. +rm -rf help/tmp_hlp +echo "===================== $0 tools started ====================" +for j in $list ; do + echo "===================== $0 $j started ======================" + (cd ${j}/crunch1; \ + if [ -f crunch1.mk ]; then \ + make -f crunch1.mk realclean ; \ + fi ; \ + make -f ../../build/Makefile.crunch clean) + echo "=============== $0 $j completed successfuly ==============" +done diff --git a/release/picobsd/build/config b/release/picobsd/build/config new file mode 100644 index 000000000000..f3bc238e83ff --- /dev/null +++ b/release/picobsd/build/config @@ -0,0 +1,15 @@ +# config variables for PicoBSD floppies. +# This file is sourced by the main build script. It should +# only contain assignment to shell variables. +# +# The type-specific "config" file is sourced after this one, so +# you can override things there. + +# The two variables below contain the list of links and device entries +# which are created on the mfs image. + +STAND_LINKS=${STAND_LINKS:-"bin sbin usr/bin usr/sbin usr/libexec \ + usr/local/bin"} + +MY_DEVS=${MY_DEVS:-"std tun2 cuaa0 cuaa1 cuaa2 vty10 fd0 ad0 pty0 \ + ttyd0 cuaa0 bpf0 bpf1 sa0 sa1"} diff --git a/release/picobsd/build/mfs.mtree b/release/picobsd/build/mfs.mtree new file mode 100644 index 000000000000..5c8e70ce6b20 --- /dev/null +++ b/release/picobsd/build/mfs.mtree @@ -0,0 +1,70 @@ +# +# $FreeBSD$ +# +/set type=dir uname=root gname=wheel mode=0755 +. + cdrom + .. + dev + .. + dos + .. + etc + .. + fd + .. + home + user + .. + .. + mnt + .. + mnt1 + .. + mnt2 + .. + proc + .. + root + .. + stand + .. + start_floppy + .. + tftpboot + .. + tmp mode=01777 + .. + usr + local + etc + .. + lib + snmp + .. + .. + .. + share + misc + .. + locale + .. + syscons + .. + nls + .. + .. + .. + var + db + .. + run + .. + spool + lock + .. + .. + .. + wd + .. +.. diff --git a/release/picobsd/build/picobsd b/release/picobsd/build/picobsd new file mode 100755 index 000000000000..78765804b76f --- /dev/null +++ b/release/picobsd/build/picobsd @@ -0,0 +1,710 @@ +#!/bin/sh - +# +# $FreeBSD$ +# +# The new PicoBSD build script. Invoked as +# +# picobsd [options] floppy_type site_name +# +# Where floppy_type is a directory where the picobsd config info +# is held, and ${floppy_type}/floppy.tree.${site_name} contains +# optional site-specific configuration. +# +# For Options, see the bottom of the file where the processing is +# done... so +# +# This script depends on the following files: +# +# in ${PICO_TREE} : +# Makefile.conf Makefile used to build the kernel +# config shell variables, sourced here. +# mfs.mtree mtree config file +# +# floppy.tree/ files which go on the floppy +# mfs_tree/ files which go onto the mfs +# +# in ${MY_TREE} : +# PICOBSD kernel config file +# config shell variables, sourced here. +# crunch.conf crunchgen configuration +# floppy.tree.exclude files from floppy.tree/ which we do not need here. +# floppy.tree/ local additions to the floppy.tree +# floppy.tree.${site}/ same as above, site specific. + +# +#--- here are various functions used by the script. +#--- The main entry point is at the end. +# + +# initialize some shell variables used by the script. + +init_vars() { # OK + + # if you include the floppy tree in the mfs, you + # can boot from the image via diskless. + INCLUDE_FLOPPY_IN_MFS="yes" + + # SRC points to your FreeBSD source tree. + # OBJ points to the obj tree. Normally /usr/obj-pico. + # PICO_TREE is where standard picobsd stuff resides. + # MY_TREE (set later) is where this floppy type resides. + # START_DIR is the directory where we start + # BUILDDIR is the build directory, which is the current one. + + SRC=${SRC:-/usr/src} + OBJ=${OBJ:-/usr/obj-pico} + PICO_TREE=${PICO_TREE:-/usr/src/release/picobsd} + START_DIR=`pwd` + + # Various temporary files and directories. + # User replies will be put in $RISU + RISU=${RISU:-`mktemp "/tmp/reply.XXXXXXXXXX"`} + MFS_MOUNTPOINT=`mktemp -d "/tmp/picobsd.XXXXXXXXXX"` + + MFS_NAME=fs.PICOBSD + + # EDITOR is the editor you use + # SITE is site_name above. + # FLOPPY_SIZE floppy size in KB (default to 1440). You can use 1480, + # 1720, 2880, etc. but beware that only 1440 and 1480 will boot + # from 1.44M floppy drives (1480 will not work on vmware). + EDITOR=${EDITOR:-vi} + SITE= + FLOPPY_SIZE=${FLOPPY_SIZE:-1440} + + NO_DEVFS=yes # DEVFS is currently broken. Always set this. + + # Find a suitable vnode + VNUM=`mount | awk "/vn/ { num++ } END { printf \"%d\", num }"` + log "---> Using vn${VNUM}..." + + # Location of the boot blocks (in case you want them custom-built) + boot1=/boot/boot1 + boot2=/boot/boot2 + + # abort in case of error... + set -e + + trap fail 2 # catch user interrupt + free_vnode +} + +# log something on stdout if verbose. +log() { + if [ "$verbose" != "" ] ; then + printf "%s\n" "$*" + read -p "(log) enter to continue" foo + fi +} + +# set_type <type> looks for the floppy type specified as +# first argument in user- or standard- directory. +# If found set variables accordingly. + +set_type() { # OK + a=$1 + for i in ${START_DIR}/${a} ${PICO_TREE}/${a} ; do + if [ -d $i -a -f $i/PICOBSD -a -f $i/crunch.conf ] ; then + set -- `cat $i/PICOBSD | \ + awk '/^#PicoBSD/ {print $2, $3, $4, $5, $6}'` + if [ "$1" != "" ]; then + MFS_SIZE=$1 ; INIT=$2 + MFS_INODES=$3 ; FLOPPY_INODES=$4 + name=`(cd $i ; pwd) ` + name=`basename $name` + MY_TREE=$i + BUILDDIR=${START_DIR}/build_dir-${name} + log "---> Matching file $name in $i" + return ; + fi + fi + done + echo "Type $a NOT FOUND" +} + +clean_tree() { + if [ "${name}" = "" ] ; then + echo "---> wrong floppy type" + exit 3 + fi + rm -rf ${BUILDDIR} +} + +# prepare a message to be printed in the dialog menus. +set_msgs() { # OK + MSG1="Type: ${THETYPE} name $name" + + MSG="PicoBSD build -- Current parameters:\n\n\t1. ${MSG1}\n\ +\t2. MFS size: ${MFS_SIZE} kB\n\ +\t3. Site-info: ${SITE}\n\t4. Full-path: ${MY_TREE}\n" +} + + +# Main build procedure. +build_image() { + if [ "${name}" = "" ] ; then + echo "-> wrong floppy type" + final_cleanup + exit 1 + fi + clear + set_msgs + printf "${MSG}" + echo "-> We'll use the sources living in ${SRC}" + echo "-> vnode is $VNUM" + echo "" + echo "-> I hope you have checked the PICOBSD config file..." + echo "" + echo "" + + init_stage1 + do_kernel + populate_floppy_fs # things which go into floppy + create_mfs + populate_mfs # things which go into mfs + fill_floppy_image # copies everything into the floppy +} + +build_package() { + touch build.status + echo "##############################################" >>build.status + echo "## `date` ">>build.status + echo "##############################################" >>build.status + ./clean dial + for z in dial router net isp ; do + set_type ${z} + echo "---------------------------------------------">>build.status + echo "Building TYPE=${z}, SIZE=${MFS_SIZE}" >>build.status + build_image + if [ "X$?" != "X0" ] ; then + echo " ** FAILED! **">>build.status + else + echo " (ok)">>build.status + fi + mv ${BUILDDIR}/picobsd.bin ${BUILDDIR}/picobsd.${name}.bin + echo "Cleaning ${z}">>build.status + clean_tree + done + exit 0 +} + +# Set build parameters interactively + +main_dialog() { + while [ true ] ; do + set_msgs + dialog --menu "PicoBSD build menu -- (19 feb 2000)" 19 70 12 \ + N "--> READY, build it <---" \ + T "${MSG1}" \ + K "edit Kernel config file" \ + E "Edit crunch.conf file" \ + S "MFS Size: ${MFS_SIZE}kB" \ + I "Init type: ${INIT}" \ + F "Floppy size: ${FLOPPY_SIZE}kB" \ + M "MFS bytes per inode: ${MFS_INODES}" \ + U "UFS bytes per inode: ${FLOPPY_INODES}" \ + $ "Site-info: ${SITE}" \ + Q "Quit" \ + 2> ${RISU} + ans=`cat ${RISU}` + rm ${RISU} + case ${ans} in + T) + l="" + for i in ${START_DIR} ${START_DIR}/* ${PICO_TREE}/* ; do + if [ -d $i -a -f $i/PICOBSD -a -f $i/crunch.conf ]; then + l="$l `basename $i` `basename $i`" + fi + done + log $l + dialog --menu "Setup the type of configuration" 12 70 5 $l \ + 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + THETYPE=`cat ${RISU}` + set_type $THETYPE + fi + ;; + I) + dialog --menu "Choose your init(8) program" \ + 10 70 2 init "Standard init (requires getty)" \ + oinit "small init from TinyWare" 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + INIT=`cat ${RISU}` + fi + ;; + + K) ${EDITOR} ${MY_TREE}/PICOBSD ;; + + E) ${EDITOR} ${MY_TREE}/crunch.conf ;; + + S) + dialog --title "MFS Size setup" --inputbox \ +"MFS size depends on what you need to put on the MFS image. Typically \ +ranges between 820kB (for very small bridge/router images) to \ +as much as 2500kB kB for a densely packed image. \ +Keep in mind that this memory is \ +totally lost to other programs. Usually you want to keep \ +this as small as possible. " 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + MFS_SIZE=`cat ${RISU}` + fi + ;; + + \$) + dialog --title "Site info setup" --inputbox \ + "Please enter the full path to the directory \ + containing site-specific setup. \ + This directory tree must contain files that replace \ + standard ones in floppy.tree/ and mfs.tree/ . " \ + 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + SITE=`cat ${RISU}` + fi + ;; + + F) + dialog --menu "Set floppy size" 15 70 4 \ + 1440 "1.44MB" 1720 "1.72MB" \ + 2880 "2.88MB" 4096 "4MB" 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + FLOPPY_SIZE=`cat ${RISU}` + fi + ;; + + M) + dialog --title "MFS bytes per inode:" --inputbox \ + "Enter MFS bytes per inode (typically 4096..65536). \ + A larger value means fewer inodes but more space on MFS" \ + 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + MFS_INODES=`cat ${RISU}` + fi + ;; + + U) + dialog --title "Floppy bytes per inode:" --inputbox \ + "Enter floppy bytes per inode (typically 3072..65536). \ + A larger value means fewer inodes but more space on the floppy." \ + 10 70 2> ${RISU} || rm ${RISU} + if [ -f ${RISU} ] ; then + FLOPPY_INODES=`cat ${RISU}` + fi + ;; + + N) break 2 + ;; + + Q) exit 0 ;; + + *) echo "Unknown option \"${ans}\". Try again." + sleep 2 + clear + ;; + esac + done +} + +# Call the build procedure +# Install image +do_install() { + dialog --title "Build ${TYPE} completed" --inputbox \ +"\nThe build process was completed successfuly.\n\ +`cat .build.reply` \n\n\ +Now we are going to install the image on the floppy.\n\ +Please insert a blank floppy in /dev/fd0.\\n +WARNING: the contents of the floppy will be permanently erased!\n\ +\n\ +Your options:\n\ + * ^C or [Cancel] to abort,\n\ + * Enter to install \"picobsd.bin\",\n\ +" 20 80 2> ${RISU} + if [ "$?" = "0" ]; then + echo "Writing picobsd.bin..." + dd if=${BUILDDIR}/picobsd.bin of=/dev/rfd0.${FLOPPY_SIZE} + else + echo "Ok, the image is in picobsd.bin" + fi + echo "Done." +} + + +#------------------------------------------------------------------- + +init_stage1() { + + # read config variables from a global and then a type-specific file + # + . ${PICO_TREE}/build/config + if [ -f ${MY_TREE}/config ]; then + . ${MY_TREE}/config + fi + + export MFS_MOUNTPOINT # used in the makefiles. + export PICO_OBJ # used in the makefiles + export SRC # used in the makefiles. + + PICO_OBJ=${OBJ}/picobsd/${TYPE} + + if [ ! -d ${BUILDDIR} ]; then + log "Creating builddir" + mkdir $BUILDDIR + if [ ! -d ${BUILDDIR}/crunch ]; then + log "creating crunch dir" + mkdir ${BUILDDIR}/crunch + fi + else + rm -f ${BUILDDIR}/kernel.gz ${BUILDDIR}/${MFS_NAME} # cleanup... + fi +} + +# invoke the makefile to compile the kernel. +# Then copy it here and strip as much as possible. +do_kernel() { # OK + log "---> Preparing kernel "$name" in $MY_TREE" + export name SRC # used in this makefile + (cd $MY_TREE; make -v -f ${PICO_TREE}/build/Makefile.conf ) + cp -p ${SRC}/sys/compile/PICOBSD-${name}/kernel ${BUILDDIR}/kernel || \ + fail $? missing_kernel + (cd ${BUILDDIR}; + strip kernel + strip --remove-section=.note --remove-section=.comment kernel + ) +} + +# Populate the variable part of the floppy filesystem. Should be +# done before the MFS because it might need to be copied there as well. +# +# This involves three subtrees, in this order: +# +# 1. a standard one from which type-specific files are excluded; +# 2. a type-specific one; +# 3. a site-specific one. +# +# Files are first copied to a local tree and then compressed. + +populate_floppy_fs() { # OK + + dst=${BUILDDIR}/floppy.tree + log "---> Populating floppy filesystem..." + + # clean relics from old compilations. This is the destination. + rm -rf $dst || true + mkdir $dst + + excl=${MY_TREE}/floppy.tree.exclude + if [ -f ${excl} ] ; then + excl="--exclude-from ${excl}" + log "---> Exclude following files from generic tree: +`cat ${excl}`" + else + excl="" + fi + (cd ${PICO_TREE}/floppy.tree ; tar -cf - --exclude CVS ${excl} . ) | \ + (cd ${dst} ; tar x${TAR_VERBOSE}f - ) + log "---> Copied from generic floppy-tree `echo; ls -laR ${dst}`" + + srcdir=${MY_TREE}/floppy.tree + if [ -d ${srcdir} ] ; then + log "---> update with type-specific files:" + (cd ${srcdir} ; tar -cf - --exclude CVS . ) | \ + (cd ${dst} ; tar x${TAR_VERBOSE}f - ) + log "---> Copied from type floppy-tree `echo; ls -laR ${dst}`" + else + log "---> No type-specific floppy-tree" + fi + if [ -d ${srcdir}.${SITE} ] ; then + log "-> update with site-specific (${SITE}) files:" + (cd ${srcdir}.${SITE} ; tar -cf - --exclude CVS . ) | \ + (cd ${dst} ; tar x${TAR_VERBOSE}f - ) + log "---> Copied from site floppy-tree `echo; ls -laR ${dst}`" + else + log "---> No site-specific floppy-tree" + fi + # gzip returns an error if it fails to compress some file + (cd $dst + gzip -9 etc/* + log "---> Compressed files in etc/ +`ls -l etc`" + ) || true +} + +create_mfs() { # OK + log "---> Preparing MFS filesystem..." + + free_vnode + + # zero-fill the MFS image + init_fs_image ${BUILDDIR}/${MFS_NAME} ${MFS_SIZE} + + log "---> Labeling MFS image" + # Disklabel "auto" behaves strangely for sizes < 1024K. Basically + # it fails to install a label on the system. On the other hand, + # if you provide a specific disk type, the boot code is not + # installed so you have more space on the disk... + # For small image sizes, use std disktypes + if [ ${MFS_SIZE} -lt 1024 ] ; then + disklabel -rw vn${VNUM} fd${MFS_SIZE} || fail $? mfs_disklabel + else + disklabel -rw vn${VNUM} auto || fail $? mfs_disklabel + fi + newfs -i ${MFS_INODES} -m 0 -p 0 -o space /dev/rvn${VNUM}c > /dev/null + mount /dev/vn${VNUM}c ${MFS_MOUNTPOINT} || fail $? no_mount + log "`df /dev/vn${VNUM}c`" +} + +# Populate the memory filesystem with binaries and non-variable +# configuration files. +# First do an mtree pass, then create directory links and device entries, +# then run crunchgen etc. to build the binary and create links. +# Then copy the specific/generic mfs_tree. +# Finally, if required, make a copy of the floppy.tree onto /fd + +populate_mfs() { + log "---> Populating MFS tree..." + cd ../${TYPE} + + log "---> Running mtree ..." + if [ -f ${MY_TREE}/mfs.mtree ] ; then + a=${MY_TREE}/mfs.mtree + else + a=${PICO_TREE}/build/mfs.mtree + fi + mtree -deU -f $a -p ${MFS_MOUNTPOINT} > /dev/null || fail $? mtree + + # XXX create links + for i in ${STAND_LINKS}; do + ln -s /stand ${MFS_MOUNTPOINT}/$i + done + ln -s /dev/null ${MFS_MOUNTPOINT}/var/run/log + ln -s /etc/termcap ${MFS_MOUNTPOINT}/usr/share/misc/termcap + + if [ "${NO_DEVFS}" != "" ] ; then + (cd ${MFS_MOUNTPOINT}/dev ; ln -s /dev/MAKEDEV ; + ./MAKEDEV ${MY_DEVS}; rm MAKEDEV) + fi + + ( + cd ${BUILDDIR}/crunch + log "---> Making and installing crunch1 from `pwd`..." + a=${BUILDDIR}/crunch1.conf + cat ${MY_TREE}/crunch.conf|sed -e "s@/usr/src@${SRC}@" | \ + sed -e "s@CWD@${MY_TREE}@" > $a + arg="" + if [ -f ${MY_TREE}/crunch.inc ] ; then + h="-h ${MY_TREE}/crunch.inc" + fi + crunchgen -p ${PICO_OBJ} -o $arg -m ${BUILDDIR}/crunch.mk $a || true + # failure is not critical here + log "Now make -f crunch.mk" + make -s -f ${BUILDDIR}/crunch.mk + strip --remove-section=.note --remove-section=.comment crunch1 + mv crunch1 ${MFS_MOUNTPOINT}/stand/crunch + chmod 555 ${MFS_MOUNTPOINT}/stand/crunch + log "---> Making links for binaries..." + for i in `crunchgen -l $a` ; do + ln ${MFS_MOUNTPOINT}/stand/crunch ${MFS_MOUNTPOINT}/stand/${i}; + done + rm $a + ) || fail $? crunch + + if [ -f ${MFS_MOUNTPOINT}/stand/sshd ] ; then + log "creating host key for sshd" + ssh-keygen -f ${MFS_MOUNTPOINT}/etc/ssh_host_key -N "" -C "root@picobsd" + fi + + if [ -d ${MY_TREE}/mfs_tree ]; then + log "---> Copy site-specific MFS tree..." + MFS_TREE=${MY_TREE}/mfs_tree + else + log "---> Copy generic MFS tree..." + MFS_TREE=${PICO_TREE}/mfs_tree + fi + (cd ${MFS_TREE} ; tar -cf - --exclude CVS . ) | \ + (cd ${MFS_MOUNTPOINT} ; tar x${TAR_VERBOSE}f - ) + + if [ "${INCLUDE_FLOPPY_IN_MFS}" = "yes" ]; then + log "---> Copy generic floppy_tree into MFS..." + cp -Rp ${BUILDDIR}/floppy.tree/* ${MFS_MOUNTPOINT}/fd + fi + (log "---> Fixing permissions"; cd ${MFS_MOUNTPOINT}; chown -R root . ) + df -ik ${MFS_MOUNTPOINT} + umount ${MFS_MOUNTPOINT} + fsck -p /dev/rvn${VNUM}c + vnconfig -u vn${VNUM} +} + +# free as much as possible from the vnode +free_vnode() { + umount ${MFS_MOUNTPOINT} 2> /dev/null || true + umount /dev/vn${VNUM} 2> /dev/null || true + vnconfig -u vn${VNUM} 2> /dev/null || true +} + +final_cleanup() { + free_vnode + rm -rf ${MFS_MOUNTPOINT} ${RISU} 2> /dev/null || true +} + +# fail errno errcode +# This function is used to trap errors and print msgs +# +fail() { + errno=$1 + errcode=$2 + echo "---> fail: Error <$errno> error code <$errcode>" + case $errcode in + no_vnconfig) + echo "Error while doing vnconfig of ${imgname} on /dev/rvn${VNUM}..." + echo " Most probably your running kernel doesn't have the vn(4) device." + ;; + mfs_disklabel) + echo "Error while labeling ${MFS_NAME} size ${MFS_SIZE}" + ;; + no_mount) + echo "Error while mounting ${MFS_NAME} (/dev/vn${VNUM}c) on ${MFS_MOUNTPOINT}" + ;; + mtree) + echo "Error while making hierarchy in ${MFS_MOUNTPOINT}" + ;; + makedevs) + echo "Error while making devices in ${MFS_MOUNTPOINT}" + ;; + crunch) + echo "Error while building ${name}." + ;; + vnconfig2) + echo "Error while doing vnconfig of floppy.img on /dev/rvn${VNUM}..." + ;; + floppy_disklabel) + echo "Error while doing disklabel on of floppy.img size $FLOPPY_SIZE" + ;; + kernel_compress) + echo "Error while copying compressed kernel to disk" + ;; + mfs_compress) + echo "Error while copying compressed mfs image to disk" + ;; + missing_kernel) + echo "-> ERROR: you must build PICOBSD${suffix} kernel first" + ;; + "") + echo "User break" + errcode="userbreak"; + ;; + *) + echo "unknown error, maybe user break: $errno $errcode" + ;; + esac + echo "---> Aborting $0" + # try to cleanup the vnode. + final_cleanup + exit 2 +} + +# +# Create a zero-filled disk image with a boot sector, and vnconfig it. +# + +init_fs_image() { # filename size_in_kbytes + imgname=$1 ; imgsize=$2 + dd if=/dev/zero of=${imgname} count=${imgsize} bs=1k 2> /dev/null + dd if=${boot1} of=${imgname} conv=notrunc 2> /dev/null + + vnconfig -c vn${VNUM} ${imgname} || fail $? no_vnconfig +} + + +fill_floppy_image() { + log "---> Preparing ${FLOPPY_SIZE}kB floppy filesystem..." + + # correct block and number of sectors according to size. + blocks=${FLOPPY_SIZE}; sectors=18 + if [ "${blocks}" = "1720" ]; then + blocks=1722 ; sectors=21 + elif [ "${blocks}" = "1480" ]; then + blocks=1476 ; + fi + + init_fs_image ${BUILDDIR}/picobsd.bin ${blocks} + + log "---> Labeling floppy image" + disklabel -Brw -b ${boot1} -s ${boot2} vn${VNUM} fd${FLOPPY_SIZE} || \ + fail $? floppy_disklabel + + newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space /dev/vn${VNUM}c > /dev/null + + mount /dev/vn${VNUM}c ${MFS_MOUNTPOINT} + + # preload kernel, compress with kgzip and copy to floppy image + ( + cd ${BUILDDIR} + cc -o wmk ${PICO_TREE}/../write_mfs_in_kernel.c + ./wmk kernel ${MFS_NAME} + rm wmk + kgzip -o kernel.gz kernel + cp -p kernel.gz ${MFS_MOUNTPOINT}/kernel + + # now transfer the floppy tree. If it is already in mfs, dont bother. + if [ "${INCLUDE_FLOPPY_IN_MFS}" != "yes" ]; then + cp -Rp floppy.tree/* ${MFS_MOUNTPOINT} + fi + ) + (log "---> Fixing permissions"; cd ${MFS_MOUNTPOINT}; chown -R root *) + rm -rf ${BUILDDIR}/floppy.tree || true # cleanup + + df -ik ${MFS_MOUNTPOINT} | colrm 70 > .build.reply + free_vnode + rm -rf ${MFS_MOUNTPOINT} + rm ${BUILDDIR}/kernel.gz ${BUILDDIR}/${MFS_NAME} +} + +#------------------------------------------------------------------- +# Main entry of the script + +init_vars + +while [ true ]; do + case $1 in + --floppy_size) + FLOPPY_SIZE=$2 + shift + ;; + -n) + interactive="NO" + ;; + -c*) # clean + clean="YES" + interactive="NO" + ;; + -v) + verbose="YES" + TAR_VERBOSE="v" + ;; + *) + break ; + ;; + + esac + shift +done + +THETYPE=$1 +SITE=$2 +set_type $THETYPE + +# If $1="package", it creates a neat set of floppies + +if [ "$1" = "package" ] ; then + build_package +fi +if [ "$interactive" != "NO" ] ; then + main_dialog +fi +if [ "$clean" = "YES" ] ; then + clean_tree +else + build_image + do_install +fi +final_cleanup +exit 0 diff --git a/release/picobsd/build/stage1 b/release/picobsd/build/stage1 new file mode 100755 index 000000000000..48404178d61d --- /dev/null +++ b/release/picobsd/build/stage1 @@ -0,0 +1,290 @@ +#! /bin/sh - + +# $FreeBSD$ +# +# stage1 -- this script prepares the actual picobsd image + +. ../Version + +set -e # abort in case of untested errors + +# By default, /tmp should exist. +# +MFS_NAME=fs.PICOBSD +MFS_MOUNTPOINT=`mktemp -d "/tmp/picobsd.XXXXXXXXXX"` +export MFS_MOUNTPOINT + +PICO_OBJ=${OBJ}/picobsd/${TYPE} +export PICO_OBJ + +# Location of the boot blocks (in case you want them custom-built) +boot1=/boot/boot1 +boot2=/boot/boot2 + +rm -f kernel.gz ${MFS_NAME} # cleanup... + +# find a suitable vnode +VNUM=`mount | awk "/vn/ { num++ } END { printf \"%d\", num }"` +export VNUM +echo "-> Using vn${VNUM}..." + +trap fail 2 # catch user interrupt + +# free as much as possible from the vnode +free_vnode() { + umount ${MFS_MOUNTPOINT} 2> /dev/null || true + umount /dev/vn${VNUM} 2> /dev/null || true + vnconfig -u /dev/rvn${VNUM} 2> /dev/null || true +} + +# fail errno errcode +# This function is used to trap errors and print msgs +# +fail() { + errno=$1 + errcode=$2 + echo "--> Error $errno code $errcode" + case $errcode in + no_vnconfig) + echo "Error while doing vnconfig of ${MFS_NAME} on /dev/rvn${VNUM}..." + echo " Most probably your running kernel doesn't have the vn(4) device." + ;; + disklabel) + echo "Error while labeling ${MFS_NAME} size ${MFS_SIZE}" + ;; + no_mount) + echo "Error while mounting ${MFS_NAME} (/dev/vn${VNUM}c) on ${MFS_MOUNTPOINT}" + ;; + mtree) + echo "Error while making hierarchy in ${MFS_MOUNTPOINT}" + ;; + makedevs) + echo "Error while making devices in ${MFS_MOUNTPOINT}" + ;; + crunch) + echo "Error while building ../${TYPE}/crunch1..." + ;; + vnconfig2) + echo "Error while doing vnconfig of floppy.img on /dev/rvn${VNUM}..." + ;; + disklabel) + echo "Error while doing disklabel on of floppy.img size $FLOPPY_SIZE" + ;; + kernel_compress) + echo "Error while copying compressed kernel to disk" + ;; + mfs_compress) + echo "Error while copying compressed mfs image to disk" + ;; + missing_kernel) + echo "-> ERROR: you must build PICOBSD${suffix} kernel first" + ;; + *) + echo "unknown error, maybe user break: $errno $errcode" + ;; + esac + echo "-> Aborting $0" + # try to cleanup the vnode. + free_vnode + rm -rf ${MFS_MOUNTPOINT} 2> /dev/null || true + exit 10 +} + +create_mfs() { + echo "-> Preparing MFS filesystem..." + + free_vnode + + # zero-fill the MFS image + dd of=${MFS_NAME} if=/dev/zero count=${MFS_SIZE} bs=1k 2> /dev/null + + vnconfig -s labels -c /dev/rvn${VNUM} ${MFS_NAME} 2>/dev/null || \ + fail $? no_vnconfig + + dd if=/boot/boot1 of=${MFS_NAME} conv=notrunc 2> /dev/null + + # This command does weird things on 2.2.x systems. + # For small image sizes, use std disktypes + if [ ${MFS_SIZE} -lt 1024 ] ; then + disklabel -rw /dev/rvn${VNUM} fd${MFS_SIZE} || fail $? disklabel + else + disklabel -rw vn${VNUM} auto || fail $? disklabel + fi + + newfs -i ${MFS_INODES} -m 0 -p 0 -o space /dev/rvn${VNUM}c + mount /dev/vn${VNUM}c ${MFS_MOUNTPOINT} || fail $? no_mount + + pwd=`pwd` +} + +populate_mfs() { + echo "-> Populating MFS tree..." + cd ../${TYPE} + make -f Makefile.mfs DESTDIR=${MFS_MOUNTPOINT} > /dev/null || \ + fail $? mtree + if [ X"${NO_DEVFS}" != X"" ] ; then + make -f Makefile.mfs DESTDIR=${MFS_MOUNTPOINT} devnodes \ + > /dev/null || fail $? makedevs + fi + + MFS_RC=mfs_tree/etc/rc + if [ ! -f ${MFS_RC} ] ; then # no private version. use generic mfs.rc + MFS_RC=${BUILDDIR}/../${MFS_RC} + fi + if [ "${INIT}" = "oinit" ] ; then + cat ${MFS_RC} | sed -e "s/@VER@/${VER}/g" > ${MFS_MOUNTPOINT}/etc/oinit.rc + else + cat ${MFS_RC} | sed -e "s/@VER@/${VER}/g" > ${MFS_MOUNTPOINT}/etc/rc + fname=mfs_tree/etc/login.conf + if [ ! -f ${fname} ] ; then + fname=${BUILDDIR}/../${fname} + fi + cp ${fname} ${MFS_MOUNTPOINT}/etc/login.conf + fi + + if [ "${TYPE}" = "dial" ] ; then + for i in login dialup; do + cp lang/${i}.${LANGUAGE} ${MFS_MOUNTPOINT}/stand/${i} + done + ln -s /stand/reboot ${MFS_MOUNTPOINT}/stand/shutdown + (cd ../help;\ + rm -rf tmp_hlp;\ + mkdir tmp_hlp;\ + for i in `ls *.hlp.${LANGUAGE}`; do \ + cp $i tmp_hlp/`basename $i .hlp.${LANGUAGE}`;\ + done;\ + cd tmp_hlp;\ + ar -cru help.a *;\ + cp help.a ${MFS_MOUNTPOINT}/help.a) + fi + + echo "-> Making and installing crunch1..." + cd crunch1 + make -f ../../build/Makefile.crunch "SRC=${SRC}" && \ + make -f ../../build/Makefile.crunch install 2>&1 >/dev/null || \ + fail $? crunch + + cd ${pwd} + if [ -f ${MFS_MOUNTPOINT}/stand/sshd ] ; then + echo "creating host key for sshd" + ssh-keygen -f ${MFS_MOUNTPOINT}/etc/ssh_host_key -N "" -C "root@picobsd" + fi + cp -Rp ../mfs_tree/stand/update ${MFS_MOUNTPOINT}/stand/update + + (echo "-> Fixing permissions"; cd ${MFS_MOUNTPOINT}; chown -R root *) + df -ik ${MFS_MOUNTPOINT} + umount ${MFS_MOUNTPOINT} + fsck -p /dev/rvn${VNUM}c + vnconfig -u /dev/rvn${VNUM} +} + +do_kernel() { + echo "-> Preparing kernel..." + (cd ../${TYPE}; make -v -f ${BUILDDIR}/Makefile.conf ) + cp -p ${SRC}/sys/compile/PICOBSD${suffix}/kernel kernel || \ + fail $? missing_kernel + strip kernel + strip --remove-section=.note --remove-section=.comment kernel +} + +do_floppy() { + # On entry we are in /usr/src/release/build. + + echo "==> Preparing ${FLOPPY_SIZE}kB floppy filesystem..." + + # correct block and number of sectors according to size. + blocks=${FLOPPY_SIZE} + sectors=18 + if [ "${blocks}" = "1720" ]; then + blocks=1722 + sectors=21 + elif [ "${blocks}" = "1480" ]; then + blocks=1476 + fi + echo "${sectors} sectors per track" + # create image + dd of=picobsd.bin if=/dev/zero count=${blocks} bs=1k + # put in boot sector so vnconfig and disklabel will not complain + dd if=${boot1} of=picobsd.bin conv=notrunc 2> /dev/null + vnconfig -c /dev/rvn${VNUM} picobsd.bin || fail $? vnconfig2 + + disklabel -Brw -b ${boot1} -s ${boot2} /dev/vn${VNUM}c \ + fd${FLOPPY_SIZE} || \ + fail $? disklabel + + newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space /dev/rvn${VNUM}c + + mount /dev/vn${VNUM}c ${MFS_MOUNTPOINT} + + # preload kernel, compress with kgzip and copy to floppy image + cc -o ./wmk /usr/src/release/write_mfs_in_kernel.c + ./wmk kernel ${MFS_NAME} + rm wmk + kgzip -o kernel.gz kernel + cp -p kernel.gz ${MFS_MOUNTPOINT}/kernel + + echo "==> Populating floppy filesystem..." + + # Configuration files are first copied to a local tree, then + # compressed, then transferred back to the floppy. + rm -rf floppy.tree || true + mkdir floppy.tree + + excl=${BUILDDIR}/../${TYPE}/floppy.tree.exclude + if [ -f ${excl} ] ; then + excl="--exclude-from ${excl}" + echo "Exclude following files from ${excl}:\n===" + cat ${excl} + echo "===" + else + excl="" + fi + (cd ${BUILDDIR}/../floppy.tree ; tar -cf - --exclude CVS ${excl} . ) | \ + (cd floppy.tree ; tar xvf - ) + + srcdir=${BUILDDIR}/../${TYPE}/floppy.tree + if [ -d ${srcdir} ] ; then + echo "-> update with private files:" + (cd ${srcdir} ; tar cf - --exclude CVS . ) | \ + (cd floppy.tree ; tar xvf - ) + fi + if [ -d ${srcdir}.${SITE} ] ; then + echo "-> update with site-specific (${SITE}) files:" + (cd ${srcdir}.${SITE} ; tar cf - --exclude CVS . ) | \ + (cd floppy.tree ; tar xvf - ) + fi + files="motd" + echo "-> Copying language dependent files: ${files} -> ${MFS_MOUNTPOINT}/etc ..." + for i in ${files} ; do + if [ -f ${BUILDDIR}/../${TYPE}/lang/${i}.${LANGUAGE} ] ; then + cat ${BUILDDIR}/../${TYPE}/lang/${i}.${LANGUAGE} | \ + sed -e "s/@VER@/${VER}/g" > floppy.tree/etc/${i} + fi + done + + # XXX check this! i am unsure how it is necessary. + if [ "${TYPE}" = "dial" ] ; then + cp -p floppy.tree/etc/master.passwd . + pwd_mkdb -d . master.passwd + mv spwd.db floppy.tree/etc/ + rm pwd.db master.passwd + fi + # gzip returns an error if it fails to compress some file + gzip -9 floppy.tree/etc/* || true + + # now transfer the floppy tree + cp -Rp floppy.tree/* ${MFS_MOUNTPOINT} + rm -rf floppy.tree || true # cleanup + (echo "-> Fixing permissions"; cd ${MFS_MOUNTPOINT} ; chown -R root *) + + df -ik ${MFS_MOUNTPOINT} | colrm 70 > .build.reply + umount ${MFS_MOUNTPOINT} + rm -rf ${MFS_MOUNTPOINT} + vnconfig -u /dev/rvn${VNUM} + rm kernel.gz ${MFS_NAME} +} + +do_kernel +create_mfs +populate_mfs +do_floppy diff --git a/release/picobsd/build/write_mfs_in_kernel.c b/release/picobsd/build/write_mfs_in_kernel.c new file mode 100644 index 000000000000..379112459ee8 --- /dev/null +++ b/release/picobsd/build/write_mfs_in_kernel.c @@ -0,0 +1,96 @@ +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + * + * This program patches a filesystem into a kernel made with MD_ROOT + * option. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/types.h> +#include <sys/param.h> +#include <sys/stat.h> +#include <ufs/ffs/fs.h> + +static int force = 0; /* don't check for zeros, may corrupt kernel */ + +int +main(int argc, char **argv) +{ + unsigned char *buf_kernel, *buf_fs, *p,*q, *prog; + int fd_kernel, fd_fs, ch, errs=0; + struct stat st_kernel, st_fs; + u_long l; + + prog= *argv; + while ((ch = getopt(argc, argv, "f")) != EOF) + switch(ch) { + case 'f': + force = 1 - force; + break; + default: + errs++; + } + argc -= optind; + argv += optind; + + if (errs || argc != 2) { + fprintf(stderr,"Usage:\n\t%s [-f] kernel fs\n", prog); + exit(2); + } + --argv; /* original prog did not use getopt(3) */ + fd_kernel = open(argv[1],O_RDWR); + if (fd_kernel < 0) { perror(argv[1]); exit(2); } + fstat(fd_kernel,&st_kernel); + fd_fs = open(argv[2],O_RDONLY); + if (fd_fs < 0) { perror(argv[2]); exit(2); } + fstat(fd_fs,&st_fs); + buf_kernel = malloc(st_kernel.st_size); + if (!buf_kernel) { perror("malloc"); exit(2); } + buf_fs = malloc(st_fs.st_size); + if (!buf_fs) { perror("malloc"); exit(2); } + if (st_kernel.st_size != read(fd_kernel,buf_kernel,st_kernel.st_size)) + { perror(argv[1]); exit(2); } + if (st_fs.st_size != read(fd_fs,buf_fs,st_fs.st_size)) + { perror(argv[2]); exit(2); } + for(l=0,p=buf_kernel; l < st_kernel.st_size - st_fs.st_size ; l++,p++ ) + if(*p == 'M' && !strcmp(p,"MFS Filesystem goes here")) + goto found; + fprintf(stderr,"MFS filesystem signature not found in %s\n",argv[1]); + exit(1); +found: + if (!force) + for(l=0,q= p + SBOFF; l < st_fs.st_size - SBOFF ; l++,q++ ) + if (*q) + goto fail; + memcpy(p+SBOFF,buf_fs+SBOFF,st_fs.st_size-SBOFF); + lseek(fd_kernel,0L,SEEK_SET); + if (st_kernel.st_size != write(fd_kernel,buf_kernel,st_kernel.st_size)) + { perror(argv[1]); exit(2); } + exit(0); +fail: + l += SBOFF; + fprintf(stderr,"Obstruction in kernel after %ld bytes (%ld Kbyte)\n", + l, l/1024); + fprintf(stderr,"Filesystem is %ld bytes (%ld Kbyte)\n", + (u_long)st_fs.st_size, (u_long)st_fs.st_size/1024); + exit(1); +} + +/* + * I added a '-f' option to force writing the image into the kernel, even when + * there is already data (i.e. not zero) in the written area. This is useful + * to rewrite a changed MD-image. Beware: If the written image is larger than + * the space reserved in the kernel (with option MD_ROOT) then + * THIS WILL CORRUPT THE KERNEL! + * + */ diff --git a/release/picobsd/custom/Makefile b/release/picobsd/custom/Makefile new file mode 100644 index 000000000000..dc264ac50237 --- /dev/null +++ b/release/picobsd/custom/Makefile @@ -0,0 +1,263 @@ +# PicoBSD Makefile +# +# $Id: Makefile,v 1.1 1999/12/10 17:38:06 grog Exp $ +# +# Taken from: +# +# $FreeBSD$ +# + +# Building a PicoBSD kernel involves four basic operations: +# +# 1. Build a kernel. This is done by the 'kernel' target. +# 2. Build a PicoBSD file system. This file system is loaded into an +# MFS at boot time. This is done by the 'fs' target. +# 3. Build a single executable file for all the programs, and install it in +# the mfs image. This is done by the 'crunch' target. +# 4. Build a floppy image containing the MFS image and some helper code +# to boot it. This is done by the 'image' target. +# 5. Copy the image to the floppy. Done by the 'copy' target. + +# You can set the SRC variable which points to your source tree. It's +# /usr/src by default (most people shouldn't change it). +SRC ?= /usr/src +EDITOR = vi + +# LANGUAGE language to be used (en or pl) +LANGUAGE = en + +# FLOPPY_SIZE floppy size in KB (default to 1440) +FLOPPY_SIZE = 1440 + +# BUILDDIR is this directory +BUILDDIR = ${.CURDIR} + +# These programs are built with non-standard parameters. To be sure of +# getting them right, we need to rebuild every time; otherwise we might +# trip over the 'make world' objects. +# To do this right, we need to build the objects in a different directory. +# FIXME. +SPECIAL_PROGS = ../../../usr.bin/login ../../../usr.bin/passwd + +# Get default parameters for MFS +.include "mfsinfo" + +# MFS information +MFS_NAME = fs.PICOBSD +MFS_MOUNTPOINT = mmnt +MFS_VNODE = /dev/vn0 +# /etc/rc for the mfs image. This reads the real stuff off the floppy +MFS_RC = floppy.tree/etc/mfs.rc + +FLOPPY_NAME = picobsd.bin +FLOPPY_VNODE = /dev/vn1 +FLOPPY_MOUNTPOINT = fmnt + +# Variables for building kernel +CONF ?= $(SRC)/sys/i386/conf +CONFFILE = PICOBSD${suffix} +COMPILE = $(SRC)/sys/compile/$(CONFFILE) +KERNFILE = $(COMPILE)/kernel + +FDEV ?= /dev/fd0 + +# DEVFS is currently broken. Always set this. +# +NO_DEVFS = yes + +# Should we keep this? +VER = 0.445 + +all: kernel.gz ${MFS_NAME} crunch ${FLOPPY_NAME} copy crunch-2 + +kernel.gz: ${COMPILE}/kernel + @echo "--> Compressing kernel" + cp -p ${COMPILE}/kernel kernel + strip kernel + strip --remove-section=.note --remove-section=.comment kernel + gzip -f -9 -v -n kernel + @ls -l kernel.gz + +# Create the MFS image file +${MFS_NAME}: ${MFS_VNODE} ${MFS_MOUNTPOINT} + @(cd ${.CURDIR} && ${MAKE} vnunconfig-mfs 2>&1 > /dev/null) + @echo "--> Building and mounting MFS image vnode" + rm -f ${MFS_NAME} + dd of=${MFS_NAME} if=/dev/zero count=${MFS_SIZE} bs=1k + awk 'BEGIN {printf "%c%c", 85, 170}' | \ + dd of=${MFS_NAME} obs=1 seek=510 conv=notrunc 2> /dev/null + vnconfig -s labels -c ${MFS_VNODE} ${MFS_NAME} + #@cd ${.CURDIR} && ${MAKE} vnconfig-mfs + dd if=/boot/boot1 of=${MFS_NAME} conv=notrunc + disklabel -rw vn0 auto + newfs -i ${MFS_INODES} -m 0 -p 0 -o space ${MFS_VNODE}c + mount ${MFS_VNODE} ${MFS_MOUNTPOINT} + #@cd ${.CURDIR} && ${MAKE} mount-mfs + cd ${.CURDIR} && ${MAKE} -f Makefile.mfs DESTDIR=${MFS_MOUNTPOINT} LANGUAGE=${LANGUAGE} + cd ${.CURDIR} && ${MAKE} -f Makefile.mfs devnodes DESTDIR=${MFS_MOUNTPOINT} LANGUAGE=${LANGUAGE} + MFS_MOUNTPOINT=${MFS_MOUNTPOINT} INIT=${INIT} VER=${VER} BUILDDIR=${BUILDDIR} LANGUAGE=${LANGUAGE} + +# Populate the MFS image. +crunch: ${MFS_MOUNTPOINT} + @(cd ${.CURDIR} && ${MAKE} mount-mfs) + @echo "--> Populating MFS image" + # We need to make login with other options + #for i in ${SPECIAL_PROGS}; do (cd $$i; make clean); done + @(cd ${.CURDIR}/crunch1 && ${MAKE} SRC=${SRC} INIT=${INIT}; ${MAKE} install MFS_MOUNTPOINT=../${MFS_MOUNTPOINT}) + # who can tell me how these damned help files get in here? + rm -rf ${MFS_MOUNTPOINT}/sbin/help + # Other files for the mfs file system + ((cd ${.CURDIR}/mfs; tar cf - .) | (cd ${MFS_MOUNTPOINT}; tar xf -)) + (cd ${MFS_MOUNTPOINT} && chown -R root *) + @df -ik ${MFS_MOUNTPOINT} + @(cd ${.CURDIR} && ${MAKE} umount-mfs) + @fsck -p ${MFS_VNODE} + @(cd ${.CURDIR} && ${MAKE} vnunconfig-mfs) + +# Create and mount the floppy image +${FLOPPY_NAME}: ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} ${MFS_NAME} + @cd ${.CURDIR} && ${MAKE} vnunconfig-floppy + @echo "--> Preparing ${FLOPPY_SIZE}kB floppy filesystem" + dd of=${FLOPPY_NAME} if=/dev/zero count=${FLOPPY_SIZE} bs=1k + awk 'BEGIN {printf "%c%c", 85, 170}' | \ + dd of=${FLOPPY_NAME} obs=1 seek=510 conv=notrunc + #-vnconfig -s labels -c ${FLOPPY_VNODE} ${FLOPPY_NAME} + @cd ${.CURDIR} && ${MAKE} vnconfig-floppy + dd if=/boot/boot1 of=${FLOPPY_NAME} conv=notrunc + disklabel -Brw -b /boot/boot1 -s /boot/boot2 ${FLOPPY_VNODE}c fd${FLOPPY_SIZE} + newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space ${FLOPPY_VNODE}c + #mount ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} + @cd ${.CURDIR} && ${MAKE} mount-floppy + +copy: ${FLOPPY_MOUNTPOINT}/boot/defaults ../floppy.tree/boot kernel.gz + @cd ${.CURDIR} && ${MAKE} mount-floppy + @echo "--> Populating floppy filesystem from ../floppy.tree" + @echo -- Make a loader + #cp /boot/loader floppy.tree/boot + #mv floppy.tree/boot/loader.kz floppy.tree/boot/loader +.if foo + rm ../floppy.tree/boot/loader + mv ../floppy.tree/boot/loader.kz ../floppy.tree/boot/loader +.endif + @echo -- copy base floppy tree + @echo -- Base files + @(cd ${.CURDIR}/../floppy.tree ; tar cXhf ${.CURDIR}/floppy.tree.exclude - . ) | \ + (cd ${FLOPPY_MOUNTPOINT} ; tar xf - ) + @kgzip -o ${FLOPPY_MOUNTPOINT}/boot/loader /boot/loader + @echo -- Now update from our private floppy tree if it exists + @echo -- Local files in `pwd`/floppy.tree + @if [ -d ${.CURDIR}/floppy.tree ] ; then \ + (cd ${.CURDIR}/floppy.tree; tar cXhf ../floppy.tree.exclude - .) | (cd ${FLOPPY_MOUNTPOINT} ; tar xf - ); \ + fi + # We get stuff here that we can't use. When the transition + # to Makefile-based build is complete, we can delete this. + # XXX + @rm -rf ${FLOPPY_MOUNTPOINT}/etc + @(cd ${.CURDIR}/floppy.etc; tar czXf ../floppy.tree.exclude ${.OBJDIR}/${FLOPPY_MOUNTPOINT}/etc.tar.gz .) + @echo -- Generate password file if we don\'t have one on the floppy. + @echo -- The variable PASSWD is defined in mfsinfo + @if [ ${PASSWD} = NO ] ; then \ + cp -p ${FLOPPY_MOUNTPOINT}/etc/master.passwd .; \ + pwd_mkdb -d . master.passwd; \ + mv spwd.db ${FLOPPY_MOUNTPOINT}/etc/; \ + rm pwd.db master.passwd; \ + fi + @cp kernel.gz ${FLOPPY_MOUNTPOINT}/kernel.gz + @echo -- Insert the MFS image + @gzip -9cv ${MFS_NAME} > ${FLOPPY_MOUNTPOINT}/${MFS_NAME}.gz +.if loaderconf + XXX finish this. + cp ${SRC}/sys/boot/forth/loader.conf ${FLOPPY_MOUNTPOINT}/boot/defaults + echo "userconfig_script_load=\"YES\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf + echo "rootfs_load=\"YES\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf + echo "rootfs_name=\"${MFS_NAME}\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf + echo "rootfs_type=\"mfs_root\"" >>${FLOPPY_MOUNTPOINT}/boot/defaults/loader.conf +# for i in frames screen ; do \ +# cp ${SRC}/share/examples/bootforth/$${i}.4th ${FLOPPY_MOUNTPOINT}/boot/; \ +# done +.endif + (echo "-> Fixing permissions"; cd ${FLOPPY_MOUNTPOINT}; chown -R root *) + @cd ${.CURDIR} && ${MAKE} vnunconfig-floppy + +floppy: ${FLOPPY_NAME} + @echo copying ${FLOPPY_NAME} to ${FDEV}c. This will take about 50 seconds. + @echo "wait for the message 'safe to remove' before removing the floppy..." + @dd if=${FLOPPY_NAME} of=${FDEV}c bs=36b >/dev/null + @echo Safe to remove disk from ${FDEV} + +floppy2: + @if [ -d crunch2 ]; then \ + if [ ! -d crunch2/floppy2 ]; then \ + (cd crunch2; make); \ + fi; \ + echo copying crunch2/floppy to ${FDEV}c. This will take about 50 seconds.; \ + cd crunch2/floppy2; tar czf - . | dd of=/dev/rfd0 conv=sync; \ + echo Safe to remove disk from ${FDEV}; \ + else \ + echo No second floppy; \ + fi + +# crunch-2: Build second floppy +crunch-2: + #if [ -d crunch2 ]; then cd crunch2; make; fi + +# Secondary targets + +${COMPILE}/kernel: ${CONFFILE} + @echo "--> Building kernel" + @grep -q MD_ROOT ${.ALLSRC}; if [ $$? -ne 0 ]; then \ + echo -- '***** Config file must include MD_ROOT'; \ + exit 1; \ + fi + cp ${.ALLSRC} ${CONF} + (cd ${CONF}; config ${CONFFILE};) +.if !defined(NO_DEPENDS) + (cd ${COMPILE}; ${MAKE} depend NO_MODULES=1;) +.endif + (cd ${COMPILE}; ${MAKE} all NO_MODULES=1) + +# Device nodes for the vnode devices +${FLOPPY_VNODE} ${MFS_VNODE}: + (cd /dev; ./MAKEDEV `basename $@`) + +# Directories to make +${MFS_MOUNTPOINT} ${FLOPPY_MOUNTPOINT} ${FLOPPY_MOUNTPOINT}/boot/defaults ../floppy.tree/boot: + mkdir -p $@ + +tidy: vnunconfig + rm -f ${MFS_NAME} ${MFS_NAME}.gz ${FLOPPY_NAME} *~ Make.log kernel.gz + +clean: tidy + if [ -d ${.CURDIR}floppy.tree ]; then \ + (cd ${.CURDIR}/floppy.tree; rm -f boot/loader;) \ + fi + rm -rf ${MFS_MOUNTPOINT} ${FLOPPY_MOUNTPOINT} crunch1.conf + (cd ${.CURDIR}/crunch1; make clean) + if [ -d crunch2 ]; then cd crunch2; make clean; fi + if [ -d ${COMPILE} ] ; then cd ${COMPILE}; make clean; fi + +vnconfig: vnconfig-mfs vnconfig-floppy +vnconfig-mfs: ${MFS_VNODE} vnunconfig-mfs + vnconfig -s labels -c ${MFS_VNODE} ${MFS_NAME} +vnconfig-floppy: ${FLOPPY_VNODE} vnunconfig-floppy + vnconfig -s labels -c ${FLOPPY_VNODE} ${FLOPPY_NAME} +vnunconfig: vnunconfig-mfs vnunconfig-floppy +vnunconfig-mfs: ${MFS_VNODE} umount-mfs + @-vnconfig -u ${MFS_VNODE} +vnunconfig-floppy: ${FLOPPY_VNODE} umount-floppy + @-vnconfig -u ${FLOPPY_VNODE} +mount: mount-mfs mount-floppy +mount-mfs: ${MFS_MOUNTPOINT} vnunconfig-mfs vnconfig-mfs + mount ${MFS_VNODE} ${MFS_MOUNTPOINT} +mount-floppy: ${FLOPPY_MOUNTPOINT} vnunconfig-floppy vnconfig-floppy + mount ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} +umount: umount-mfs umount-floppy +umount-mfs: ${MFS_VNODE} ${MFS_MOUNTPOINT} + @-umount ${MFS_VNODE} #${MFS_MOUNTPOINT} +umount-floppy: ${FLOPPY_VNODE} ${FLOPPY_MOUNTPOINT} + @-umount ${FLOPPY_VNODE} #${FLOPPY_MOUNTPOINT} + +SUBDIR= crunch1 + +.include <bsd.obj.mk> +.include <bsd.subdir.mk> diff --git a/release/picobsd/custom/Makefile.conf b/release/picobsd/custom/Makefile.conf new file mode 100644 index 000000000000..29908c53fc5c --- /dev/null +++ b/release/picobsd/custom/Makefile.conf @@ -0,0 +1,21 @@ +# $FreeBSD$ +# +# Makefile for building PICOBSD kernels + +SRC?=/usr/src +CONF?=$(SRC)/sys/i386/conf + +CONFFILE=PICOBSD${suffix} +COMPILE=$(SRC)/sys/compile/$(CONFFILE) +KERNFILE=$(COMPILE)/kernel + +all: $(KERNFILE) + +$(KERNFILE): PICOBSD + cat PICOBSD | grep -v "MD_ROOT" > ${CONF}/${CONFFILE} + echo "options MD_ROOT" >> ${CONF}/${CONFFILE} + (cd ${CONF}; \ + config ${CONFFILE}; \ + cd ${COMPILE}; \ + make depend all) + diff --git a/release/picobsd/custom/Makefile.mfs b/release/picobsd/custom/Makefile.mfs new file mode 100644 index 000000000000..7a373a6dd707 --- /dev/null +++ b/release/picobsd/custom/Makefile.mfs @@ -0,0 +1,44 @@ +# +# $FreeBSD$ +# + +DESTDIR?=${MFS_MOUNTPOINT} + +SBIN_LINKS= bin stand +USR_LINKS= bin sbin libexec +PL_LOCALE_LINKS= pl polish +MY_DEVS= std tun2 cuaa0 cuaa1 vty10 fd0 pty0 ttyd0 bpf0 sa0 ad0s1 ad0s1a + +all: tree links + +tree: + @echo "--- making tree" + @mtree -deU -f ${.CURDIR}/mfs.mtree -p ${DESTDIR} 2>&1 > /dev/null + +links: tree + @echo "--- making links" + @(cd ${DESTDIR}; \ + for i in ${SBIN_LINKS}; \ + do \ + ln -s sbin $${i}; \ + done; \ + cd var/run; \ + ln -s /dev/null log; \ + cd ../../usr; \ + for i in ${USR_LINKS}; \ + do \ + ln -s ../sbin $${i}; \ + done; \ + cd share/misc;\ + ln -s /etc/termcap termcap; ) + + +# We don't do it under 'all' because it's needed only on non-DEVFS systems +devnodes: tree + @echo "--- making device nodes" + @(cd ${DESTDIR}/dev; \ + ln -s /dev/MAKEDEV; \ + ./MAKEDEV ${MY_DEVS}; \ + rm MAKEDEV) + +clean: diff --git a/release/picobsd/custom/PICOBSD-C b/release/picobsd/custom/PICOBSD-C new file mode 100644 index 000000000000..215747885556 --- /dev/null +++ b/release/picobsd/custom/PICOBSD-C @@ -0,0 +1,219 @@ +# +# PICOBSD-C -- Custom kernel for PicoBSD builds +# +# For more information on this file, please read the handbook section on +# Kernel Configuration Files: +# +# http://www.FreeBSD.org/handbook/kernelconfig-config.html +# +# $FreeBSD$ + +machine i386 +cpu I386_CPU +cpu I486_CPU +cpu I586_CPU +cpu I686_CPU +ident GENERIC +maxusers 32 + +hints "GENERIC.hints" #Default places to look for devices. + +#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols + +options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +#options INET6 #IPv6 communications protocols +options FFS #Berkeley Fast Filesystem +options FFS_ROOT #FFS usable as root device [keep this!] +#options SOFTUPDATES #Enable FFS soft updates support +options MFS #Memory Filesystem +options MD_ROOT #MD is a potential root device +options NFS #Network Filesystem +options NFS_ROOT #NFS usable as root device, NFS required +options MSDOSFS #MSDOS Filesystem +options CD9660 #ISO 9660 Filesystem +options CD9660_ROOT #CD-ROM usable as root, CD9660 required +options PROCFS #Process filesystem +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] +options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI +options UCONSOLE #Allow users to grab the console +#options USERCONFIG #boot -c editor +#options VISUAL_USERCONFIG #visual boot -c editor +options KTRACE #ktrace(1) support +options SYSVSHM #SYSV-style shared memory +options SYSVMSG #SYSV-style message queues +options SYSVSEM #SYSV-style semaphores +options RANDOMDEV #entropy device + +# To make an SMP kernel, the next two are needed +#options SMP # Symmetric MultiProcessor Kernel +#options APIC_IO # Symmetric (APIC) I/O +# Optionally these may need tweaked, (defaults shown): +#options NCPU=2 # number of CPUs +#options NBUS=8 # number of busses +#options NAPIC=1 # number of IO APICs +#options NINTR=24 # number of INTs + +device isa +device eisa +device pci +options COMPAT_OLDISA # compatability shims for lnc, fe, le + +# Floppy drives +device fdc + +# ATA and ATAPI devices +device ata +device atadisk # ATA disk drives +device atapicd # ATAPI CDROM drives +device atapifd # ATAPI floppy drives +device atapist # ATAPI tape drives +options ATA_STATIC_ID #Static device numbering +#options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices + +# SCSI Controllers +#device ahb # EISA AHA1742 family +device ahc # AHA2940 and onboard AIC7xxx devices +#device amd # AMD 53C974 (Teckram DC-390(T)) +#device dpt # DPT Smartcache - See LINT for options! +#device isp # Qlogic family +#device ncr # NCR/Symbios Logic +device sym # NCR/Symbios Logic (newer chipsets) + +#device adv +#device adw +#device bt +#device aha 1 +#device aic + +# SCSI peripherals +device scbus # SCSI bus (required) +device da # Direct Access (disks) +device sa # Sequential Access (tape etc) +device cd # CD +device pass # Passthrough device (direct SCSI access) + +# RAID controllers +#device ida # Compaq SmartRAID +#device amr # AMI MegaRAID +#device mlx # Mylex DAC960 family + +# atkbdc0 controls both the keyboard and the PS/2 mouse +device atkbdc 1 +device atkbd +device psm + +device vga + +# splash screen/screen saver +#device splash + +# syscons is the default console driver, resembling an SCO console +device sc 1 + +# Enable this for the pcvt (VT220 compatible) console driver +#device vt +#options XSERVER # support for X server on a vt console +#options FAT_CURSOR # start with block cursor +# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines +#options PCVT_SCANSET=2 # IBM keyboards are non-std + +# Floating point support - do not disable. +device npx + +# Power management support (see LINT for more options) +device apm + +# PCCARD (PCMCIA) support +#device card +#device pcic + +# Serial (COM) ports +device sio + +# Parallel port +device ppc +device ppbus # Parallel port bus (required) +device lpt # Printer +device plip # TCP/IP over parallel +device ppi # Parallel port interface device +#device vpo # Requires scbus and da + + +# PCI Ethernet NICs. +device de # DEC/Intel DC21x4x (``Tulip'') +device fxp # Intel EtherExpress PRO/100B (82557, 82558) +device tx # SMC 9432TX (83c170 ``EPIC'') +device vx # 3Com 3c590, 3c595 (``Vortex'') +device wx # Intel Gigabit Ethernet Card (``Wiseman'') + +# PCI Ethernet NICs that use the common MII bus controller code. +device miibus # MII bus support +device dc # DEC/Intel 21143 and various workalikes +device rl # RealTek 8129/8139 +device sf # Adaptec AIC-6915 (``Starfire'') +device sis # Silicon Integrated Systems SiS 900/SiS 7016 +device ste # Sundance ST201 (D-Link DFE-550TX) +device tl # Texas Instruments ThunderLAN +device vr # VIA Rhine, Rhine II +device wb # Winbond W89C840F +device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') + +# ISA Ethernet NICs. +device ed +device ex +device ep +device cs +device sn +# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really +# exists only as a PCMCIA device, so there is no ISA attatement needed +# and resources will always be dynamically assigned by the pccard code. +device wi +# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will +# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP +# mode (the factory default). If you set the switches on your ISA +# card for a manually chosen I/O address and IRQ, you must specify +# those paremeters here. +device an +# BayStack 660 and others +device awi +# Xircom pccard ethernet +device xe +# The probe order of these is presently determined by i386/isa/isa_compat.c. +device ie +device fe +device le +device lnc + +# Pseudo devices - the number indicates how many units to allocated. +device loop # Network loopback +device ether # Ethernet support +#device sl 1 # Kernel SLIP +device ppp 1 # Kernel PPP +device tun # Packet tunnel. +device pty # Pseudo-ttys (telnet etc) +device md # Memory "disks" +#device gif 4 # IPv6 and IPv4 tunneling +#device faith 1 # IPv6-to-IPv4 relaying (translation) + + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +device bpf #Berkeley packet filter + +# USB support +#device uhci # UHCI PCI->USB interface +#device ohci # OHCI PCI->USB interface +#device usb # USB Bus (required) +#device ugen # Generic +#device udbp # USB Double Bulk Pipe devices +#device uhid # "Human Interface Devices" +#device ukbd # Keyboard +#device ulpt # Printer +#device umass # Disks/Mass storage - Requires scbus and da0 +#device ums # Mouse +device urio # Diamond Rio 500 MP3 player +# USB Ethernet, requires mii +#device aue # ADMtek USB ethernet +#device cue # CATC USB ethernet +#device kue # Kawasaki LSI USB ethernet diff --git a/release/picobsd/custom/crunch1/Makefile b/release/picobsd/custom/crunch1/Makefile new file mode 100644 index 000000000000..176e6ae755ca --- /dev/null +++ b/release/picobsd/custom/crunch1/Makefile @@ -0,0 +1,52 @@ +# +# $FreeBSD$ +# +SRC?=/usr/src + +COMMOBJ?= ${.OBJDIR}/../../common-obj + +all: crunch + +crunch1.conf: crunch.conf + @cat ${.ALLSRC} | sed -e "s@/usr/src@${SRC}@" > ${.TARGET} + +crunch.mk: crunch1.conf crunch.inc + @crunchgen -h ${.CURDIR}/crunch.inc -m crunch.mk crunch1.conf + +crunch1.mk: crunch.mk + @sed -e "s@make depend@make obj \&\& make depend@" \ + -e "s@/usr/obj/@${COMMOBJ}@" crunch.mk > ${.TARGET} + +crunch: crunch1.mk + @if [ ! -d build ]; then mkdir build; fi + @cp crunch1.c build/ + @(cd build && env MAKEOBJDIRPREFIX=${COMMOBJ} \ + ${MAKE} -f ../crunch1.mk -DNOPAM all \ + "CFLAGS=${CFLAGS} -DRELEASE_CRUNCH -DCRUNCHED_BINARY -DNOSECURE -DNOCRYPT") #2>&1 >/dev/null + +clean: + rm -rf build + rm -f *.o *.stub *.lo *_stub.c *.mk \ + crunch.cache \ + crunch.mk \ + crunch.c \ + crunch1* \ + crunch \ + .tmp_* \ + *~ \ + *.gz + +install: + rm -f ${MFS_MOUNTPOINT}/sbin/* + cp build/crunch1 ${MFS_MOUNTPOINT}/sbin/crunch + chmod 555 ${MFS_MOUNTPOINT}/sbin/crunch + for i in `crunchgen -l crunch1.conf` ; \ + do \ + ln ${MFS_MOUNTPOINT}/sbin/crunch ${MFS_MOUNTPOINT}/sbin/$${i}; \ + done + rm ${MFS_MOUNTPOINT}/sbin/crunch + # Install the MIB files + #cp mibs/*.txt ${MFS_MOUNTPOINT}/usr/local/share/snmp/mibs/ + + +.include <bsd.prog.mk> diff --git a/release/picobsd/custom/crunch1/crunch.conf b/release/picobsd/custom/crunch1/crunch.conf new file mode 100644 index 000000000000..cf7896208c10 --- /dev/null +++ b/release/picobsd/custom/crunch1/crunch.conf @@ -0,0 +1,37 @@ +# +# $FreeBSD$ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/libexec +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +# sources for ns & vm +srcdirs /usr/src/release/picobsd/tinyware + +progs sh test ln login getty stty +progs w msg kget reboot +progs init +progs mv cp rm mknod chmod chown mkdir ls rmdir +progs sysctl pwd_mkdb dev_mkdb +progs mount umount +progs dd swapon tar gzip + +ln test [ +ln sh -sh +# ln mount_msdos msdos +ln msg dmesg +ln chown chgrp +ln gzip gunzip +ln gzip zcat + +libs -lmytinfo -lipx -lz -lpcap -lalias -lwrap +libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -lgnuregex -ltelnet -lcurses +libs -lradius # used by ppp diff --git a/release/picobsd/custom/crunch2/Makefile b/release/picobsd/custom/crunch2/Makefile new file mode 100644 index 000000000000..ce2fada395dc --- /dev/null +++ b/release/picobsd/custom/crunch2/Makefile @@ -0,0 +1,32 @@ +# +# $FreeBSD$ +# +SRC?=/usr/src + +all: crunch install + +crunch: + @cat crunch.conf|sed -e "s@/usr/src@${SRC}@" >crunch2.conf + @crunchgen ./crunch2.conf + ${MAKE} -f crunch2.mk RELEASE_CRUNCH= -DNOPAM all \ + "CFLAGS=${CFLAGS} -DRELEASE_CRUNCH -DCRUNCHED_BINARY -DNOSECURE -DNOCRYPT" + +clean: + rm -f *.o *.stub *.lo *_stub.c *.mkcrunch.cache Make.log *~ + rm -f crunch.mk crunch.c crunch2* crunch .tmp_* *.gz + rm -rf floppy2 + +install: floppy2 + rm -rf floppy2/sbin/* + cp crunch2 floppy2/sbin/crunch + chmod 555 floppy2/sbin/crunch + for i in `crunchgen -l crunch2.conf` ; \ + do \ + ln floppy2/sbin/crunch floppy2/sbin/$${i}; \ + done + rm floppy2/sbin/crunch + +floppy2: + mkdir -p $@/sbin + +.include <bsd.prog.mk> diff --git a/release/picobsd/custom/crunch2/crunch.conf b/release/picobsd/custom/crunch2/crunch.conf new file mode 100644 index 000000000000..c654af34064d --- /dev/null +++ b/release/picobsd/custom/crunch2/crunch.conf @@ -0,0 +1,45 @@ +# +# $FreeBSD$ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec +# sources for ns & vm +srcdirs ../../tinyware + +progs ftp rlogin rsh disklabel fsck vi inetd telnetd ifconfig +progs badsect chroot clri dump ed expr fdisk find ftp grep mt +progs restore sed sleep sync hostname route dhclient telnet +progs mount_nfs ping traceroute routed natd +progs pwd more date mount_msdos mount_cd9660 newfs +progs kill mount_std tcpdump df sps ns vm cat syslogd +progs ppp ipfw pccardd + +special grep srcdir /usr/src/gnu/usr.bin/grep +special grep objdir /usr/obj/gnu/usr.bin/grep +special grep objdir /usr/obj/T/src/FREEBIE/src/gnu/usr.bin/grep + +special tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump +special tcpdump objdir /usr/obj/T/src/FREEBIE/src/usr.sbin/tcpdump/tcpdump + +special pccardd srcdir /usr/src/usr.sbin/pccard/pccardd + +ln vi ex +ln vi view +ln dump rdump +ln restore rrestore +ln mount_nfs nfs +ln ns netstat + +libs -lmytinfo -lipx -lz -lpcap -lalias -lwrap -lcurses +libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -lgnuregex -ltelnet +libs -lnetgraph # used by ppp diff --git a/release/picobsd/custom/floppy.etc/fstab b/release/picobsd/custom/floppy.etc/fstab new file mode 100644 index 000000000000..3b1e9074ea93 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/fstab @@ -0,0 +1,9 @@ +#proc /proc procfs rw 0 0 +#/dev/fd0c /start_floppy ufs rw 1 1 +#/dev/wd0s1 /dos msdos rw 0 0 +/dev/wcd0c /cdrom cd9660 ro,noauto 0 0 +/dev/wd0s1a /mnt ufs ro,noauto 0 0 +/dev/wd0s1b none swap sw,noauto 0 0 +/dev/wd0s1e /mnt/usr ufs ro,noauto 0 0 +/dev/wd0s1f /mnt/var ufs ro,noauto 0 0 +/dev/wd0s1g /mnt/cache ufs ro,noauto 0 0 diff --git a/release/picobsd/custom/floppy.etc/host.conf b/release/picobsd/custom/floppy.etc/host.conf new file mode 100644 index 000000000000..753112455a69 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/host.conf @@ -0,0 +1,3 @@ +# $FreeBSD$ +hosts +bind diff --git a/release/picobsd/custom/floppy.etc/inetd.conf b/release/picobsd/custom/floppy.etc/inetd.conf new file mode 100644 index 000000000000..c7c50de341e4 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/inetd.conf @@ -0,0 +1,21 @@ +# +# Internet server configuration database +# +# @(#)inetd.conf 5.4 (Berkeley) 6/30/90 +# +telnet stream tcp nowait root /usr/libexec/telnetd telnetd +# +# "Small servers" -- used to be standard on, but we're more conservative +# about things due to Internet security concerns. Only turn on what you +# need. +# +#daytime stream tcp nowait root internal +#daytime dgram udp wait root internal +#time stream tcp nowait root internal +#time dgram udp wait root internal +#echo stream tcp nowait root internal +#echo dgram udp wait root internal +#discard stream tcp nowait root internal +#discard dgram udp wait root internal +#chargen stream tcp nowait root internal +#chargen dgram udp wait root internal diff --git a/release/picobsd/custom/floppy.etc/master.passwd b/release/picobsd/custom/floppy.etc/master.passwd new file mode 100644 index 000000000000..21760f2c3110 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/master.passwd @@ -0,0 +1,8 @@ +root::0:0::0:0:Charlie &:/root:/bin/sh +toor:*:0:0::0:0:Bourne-again Superuser:/root: +daemon:*:1:1::0:0:Owner of many system processes:/root:/nonexistent +operator:*:2:20::0:0:System &:/usr/guest/operator:/bin/csh +bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/nonexistent +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/nonexistent +user:$1$T9q8Coad$WatJttamwr2UAdbfKbWxj.:1002:1002:polish:0:0:user:/home/user:/bin/sh +netman::9999:209::0:0:Network access:/netman:/bin/sh diff --git a/release/picobsd/custom/floppy.etc/mfs.rc b/release/picobsd/custom/floppy.etc/mfs.rc new file mode 100644 index 000000000000..d746cb73d7a9 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/mfs.rc @@ -0,0 +1,34 @@ +#!/bin/sh +# $FreeBSD$ +### WARNING !!!!!! ##### +# We remove this file during execution (see EOF). +# Awful things happen if its size is > 1024B + +stty status '^T' + +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +### Special setup for one floppy PICOBSD ### +echo "" +echo "-------------------------------------------" +echo " Please wait. The system is coming up..." +echo "-------------------------------------------" +echo "" +echo "Reading /etc from startup floppy..." +mount -o rdonly /dev/fd0a /start_floppy +cd /start_floppy/etc +cp -Rp . /etc/ +cd /etc +pwd_mkdb -p ./master.passwd +umount /start_floppy +echo "Ok. (Now you can remove floppy if you like)" +echo "" +. rc +exit 0 diff --git a/release/picobsd/custom/floppy.etc/ppp/ppp.conf b/release/picobsd/custom/floppy.etc/ppp/ppp.conf new file mode 100644 index 000000000000..ed5da5dd72ce --- /dev/null +++ b/release/picobsd/custom/floppy.etc/ppp/ppp.conf @@ -0,0 +1,8 @@ +# PPP Sample Configuration File +# Written by Toshiharu OHNO +default: + set device /dev/cuaa1 + set speed 38400 + disable lqr + deny lqr + set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\T TIMEOUT 40 CONNECT" diff --git a/release/picobsd/custom/floppy.etc/ppp/ppp.deny b/release/picobsd/custom/floppy.etc/ppp/ppp.deny new file mode 100644 index 000000000000..51e1e9bd03e3 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/ppp/ppp.deny @@ -0,0 +1,15 @@ +# list of users disallowed any pppd access via 'system +# password login'. +# read by pppd(8). +root +toor +daemon +operator +bin +games +news +man +ftp +uucp +xten +ingres diff --git a/release/picobsd/custom/floppy.etc/ppp/ppp.linkup b/release/picobsd/custom/floppy.etc/ppp/ppp.linkup new file mode 100644 index 000000000000..05107c6df855 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/ppp/ppp.linkup @@ -0,0 +1,10 @@ +# Example of ppp.linkup file +# +iij-demand: + delete ALL + add 0 0 HISADDR +# +# Otherwise, simply add peer as default gateway. +# +MYADDR: + add 0 0 HISADDR diff --git a/release/picobsd/custom/floppy.etc/ppp/ppp.secret.sample b/release/picobsd/custom/floppy.etc/ppp/ppp.secret.sample new file mode 100644 index 000000000000..bfaab7681aa5 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/ppp/ppp.secret.sample @@ -0,0 +1,23 @@ +################################################## +# +# Example of ppp.secret file +# +# This file is used to authenticate incoming connections. +# You must ``enable'' either PAP or CHAP in your ppp.conf file. +# The peer may then use any of the Authname/Authkey pairs listed. +# If an IP address is given, it will be assigned to the peer. +# +# If an entry exists for your local machine (as given by the +# ``hostname -s'' command), the password specified will be +# required for all server socket connections. Refer to the ppp(8) +# and pppctl(8) man pages for further details. +# +# $FreeBSD$ +# +################################################## + +# Authname Authkey Peer's IP address + +oscar OurSecretKey 192.244.184.34/24 +BigBird X4dWg9327 192.244.184.33/32 +tama localPasswdForControl diff --git a/release/picobsd/custom/floppy.etc/profile b/release/picobsd/custom/floppy.etc/profile new file mode 100644 index 000000000000..8de7c89675f7 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/profile @@ -0,0 +1,5 @@ +# System-wide .profile file for sh(1). +BLOCKSIZE=K; export BLOCKSIZE +set -o emacs +PATH=/stand:/mnt/bin:/mnt/sbin:/mnt/usr/bin:/mnt/usr/sbin export PATH +stty erase diff --git a/release/picobsd/custom/floppy.etc/rc b/release/picobsd/custom/floppy.etc/rc new file mode 100644 index 000000000000..45772ef9ad62 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/rc @@ -0,0 +1,56 @@ +#!/bin/sh +# $FreeBSD$ +### Special setup for PicoBSD ### +mount -a -t nonfs +reply=y +while [ "$reply" != "n" ]; do + echo -n "Do you have an additional floppy? [yn] " + read reply + if [ "$reply" = "y" ]; then + cd / + tar xzvf /dev/fd0 + fi +done +if [ -f /etc/rc.conf ]; then + . /etc/rc.conf +fi +rm -f /var/run/* +if [ "x$swapfile" != "xNO" -a -w "$swapfile" -a -b /dev/vn0b ]; then + echo "Adding $swapfile as additional swap." + vnconfig /dev/vn0b $swapfile && swapon /dev/vn0b +fi +# configure serial devices +if [ -f /etc/rc.serial ]; then + . /etc/rc.serial +fi +# start up the initial network configuration. +if [ -f /etc/rc.network ]; then + . /etc/rc.network + network_pass1 +fi +mount -a -t nfs +chmod 666 /dev/tty[pqrsPQRS]* +# clean up left-over files +(cd /var/run && { cp /dev/null utmp; chmod 644 utmp; }) +if [ -n "$network_pass1_done" ]; then + network_pass2 +fi +if [ -n "$network_pass2_done" ]; then + network_pass3 +fi +if [ "X${inetd_enable}" = X"YES" ]; then + echo "Starting inetd."; inetd ${inetd_flags} +fi + +dev_mkdb + +echo '' +if [ "x$swapfile" = "xNO" ]; then + echo "WARNING: no swap partition!" + echo "Don't run too many programs at the same time..." +fi +# Only one /tmp +ln -s /tmp /var + +# This needs to be in /sbin, but /sbin is magic. +mv /etc/dhclient-script /sbin diff --git a/release/picobsd/custom/floppy.etc/rc.conf b/release/picobsd/custom/floppy.etc/rc.conf new file mode 100644 index 000000000000..94c31ba6bc50 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/rc.conf @@ -0,0 +1,14 @@ +#!/bin/sh +# $FreeBSD$ +swapfile="NO" # Set to name of swapfile if aux swapfile desired. +hostname="Pico.freebsd.org" # Set this! +firewall="NO" # firewall type (see /etc/rc.firewall) or NO +tcp_extensions="NO" # Allow RFC1323 & RFC1644 extensions (or NO). +network_interfaces="lo0" # List of network interfaces (lo0 is loopback). +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. +#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. +inetd_enable="YES" # Run the network daemon dispatcher (or NO) +snmpd_enable="YES" # Run the SNMP daemon (or NO) +snmpd_flags="-C -c /etc/snmpd.conf" # Optional flags to snmpd +defaultrouter="NO" # Set to default gateway (or NO). +gateway_enable="NO" # Set to YES if this host will be a gateway. diff --git a/release/picobsd/custom/floppy.etc/rc.network b/release/picobsd/custom/floppy.etc/rc.network new file mode 100644 index 000000000000..235db0aa14fd --- /dev/null +++ b/release/picobsd/custom/floppy.etc/rc.network @@ -0,0 +1,79 @@ +#!/bin/sh - +# $FreeBSD$ +network_pass1() { + echo -n 'Doing initial network setup:' + # Set the host name if it is not already set + if [ -z "`hostname -s`" ] ; then + hostname $hostname + echo ' hostname' + fi + # Set up all the network interfaces, calling startup scripts if needed + for ifn in ${network_interfaces}; do + if [ -e /etc/start_if.${ifn} ]; then + . /etc/start_if.${ifn} + fi + # Do the primary ifconfig if specified + eval ifconfig_args=\$ifconfig_${ifn} + if [ -n "${ifconfig_args}" ] ; then + ifconfig ${ifn} ${ifconfig_args} + fi + # Check to see if aliases need to be added + alias=0 + while : + do + eval ifconfig_args=\$ifconfig_${ifn}_alias${alias} + if [ -n "${ifconfig_args}" ]; then + ifconfig ${ifn} ${ifconfig_args} alias + alias=`expr ${alias} + 1` + else + break; + fi + done + ifconfig ${ifn} + done + # Load the filters if required + if [ -n "$firewall_enable" -a -f /etc/rc.firewall -a \ + "x$firewall_enable" = "xYES" ] ; then + . /etc/rc.firewall + echo "Firewall rules loaded." + else + echo "Warning: kernel has firewall functionality, but firewall rules weren't loaded." + echo " All ip services are ENABLED by default." + fi + # Configure routing + if [ "x$defaultrouter" != "xNO" ] ; then + static_routes="default ${static_routes}" + route_default="default ${defaultrouter}" + fi + # Set up any static routes. This should be done before router discovery. + if [ "x${static_routes}" != "x" ]; then + for i in ${static_routes}; do + eval route_args=\$route_${i} + route add ${route_args} + done + fi + echo -n 'Additional routing options:' + if [ -n "$tcp_extensions" -a "x$tcp_extensions" != "xYES" ] ; then + echo -n ' tcp_extensions=NO' + sysctl -w net.inet.tcp.rfc1323=0 >/dev/null 2>&1 + sysctl -w net.inet.tcp.rfc1644=0 >/dev/null 2>&1 + fi + if [ "X$gateway_enable" = X"YES" ]; then + echo -n ' IP_gateway=YES' + sysctl -w net.inet.ip.forwarding=1 >/dev/null 2>&1 + fi + if [ "X$arpproxy_all" = X"YES" ]; then + echo -n ' turning on ARP_PROXY_ALL: ' + sysctl -w net.link.ether.inet.proxyall=1 2>&1 + fi + echo '.' + network_pass1_done=YES # Let future generations know we made it. +} + +network_pass2() { + network_pass2_done=YES +} + +network_pass3() { + network_pass3_done=YES +} diff --git a/release/picobsd/custom/floppy.etc/resolv.conf b/release/picobsd/custom/floppy.etc/resolv.conf new file mode 100644 index 000000000000..873fb771d091 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/resolv.conf @@ -0,0 +1,3 @@ +# $FreeBSD$ +domain sitaranetworks.com +nameserver 199.103.141.105 diff --git a/release/picobsd/custom/floppy.etc/services b/release/picobsd/custom/floppy.etc/services new file mode 100644 index 000000000000..eec499fafec7 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/services @@ -0,0 +1,94 @@ +echo 4/ddp +echo 7/tcp +echo 7/udp +discard 9/tcp +discard 9/udp +systat 11/tcp +systat 11/udp +daytime 13/tcp +daytime 13/udp +qotd 17/tcp +qotd 17/udp +chargen 19/tcp +chargen 19/udp +ftp-data 20/tcp +ftp-data 20/udp +ftp 21/tcp +ftp 21/udp +ssh 22/tcp +ssh 22/udp +telnet 23/tcp +telnet 23/udp +smtp 25/tcp +smtp 25/udp +time 37/tcp +time 37/udp +domain 53/tcp +domain 53/udp +tacacs-ds 65/tcp +tacacs-ds 65/udp +bootps 67/tcp +bootps 67/udp +bootpc 68/tcp +bootpc 68/udp +tftp 69/tcp +tftp 69/udp +gopher 70/tcp +gopher 70/udp +finger 79/tcp +finger 79/udp +http 80/tcp +http 80/udp +pop2 109/tcp +pop2 109/udp +pop3 110/tcp +pop3 110/udp +uucp-path 117/tcp +uucp-path 117/udp +nntp 119/tcp +nntp 119/udp +netbios-ns 137/tcp +netbios-ns 137/udp +netbios-dgm 138/tcp +netbios-dgm 138/udp +netbios-ssn 139/tcp +netbios-ssn 139/udp +imap 143/tcp +imap 143/udp +snmp 161/tcp +snmp 161/udp +snmptrap 162/tcp +snmptrap 162/udp +bgp 179/tcp +bgp 179/udp +irc 194/tcp +irc 194/udp +ipx 213/tcp +ipx 213/udp +imap3 220/tcp +imap3 220/udp +ldap 389/tcp +ldap 389/udp +netware-ip 396/tcp +netware-ip 396/udp +https 443/tcp +https 443/udp +exec 512/tcp +biff 512/udp +login 513/tcp +who 513/udp +cmd 514/tcp +syslog 514/udp +printer 515/tcp +printer 515/udp +talk 517/tcp +talk 517/udp +ntalk 518/tcp +ntalk 518/udp +timed 525/tcp +timed 525/udp +uucp 540/tcp +uucp 540/udp +uucp-rlogin 541/tcp +uucp-rlogin 541/udp +natd 8668/divert # Network Address Translation diff --git a/release/picobsd/custom/floppy.etc/shells b/release/picobsd/custom/floppy.etc/shells new file mode 100644 index 000000000000..df377f133737 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/shells @@ -0,0 +1,6 @@ +# List of acceptable shells for chpass(1). +# Ftpd will not allow users to connect who are not using +# one of these shells. + +/bin/sh +/bin/csh diff --git a/release/picobsd/custom/floppy.etc/ttys b/release/picobsd/custom/floppy.etc/ttys new file mode 100644 index 000000000000..2ed125dfd228 --- /dev/null +++ b/release/picobsd/custom/floppy.etc/ttys @@ -0,0 +1,27 @@ +#console none unknown off secure +vga none cons25 off secure +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/libexec/getty Pc" cons25 on secure +ttyv9 "/usr/libexec/getty Pc" cons25 on secure +# The 'dialup' keyword identifies dialin lines to login, fingerd etc. +ttyd0 "/usr/libexec/getty std.9600" xterm on secure +# Pseudo terminals +ttyp0 none network secure +ttyp1 none network secure +ttyp2 none network secure +ttyp3 none network +ttyp4 none network +ttyp5 none network +ttyp6 none network +ttyp7 none network +ttyp8 none network +ttyp9 none network diff --git a/release/picobsd/custom/floppy.tree.exclude b/release/picobsd/custom/floppy.tree.exclude new file mode 100644 index 000000000000..7ac83b287f2f --- /dev/null +++ b/release/picobsd/custom/floppy.tree.exclude @@ -0,0 +1 @@ +CVS diff --git a/release/picobsd/custom/floppy.tree/boot/loader.rc b/release/picobsd/custom/floppy.tree/boot/loader.rc new file mode 100644 index 000000000000..6af022f4665e --- /dev/null +++ b/release/picobsd/custom/floppy.tree/boot/loader.rc @@ -0,0 +1,2 @@ +load kernel +load -t mfs_root fs.PICOBSD diff --git a/release/picobsd/custom/floppy.tree/kernel.config b/release/picobsd/custom/floppy.tree/kernel.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/custom/floppy.tree/kernel.config diff --git a/release/picobsd/custom/lang/README.en b/release/picobsd/custom/lang/README.en new file mode 100644 index 000000000000..d2482aeed561 --- /dev/null +++ b/release/picobsd/custom/lang/README.en @@ -0,0 +1,41 @@ +1998.07.12, Warsaw, Poland + + PicoBSD @VER@ (NET) + ----------------- + + +What is PicoBSD? +---------------- + +It's a one floppy version of FreeBSD (please see http://www.freebsd.org), +configured mainly for networking applications. It can be used as a router or +firewall, or kind of a fixit floppy (or all of them). + +You can find more information on the home page of this project at: + + http://www.freebsd.org/~picobsd/ + +What are minimal requirements? +------------------------------ + +* 386SX CPU or better (there is an FPU emulator in kernel) +* 10MB RAM - the more the better. If you have an HDD, you can make a + swap partition or swap file (using vnode driver and vnconfig). Then you + probably will be able to run with ca. 6MB only. But RAM is cheap... +* Modem sitting on COM1-COM4 (default is to use COM2), if you want to have + a PPP connection. +* Network card: compatible with NE2000, PCI Intel, 3Com 3c509 or with DEC + chipsets (ed, ep, fxp and de drivers). The kernel supports two of each + ISA (i.e. +6 total) plus two PPP connections (tun interfaces). So you can + easily build something like router with as many as 8 outlets :-) + +For detailed description and list of supported hardware see the original +documentation, or: + + http://www.freebsd.org/~picobsd/picobsd.html + +I'll be glad hearing from you about your experiences with PicoBSD. Thanks. + +Have fun! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/custom/lang/README.pl b/release/picobsd/custom/lang/README.pl new file mode 100644 index 000000000000..d7e3f6755ceb --- /dev/null +++ b/release/picobsd/custom/lang/README.pl @@ -0,0 +1,56 @@ +1998.07.12, Warszawa + + PicoBSD @VER@ (wersja NET) + ------------------------ + +Co to jest PicoBSD? +------------------- + +Jest to jednodyskietkowa wersja FreeBSD skonfigurowana glownie pod katem +zastosowania jako klient/serwer uslug sieciowych (takich jak routing, +firewall, NFS). W celu zapoznania sie z pelnym systemem zajrzyj na +http://www.freebsd.org. Oficjalna strona tego projektu znajduje sie na +http://www.freebsd.org/~picobsd. + +Jakie sa minimalne wymagania? +----------------------------- + +* Procesor 386SX lub lepszy (jadro posiada emulator FPU) +* 10MB pamieci - jest to absolutnie nieprzekraczalne minimum. Oczywiscie im + wiecej, tym lepiej - ograniczenie jest glownie spowodowane brakiem swapu. Po + zapoznaniu sie z systemem mozesz sobie skonfigurowac tzw. swap-file na dysku + twardym, np. na partycji DOS-owej. Wowczas prawdopodobnie wystarczy 6MB + pamieci. +* Modem, skonfigurowany na COM1-COM4 (standardowo system wykorzystuje COM2), + jesli bedzie wykorzystywany dostep przez PPP. +* Karta sieciowa: kompatybilna z NE2000, niektore typy 3Com, lub wersje PCI z + chipsetem DEC21040 (drivery ed, ep, fxp i de). Jadro jest skonfigurowane + tak, zeby moc obsluzyc po dwie karty ed, ep, i de (czyli w sumie siedem) + oraz dwa polaczenia PPP rownoczesnie. Mozna wiec zbudowac router z 9 + interfejsami... :-) + +Jakie sa roznice w stosunku do poprzedniej wersji? +-------------------------------------------------- + +* Poszerzony zestaw sterownikow w jadrze systemu +* dodana obsluga CD-ROM +* agent SNMP (pelna wersja ucd-snmp, pozwalajaca na monitorowanie procesow i + zdalne uruchamianie skryptow) +* brak ssh, ftp i edytora ee (oznacza to, ze musisz edytowac pliki + konfiguracyjne montujac dyskietke na normalnym systemie) +* dodany inetd, telnetd, routed, tftpd, bootpd, ps, kill, netstat, + ping, traceroute +* brak vnconfig i vn(4): w przypadku routera powinien on miec tyle pamieci + RAM, zeby nie potrzebowac swapu, lub miec normalny swap. +* dodana obsluga hasel (passwd(1)) +* dodana obsluga NFS (klient) +* sa dwaj uzytkownicy: root (haslo 'setup') i user (haslo 'PicoBSD'). Ze + wzgledu na skomplikowana sprawe z prawami dostepu, user praktycznie moze + jedynie zrobic te rzeczy, ktore nie wymagaja praw roota (czyli np. telnet). +* dodany skrypt 'update', ktory powoduje uaktualnienie zawartosci katalogu + /etc na dyskietce w stosunku do tego, co znajduje sie na MFS. + + +Milej zabawy! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/custom/lang/boot.help.en b/release/picobsd/custom/lang/boot.help.en new file mode 100644 index 000000000000..7cbce1354839 --- /dev/null +++ b/release/picobsd/custom/lang/boot.help.en @@ -0,0 +1,18 @@ +Usage: bios_drive:interface(unit,partition)kernel_name options + bios_drive 0, 1, ... + interface fd, wd or sd + unit 0, 1, ... + partition a, c, ... + kernel_name name of kernel, or ? for list of files in root directory + options -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles) + -d (debug early) -g (gdb) -h (serial console) -P (probe kbd) + -r (default root) -s (single user) -v (verbose) +Examples: + 1:sd(0,a)mykernel boot `mykernel' on the first SCSI drive when one IDE + drive is present + 1:wd(2,a) boot from the second (secondary master) IDE drive + 1:sd(0,a)? list the files in the root directory on the specified + drive/unit/partition, and set the default bios_drive, + interface, unit and partition + -cv boot with the defaults, then run UserConfig to modify + hardware parameters (c), and print verbose messages (v) diff --git a/release/picobsd/custom/lang/boot.help.pl b/release/picobsd/custom/lang/boot.help.pl new file mode 100644 index 000000000000..bb5b422529aa --- /dev/null +++ b/release/picobsd/custom/lang/boot.help.pl @@ -0,0 +1,16 @@ +Opcje: dysk_bios:kontroler(dysk,partycja)nazwa_kernela opcje + dysk_bios 0, 1, ... + kontroler fd (dyskietka), wd (dysk IDE) lub sd (dysk SCSI) + dysk 0, 1, ... (numer dysku w kontrolerze) + partycja a, c, e, f ... (wedlug nazewnictwa BSD) + nazwa_kernela nazwa pliku kernela, lub ? zeby dostac liste plikow + opcje -a (pytaj o rootdev) -C (cdrom) -c (userconf.) -D (podwojna konsola) + -d (uruchom debugger) -g (gdb) -h (konsola szeregowa) + -P (probkuj klawiature) -r (domyslny rootdev) -s (tryb single user) + -v (verbose - szczegolowe komunikaty) +Np: 1:sd(0,a)mykernel startuj `mykernel' z 1 dysku SCSI gdy jest tez 1 dysk + IDE, i jednoczesnie ustaw go jako domyslny dysk_bios, + kontroler, dysk i partycje + -cv startuj z parametrami domyslnymi, potem uruchom + konfiguracje param. sprzetowych (-c), i podawaj + szczegolowe komunikaty w trakcie bootowania (-v). diff --git a/release/picobsd/custom/lang/hosts.en b/release/picobsd/custom/lang/hosts.en new file mode 100644 index 000000000000..53f13bab8b37 --- /dev/null +++ b/release/picobsd/custom/lang/hosts.en @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.edu +127.0.0.1 pico.mydomain.edu diff --git a/release/picobsd/custom/lang/hosts.pl b/release/picobsd/custom/lang/hosts.pl new file mode 100644 index 000000000000..89081d798683 --- /dev/null +++ b/release/picobsd/custom/lang/hosts.pl @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.org.pl +127.0.0.1 pico.mydomain.org.pl diff --git a/release/picobsd/custom/lang/motd.en b/release/picobsd/custom/lang/motd.en new file mode 100644 index 000000000000..97194182eedf --- /dev/null +++ b/release/picobsd/custom/lang/motd.en @@ -0,0 +1,12 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (NET) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +You can find a short description of the [35mpicoBSD[37m +system in file /README. You can view it using +"more /README". + +For more info contact the author (abial@freebsd.org). + diff --git a/release/picobsd/custom/lang/motd.pl b/release/picobsd/custom/lang/motd.pl new file mode 100644 index 000000000000..4b1fcf551518 --- /dev/null +++ b/release/picobsd/custom/lang/motd.pl @@ -0,0 +1,12 @@ +======================================================= + [31m)\_)\[37m +PicoBSD @VER@ (NET) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Witamy w PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +W glownym katalogu w pliku README znajdziesz [35mpicoBSD[37m +krotki opis systemu. Mozesz go obejrzec przy pomocy +"more /README". + +Wiecej informacji znajdziesz u autora (abial@freebsd.org). + diff --git a/release/picobsd/custom/lang/reboot.en b/release/picobsd/custom/lang/reboot.en new file mode 100755 index 000000000000..4601bb87fdb3 --- /dev/null +++ b/release/picobsd/custom/lang/reboot.en @@ -0,0 +1,2 @@ +#!/bin/sh +exec /sbin/echo "Press Ctrl-Alt-Del instead of $0" diff --git a/release/picobsd/custom/lang/reboot.pl b/release/picobsd/custom/lang/reboot.pl new file mode 100755 index 000000000000..8181ced947d9 --- /dev/null +++ b/release/picobsd/custom/lang/reboot.pl @@ -0,0 +1,2 @@ +#!/bin/sh +exec /sbin/echo "Zamiast $0 nacisnij Ctrl-Alt-Del" diff --git a/release/picobsd/custom/lang/update.en b/release/picobsd/custom/lang/update.en new file mode 100755 index 000000000000..f8c91fd4f171 --- /dev/null +++ b/release/picobsd/custom/lang/update.en @@ -0,0 +1,23 @@ +#!/bin/sh +# $FreeBSD$ +pwd=`pwd` +echo -n "Updating /etc contents on startup floppy... " +mount /dev/fd0a /start_floppy +if [ "X$?" != "X0" ] +then + echo "" + echo "Cannot mount the floppy read-write!" + echo "Check the write-protection..." + exit 1 +fi +cd /etc +rm *.db +rm passwd +cp -Rp . /start_floppy/etc/ +pwd_mkdb master.passwd +echo " Done." +echo -n "Updating kernel parameters... " +kget /start_floppy/boot/kernel.conf +umount /dev/fd0a +cd ${pwd} +echo " Done." diff --git a/release/picobsd/custom/lang/update.pl b/release/picobsd/custom/lang/update.pl new file mode 100755 index 000000000000..645f4c05570a --- /dev/null +++ b/release/picobsd/custom/lang/update.pl @@ -0,0 +1,23 @@ +#!/bin/sh +# $FreeBSD$ +pwd=`pwd` +echo -n "Uaktualniam katalog /etc na dyskietce... " +mount /dev/fd0a /start_floppy +if [ "X$?" != "X0" ] +then + echo "" + echo "Blad podczas montowania read/write dyskietki!" + echo "Sprawdz, czy nie jest zabezpieczona przed zapisem..." + exit 1 +fi +cd /etc +rm *.db +rm passwd +cp -Rp . /start_floppy/etc/ +pwd_mkdb master.passwd +echo " Zrobione." +echo -n "Uaktualniam parametry jadra..." +kget /start_floppy/boot/kernel.conf +umount /dev/fd0a +cd ${pwd} +echo " Zrobione." diff --git a/release/picobsd/custom/mfs.mtree b/release/picobsd/custom/mfs.mtree new file mode 100644 index 000000000000..90bded161415 --- /dev/null +++ b/release/picobsd/custom/mfs.mtree @@ -0,0 +1,58 @@ +# +# $FreeBSD$ +# +/set type=dir uname=root gname=wheel mode=0755 +. + dev + .. + dos + .. + etc + .. + home + user + .. + .. + mnt + .. + mnt1 + .. + mnt2 + .. + proc + .. + root + .. + sbin + .. + start_floppy + .. + tftpboot + .. + tmp mode=01777 + .. + usr + local + share + snmp + mibs + .. + .. + .. + .. + share + misc + .. + .. + .. + var + db + .. + run + .. + spool + lock + .. + .. + .. +.. diff --git a/release/picobsd/custom/mfs/etc/dhclient-script b/release/picobsd/custom/mfs/etc/dhclient-script new file mode 100755 index 000000000000..c4f5320528e9 --- /dev/null +++ b/release/picobsd/custom/mfs/etc/dhclient-script @@ -0,0 +1,220 @@ +#!/bin/sh + +if [ -x /usr/bin/logger ]; then + LOGGER="/usr/bin/logger -s -p user.notice -t dhclient" +else + LOGGER=echo +fi + +make_resolv_conf() { + echo search $new_domain_name >/etc/resolv.conf + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver >>/etc/resolv.conf + done +} + +# Must be used on exit. Invokes the local dhcp client exit hooks, if any. +exit_with_hooks() { + exit_status=$1 + if [ -x /etc/dhclient-exit-hooks ]; then + . /etc/dhclient-exit-hooks + fi +# probably should do something with exit status of the local script + exit $exit_status +} + +# Invoke the local dhcp client enter hooks, if they exist. +if [ -x /etc/dhclient-enter-hooks ]; then + exit_status=0 + . /etc/dhclient-enter-hooks + # allow the local script to abort processing of this state + # local script must set exit_status variable to nonzero. + if [ $exit_status -ne 0 ]; then + exit $exit_status + fi +fi + +if [ x$new_network_number != x ]; then + $LOGGER New Network Number: $new_network_number +fi + +if [ x$new_broadcast_address != x ]; then + $LOGGER New Broadcast Address: $new_broadcast_address + new_broadcast_arg="broadcast $new_broadcast_address" +fi +if [ x$old_broadcast_address != x ]; then + old_broadcast_arg="broadcast $old_broadcast_address" +fi +if [ x$new_subnet_mask != x ]; then + $LOGGER New Subnet Mask for $interface: $new_subnet_mask + new_netmask_arg="netmask $new_subnet_mask" +fi +if [ x$old_subnet_mask != x ]; then + old_netmask_arg="netmask $old_subnet_mask" +fi +if [ x$alias_subnet_mask != x ]; then + alias_subnet_arg="netmask $alias_subnet_mask" +fi + +if [ x$reason = xMEDIUM ]; then + ifconfig $interface $medium + ifconfig $interface inet -alias 0.0.0.0 $medium >/dev/null 2>&1 + sleep 1 + exit_with_hooks 0 +fi + +if [ x$reason = xPREINIT ]; then + if [ x$alias_ip_address != x ]; then + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ + broadcast 255.255.255.255 up + exit_with_hooks 0 +fi + +if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then + exit_with_hooks 0; +fi + +if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ + [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then + current_hostname=`/bin/hostname` + if [ x$current_hostname = x ] || \ + [ x$current_hostname = x$old_host_name ]; then + if [ x$new_host_name != x$old_host_name ]; then + $LOGGER New Hostname: $new_host_name + hostname $new_host_name + fi + fi + if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ + [ x$alias_ip_address != x$old_ip_address ]; then + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then + ifconfig $interface inet -alias $old_ip_address $medium + route delete $old_ip_address 127.1 >/dev/null 2>&1 + for router in $old_routers; do + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then + set $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi + arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ + [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then + ifconfig $interface inet $new_ip_address $new_netmask_arg \ + $new_broadcast_arg $medium + route add $new_ip_address 127.1 >/dev/null 2>&1 + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done + if [ "$new_static_routes" != "" ]; then + $LOGGER New Static Routes: $new_static_routes + set $new_static_routes + while [ $# -gt 1 ]; do + route add $1 $2 + shift; shift + done + fi + fi + if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; + then + ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg + route add $alias_ip_address 127.0.0.1 + fi + echo search $new_domain_name >/etc/resolv.conf + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver >>/etc/resolv.conf + done + exit_with_hooks 0 +fi + +if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ]; then + if [ x$alias_ip_address != x ]; then + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + if [ x$old_ip_address != x ]; then + ifconfig $interface inet -alias $old_ip_address $medium + route delete $old_ip_address 127.1 >/dev/null 2>&1 + for router in $old_routers; do + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then + set $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi + arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ + |sh >/dev/null 2>&1 + fi + if [ x$alias_ip_address != x ]; then + ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg + route add $alias_ip_address 127.0.0.1 + fi + exit_with_hooks 0 +fi + +if [ x$reason = xTIMEOUT ]; then + if [ x$alias_ip_address != x ]; then + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + ifconfig $interface inet $new_ip_address $new_netmask_arg \ + $new_broadcast_arg $medium + sleep 1 + if [ "$new_routers" != "" ]; then + $LOGGER New Routers: $new_routers + set $new_routers + if ping -q -c 1 $1; then + if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then + ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg + route add $alias_ip_address 127.0.0.1 + fi + route add $new_ip_address 127.1 >/dev/null 2>&1 + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done + set $new_static_routes + while [ $# -gt 1 ]; do + route add $0 $1 + shift; shift + done + echo search $new_domain_name >/etc/resolv.conf.std + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver >>/etc/resolv.conf.std + done + if [ -f /etc/resolv.conf ]; then + rm -f /etc/resolv.conf + fi + mv /etc/resolv.conf.std /etc/resolv.conf + exit_with_hooks 0 + fi + fi + ifconfig $interface inet -alias $new_ip_address $medium + for router in $old_routers; do + route delete default $router >/dev/null 2>&1 + done + if [ "$old_static_routes" != "" ]; then + set $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + fi + arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \ + |sh >/dev/null 2>&1 + exit_with_hooks 1 +fi + +exit_with_hooks 0 diff --git a/release/picobsd/custom/mfs/etc/disktab b/release/picobsd/custom/mfs/etc/disktab new file mode 100644 index 000000000000..7575ba66e088 --- /dev/null +++ b/release/picobsd/custom/mfs/etc/disktab @@ -0,0 +1,87 @@ +# +# Floppy formats: +# +# To make a filesystem on a floppy: +# fdformat [-f <size>] fd<drive>[.<size>] +# disklabel -B -r -w fd<drive>[.<size>] fd<size> +# newfs <opts> fd<drive>[.<size>] +# +# with <opts>: +# -t 2 - two heads +# -u 9|15|18 - sectors per track +# (using the default value of 1/4096 is not much useful for floppies) +# -l 1 - interleave 1 (for most floppies) +# -i 65536 - bytes of data per i-node +# (the default -i value will render you with a floppy wasting way +# too much space in i-node areas) +# + +fd360:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\ + :pa#720:oa#0:ba#4096:fa#512:\ + :pb#720:ob#0:bb#4096:fb#512:\ + :pc#720:oc#0:bc#4096:fc#512: + +fd720:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\ + :pa#1440:oa#0:ba#4096:fa#512:\ + :pb#1440:ob#0:bb#4096:fb#512:\ + :pc#1440:oc#0:bc#4096:fc#512: + +fd1200|floppy5|5in|5.25in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\ + :pa#2400:oa#0:ba#4096:fa#512:\ + :pb#2400:ob#0:bb#4096:fb#512:\ + :pc#2400:oc#0:bc#4096:fc#512: + +fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pb#2880:ob#0:bb#4096:fb#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +fd1024|floppy0|3.5in Special Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#16:nc#64:\ + :pa#2048:oa#0:ba#4096:fa#512:\ + :pb#2048:ob#0:bb#4096:fb#512:\ + :pc#2048:oc#0:bc#4096:fc#512: + +# a == root +# b == swap +# c == d == whole disk +# e == /var +# f == scratch +# h == /usr + +cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\ + :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \ + :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \ + :pb#24288:ob#15840:tb=swap: \ + :pc#202224:oc#0: \ + :pd#202224:od#0: \ + :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \ + :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \ + :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512: + +sony650|Sony 650 MB MOD|\ + :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\ + :pc#576600:oc#0:\ + :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024: + +mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\ + :ty=removeable:dt=SCSI:rm#3600:\ + :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\ + :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\ + :pc#444384:oc#0: + +minimum:ty=mfs:se#512:nt#1:rm#300:\ + :ns#2880:nc#1:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +zip100|zip 100:\ + :ty=removable:se#512:nc#96:nt#64:ns#32:\ + :pa#196608:oa#0:ba#4096:fa#512:\ + :pb#196608:ob#0:bb#4096:fb#512:\ + :pc#196608:oc#0:bc#4096:fc#512: + diff --git a/release/picobsd/custom/mfs/etc/gettytab b/release/picobsd/custom/mfs/etc/gettytab new file mode 100644 index 000000000000..90562acf2505 --- /dev/null +++ b/release/picobsd/custom/mfs/etc/gettytab @@ -0,0 +1,40 @@ +# from: @(#)gettytab 5.14 (Berkeley) 3/27/91 +# +default:\ + :cb:ce:ck:lc:fd#1000:cl:im=\r\nPicoBSD (%h) (%t)\r\n\r\n:sp#1200: + +P|Pc|Pc console:\ + :ht:np:sp#115200: + +# +# Fixed speed entries +2|std.9600|9600-baud:\ + :np:sp#9600: +g|std.19200|19200-baud:\ + :np:sp#19200: +std.38400|38400-baud:\ + :np:sp#38400: +std.57600|57600-baud:\ + :np:sp#57600: +std.115200|115200-baud:\ + :np:sp#115200: + +# +# Entry specifying explicit device settings. See termios(4) and +# /usr/include/termios.h, too. The entry forces the tty into +# CLOCAL mode (so no DCD is required), and uses Xon/Xoff flow control. +# +# cflags: CLOCAL | HUPCL | CREAD | CS8 +# oflags: OPOST | ONLCR | OXTABS +# iflags: IXOFF | IXON | ICRNL | IGNPAR +# lflags: IEXTEN | ICANON | ISIG | ECHOCTL | ECHO | ECHOK | ECHOE | ECHOKE +# +# The `0' flags don't have input enabled. The `1' flags don't echo. +# (Echoing is done inside getty itself.) +# +local.9600|CLOCAL tty @ 9600 Bd:\ + :c0#0x0000c300:c1#0x0000cb00:c2#0x0000cb00:\ + :o0#0x00000007:o1#0x00000002:o2#0x00000007:\ + :i0#0x00000704:i1#0x00000000:i2#0x00000704:\ + :l0#0x000005cf:l1#0x00000000:l2#0x000005cf:\ + :sp#9600: diff --git a/release/picobsd/custom/mfs/etc/group b/release/picobsd/custom/mfs/etc/group new file mode 100644 index 000000000000..abbd733f3b0b --- /dev/null +++ b/release/picobsd/custom/mfs/etc/group @@ -0,0 +1,19 @@ +wheel:*:0:root,user +daemon:*:1:daemon +kmem:*:2:root +sys:*:3:root +tty:*:4:root +operator:*:5:root +mail:*:6: +bin:*:7: +news:*:8: +man:*:9: +games:*:13: +staff:*:20:root,user +guest:*:31:root +uucp:*:66: +xten:*:67:xten +dialer:*:68: +network:*:69: +nogroup:*:65533: +nobody:*:65534: diff --git a/release/picobsd/custom/mfs/etc/login.conf b/release/picobsd/custom/mfs/etc/login.conf new file mode 100644 index 000000000000..1f2f02777ddd --- /dev/null +++ b/release/picobsd/custom/mfs/etc/login.conf @@ -0,0 +1,120 @@ +# This file controls resource limits, accounting limits and +# default user environment settings. +# +# $FreeBSD$ +# + + +# Authentication methods + +auth-defaults:\ + :auth=passwd: + +auth-root-defaults:\ + :auth-login=passwd:\ + :auth-rlogin=passwd:\ + +auth-ftp-defaults:\ + :auth=passwd: + +# Example defaults +# These settings are used by login(1) by default for classless users +# Note that entries like "cputime" set both "cputime-cur" and "cputime-max" + +default:\ + :cputime=infinity:\ + :datasize-cur=22M:\ + :stacksize-cur=8M:\ + :memorylocked-cur=10M:\ + :memoryuse-cur=30M:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :maxproc-cur=64:\ + :openfiles-cur=64:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-defaults: + + +# +# standard - standard user defaults +# +standard:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,EDITOR=/usr/bin/ee:\ + :path=~/bin /bin /usr/bin:\ + :nologin=/var/run/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=90d:\ + :umask=002:\ + :ignoretime@:\ + :tc=default: +# +# Staff users - few restrictions and allow login anytime +# +staff:\ + :ignorenologin:\ + :ignoretime:\ + :requirehome@:\ + :accounted@:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :umask=022:\ + :tc=standard: + + +# +# root - fallback for root logins +# +root:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :cputime=infinity:\ + :datasize=infinity:\ + :stacksize=infinity:\ + :memorylocked=infinity:\ + :memoryuse=infinity:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :openfiles=infinity:\ + :maxproc=infinity:\ + :memoryuse-cur=32M:\ + :maxproc-cur=64:\ + :openfiles-cur=1024:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-root-defaults:\ +# +# Settings used by /etc/rc +# +daemon:\ + :coredumpsize@:\ + :coredumpsize-cur=0:\ + :datasize=infinity:\ + :datasize-cur@:\ + :maxproc=512:\ + :maxproc-cur@:\ + :memoryuse-cur=64M:\ + :memorylocked-cur=64M:\ + :openfiles=1024:\ + :openfiles-cur@:\ + :stacksize=16M:\ + :stacksize-cur@:\ + :tc=default: +# +# Polish Users Accounts. Setup proper environment variables. +# +polish:Polish Users Accounts:\ + :lang=pl_pl.ISO-8859-2:\ + :tc=default: diff --git a/release/picobsd/custom/mfs/etc/protocols b/release/picobsd/custom/mfs/etc/protocols new file mode 100644 index 000000000000..c80be39f693a --- /dev/null +++ b/release/picobsd/custom/mfs/etc/protocols @@ -0,0 +1,7 @@ +# +# Internet (IP) protocols +ip 0 IP # internet protocol, pseudo protocol number +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # Internet Group Management +tcp 6 TCP # transmission control protocol +udp 17 UDP # user datagram protocol diff --git a/release/picobsd/custom/mfs/etc/rc b/release/picobsd/custom/mfs/etc/rc new file mode 100644 index 000000000000..486ba8455f8a --- /dev/null +++ b/release/picobsd/custom/mfs/etc/rc @@ -0,0 +1,34 @@ +#!/bin/sh +# $FreeBSD$ +### WARNING !!!!!! ##### +# We remove this file during execution (see EOF). +# Awful things happen if its size is > 1024B + +stty status '^T' + +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +### Special setup for two floppy PICOBSD ### +echo "" +echo "-------------------------------------------" +echo " Please wait. The system is coming up..." +echo "-------------------------------------------" +echo "" +echo "Reading /etc from startup floppy..." +mount -o rdonly /dev/fd0a /start_floppy +cd /etc +tar zxvf /start_floppy/etc.tar.gz +cd /etc +pwd_mkdb -p ./master.passwd +umount /start_floppy +echo "Ok. (Now you can remove floppy if you like)" +echo "" +. rc +exit 0 diff --git a/release/picobsd/custom/mfs/etc/rc.firewall b/release/picobsd/custom/mfs/etc/rc.firewall new file mode 100644 index 000000000000..c2860baedce0 --- /dev/null +++ b/release/picobsd/custom/mfs/etc/rc.firewall @@ -0,0 +1,172 @@ +############ +# Setup system for firewall service. +# $FreeBSD$ + +############ +# Define the firewall type in /etc/rc.conf. Valid values are: +# open - will allow anyone in +# client - will try to protect just this machine +# simple - will try to protect a whole network +# closed - totally disables IP services except via lo0 interface +# UNKNOWN - disables the loading of firewall rules. +# filename - will load the rules in the given filename (full path required) +# +# For ``client'' and ``simple'' the entries below should be customized +# appropriately. + +############ +# +# If you don't know enough about packet filtering, we suggest that you +# take time to read this book: +# +# Building Internet Firewalls +# Brent Chapman and Elizabeth Zwicky +# +# O'Reilly & Associates, Inc +# ISBN 1-56592-124-0 +# http://www.ora.com/ +# +# For a more advanced treatment of Internet Security read: +# +# Firewalls & Internet Security +# Repelling the wily hacker +# William R. Cheswick, Steven M. Bellowin +# +# Addison-Wesley +# ISBN 0-201-6337-4 +# http://www.awl.com/ +# + +if [ "x$1" != "x" ]; then + firewall_type=$1 +fi + +############ +# Set quiet mode if requested +if [ "x$firewall_quiet" = "xYES" ]; then + fwcmd="/sbin/ipfw -q" +else + fwcmd="/sbin/ipfw" +fi + +############ +# Flush out the list before we begin. +$fwcmd -f flush + +############ +# If you just configured ipfw in the kernel as a tool to solve network +# problems or you just want to disallow some particular kinds of traffic +# they you will want to change the default policy to open. You can also +# do this as your only action by setting the firewall_type to ``open''. + +# $fwcmd add 65000 pass all from any to any + +############ +# Only in rare cases do you want to change these rules +$fwcmd add 1000 pass all from any to any via lo0 +$fwcmd add 1010 deny all from 127.0.0.0/8 to 127.0.0.0/8 + + +# Prototype setups. +if [ "${firewall_type}" = "open" -o "${firewall_type}" = "OPEN" ]; then + + $fwcmd add 65000 pass all from any to any + +elif [ "${firewall_type}" = "client" ]; then + + ############ + # This is a prototype setup that will protect your system somewhat against + # people from outside your own network. + ############ + + # set these to your network and netmask and ip + net="192.168.4.0" + mask="255.255.255.0" + ip="192.168.4.17" + + # Allow any traffic to or from my own net. + $fwcmd add pass all from ${ip} to ${net}:${mask} + $fwcmd add pass all from ${net}:${mask} to ${ip} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${ip} 25 setup + + # Allow setup of outgoing TCP connections only + $fwcmd add pass tcp from ${ip} to any setup + + # Disallow setup of all other TCP connections + $fwcmd add deny tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${ip} + $fwcmd add pass udp from ${ip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${ip} + $fwcmd add pass udp from ${ip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" = "simple" ]; then + + ############ + # This is a prototype setup for a simple firewall. Configure this machine + # as a named server and ntp server, and point all the machines on the inside + # at this machine for those services. + ############ + + # set these to your outside interface network and netmask and ip + oif="ed0" + onet="192.168.4.0" + omask="255.255.255.0" + oip="192.168.4.17" + + # set these to your inside interface network and netmask and ip + iif="ed1" + inet="192.168.3.0" + imask="255.255.255.0" + iip="192.168.3.17" + + # Stop spoofing + $fwcmd add deny all from ${inet}:${imask} to any in via ${oif} + $fwcmd add deny all from ${onet}:${omask} to any in via ${iif} + + # Stop RFC1918 nets on the outside interface + $fwcmd add deny all from 192.168.0.0:255.255.0.0 to any via ${oif} + $fwcmd add deny all from 172.16.0.0:255.240.0.0 to any via ${oif} + $fwcmd add deny all from 10.0.0.0:255.0.0.0 to any via ${oif} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${oip} 25 setup + + # Allow access to our DNS + $fwcmd add pass tcp from any to ${oip} 53 setup + + # Allow access to our WWW + $fwcmd add pass tcp from any to ${oip} 80 setup + + # Reject&Log all setup of incoming connections from the outside + $fwcmd add deny log tcp from any to any in via ${oif} setup + + # Allow setup of any other TCP connection + $fwcmd add pass tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${oip} + $fwcmd add pass udp from ${oip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${oip} + $fwcmd add pass udp from ${oip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" != "UNKNOWN" -a -r "${firewall_type}" ]; then + $fwcmd ${firewall_type} +fi diff --git a/release/picobsd/custom/mfs/etc/rc.serial b/release/picobsd/custom/mfs/etc/rc.serial new file mode 100644 index 000000000000..40fbd8a334cc --- /dev/null +++ b/release/picobsd/custom/mfs/etc/rc.serial @@ -0,0 +1,127 @@ +#!/bin/sh +# $FreeBSD$ + +# Change some defaults for serial devices. +# Standard defaults are: +# dtrwait 300 drainwait 0 +# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl +# initial iflag, lflag and oflag all 0 +# speed 9600 +# special chars from <sys/ttydefaults.h> +# nothing locked +# except for serial consoles the initial iflag, lflag and oflag are from +# <sys/ttydefaults.h> and clocal is locked on. + +default() { + # Reset everything changed by the other functions to initial defaults. + + ci=$1; shift # call in device identifier + co=$1; shift # call out device identifier + + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 300 drainwait 0 + stty </dev/ttyi$ci$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/ttyl$ci$i -clocal -crtscts -hupcl 0 + stty </dev/cuai$co$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/cual$co$i -clocal -crtscts -hupcl 0 + done +} + +maybe() { + # Special settings. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Don't use ^R; it breaks bash's ^R when typed ahead. + stty </dev/ttyi$ci$i reprint undef + stty </dev/cuai$co$i reprint undef + # Lock clocal off on dialin device for security. + stty </dev/ttyl$ci$i clocal + # Lock the speeds to use old binaries that don't support them. + # Any legal speed works to lock the initial speed. + stty </dev/ttyl$ci$i 300 + stty </dev/cual$co$i 300 + done +} + +modem() { + # Modem that supports CTS and perhaps RTS handshaking. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # may depend on modem + comcontrol /dev/tty$ci$i dtrwait 100 drainwait 180 + # Lock crtscts on. + # Speed reasonable for V42bis. + stty </dev/ttyi$ci$i crtscts 57600 + stty </dev/ttyl$ci$i crtscts + stty </dev/cuai$co$i crtscts 57600 + stty </dev/cual$co$i crtscts + done +} + +mouse() { + # Mouse on either callin or callout port. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Lock clocal on, hupcl off. + # Standard speed for Microsoft mouse. + stty </dev/ttyi$ci$i clocal -hupcl 1200 + stty </dev/ttyl$ci$i clocal hupcl + stty </dev/cuai$co$i clocal -hupcl 1200 + stty </dev/cual$co$i clocal hupcl + done +} + +terminal() { + # Terminal that supports CTS and perhaps RTS handshaking + # with the cable or terminal arranged so that DCD is on + # at least while the terminal is on. + # Also works for bidirectional communications to another pc + # provided at most one side runs getty. + # Same as modem() except we want a faster speed and no dtrwait. + + ci=$1; shift + co=$1; shift + + modem $ci $co $* + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 0 + stty </dev/ttyi$ci$i 115200 + stty </dev/cuai$co$i 115200 + done +} + +# Don't use anything from this file unless you have some buggy programs +# that require it. + +# Edit the functions and the examples to suit your system. +# $1 is the call in device identifier, $2 is the call out device identifier +# and the remainder of the line lists the device numbers. + +# Initialize assorted 8250-16550 (sio) ports. +# maybe d a 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v +# mouse d a 2 +# modem d a 1 +# terminal d a 0 + +# Initialize all ports on a Cyclades-8yo. +# modem c c 00 01 02 03 04 05 06 07 + +# Initialize all ports on a Cyclades-16ye. +# modem c c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + +# Initialize all ports on a Digiboard 8. +# modem D D 00 01 02 03 04 05 06 07 diff --git a/release/picobsd/custom/mfs/etc/remote b/release/picobsd/custom/mfs/etc/remote new file mode 100644 index 000000000000..6f9fcaf4ad5d --- /dev/null +++ b/release/picobsd/custom/mfs/etc/remote @@ -0,0 +1,50 @@ +# @(#)remote 5.2 (Berkeley) 6/30/90 +# +# remote -- remote host description file +# see tip(1), remote(5) +# +# dv device to use for the tty +# el EOL marks (default is NULL) +# du make a call flag (dial up) +# pn phone numbers (@ =>'s search phones file; possibly taken from +# PHONES environment variable) +# at ACU type +# ie input EOF marks (default is NULL) +# oe output EOF string (default is NULL) +# cu call unit (default is dv) +# br baud rate (defaults to 300) +# fs frame size (default is BUFSIZ) -- used in buffering writes on +# receive operations +# tc to continue a capability + +# Systems definitions +netcom|Netcom Unix Access:\ + :pn=\@:tc=unix1200: +omen|Omen BBS:\ + :pn=\@:tc=dos1200: + +# UNIX system definitions +unix1200|1200 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial1200: +unix300|300 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial300: + +# DOS system definitions +dos1200|1200 Baud dial-out to a DOS system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^Z:pa=none:tc=dial1200: + +# General dialer definitions used below +# +# COURIER switch settings: +# switch: 1 2 3 4 5 6 7 8 9 10 +# setting: D U D U D D U D U U +# Rackmount: U U D U D U D D U D +# +dial2400|2400 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#2400:cu=/dev/cuaa0:at=hayes:du: +dial1200|1200 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#1200:cu=/dev/cuaa0:at=hayes:du: + +# Hardwired line +cuaa0b|cua0b:dv=/dev/cuaa0:br#2400 +cuaa0c|cua0c:dv=/dev/cuaa0:br#9600 diff --git a/release/picobsd/custom/mfs/etc/snmpd.conf b/release/picobsd/custom/mfs/etc/snmpd.conf new file mode 100644 index 000000000000..29400dfb4b5e --- /dev/null +++ b/release/picobsd/custom/mfs/etc/snmpd.conf @@ -0,0 +1,58 @@ +# load average checks + +# load [1MAX=DEFMAXLOADAVE] [5MAX=DEFMAXLOADAVE] [15MAX=DEFMAXLOADAVE] +# +# 1MAX: If the 1 minute load average is above this limit at query +# time, the errorFlag will be set. +# 5MAX: Similar, but for 5 min average. +# 15MAX: Similar, but for 15 min average. + +# Check for loads: +load 12 14 14 + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.10 + +# snmp agent errors + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.101 + +# snmp version mib + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.100 + +# System contact information + +syslocation PicoBSD +syscontact root <root@pico> + +# Setting up the access control lists to the agent + +# sec.name source community +com2sec local localhost private +com2sec public default public + +# sec.model sec.name +group local any local +group public any public + +# incl/excl subtree mask +view all included .1 80 +view system included system fe +view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc + +# context sec.model sec.level prefix read write not +access public "" any noauth 0 system none none +access local "" any noauth 0 all all all + +# If you want to get back to the functionality of previous versions, +# where the public community could read anything from anywhere and the +# private community could write anything from anywhere, use these +# lines instead: +# +# com2sec public default public +# com2sec private default private +# group public any public +# group private any private +# view all included .1 80 +# access public "" any noauth 0 all none none +# access private "" any noauth 0 all all none diff --git a/release/picobsd/custom/mfs/etc/termcap b/release/picobsd/custom/mfs/etc/termcap new file mode 100644 index 000000000000..0c17360936eb --- /dev/null +++ b/release/picobsd/custom/mfs/etc/termcap @@ -0,0 +1,133 @@ +# Copyright (c) 1980, 1985, 1989 The Regents of the University of California. +# All rights reserved. +# @(#)termcap.src 5.88 (Berkeley) 4/30/91 +# +# +# for syscons +# common entry without semigraphics +cons25w|ansiw|ansi80x25-raw:\ + :al=\E[L:am:bs:NP:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:co#80:\ + :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:li#25:cb=\E[1K:\ + :ms:nd=\E[C:pt:rs=\E[x\E[m\Ec:so=\E[7m:se=\E[m:up=\E[A:\ + :pa#64:Co#8:Sf=\E[3%dm:Sb=\E[4%dm:op=\E[37;40m:\ + :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ + :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\ + :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:eo:sf=\E[S:sr=\E[T:\ + :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\E[K:kB=\E[Z:\ + :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:bw:\ + :mb=\E[5m:md=\E[1m:mh=\E[30;1m:mr=\E[7m:me=\E[m:bl=^G:ut:it#8: +cons25|ansis|ansi80x25:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :tc=cons25w: +cons25-m|ansis-mono|ansi80x25-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25: +cons50|ansil|ansi80x50:\ + :li#50:tc=cons25: +cons50-m|ansil-mono|ansi80x50-mono:\ + :li#50:tc=cons25-m: +# 80x25 ISO 8859-1 FreeBSD console +cons25l1|cons25-iso8859-1:\ + :ac=l\215m\216k\214j\213u\226t\225v\227w\230q\222x\231n\217o\220s\224p\221r\223`\201a\202f\207g\210~\237.^Y-^X+\253,\273I\247y\232z\233:\ + :tc=cons25w: +cons25l1-m|cons25-iso8859-1-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25l1: +# 80x50 ISO 8859-1 FreeBSD console +cons50l1|cons50-iso8859-1:\ + :li#50:tc=cons25l1: +cons50l1-m|cons50-iso8859-1-mono:\ + :li#50:tc=cons25l1-m: +dosansi|ANSI.SYS standard crt|ansi:\ + :am:bs:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:co#80:\ + :do=\E[B:li#25:mi:nd=\E[C:\ + :se=\E[m:so=\E[7m:up=\E[A:us=\E[4m:ue=\E[m:\ + :md=\E[1m:mh=\E[m:mb=\E[5m:me=\E[m:\ + :kh=\EG:kb=^h:ku=\EH:kd=\EP:kl=\EK:kr=\EM:\ + :k1=\E;:k2=\E<:k3=\E=:k4=\E>:k5=\E?:\ + :k6=\E@:k7=\EA:k8=\EB:k9=\EC:k0=\ED: + +# Note: this entry describes the "native" +# capabilities of the PC monochrome display, without ANY emulation; most +# communications packages (but NOT PC/IX connect) do some kind of emulation. +pc|ibmpc|ibm pc PC/IX:\ + :li#24:co#80:am:bs:bw:eo:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\ + :nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m: +pc3mono|IBM PC 386BSD Console with monochrome monitor:\ + :so=\E[0;1r\E[m:tc=pc3: +pc3|ibmpc3|IBM PC 386BSD Console:\ + :Co#8:\ + :DO=\E[%dB:\ + :F1=\E[W:\ + :F2=\E[X:\ + :K1=\E[H:\ + :K2=\E[I:\ + :K3=\E[E:\ + :K4=\E[F:\ + :K5=\E[G:\ + :LE=\E[%dD:\ + :RI=\E[%dC:\ + :Sb=\E[1;%dx:\ + :Sf=\E[2;%dx:\ + :UP=\E[%dA:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :am:\ + :bl=^G:\ + :bs:\ + :cb=\E[1K:\ + :cd=\E[J:\ + :ce=\E[K:\ + :cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:\ + :co#80:\ + :cr=^M:\ + :do=\E[B:\ + :ho=\E[H:\ + :is=\E[m:\ + :it#8:\ + :k;=\E[V:\ + :k1=\E[M:\ + :k2=\E[N:\ + :k3=\E[O:\ + :k4=\E[P:\ + :k5=\E[Q:\ + :k6=\E[R:\ + :k7=\E[S:\ + :k8=\E[T:\ + :k9=\E[U:\ + :kD=\177:\ + :@7=\E[F:\ + :kN=\E[G:\ + :kP=\E[I:\ + :kb=\177:\ + :kd=\E[B:\ + :kh=\E[H:\ + :kl=\E[D:\ + :kr=\E[C:\ + :ku=\E[A:\ + :le=^H:\ + :li#25:\ + :ms:\ + :nd=\E[C:\ + :op=\E[x:\ + :pa#64:\ + :rs=\E[m:\ + :se=\E[m:\ + :sf=\E[S:\ + :so=\E[7;1r\E[7m:\ + :sr=\E[T:\ + :ta=^I:\ + :te=\E[m:\ + :ti=\E[m:\ + :up=\E[A:\ + :ut: +xterm|vs100|xterm terminal emulator (X window system):\ + :li#65:\ + :kh=\EOH:@7=\EOF:kb=^H:kD=^?:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:km:\ + :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;65r\E[65;1H:\ + :rs=\E>\E[?1;3;4;5l\E[?7;8h:\ + :tc=vt220: +xterms|vs100s|xterm terminal emulator (small)(X window system):\ + :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\ + :li#24:tc=xterm: diff --git a/release/picobsd/custom/mfsinfo b/release/picobsd/custom/mfsinfo new file mode 100644 index 000000000000..e53f171ff14d --- /dev/null +++ b/release/picobsd/custom/mfsinfo @@ -0,0 +1,17 @@ +# Information about mfs parameters +# Size of mfs in kilobytes +MFS_SIZE = 3500 + +# Name of init program +INIT = init + +# Number of bytes per inode in mfs +MFS_INODES = 4096 + +# Number of bytes per inode in floppy image +FLOPPY_INODES = 32768 + +# Suffix to tack on somewhere +suffix = -C + +PASSWD = YES diff --git a/release/picobsd/dial/Makefile.mfs b/release/picobsd/dial/Makefile.mfs new file mode 100644 index 000000000000..fa83cfa2b78a --- /dev/null +++ b/release/picobsd/dial/Makefile.mfs @@ -0,0 +1,75 @@ +# +# $FreeBSD$ +# + +.ifndef (DESTDIR) +DESTDIR?=/mnt +.endif + +STAND_LINKS= bin sbin +USR_LINKS= bin sbin libexec +PL_LOCALE_LINKS= pl polish +US_LOCALE_LINKS= en english +MY_DEVS= std sysmouse tun2 cuaa0 cuaa1 cuaa2 vty10 fd0 pty0 \ + psm0 \ + wd0s1h wd0s2 wd0s3 wd0s4 wd1s1h wd1s2 wd1s3 wd1s4 + +.if ${LANGUAGE} == pl +LOCALE=pl_PL.ISO_8859-2 +LOCALE_LINKS=${PL_LOCALE_LINKS} +FONT=iso02-8x16.fnt +KBD=pl_PL.ISO_8859-2.kbd +.else +LOCALE=en_US.ISO_8859-1 +LOCALE_LINKS=${US_LOCALE_LINKS} +.endif + +all: tree links + +tree: + mtree -deU -f ../build/mfs.mtree -p ${DESTDIR} + +links: tree + (cd ${DESTDIR}; \ + for i in ${STAND_LINKS}; \ + do \ + ln -s /stand $${i}; \ + done; \ + cd var/run; \ + ln -s /dev/null log; \ + cd ../../usr; \ + for i in ${USR_LINKS}; \ + do \ + ln -s /stand $${i}; \ + done; \ + cd share/misc;\ + ln -s /etc/termcap termcap; \ + echo emacs >${DESTDIR}/usr/share/misc/init.ee; \ + cd ../; \ + cd locale; \ + for i in ${LOCALE_LINKS}; \ + do \ + ln -s ${LOCALE} $${i}; \ + done; \ + mkdir ${LOCALE}/; \ + cp /usr/share/locale/${LOCALE}/* ${LOCALE}/; \ + if [ "X${FONT}" != "X" ]; \ + then \ + cp /usr/share/syscons/fonts/${FONT} ../syscons/; \ + cp /usr/share/syscons/keymaps/${KBD} ../syscons/; \ + fi; \ + cd ../nls; \ + for i in ${LOCALE_LINKS}; \ + do \ + ln -s ${LOCALE} $${i}; \ + done;) + + +# We don't do it under 'all' because it's needed only on non-DEVFS systems +devnodes: tree + (cd ${DESTDIR}/dev; \ + ln -s /dev/MAKEDEV; \ + ./MAKEDEV ${MY_DEVS} ; \ + rm MAKEDEV) + +clean: diff --git a/release/picobsd/dial/PICOBSD b/release/picobsd/dial/PICOBSD new file mode 100644 index 000000000000..0acaf8e93dac --- /dev/null +++ b/release/picobsd/dial/PICOBSD @@ -0,0 +1,63 @@ +# +# $FreeBSD$ +#Line starting with #PicoBSD contains PicoBSD build parameters +#marker def_sz init MFS_inodes floppy_inodes +#PicoBSD 2200 init 4096 32768 +options MD_ROOT_SIZE=2200 # same as def_sz + +# +machine i386 +cpu I586_CPU +cpu I686_CPU +ident PICOBSD +maxusers 3 + +options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +options FFS #Berkeley Fast Filesystem +options FFS_ROOT #FFS usable as root device [keep this!] +options MFS #Memory Filesystem +options MD_ROOT #Use MFS for root +options MSDOSFS #MSDOS Filesystem +options CD9660 #ISO 9660 Filesystem +options EXT2FS +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] +options USERCONFIG #boot -c editor +options VISUAL_USERCONFIG #visual boot -c editor +options INTRO_USERCONFIG #imply -c and parse info area +#options DEVFS +options PCI_QUIET +options NO_SWAPPING +options COMPAT_OLDISA #Use ISA shims and glue for old drivers + +device isa +device pci + +device fdc +device ata +device atadisk +device atapicd +options ATA_STATIC_ID #Static device numbering + +# atkbdc0 controls both the keyboard and the PS/2 mouse +device atkbdc 1 +device atkbd +device psm + +device vga + +# syscons is the default console driver, resembling an SCO console +device sc 1 + +# Floating point support - do not disable. +device npx + +# Serial (COM) ports +device sio + +device random # Entropy device +device loop # Network loopback +device ether # Ethernet support +device tun # Packet tunnel. +device pty # Pseudo-ttys (telnet etc) +device md # Memory "disks" diff --git a/release/picobsd/dial/PICOBSD.hints b/release/picobsd/dial/PICOBSD.hints new file mode 100644 index 000000000000..1c6c3b29aeb9 --- /dev/null +++ b/release/picobsd/dial/PICOBSD.hints @@ -0,0 +1,33 @@ +# $FreeBSD$ +hint.fdc.0.at="isa" +hint.fdc.0.port="0x3F0" +hint.fdc.0.irq="6" +hint.fdc.0.drq="2" +hint.fd.0.at="fdc0" +hint.fd.0.drive="0" +hint.fd.1.at="fdc0" +hint.fd.1.drive="1" +hint.ata.0.at="isa" +hint.ata.0.port="0x1F0" +hint.ata.0.irq="14" +hint.ata.1.at="isa" +hint.ata.1.port="0x170" +hint.ata.1.irq="15" +hint.atkbdc.0.at="isa" +hint.atkbdc.0.port="0x060" +hint.atkbd.0.at="atkbdc" +hint.atkbd.0.irq="1" +hint.psm.0.at="atkbdc" +hint.psm.0.irq="12" +hint.vga.0.at="isa" +hint.sc.0.at="isa" +hint.npx.0.at="nexus" +hint.npx.0.port="0x0F0" +hint.npx.0.irq="13" +hint.sio.0.at="isa" +hint.sio.0.port="0x3F8" +hint.sio.0.flags="0x10" +hint.sio.0.irq="4" +hint.sio.1.at="isa" +hint.sio.1.port="0x2F8" +hint.sio.1.irq="3" diff --git a/release/picobsd/dial/crunch1/crunch.conf b/release/picobsd/dial/crunch1/crunch.conf new file mode 100644 index 000000000000..d7caf9e61901 --- /dev/null +++ b/release/picobsd/dial/crunch1/crunch.conf @@ -0,0 +1,48 @@ +# $FreeBSD$ +# +# NOTE1: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# Default build options +buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec + +# ns, vm etc... +srcdirs ../../tinyware + +progs ppp ftp telnet ee gzip less +#progs ssh +ln gzip gunzip +ln gzip zcat +ln gzip gzcat +ln less more + +progs sh test kget echo pwd msg stty +progs hostname cat kill sps vm ns +progs chmod chown help getty +progs cp df fsck ping mv ln traceroute +progs ifconfig kbdcontrol moused +progs ls mkdir mount mount_msdos mount_cd9660 mount_ext2fs +progs rm route sysctl umount reboot +progs vidcontrol +ln sh -sh +ln test [ +ln sps ps +ln msg dmesg +ln ns netstat +ln mount_msdos msdos +ln mount_cd9660 cd9660 +ln mount_ext2fs ext2fs +ln chown chgrp + +libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lgnuregex -lmp -lgmp -lm +libs -lncurses -lmytinfo -lipx -lz +libs -ltermcap -ltelnet -lalias diff --git a/release/picobsd/dial/floppy.tree.exclude b/release/picobsd/dial/floppy.tree.exclude new file mode 100644 index 000000000000..64c05e2b3a76 --- /dev/null +++ b/release/picobsd/dial/floppy.tree.exclude @@ -0,0 +1,16 @@ +etc/disktab +etc/inetd.conf +etc/master.passwd +etc/mfs.rc +etc/ppp.conf +etc/ppp.conf +etc/ppp.linkup +etc/rc +etc/rc.conf +etc/rc.firewall +etc/rc.serial +etc/remote +etc/shells +etc/snmpd.conf +etc/sshd_config +etc/ttys diff --git a/release/picobsd/dial/floppy.tree/etc/master.passwd b/release/picobsd/dial/floppy.tree/etc/master.passwd new file mode 100644 index 000000000000..f58c3ffe768a --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/master.passwd @@ -0,0 +1,6 @@ +root:*:0:0::0:0:Charlie &:/root:/bin/sh +toor:*:0:0::0:0:Bourne-again Superuser:/root: +daemon:*:1:1::0:0:Owner of many system processes:/root:/nonexistent +operator:*:2:20::0:0:System &:/usr/guest/operator:/bin/csh +bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/nonexistent +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/nonexistent diff --git a/release/picobsd/dial/floppy.tree/etc/mfs.rc b/release/picobsd/dial/floppy.tree/etc/mfs.rc new file mode 100644 index 000000000000..fe32516232d7 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/mfs.rc @@ -0,0 +1,35 @@ +#!/bin/sh +# $FreeBSD$ +### WARNING !!!!!! ##### +# We remove this file during execution (see EOF). +# Awful things happen if its size is > 1024B + +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +sysctl -w vm.defer_swapspace_pageouts=1 vm.disable_swapspace_pageouts=1 2>&1 >/dev/null + +echo "" +echo "-------------------------------------------" +echo " Please wait. The system is coming up..." +echo "-------------------------------------------" +echo "" +echo "Reading /etc from startup floppy..." +mount -o rdonly /dev/fd0a /start_floppy +cd /start_floppy/etc +cp -Rp . /etc/ +cd /etc +umount /start_floppy +echo "Ok. (Now you can remove floppy if you like)" +echo "" + +gzip -d -f *.gz +. rc + +exit 0 diff --git a/release/picobsd/dial/floppy.tree/etc/ppp/ppp.conf b/release/picobsd/dial/floppy.tree/etc/ppp/ppp.conf new file mode 100644 index 000000000000..440ba294bdf5 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/ppp/ppp.conf @@ -0,0 +1,9 @@ +# $FreeBSD$ +# +# PPP Sample Configuration File +default: + set speed 38400 + disable lqr + deny lqr + set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" + diff --git a/release/picobsd/dial/floppy.tree/etc/ppp/ppp.conf.template b/release/picobsd/dial/floppy.tree/etc/ppp/ppp.conf.template new file mode 100644 index 000000000000..0473c4aec6f2 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/ppp/ppp.conf.template @@ -0,0 +1,10 @@ +# +# $FreeBSD$ +# PPP Sample Configuration File +# +default: + set speed 38400 + disable lqr + deny lqr + set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" + diff --git a/release/picobsd/dial/floppy.tree/etc/ppp/ppp.linkup b/release/picobsd/dial/floppy.tree/etc/ppp/ppp.linkup new file mode 100644 index 000000000000..8a9d900cf382 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/ppp/ppp.linkup @@ -0,0 +1,6 @@ +# Example of ppp.linkup file +# +# Otherwise, simply add peer as default gateway. +# +MYADDR: + add 0 0 HISADDR diff --git a/release/picobsd/dial/floppy.tree/etc/rc b/release/picobsd/dial/floppy.tree/etc/rc new file mode 100644 index 000000000000..710adc9f7189 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/rc @@ -0,0 +1,102 @@ +#!/bin/sh +# $FreeBSD$ +############################################ +### Special setup for one floppy PICOBSD ### +### THIS IS NOT THE NORMAL /etc/rc !!!!! ### +############################################ +mount -a -t nonfs +if [ -f /etc/rc.conf ]; then + . /etc/rc.conf +fi +# start up the initial network configuration. +if [ -f /etc/rc.network ]; then + . /etc/rc.network + network_pass1 +fi +# clean up left-over files +if [ -n "$network_pass1_done" ]; then + network_pass2 +fi +if [ -n "$network_pass2_done" ]; then + network_pass3 +fi + +# stdin must be redirected because it might be for a serial console +kbddev=/dev/ttyv0 +viddev=/dev/ttyv0 + +echo -n "Configuring console:" + +# keymap +if [ "X${keymap}" != X"NO" ]; then + echo -n ' keymap'; kbdcontrol < ${kbddev} -l /usr/share/syscons/${keymap} +fi + +# keyrate +if [ "X${keyrate}" != X"NO" ]; then + echo -n ' keyrate'; kbdcontrol < ${kbddev} -r ${keyrate} +fi + +# keybell +if [ "X${keybell}" != X"NO" ]; then + echo -n ' keybell'; kbdcontrol < ${kbddev} -b ${keybell} +fi + +# change function keys +if [ "X${keychange}" != X"NO" ]; then + echo -n " keychange" + set - ${keychange} + while [ $# -gt 0 ] + do + kbdcontrol < ${kbddev} -f "$1" "$2" + shift; shift + done +fi + +# cursor type +if [ "X${cursor}" != X"NO" ]; then + echo -n ' cursor'; vidcontrol < ${viddev} -c ${cursor} +fi + +# font 8x16 +if [ "X${font8x16}" != X"NO" ]; then + echo -n ' font8x16'; vidcontrol < ${viddev} -f 8x16 /usr/share/syscons/${font8x16} +fi + +# font 8x14 +if [ "X${font8x14}" != X"NO" ]; then + echo -n ' font8x14'; vidcontrol < ${viddev} -f 8x14 /usr/share/syscons/${font8x14} +fi + +# font 8x8 +if [ "X${font8x8}" != X"NO" ]; then + echo -n ' font8x8'; vidcontrol < ${viddev} -f 8x8 /usr/share/syscons/${font8x8} +fi + +# blank time +if [ "X${blanktime}" != X"NO" ]; then + echo -n ' blanktime'; vidcontrol < ${viddev} -t ${blanktime} +fi + +# mouse daemon +if [ "X${moused_enable}" = X"YES" ] ; then + echo -n ' moused' + moused ${moused_flags} -p ${moused_port} -t ${moused_type} + vidcontrol <${viddev} -m on +fi + +echo '' +echo '' +echo '' +echo '+---------- PicoBSD @VER@ (DIALUP) -------------+' +echo '| |' +echo '| Log in as "root" (no password). |' +echo '| |' +echo '| This version of PicoBSD is fully under |' +echo '| BSD license (except for SSH). For more |' +echo '| details see http://www.freebsd.org/~picobsd, |' +echo '| or contact the author. |' +echo '| |' +echo '| abial@freebsd.org |' +echo '| |' +echo '+----------------------------------------------+' diff --git a/release/picobsd/dial/floppy.tree/etc/rc.conf b/release/picobsd/dial/floppy.tree/etc/rc.conf new file mode 100644 index 000000000000..0c7684df82c2 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/rc.conf @@ -0,0 +1,32 @@ +#!/bin/sh +# $FreeBSD$ +### Network configuration sub-section ###################### +### Basic network options: ### +hostname="pico.mydomain.edu" # Set this! +tcp_extensions="NO" # Allow RFC1323 & RFC1644 extensions (or NO). +network_interfaces="lo0" # List of network interfaces (lo0 is loopback). +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. +#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. +### Network routing options: ### +defaultrouter="NO" # Set to default gateway (or NO). +static_routes="" # Set to static route list (or leave empty). +gateway_enable="NO" # Set to YES if this host will be a gateway. +arpproxy_all="" # replaces obsolete kernel option ARP_PROXYALL. +### System console options ################################# +keymap="NO" # keymap in /usr/share/syscons/* (or NO). +keyrate="NO" # keyboard rate to: slow, normal, fast (or NO). +keybell="NO" # bell to duration.pitch or normal or visual (or NO). +keychange="NO" # function keys default values (or NO). +cursor="NO" # cursor type {normal|blink|destructive} (or NO). +font8x16="NO" # font 8x16 from /usr/share/syscons/* (or NO). +font8x14="NO" # font 8x14 from /usr/share/syscons/* (or NO). +font8x8="NO" # font 8x8 from /usr/share/syscons/* (or NO). +blanktime="NO" # blank time (in seconds) or "NO" to turn it off. +moused_enable="YES" # Run the mouse daemon +moused_type="microsoft" +moused_port="/dev/cuaa0" +moused_flags="-3" +### Allow local configuration override at the very end here ## +if [ -f /etc/rc.conf.local ]; then + . /etc/rc.conf.local +fi diff --git a/release/picobsd/dial/floppy.tree/etc/ttys b/release/picobsd/dial/floppy.tree/etc/ttys new file mode 100644 index 000000000000..2f4f449729f4 --- /dev/null +++ b/release/picobsd/dial/floppy.tree/etc/ttys @@ -0,0 +1,10 @@ +# +# @(#)ttys 5.1 (Berkeley) 4/17/89 +# +# name getty type status comments +# +# This entry needed for asking password when init goes to single-user mode +# If you want to be asked for password, change "secure" to "insecure" here +console none unknown off secure +ttyv0 "/usr/libexec/getty Pc" cons25 on secure + diff --git a/release/picobsd/dial/lang/LICENCE.ssh b/release/picobsd/dial/lang/LICENCE.ssh new file mode 100644 index 000000000000..c4fa584542ad --- /dev/null +++ b/release/picobsd/dial/lang/LICENCE.ssh @@ -0,0 +1,8 @@ +SSH is included here under different license than BSD one. Please see +http://www.cs.hut.fi/ssh for details. In short, it permits non-commercial +use only. Your usage may be further restricted by applicable local laws on +using strong encryption methods. + +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/dial/lang/README.en b/release/picobsd/dial/lang/README.en new file mode 100644 index 000000000000..018b4ecc68db --- /dev/null +++ b/release/picobsd/dial/lang/README.en @@ -0,0 +1,106 @@ +1999.04.22, Warsaw, Poland + + PicoBSD @VER@ (DIALUP flavor) + --------------------------- + + +What is PicoBSD? +---------------- + +It's a one floppy version of FreeBSD (please see http://www.freebsd.org), +configured mainly for dialup access. It can be used as a means to read your +mail remotely, or to log in somewhere and do the work there. + +What are minimal requirements? +------------------------------ + +* 386SX CPU or better (this release contains also FPU emulator) +* 8MB RAM - the more the better. +* Modem sitting on COM1-COM4 (default is to use COM2), if you want to have + a PPP connection. +* Network card: compatible with NE2000, or PCI cards with DEC chipsets + or 3C509 series (ed, ep and de drivers). There is also driver for Intel + EtherExpress PCI card (fxp), and Lance/PCnet (lnc). + +How to make a dialup connection? +-------------------------------- + +I recommend running /stand/dialup script, which will additionally configure +the PPP to allow you to automatically connect to your provider, and +will make the ppp to run in background. However, if you like to do it +yourself, or the script doesn't work properly in your case (let me know +this!), here are the steps you should take: + +1. Go to /etc/ppp directory and edit file ppp.conf (using ee editor). You + should check at least the port number of your modem (it's configured + on cuaa1==COM2 by default). +2. After you're happy with it, start 'ppp' program. Enter the terminal + mode ('term') - you are now directly connected to your modem, so you + can normally dial the number using AT commands (e.g. atdt555666777), + and log in to communictaion server. You should see something like + this: + + (comm server prompt) login: abial + (comm server prompt) Password: ******** + + Then either the comm server automatically switches to PPP, or you + should issue a command to tell it to do so (e.g. 'go ppp', 'PPP' or + other). When PPP is started, you should see something like: + + ppp on pico> Packet mode + PPP on pico> + + Notice the uppercase PPP - it means that the protocol is up, and now + you're connected. Congratulations. :-) +3. Your console is blocked now, but you can use other virtual consoles + available under Alt-Fn. + +How to configure my Ethernet card? +---------------------------------- + +Hopefully your ethernet card is supported by PicoBSD kernel, and in case of +ISA cards you have already set up correctly its parameters in UserConfig +editor. You can check if PicoBSD found your card by looking into startup +messages ('dmesg | more'). + +The easiest way to do it is to edit /etc/rc.conf file ('ee /etc/rc.conf'). +Find the line which says 'network_interfaces' and add the name of your +card to the list. Then add yet another line 'ifconfig_<if_name>' which +actually sets up your IP address and netmask. E.g: + + network_interfaces="lo0 ed0" + ifconfig_lo0="inet 127.0.0.1" + ifconfig_ed0="inet 192.168.0.1 netmask 255.255.255.0" + +Then you have to set up your default gateway, which is usually the router +nearest to you (on the same LAN). E.g: + + defaultrouter="192.168.0.100" + +Then you save this information on the floppy with 'update' command, and +reboot. + +Of course, you can also issue the proper commands by hand: + + ifconfig ed0 inet 192.168.0.1 netmask 255.255.255.0 + route add default 192.168.0.100 + +Once you do this, you should be able to 'ping' some remote IP address. + +Where to get additional info? +----------------------------- + +There is official page of this project at: + + http://www.freebsd.org/~picobsd/ + +You can find some informations there - not too much yet, to be sure... ;-) +I'll put there also new versions of PicoBSD and bugfixes. + +I'll be glad hearing from you about your experiences with PicoBSD. Thanks. + +Have fun! + +Andrzej Bialecki <abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/dial/lang/README.pl b/release/picobsd/dial/lang/README.pl new file mode 100644 index 000000000000..ef5bdf1f0615 --- /dev/null +++ b/release/picobsd/dial/lang/README.pl @@ -0,0 +1,107 @@ +1998.07.23, Warszawa + + PicoBSD @VER@ (wersja DIALUP) + --------------------------- + +Co to jest PicoBSD? +------------------- + +Jest to jednodyskietkowa wersja FreeBSD skonfigurowana g³ównie pod k±tem +zastosowania jako narzêdzie dostêpu przez dialup lub ethernet. +W celu zapoznania siê z pe³nym systemem zajrzyj na http://www.freebsd.org + +Jakie s± minimalne wymagania? +----------------------------- + +* Procesor 386SX lub lepszy (dostêpny jest emulator FPU) +* 8MB pamiêci - jest to absolutnie nieprzekraczalne minimum. Oczywi¶cie im + wiecej, tym lepiej - ograniczenie jest g³ównie spowodowane brakiem swapu. Po + zapoznaniu siê z systemem mo¿esz sobie skonfigurowaæ tzw. swap-file na dysku + twardym, np. na partycji DOS-owej lub Linux-owej. S³u¿y do tego program + vnconfig, oraz urz±dzenie vn(4). Wówczas prawdopodobnie wystarczy 4MB pamiêci. +* Modem, skonfigurowany na COM1-COM4 (standardowo system wykorzystuje COM2), + je¶li bêdzie wykorzystywany dostêp przez PPP. +* Karta sieciowa: kompatybilna z NE2000, niektóre typy 3Com, lub wersje PCI z + chipsetem DEC21040 (drivery ed, ep i de), je¶li bêdziesz korzystaæ z dostêpu + przez ethernet. Jest te¿ driver do karty PCI Intel EtherExpress (fxp), i + kart Lance/PCnet (lnc). + +W jaki sposób uzyskaæ dostêp dialup? +------------------------------------ + +Zalecam skorzystanie ze skryptu /stand/dialup, który skonfiguruje dodatkowo +us³ugê PPP w ten sposób, ¿e bêdzie siê automatycznie ³±czyæ z providerem, oraz +ppp bêdzie dzia³aæ w tle. Je¶li jednak co¶ nie wyjdzie (daj mi znaæ o tym!), +lub lubisz robiæ to sam, oto opis poszczególnych kroków: + +1. wejd¼ do katalogu /etc/ppp i w pliku ppp.conf zmieñ port + szeregowy na ten, na którym masz modem (cuaa0==COM1, cuaa1==COM2, + itd...) Mo¿esz to zrobiæ edytorem 'ee /etc/ppp/ppp.conf'. + +2. uruchom program 'ppp'. Przejd¼ do trybu terminalowego (polecenie + 'term'). W tym momencie masz bezpo¶redni kontakt z modemem, wiêc + normalnie wybierz numer dialup i zaloguj siê do serwera + komunikacyjnego. Wydaj mu polecenie przej¶cia w tryb ppp. Powiniene¶ + zobaczyæ co¶ takiego: + + (communication server...): ppp + + ppp on pico> Packet mode + PPP on pico> + + W tym momencie jeste¶ ju¿ online! Gratulujê. +3. Do Twojej dyspozycji s± nastêpuj±ce programy: telnet, ftp, i ssh. + Poniewa¿ wywo³a³e¶ 'ppp' rêcznie, wiêc blokuje Ci konsolê. Nie + szkodzi - masz do dyspozycji 9 kolejnych konsoli wirtualnych, po + których mo¿na siê poruszaæ naciskaj±c lewy Alt i klawisz funkcyjny + F1-F10. + +Jak skonfigurowaæ kartê Ethernet? +--------------------------------- + +Miejmy nadziejê, ¿e Twoja karta jest obs³ugiwana przez j±dro dostêpne na +dyskietce, oraz ¿e poprawnie ustawi³e¶ jej parametry (w przypadku kart +ISA) w edytorze UserConfig. Mo¿esz sprawdziæ, czy PicoBSD wykry³o tê kartê, +patrz±c na komunikaty startowe ('dmesg | more'). + +Naj³atwiejszym sposobem na skonfigurowanie dostepu LAN jest ustawienie +parametrów w pliku konfiguracyjnym systemu ('ee /etc/rc.conf'). Znajd¼ liniê, +która zaczyna siê od 'network_interfaces' i dopisz nazwê sterownika karty do +listy interfejsów. Potem dodaj jeszcze jedn± liniê 'ifconfig_<nazwa>', +która ustawi w³a¶ciwy adres IP i maskê sieci. Np.: + + network_interfaces="lo0 ed0" + ifconfig_lo0="inet 127.0.0.1" + ifconfig_ed0="inet 192.168.0.1 netmask 255.255.255.0" + +Nastêpnie musisz ustawiæ swój domy¶lny router (jest to zazwyczaj adres IP +routera w Twojej sieci LAN). Np.: + + defaultrouter="192.168.0.100" + +Nastêpnie zachowujesz te informacje na dyskietce startowej przy pomocy +polecenia 'update', i restartujesz system. + +Oczywi¶cie mo¿na te¿ zrobiæ to rêcznie, wydaj±c odpowiednie polecenia: + + ifconfig ed0 inet 192.168.0.1 netmask 255.255.255.0 + route add default 192.168.0.100 + +Je¶li poprawnie wszystko ustawi³e¶, powiniene¶ byæ w stanie uzyskaæ +odpowied¼ od swojego routera ('ping 192.168.0.100') oraz od jakiej¶ +maszyny poza Twoj± sieci±. + +Skad wzi±æ dodatkowe informacje? +-------------------------------- + +Oficjalna strona projektu PicoBSD: + + http://www.freebsd.org/~picobsd/ + +Mo¿na tam znale¼æ trochê wiêcej informacji, oraz poprawki i nowe wersje. + +Mi³ej zabawy! + +Andrzej Bia³ecki <abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/dial/lang/boot.help.en b/release/picobsd/dial/lang/boot.help.en new file mode 100644 index 000000000000..382222b61887 --- /dev/null +++ b/release/picobsd/dial/lang/boot.help.en @@ -0,0 +1,23 @@ + ++--------------------------------------------------------------------------+ + Welcome to FreeBSD !!! + The system is coming up, please wait. ++--------------------------------------------------------------------------+ + + This is special version of FreeBSD-3.0, called PicoBSD (v.@VER@). + + It allows you to connect to the Internet via dialup connection (using PPP) + or via Ethernet card. + + You can adjust kernel parameters to match those of your hardware via + -c switch (boot: -c) to boot prompt. If you are booting for the first + time, you enter this mode automatically. + + The floppy contains also some tools for remote access (telnet, ftp, SSH) + and local disk access (FreeBSD, DOS and Linux filesystem support). + + I hope you'll enjoy it. + + abial@freebsd.org ++--------------------------------------------------------------------------+ + diff --git a/release/picobsd/dial/lang/boot.help.pl b/release/picobsd/dial/lang/boot.help.pl new file mode 100644 index 000000000000..c52eb1191496 --- /dev/null +++ b/release/picobsd/dial/lang/boot.help.pl @@ -0,0 +1,23 @@ + ++----------------------------------------------------------------------+ + Witamy we FreeBSD !!! + Prosze czekac. Trwa uruchamianie systemu. ++----------------------------------------------------------------------+ + + To jest specjalna wersja FreeBSD-3.0, zwana PicoBSD (v.@VER@). + + Pozwala ona na uzyskanie polaczenia z Internetem przez protokol PPP + (polaczenie dialup) lub karte Ethernet. + + Mozna dopasowac parametry sprzetowe podajac opcje -c przy starcie + systemu (boot: -c). Przy pierwszym starcie tryb ten jest uruchamiany + automatycznie. + + Zawarte jest tu kilka narzedzi dla zdalnego dostepu (telnet, ftp, SSH) + oraz do obslugi lokalnej maszyny (dyskow FreeBSD, Linux i DOS). + + Milego uzywania. + + abial@freebsd.org ++----------------------------------------------------------------------+ + diff --git a/release/picobsd/dial/lang/dialup.en b/release/picobsd/dial/lang/dialup.en new file mode 100755 index 000000000000..ab1491245c02 --- /dev/null +++ b/release/picobsd/dial/lang/dialup.en @@ -0,0 +1,410 @@ +#!/bin/sh +# $FreeBSD$ +set_resolv() { + echo "[H[J" + echo "[1m Default Domain Name[m" + echo "" + echo "Here you should enter your default Internet domain. If your" + echo "provider uses something like 'www.big.isp.com', this should" + echo "be most probably 'big.isp.com'." + echo "" + echo "If you simply press enter here, you will have a 'mydomain.edu'," + echo "which is not the best idea, but may suffice for now..." + echo "" + read -p "Please enter the default domain name: " domain + if [ "X${domain}" = "X" ] + then + echo "" + echo "Fine, your domain will be 'mydomain.edu', but be aware" + echo "that it probably doesn't exist." + echo "" + read -p "Press any key to continue." junk + domain="mydomain.edu" + fi + echo "[H[J" + echo "[1m DNS Server Address[m" + echo "" + echo "Here you should enter the numeric address of your domain name" + echo "server. It is needed for resolving human-readable host names" + echo "(such as www.freebsd.org) to machine readable IP numbers. If" + echo "it's not set properly, you will have to use numeric IP addresses" + echo "when connecting to other hosts, which is highly inconvenient." + echo "" + echo "If you simply press Enter here, we'll set it to one of root" + echo "DNS servers. This may not always work." + echo "" + read -p "Please enter the DNS server address in form A.B.C.D: " dns + if [ "X${dns}" = "X" ] + then + echo "" + echo "Fine, your DNS server will be 192.33.4.12, but be aware" + echo "that this may not always work ok." + echo "" + read -p "Press any key to continue." junk + dns="192.33.4.12" + fi +} + +set_phone() { +while [ "X${phone}" = "X" ] +do + echo "[H[J" + echo "[1m Phone Number[m" + echo "" + echo "Here you should enter the full phone number you normally" + echo "use to connect to your provider, with all necessary prefixes" + echo "attached, e.g.: 01122334455" + echo "" + read -p "Please enter the phone number: " phone +done +} + +set_port() { +while [ "X${dev}" = "X" ] +do + echo "[H[J" + echo "[1m Port Number[m" + echo "" + echo "Here you should enter the port number, to which your modem is" + echo "attached. REMEMBER: COM1 is port 0 in FreeBSD, COM2 - port 1," + echo "and so on. You should enter only the number, not the full name" + echo "of the device." + echo "" + read -p "Please enter the port number (0,1,2): " dev +done +} + +set_speed() { +while [ "X${speed}" = "X" ] +do + echo "[H[J" + echo "[1m Port Speed[m" + echo "" + echo "Here you should choose the serial port speed." + echo "" + echo "NOTICE: port speed is NOT the same as modem speed - these are" + echo "different things. If your modem is capable of V.42 or MNP" + echo "compression, the actual speed of serial port should be set much" + echo "higher. E.g. for 14.4 kbps modem with compression you should" + echo "choose 38400, for 28.8 kbps modem with compression you should" + echo "choose 115200." + echo "" + echo " 1. 9600 bps" + echo " 2. 14400 bps" + echo " 3. 28800 bps" + echo " 4. 38400 bps (14.4 kbps modem with compression)" + echo " 5. 57600 bps" + echo " 6. 115200 bps (28.8 kbps modem with compression)" + echo "" + read -p "Please choose the port speed (1-6): " ans + case ${ans} in + 1) + speed=9600 + ;; + 2) + speed=14400 + ;; + 3) + speed=28800 + ;; + 4) + speed=38400 + ;; + 5) + speed=57600 + ;; + 6) + speed=115200 + ;; + *) + read -p "Bad value! Press enter to continue..." junk + unset speed + ;; + esac +done +} + +set_timeout() { +while [ "X${timo}" = "X" ] +do + echo "[H[J" + echo "[1m Idle Timeout[m" + echo "" + echo "Here you should enter timeout (in seconds). After this time, if" + echo "the connection is idle, it's disconnected (to save your money :-)" + echo "" + read -p "Please enter the timeout value: " timo +done +} + +set_login() { +while [ "X${user}" = "X" ] +do + echo "[H[J" + echo "[1m Login Name[m" + echo "" + echo "Here you should enter your login name that you normally use" + echo "to log in to your provider's terminal server." + echo "" + read -p "Please enter your login name: " user +done +} + +set_password() { +while [ "X${pass}" = "X" ] +do + echo "[H[J" + echo "[1m Password[m" + echo "" + echo "Here you enter the password that you use to log in to the" + echo "terminal server." + echo "" + echo "[31mWARNING: your password will be stored in readable form on the" + echo "floppy!!! If you don't like it... well, you must dial in manually." + echo "In that case abort this script (Ctrl-C). Otherwise, continue.[37m" + echo "" + stty -echo + read -p "Please enter your password: " pass + echo "" + read -p "Enter again your password: " pass1 + stty echo + echo "" + if [ "X${pass}" != "X${pass1}" ] + then + echo "Passwords didn't match! Press Enter to continue..." + read junk + pass="" + set_password + fi +done +} + +set_chat() { +echo "[H[J" +while [ "X${chat}" = "X" ] +do + echo "[1m Type of Login Dialog[m" + echo "" + echo "What type of login dialog do you expect from the terminal server?" + echo "" + echo "1) [32m......login:[37m ${user}" + echo " [32m...password:[37m ********" + echo " [36m(terminal server starts PPP here)[37m" + echo "2) [32m......login:[37m ${user}" + echo " [32m...password:[37m ********" + echo " [32m...protocol:[37m ppp" + echo " [36m(terminal server starts PPP here)[37m" + echo "3) [32m......username:[37m ${user}" + echo " [32m......password:[37m ********" + echo " [36m(terminal server starts PPP here)[37m" + echo "4) [32m......username:[37m ${user}" + echo " [32m......password:[37m ********" + echo " [32mportX/..xxx...:[37m ppp" + echo " [36m(terminal server starts PPP here)[37m" + echo "5) [32mUse CHAP to log in.[37m" + echo "6) [32mUse PAP to log in.[37m" + echo "" + read -p "Choose 1,2,3,4,5 or 6: " chat + case ${chat} in + 1) + chat1="TIMEOUT 10 ogin:--ogin: ${user} word: \\\\P" + chat2="login/password" + ;; + 2) + chat1="TIMEOUT 10 ogin:--ogin: ${user} word: \\\\P otocol: ppp" + chat2="login/password/protocol" + ;; + 3) + chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P" + chat2="username/password" + ;; + 4) + chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P port ppp" + chat2="username/password/port" + ;; + 5) chat1="-" + chat2="CHAP" + ;; + 6) chat1="-" + chat2="PAP" + ;; + *) echo "Bad value! Please choose 1,2,3 or 4." + echo "" + unset chat + unset chat2 + ;; + esac +done +} + +# Main entry of the script + +echo "[H[J" +echo "[1m Welcome to The Simplest PPP Configurator! :-)[m" +echo "" +echo " Your PPP is already preconfigured, so that you can dial manually." +echo "However, you probably noticed that it requires chatting with your modem" +echo "and logging in every time you want to connect. It's simple and it works," +echo "but it's also annoying." +echo "" +echo "This script will try to configure your PPP so that you can run it in" +echo "background (thus freeing the console), and log in automatically." +echo "" +echo "If you want to continue, press [1mEnter[m, otherwise press [1mCtrl-C[m." +echo "" +read junk + +# Step through the options. +set_phone +set_port +set_speed +set_timeout +set_login +set_password +set_chat +set_resolv + +ans="loop_it" +while [ "X${ans}" != "X" ] +do + +echo "[H[J" +echo "[1m Ok. You assigned the following values:[m" +echo "" +echo " 1. Phone number: ${phone}" +echo " 2. Port number: cuaa${dev}" +echo " 3. Port speed: ${speed} baud" +echo " 4. Timeout: ${timo} s" +echo " 5. Login name: ${user}" +echo " 6. Password: ${pass}" +echo " 7. Chat pattern: ${chat} (${chat2})" +echo " 8. Default domain: ${domain}" +echo " DNS Server: ${dns}" +echo "" +echo "If you're satisfied with these values, just press [1mEnter[m." +read -p "Otherwise, enter the number of the option you want to change (1-8): " ans +a="X${ans}" +case ${a} in +X1) + unset phone + set_phone + ;; +X2) + unset dev + set_port + ;; +X3) + unset speed + set_speed + ;; +X4) + unset timo + set_timeout + ;; +X5) + unset user + set_login + ;; +X6) + unset pass + set_password + ;; +X7) + unset chat + set_chat + ;; +X8) + unset dns + unset domain + set_resolv + ;; +X) ;; +*) + read -p "Unknown option: ${ans}. Press enter to continue..." + ;; +esac + +done + +echo "" +echo -n "Generating /etc/ppp/ppp.conf file..." +rm -f /etc/ppp/ppp.conf +cp /etc/ppp/ppp.conf.template /etc/ppp/ppp.conf +echo "" >>/etc/ppp/ppp.conf +echo "# This part was generated with $0" >>/etc/ppp/ppp.conf +echo "dialup:" >>/etc/ppp/ppp.conf +echo " set line /dev/cuaa${dev}" >>/etc/ppp/ppp.conf +echo " set speed ${speed}" >>/etc/ppp/ppp.conf +echo " set phone ${phone}" >>/etc/ppp/ppp.conf +echo " set authkey ${pass}" >>/etc/ppp/ppp.conf +echo " set timeout ${timo}" >>/etc/ppp/ppp.conf +if [ "X${chat1}" = "-" ] +then + echo " set authname ${user}" >>/etc/ppp/ppp.conf +else + echo " set login \"${chat1}\"" >>/etc/ppp/ppp.conf +fi +echo " set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0" >>/etc/ppp/ppp.conf + +echo " Done." +echo -n "Generating /etc/resolv.conf..." +echo "# This file was generated with $0">/etc/resolv.conf +echo "domain ${domain}" >>/etc/resolv.conf +echo "nameserver ${dns}">>/etc/resolv.conf +echo "hostname=\"pico.${domain}\"">>/etc/rc.conf + +echo " Done." + +echo "" +echo "REMEMBER to run /stand/update! Otherwise these changes will be lost!" +echo "" +echo "Please check the contents of /etc/ppp/ppp.conf, and edit it if" +echo "necessary. When you're satisfied with it, run ppp in background:" +echo "" +echo " [1mppp -background dialup[m" +echo "" +echo "Now, if you're sure that your /etc/ppp/ppp.conf file is ok (which is" +echo -n "probable :-) would you like to start the dialup connection now? (y/n) " +read ans +opts="" +while [ "X${ans}" = "Xy" ] +do + echo "[H[J" + if [ "X${opts}" = "X" ] + then + echo "We'll use the following arguments to 'ppp':" + echo "" + echo " ppp -background dialup" + echo "" + echo -n "Would you like to change them? (y/n) " + read oo + if [ "X${oo}" = "Xy" ] + then + read -p "Enter ppp arguments here: " opts + else + opts="-background dialup" + fi + echo "" + echo "" + fi + echo "Starting dialup connection. Wait until you see a 'PPP Enabled' message..." + echo "" + ppp ${opts} + if [ "X$?" != "X0" ] + then + echo "" + echo -n "Hmmm... Command failed. Try again? (y/n) " + read ans + if [ "X${ans}" != "Xy" ] + then + echo "" + echo "Try again later. Check also your config file (/etc/ppp/ppp.conf)" + echo "" + fi + else + echo "" + echo "Congratulations! You're on-line now." + echo "" + exit 0 + fi +done diff --git a/release/picobsd/dial/lang/dialup.pl b/release/picobsd/dial/lang/dialup.pl new file mode 100755 index 000000000000..1ace50f921d0 --- /dev/null +++ b/release/picobsd/dial/lang/dialup.pl @@ -0,0 +1,409 @@ +#!/bin/sh +# $FreeBSD$ +set_resolv() { + echo "[H[J" + echo "[1m Domy¶lna Nazwa Domeny[m" + echo "" + echo "Podaj domy¶ln± nazwê domeny Internetowej, której bêdziesz u¿ywaæ." + echo "Je¶li Twój provider ma nazwy typu 'www.akuku.com.pl', to bêdzie" + echo "to najprawdopodobniej 'akuku.com.pl'." + echo "" + echo "Je¶li po prostu naci¶niesz Enter, ustawisz (nieistniej±c±) domenê" + echo "'mydomain.org.pl', co nie jest najlepszym pomys³em, ale mo¿e na" + echo "razie wystarczyæ." + echo "" + read -p "Podaj domy¶ln± nazwê domeny: " domain + if [ "X${domain}" = "X" ] + then + echo "" + echo "Dobrze, ustawimy 'mydomain.org.pl', ale miej ¶wiadomo¶æ" + echo "¿e taka domena prawdopodobnie nie istnieje." + echo "" + read -p "Naci¶nij Enter" junk + domain="mydomain.org.pl" + fi + echo "[H[J" + echo "[1m Adres Serwera DNS[m" + echo "" + echo "Podaj adres w postaci numerycznej serwera DNS. Jest on potrzebny" + echo "do zamiany nazw (takich jak www.freebsd.org.pl) na adresy IP" + echo "(takie jak 192.168.1.1). Je¶li nie jest to ustawione poprawnie," + echo "bêdziesz musia³ pos³ugiwaæ siê adresami IP podczas ³±czenia siê" + echo "z innymi maszynami - jest to co najmniej niewygodne." + echo "" + echo "Je¶li po prostu naci¶niesz Enter, ustawisz (istniej±cy) serwer" + echo "o numerze 194.204.159.1 (w sieci TP SA)." + echo "" + read -p "Podaj adres IP serwera DNS (w postaci A.B.C.D): " dns + if [ "X${dns}" = "X" ] + then + echo "" + echo "Dobrze, ustawimy adres DNS serwera na 194.204.159.1, ale" + echo "niekoniecznie musi to byæ najlepszy serwer w Twojej czê¶ci sieci." + echo "" + read -p "Naci¶nij Enter..." junk + dns="194.204.159.1" + fi +} +set_phone() { +while [ "X${phone}" = "X" ] +do + echo "[H[J" + echo "[1m Numer Telefoniczny[m" + echo "" + echo "Podaj numer telefoniczny, którego normalnie u¿ywasz, ¿eby" + echo "dodzwoniæ siê do swojego providera. Powiniene¶ podaæ pe³ny" + echo "numer, z ewentualnymi przedrostkami, np: 022113355" + echo "" + read -p "Podaj numer telefoniczny: " phone +done +} + +set_port() { +while [ "X${dev}" = "X" ] +do + echo "[H[J" + echo "[1m Numer Portu Modemowego[m" + echo "" + echo "Podaj numer portu szeregowego, do którego pod³±czony jest modem." + echo "UWAGA: DOSowy port COM1 to port 0 (cuaa0) we FreeBSD, COM2 -" + echo "port 1, itd. Podaj tutaj tylko numer, a nie pe³n± nazwê urz±dzenia." + echo "" + read -p "Podaj numer portu szeregowego (0,1,2): " dev +done +} + +set_speed() { +while [ "X${speed}" = "X" ] +do + echo "[H[J" + echo "[1m Prêdko¶æ Linii Szeregowej[m" + echo "" + echo "Wybierz prêdko¶æ linii szeregowej, której u¿ywa modem." + echo "" + echo "UWAGA: Prêdko¶æ linii szeregowej NIE jest tym samym, co prêdko¶æ" + echo "modemu. Je¶li Twój modem obs³uguje protokó³ V.42 lub MNP" + echo "(zazwyczaj tak w³a¶nie jest), prêdko¶æ linii szeregowej musi byæ" + echo "du¿o wiêksza od prêdko¶ci modemu. Np. dla modemów 14.4 kbps z" + echo "kompresj± nale¿y wybraæ prêdko¶æ 38400 bps, a dla modemów" + echo "28.8 kbps z kompresj± nale¿y wybraæ prêdko¶æ 115200 bps." + echo "" + echo " 1. 9600 bps" + echo " 2. 14400 bps" + echo " 3. 28800 bps" + echo " 4. 38400 bps (modem 14.4 kbps z kompresj±)" + echo " 5. 57600 bps" + echo " 6. 115200 bps (modem 28.8 kbps z kompresj±)" + echo "" + read -p "Wybierz prêdko¶æ linii szeregowej (1-6): " ans + case ${ans} in + 1) + speed=9600 + ;; + 2) + speed=14400 + ;; + 3) + speed=28800 + ;; + 4) + speed=38400 + ;; + 5) + speed=57600 + ;; + 6) + speed=115200 + ;; + *) + read -p "Z³a warto¶æ! Naci¶nij Enter..." junk + unset speed + ;; + esac +done +} + +set_timeout() { +while [ "X${timo}" = "X" ] +do + echo "[H[J" + echo "[1m Czas roz³±czenia[m" + echo "" + echo "Podaj czas (w sekundach), po którym, je¶li nie ma ruchu na ³±czu," + echo "nast±pi automatyczne roz³±czenie. To pomaga w oszczêdzaniu :-)" + echo "" + read -p "Podaj czas roz³±czenia: " timo +done +} + +set_user() { +while [ "X${user}" = "X" ] +do + echo "[H[J" + echo "[1m Nazwa U¿ytkownika[m" + echo "" + echo "Podaj nazwê u¿ytkownika (login name), której normalnie u¿ywasz" + echo "do zalogowania siê do serwera komunikacyjnego providera." + echo "" + read -p "Podaj nazwê u¿ytkownika: " user +done +} + +set_pass() { +while [ "X${pass}" = "X" ] +do + echo "[H[J" + echo "[1m Has³o[m" + echo "" + echo "Podaj has³o, którego u¿ywasz do zalogowania siê do providera." + echo "" + echo "[31mUWAGA: Has³o to zostanie zapisane w czytelnej postaci na" + echo "dyskietce!!! Je¶li tego nie chcesz... bêdziesz musia³ logowaæ siê" + echo "rêcznie, tak jak dotychczas. W tym przypadku przerwij ten skrypt" + echo "przez Ctrl-C.[37m" + echo "" + stty -echo + read -p "Podaj swoje has³o: " pass + echo "" + read -p "Podaj powtórnie swoje has³o: " pass1 + stty echo + echo "" + if [ "X${pass}" != "X${pass1}" ] + then + echo "Has³a nie pasuj± do siebie. Naci¶nij Enter..." + pass="" + read junk + set_pass + fi +done +} + +set_chat() { +echo "[H[J" +while [ "X${chat}" = "X" ] +do + echo "[1m Rodzaj dialogu podczas logowania siê[m" + echo "" + echo "Jak normalnie przebiega proces logowania siê do serwera" + echo "komunikacyjnego?" + echo "" + echo "1) [32m......login:[37m ${user}" + echo " [32m...password:[37m ********" + echo " [36m(tutaj startuje PPP)[37m" + echo "" + echo "2) [32m...username:[37m ${user} (TP S.A.)" + echo " [32m...password:[37m ********" + echo " [36m(tutaj startuje PPP)[37m" + echo "" + echo "3) [32m......username:[37m ${user} (NASK)" + echo " [32m......password:[37m ********" + echo " [32mportX/..xxx...:[37m ppp" + echo " [36m(tutaj startuje PPP)[37m" + echo "" + echo "4) [32mZastosuj CHAP[37m" + echo "" + echo "5) [32mZastosuj PAP[37m" + echo "" + read -p "Wybierz 1,2,3,4 lub 5: " chat + case ${chat} in + 1) + chat1="TIMEOUT 10 ogin:--ogin: ${user} word: \\\\P" + chat2="login/password" + ;; + 2) + chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P" + chat2="TP SA - username/password" + ;; + 3) + chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P port ppp" + chat2="NASK - username/password/port" + ;; + 4) chat1="-" + chat2="CHAP" + ;; + 5) chat1="-" + chat2="PAP" + ;; + *) echo "Z³a warto¶æ! Musisz wybraæ 1,2 lub 3." + echo "" + unset chat + unset chat2 + ;; + esac +done +} + + +# Main entry of the script + +echo "[H[J" +echo "[1m Witamy w Automatycznym Konfiguratorze PPP! :-)[m" +echo "" +echo " PPP jest ju¿ wstêpnie skonfigurowane, tak ¿e mo¿na rêcznie wybieraæ" +echo "numer i rêcznie logowaæ siê do serwera komunikacyjnego. Jest to jednak" +echo "dosyæ uci±¿liwy sposób na d³u¿sz± metê." +echo "" +echo "Ten skrypt postara siê stworzyæ tak± konfiguracjê PPP, ¿eby umo¿liwiæ" +echo "automatyczne wybieranie numeru i logowanie siê, a ponadto pozwoli na" +echo "uruchamianie ppp w tle - nie zajmuje ono wówczas konsoli." +echo "" +echo "Je¶li chcesz kontynuowaæ, naci¶nij [1mEnter[m, je¶li nie - [1mCtrl-C[m." +echo "" +read junk +# Step through the options +set_phone +set_port +set_speed +set_timeout +set_user +set_pass +set_chat +set_resolv + +ans="loop_it" +while [ "X${ans}" != "X" ] +do + +echo "[H[J" +echo "[1m Ustawione zosta³y nastêpuj±ce parametry:[m" +echo "" +echo " 1. Numer telef.: ${phone}" +echo " 2. Numer portu: cuaa${dev}" +echo " 3. Prêdko¶æ portu: ${speed}" +echo " 4. Czas roz³±cz.: ${timo} s" +echo " 5. U¿ytkownik: ${user}" +echo " 6. Has³o: ${pass}" +echo " 7. Typ dialogu: ${chat} (${chat2})" +echo " 8. Nazwa domeny: ${domain}" +echo " Serwer DNS: ${dns}" +echo "" +echo "Je¶li te warto¶ci s± poprawne, po prostu naci¶nij [1mEnter[m" +read -p "Je¶li nie, podaj numer opcji, któr± chcesz zmieniæ (1-8): " ans + +a="X${ans}" +case ${a} in +X1) + unset phone + set_phone + ;; +X2) + unset dev + set_port + ;; +X3) + unset speed + set_speed + ;; +X4) + unset timo + set_timeout + ;; +X5) + unset user + set_user + ;; +X6) + unset pass + set_pass + ;; +X7) + unset chat + unset chat1 + unset chat2 + set_chat + ;; +X8) + unset domain + unset dns + set_resolv + ;; +X) + ;; +*) + read -p "Z³y numer opcji! Naci¶nij Enter..." junk + ans="wrong" + ;; +esac +done + +echo "" +echo -n "Generowanie /etc/ppp/ppp.conf file..." +rm -f /etc/ppp/ppp.conf +cp /etc/ppp/ppp.conf.template /etc/ppp/ppp.conf +echo "" >>/etc/ppp/ppp.conf +echo "# This part was generated with $0" >>/etc/ppp/ppp.conf +echo "dialup:" >>/etc/ppp/ppp.conf +echo " set line /dev/cuaa${dev}" >>/etc/ppp/ppp.conf +echo " set phone ${phone}" >>/etc/ppp/ppp.conf +echo " set authkey ${pass}" >>/etc/ppp/ppp.conf +echo " set timeout ${timo}" >>/etc/ppp/ppp.conf +if [ "X${chat1}" = "-" ] +then + echo "set authname ${user}" >>/etc/ppp/ppp.conf +else + echo " set login \"${chat1}\"" >>/etc/ppp/ppp.conf +fi +echo " set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0" >>/etc/ppp/ppp.conf + +echo " Zrobione." + +echo -n "Generowanie /etc/resolv.conf..." +echo "# This file was generated with $0">/etc/resolv.conf +echo "domain ${domain}" >>/etc/resolv.conf +echo "nameserver ${dns}">>/etc/resolv.conf +echo "hostname=\"pico.${domain}\"">>/etc/rc.conf +echo " Zrobione." + +echo "" +echo "Ok. Sprawd¼ zawarto¶æ /etc/ppp/ppp.conf, i popraw go je¶li to konieczne." +echo "Nastêpnie mo¿esz wystartowaæ ppp w tle:" +echo "" +echo " [1mppp -background dialup[m" +echo "" +echo "PAMIÊTAJ, ¿eby uruchomiæ /stand/update ! Inaczej zmiany nie zostan± zapisane" +echo "na dyskietce!" +echo "" +echo "Ok. Je¶li Twój plik /etc/ppp/ppp.conf jest prawid³owy (co jest dosyæ" +echo -n "prawdopodobne :-), czy chcesz teraz uruchomiæ po³±czenie dialup? (t/n) " +read ans +opts="" +while [ "X${ans}" = "Xt" ] +do + echo "[H[J" + if [ "X${opts}" = "X" ] + then + echo "Wystartujemy 'ppp' z poni¿szymi opcjami:" + echo "" + echo " ppp -background dialup" + echo "" + echo -n "Czy chcesz je zmienic?? (t/n) " + read oo + if [ "X${oo}" = "Xt" ] + then + read -p "Podaj opcje ppp: " opts + else + opts="-background dialup" + fi + echo "" + echo "" + fi + echo "Uruchamiam po³±czenie dialup. Proszê czekaæ dopóki nie pojawi siê" + echo "komunikat 'PPP Enabled'..." + echo "" + ppp -background dialup + if [ "X$?" != "X0" ] + then + echo -n "Po³±czenie nie powiod³o siê. Spróbowaæ jeszcze raz? (t/n) " + read ans + if [ "X${ans}" != "Xt" ] + then + echo "Spróbuj pó¼niej. Sprawd¼ równie¿ plik konfiguracyjny /etc/ppp/ppp.conf." + echo "" + fi + else + echo "" + echo "Gratulujê! Jeste¶ on-line." + echo "" + exit 0 + fi +done diff --git a/release/picobsd/dial/lang/hosts.en b/release/picobsd/dial/lang/hosts.en new file mode 100644 index 000000000000..53f13bab8b37 --- /dev/null +++ b/release/picobsd/dial/lang/hosts.en @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.edu +127.0.0.1 pico.mydomain.edu diff --git a/release/picobsd/dial/lang/hosts.pl b/release/picobsd/dial/lang/hosts.pl new file mode 100644 index 000000000000..89081d798683 --- /dev/null +++ b/release/picobsd/dial/lang/hosts.pl @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.org.pl +127.0.0.1 pico.mydomain.org.pl diff --git a/release/picobsd/dial/lang/login.en b/release/picobsd/dial/lang/login.en new file mode 100755 index 000000000000..e3ceeee2dd3e --- /dev/null +++ b/release/picobsd/dial/lang/login.en @@ -0,0 +1,9 @@ +#!/bin/sh +# $FreeBSD$ + +if [ "$2" != "root" ] +then + exit +fi +cat /etc/motd +HOME=/root exec -sh diff --git a/release/picobsd/dial/lang/login.pl b/release/picobsd/dial/lang/login.pl new file mode 100755 index 000000000000..28df1b7f8157 --- /dev/null +++ b/release/picobsd/dial/lang/login.pl @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD$ + +if [ "$2" != "root" ] +then + exit +fi +cat /etc/motd +LANG=pl; export LANG +HOME=/root exec -sh diff --git a/release/picobsd/dial/lang/motd.en b/release/picobsd/dial/lang/motd.en new file mode 100644 index 000000000000..b286a414f5ee --- /dev/null +++ b/release/picobsd/dial/lang/motd.en @@ -0,0 +1,16 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (DIALUP) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +You can find a short description of the [35mpicoBSD[37m +system in file /README. You can view it using +"ee /README" or "more /README". There is also 'help' +command which gives short description of each program. + +Run 'dialup' script to additionaly configure PPP +(including automatic dialing and background operation). + +For more info see http://www.freebsd.org/~picobsd. + diff --git a/release/picobsd/dial/lang/motd.pl b/release/picobsd/dial/lang/motd.pl new file mode 100644 index 000000000000..791af1bd1b5e --- /dev/null +++ b/release/picobsd/dial/lang/motd.pl @@ -0,0 +1,16 @@ +======================================================= + [31m)\_)\[37m +PicoBSD @VER@ (DIALUP) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Witamy w PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +W glownym katalogu w pliku README znajdziesz [35mpicoBSD[37m +krotki opis systemu. Mozesz go obejrzec przy pomocy +"more /README" lub "ee /README". Mozesz tez uzyskac +krotki opis kazdego polecenia podajac 'help polecenie'. + +Uruchom skrypt 'dialup', zeby w pelni skonfigurowac PPP +(wraz z automatycznym laczeniem sie i praca w tle). + +Wiecej informacji znajdziesz na http://www.freebsd.org/~picobsd. + diff --git a/release/picobsd/doc/src/Makefile b/release/picobsd/doc/src/Makefile new file mode 100644 index 000000000000..c5f4aeb0836e --- /dev/null +++ b/release/picobsd/doc/src/Makefile @@ -0,0 +1,17 @@ +# +# $FreeBSD$ +# + +.include "../../Version" + +DATE!="date" + +DOCS= bugs.html faq.html hardware.html how2build.html \ + intrinsics.html intro.html TODO.html installflp.html + +all: ../../Version + for i in ${DOCS}; \ + do \ + cat $${i}|sed -e 's/@VER@/${VER}/g' \ + -e 's/@DATE@/${DATE}/g' >../$${i}; \ + done diff --git a/release/picobsd/doc/src/TODO.html b/release/picobsd/doc/src/TODO.html new file mode 100644 index 000000000000..c2bbf07e34a0 --- /dev/null +++ b/release/picobsd/doc/src/TODO.html @@ -0,0 +1,154 @@ +<html> +<! $FreeBSD$ > +<body> +<h1><center> Small FreeBSD ToDo List. +</center></h1> + +<p>This list represents various tasks which are being collected from +discussions on freebsd-small, and which represent the general +direction and needs of using FreeBSD for small installations.</p> + +<p>The tasks are arranged by how important they are to the overall +idea and goals of the project. If you are interested in doing some +part of the work, please contact the coordinator of PicoBSD project +(<A HREF="mailto:abial@freebsd.org">Andrzej Bialecki</a>).</p> + +<hr> + +<h2>Short term tasks:</h2> + +<ul> +<li> +Eliminate need for patching FreeBSD source tree - either by +keeping our own version of Makefiles, or by adding (many) knobs to +the standard ones. (NOTE: this will be resolved in v. 0.45). +</li> +<li> +Provide options for building separate kernel and FS images of +various sizes. +</li> +<li> +Add some "wizards" to help people new to Unix configure "dialup" +and "net" for most common tasks. +</li> +<li> +Replace most of currently used scripts with Makefiles. +(NOTE: this will be resolved in v. 0.45). +</li> +<li> +Add simple authentication module to oinit. +</li> +<li> +Fix kzip to be able to produce kzip'ped ELF kernels. +(NOTE: currently we work around it by using kzipped /boot/loader). +</li> +<li> +Write better documentation. This is very important - the most +common configurations should be described in detail, step by step. +</li> +<li> +Collect our experiences with using FreeBSD with SBCs, flash disks +etc, and write a short practical guide to embedding FreeBSD. +</li> +</ul> +<hr> + +<h2>Medium term tasks:</h2> + +<ul> +<li> +Change currently used crunched binaries to something more flexible +- as it is now, even small change in set of programs requires +rebuilding of the whole image. +</li> +<li> +Change the building process so that it allows to easily choose +(with finer granularity) needed components of the target system. +</li> +<li> +Make use of recently added KLD to allow for easy adding and +removing drivers when running stripped kernels. +</li> +<li> +Investigate pros and cons of using the new boot/loader together +with ELF kernels. +(NOTE for v.0.43: it was simply mandatory to start to use it :-) +</li> +<li> +Provide options for building systems which operate from +(basically) read-only media, such as CD-ROM or flash disk. Such +system doesn't need to keep all root FS in memory, but only small +fraction of it for /tmp and /var. +</li> +<li> +Integrate DHCP into "dialup" version. +</li> +<li> +Rework oinit to be more modular, and write additional modules +(remote access, SNMP (?), authentication, shell(), configuration +editor). +</li> +<li> +Provide a remote access (telnetd/login/shell) module for the +"router" version. Make the shell() module more predictable and +compatible with common sense :-) +</li> +<li> +At last prepare usable version of ISP floppy, and test it (some +basic tests with server PPP). This involves among others a version +of PPP which supports Radius. +</li> +</ul> + +<hr> + +<h2>Long term tasks:</h2> + +<ul> +<li> +Either port ROMfs from Linux, or write our own replacement for it. +</li> +<li> +Describe the configuration tasks and parameters of PicoBSD systems +in terms of hierarchy of categories - this is needed to start +working on the next two points. +</li> +<li> +Design a flexible and efficient scheme (not necessarily compatible +with currently used set of shell scripts) for storing and editing +system configuration in some form of hierarchical DB. +</li> +<li> +Design a user interface for configuration of system parameters +and services, meeting the following requirements: hierachical, +logical, helpful (hinting), providing ability to automate certain +tasks. +</li> +<li> +Reduce memory footprint. +</li> +<li> +Add other language versions. +</li> +<li> +Throw some more effort in porting the newer version of W (graphical +UI), so that it uses VESA color modes. IMHO it's worth it. +</li> +</ul> + +<hr> + +<h2>Other half-baked ideas...</h2> + +<p>(fill this in :-)</p> + +<hr> +Last modified: +@DATE@ + + +<p><i>Send your comments, ideas, and most importantly the code itself, to +<A HREF="mailto:abial@freebsd.org">abial@freebsd.org</a>.</i></p> + +</body> +</html> diff --git a/release/picobsd/doc/src/UCI.html b/release/picobsd/doc/src/UCI.html new file mode 100644 index 000000000000..5c0caaab5051 --- /dev/null +++ b/release/picobsd/doc/src/UCI.html @@ -0,0 +1,960 @@ +<html> +<! $FreeBSD$ > +<body> +<h1><center> Unified Configuration Interface Project +</center></h1> + +<p>The idea behind this project is to completely replace currently +used configuration approach, which is based on several shell scripts, and to +provide ability to change system behaviour basing on set of well-defined +parameters' hierarchy. One of the goals is also to provide an object +oriented model of the OS management and structure, instead of currently +used (inconsistent) procedural model of system/service startup/shutdown.</p> + +<p>This project involves such issues as: +<ul> +<li> +providing consistent view of the system and its functional subsystems as +a set of interrelated objects equipped with certain properties. +</li> +<li> +providing global approach to user interface, either command-line or with GUI +front-ends. +</li> +<li> +managing system resources and subsystems. This includes managing +static and dynamic interdependencies between subsystems, ability to +upgrade/downgrade specific subsystems on-the-fly. +</li> +</ul> +</p> + +<p><i><b>This is work in progress</b> - I'm aware that many pieces +are either completely missing or misplaced. Please send any comments and +changes you seem appropriate either directly to me, or better to +freebsd-small@freebsd.org. I'll gladly welcome anyone who can help with +design and/or implementation.</i></p> + + +<hr> + +<h1><center> Unified Configuration Interface +</center></h1> + +<ul> +<li> +<p>Let's first introduce the following terms: +<ul> +<li> +<b>management base</b> - the actual structure holding configuration and +information data according to defined structure. This structure will most +probably have a form of tree (possibly with cross-branch links or some other +mechanism representing mutual dependencies) - the way it's stored is +something which needs to be discussed. +</li> +<li> +<b>user interface</b> - a method (and agent) for presenting data stored in +management base in such a way that it can be viewed and modified by +legitimate users. +</li> +<li> +<b>system monitor</b> - an entity performing actual configuration and monitoring +tasks, from one side dealing with management base, and from the other +dealing with the system resources and subsystems, and from yet another dealing +either directly with the user (thus acting as a user interface), +or passing requests to other entity which acts as user interface. +</li> +<li> +<b>subsystem</b> - a package containing programs, configuration data, as well +as installing/deinstalling/start/stop stubs, which form together one logical +entity performing specific services on behalf of the system. Each subsystem +is viewed as an object with specific properties, dependencies, which is able +to generate events, service general requests common to all such subsystems, +and provide specific services to other subsystems. +</li> +</ul> +</li> +<li> +<p>One possible approach to storing the management data is to use already +existing framework known as MIB, as defined in applicable RFCs.</p> + +<p>This approach has several advantages: it represents well thought-out work +of many experienced individuals and teams, it has already proven to be +useful, it's widely used and accepted, it's easily extensible, it's able to +represent quite complicated objects, etc.</p> + +<p>It has some drawbacks, as well: e.g. there is no standard mechanism for +representing events and indirectly related objects, it tends to create +deep and narrow trees which require to descent several levels to change some +commonly used parameters, it doesn't say anything about the mutual +dependencies between objects and parameters (except parent-child-sibling), +and about required sequence to properly set their parameters, etc.</p> + +<p>These issues are not directly addressed in standards, and real +implementations (known to me) have to implement these additional mechanisms +"behind the scenes", so that their workings are not obvious nor easily +accessible (let alone changeable).</p> + +<p>So, if we decide to use it, we need to address these issues somehow. +The next point presents one possible approach to this dilemma.</p> +</li> +<li> +<p>The term "object" used in the following discussion represents a functional +subsystem, such as system service, usually performed by some specific +process (or, a set of global system parameters, in which case the system +monitor agent is the service itself). </p> + +<p>Each object represented in management base can be characterized by +following properties: +<ul> +<li> +its internal state, possibly consisting of several parameters and currently +performed functions, but represented to the rest of the system as a symbolic +state, one of set of states common to all objects. +</li> +<li> +a temporary space for new sets of parameters, which are being supplied by +other subsystems, prior to their actual application, +</li> +<li> +FSM definition, describing state transitions in reaction to received events, +</li> +<li> +list of events it can generate and accept, +</li> +<li> +list of dependencies on other objects' states and services, +</li> +<li> +list of requests it can handle, +</li> +<li> +list of parameters it can accept and/or provide, with their valid ranges. +</li> +</ul> +</p> + +<p>A few words on system startup: the system startup routines should ensure +that dependencies can be unwound into linear, ordered list. If it's not +possible, they should detect possible deadlocks at runtime, and act as an +arbiter between conflicting parties (or signal an error). In case of +unsatisfied dependency on some missing subsystem, the system monitor will +act appropriately as described below (in paragraph on request handling).</p> + +<p>The <b>set of symbolic states</b> may consist of the following states, +depicting object's current internal state (as described by its FSM): + +<center><table border> +<tr><th>Name</th><th>Meaning</th></tr> +<tr> +<td>INIT</td><td>the subsystem is initializing itself, possibly loading +necessary data and binaries from permanent storage.</td> +</tr> +<tr> +<td>CHECK</td><td>performing consistency check on newly supplied parameter values</td> +</tr> +<tr> +<td>READY</td><td>ready to start performing its primary function, but not started</td> +</tr> +<tr> +<td>START</td><td>start-up tasks (related to its primary function, as opposed +to INIT which is related to its own initialization)</td> +</tr> +<tr> +<td>STOP</td><td>stop (shutdown) tasks (when the object intends to stop +performing its function). This can involve unloading data and binaries from +main memory.</td> +</tr> +<tr> +<td>RUN</td><td>primary (work) phase</td> +</tr> +<tr> +<td>IDLE</td><td>waiting for some external event to happen</td> +</tr> +<tr> +<td>BUSY</td><td>the subsystem is busy (either with performing some +high-priority task, or just simply hung), and cannot be interrupted without +complete restart,</td> +</tr> +<tr> +<td>ERROR</td><td>this object is either improperly configured, or +malfunctioning</td> +</tr> +<tr> +<td>(other...)</td><td>(other...)</td> +</tr> +</table></center> +</p> + +<p>The <b>set of possible actions</b> may include the following actions:</p> + +<center><table border> +<tr><th>Name</th><th>Meaning</th></tr> +<tr> +<td>LIST_EV_REQ</td><td>get list of events the subsystem can generate</td> +</tr> +<tr> +<td>LIST_ACT_REQ</td><td>get list of actions the subsystem can respond to</td> +</tr> +<tr> +<td>GET_DEF_REQ</td><td>get definition of given parameter (the arguments, and +valid ranges)</td> +</tr> +<tr> +<td>SET_REQ</td><td>set given parameter to given value (this value will +be used only after COMMIT_REQ)</td> +</tr> +<tr> +<td>GET_REQ</td><td>get currently used value of given parameter</td> +</tr> +<tr> +<td>COMMIT_REQ</td><td>commit changes supplied in last transaction to currently +used set of parameters</td> +</tr> +<tr> +<td>ROLLBACK_REQ</td><td>revert last commit</td> +</tr> +<tr> +<td>INIT_REQ</td><td>perform initialization tasks</td> +</tr> +<tr> +<td>START_REQ</td><td>start performing primary function</td> +</tr> +<tr> +<td>STOP_REQ</td><td>stop performing primary function</td> +</tr> +<tr> +<td>RESTART_REQ</td><td>restart operation, possibly forcefully</td> +</tr> +<tr> +<td>NOTIFY_REQ</td><td>notify me of any changes in your state</td> +</tr> +<tr> +<td>CHECK_REQ</td><td>perform self-consistency check</td> +</tr> +<tr> +<td>UPGRADE_REQ</td><td>upgrade the subsystem - this possibly involves +downloading necessary pieces via network to permanent storage area. The +upgrade process should be transactional, and should save the older version +of the subsystem in case the DOWNGRADE_REQ should be issued.</td> +</tr> +<tr> +<td>DOWNGRADE_REQ</td><td>downgrade the subsystem - restore the previous +version of the subsystem from the copy on permanent storage.</td> +</tr> +<tr> +<td>UNINSTALL_REQ</td><td>uninstall the subsystem completely - possibly +freeing the space on permanent storage.</td> +</tr> +<tr> +<td>(other...)</td><td>(other...)</td> +</tr> +</table></center> +<p><i>(Each request includes source service identifier and credentials of +the sender)</i></p> + +<p>The <b>set of events</b> which can be generated by subsystems may include +the following:</p> + +<center><table border> +<tr><th>Name</th><th>Meaning</th></tr> +<tr> +<td>EV_ACK</td><td>positive acknowledge of the last operation</td> +</tr> +<tr> +<td>EV_NACK</td><td>negative acknowledge of the last operation</td> +</tr> +<tr> +<td>EV_CHANGE</td><td>change notification (includes the name of changed +parameter, and/or FSM state change)</td> +</tr> +<tr> +<td>EV_DEP</td><td>signal the dependency on another subsystem - ask for +existence of the service. Probably there should be two types of the dependency: +a soft one (where the subsystem can still function even if the dependency is +unresolved) and a hard one (when the existence and proper functioning of the +other subsystem is mandatory for its function).</td> +</tr> +<tr> +<td>(other...)</td><td>(other...)</td> +</tr> +</table></center> + +<p>One of event attributes can be a flag which says that this particular event +is a directed, or broadcast message. In case of directed message, it should +be forwarded only to interested parties. Broadcast message is sent to all +subsystems.</p> + +<p>System monitor agent will process these events and route them to +appropriate subsystems which are registered with it. Generally, if some +subsystem is dependent on some other, it will want to also receive all events +generated by the other subsystem.</p> + +<p>In case the subsystem +is missing, and the system monitor received events signalling that some other +subsystem is depending on it, the system monitor should arrange either for +installing necessary pieces from some media (be it permanent storage, or the +network), or to send an EV_NACK to the requesting subsystem. It's the +responsibility of the requesting subsystem to deal with such case +appropriately to the type of dependency (i.e. either "hard" or "soft"). + +<p>Ideally, the system monitor agent will be equipped with routines to +serialize the management data into human-readable form, so that it's easily +stored, backed up, and repaired in case of inconsistencies.</p> +</li> +<li> +<p>Actual user interface is still quite another story: I've seen UIs which +merely followed the standard MIBs, and menus were composed of actual OID +numbers plus DESCRIPTION field. In my experience, they are (barely) +acceptable, though due to the usual width and depth of MIB trees you had to +traverse several levels down and up in order to change some (protocol-wise) +related parameters.</p> + +<p>More acceptable UI would collect interrelated items under common menu +entries, irrespectibly of their actual position in the MIB tree.</p> + +<p>A worthwhile goal to pursue is to create such an UI which could guide +you through the most common configuration tasks, while at the same time +allowing for unrestricted and quick use by power users. This can be done +either as a set of configuration "wizards" or extensive hinting, command +completion, etc.</p> +</li> +<li> +<p>The management database should be easily exportable via standard +protocols, such as SNMP or LDAP.</p> + +<p>Most known to me (if not all) implementations of agents for these +protocols are (contrary to their name) quite heavy-weight - so their use +should be either optional, or replaced with some other light-weight +protocol and a proxy agent running on other machine. One example of +such proxy agent is existing UCD-SNMP implementation which in +significant part follows the sysctl(3) tree, merely exporting it as +a part of the MIB trees.</p> + +<p>It's worthwhile to consider also use of other protocols such as +DHCP (and BOOTP), Service Location Protocol (SLP - RFC2165) for easy +integration with LAN resources, easy initial configuration, and peer +discovery.</p> +</li> +<li> +<p>All operations performed by system monitor agent should be transactional, +i.e. it should be possible to commit a set of changes as one logical entity, +and be sure that either it's applied in whole, or not at all. This includes +also ability to abort processing in the middle.</p> + +<p>This probably means that each object (subsystem) should be able to store +not only its current configuration data, but also the newly supplied config +data that are to be applied after the transaction ends successfuly.</p> + +<p>Operations should be verified against allowed values, as well as against +allowed credentials, and basing on this either committed or aborted.</p> +</li> +<li> +<p>A few notes on possible implementation of system monitor:</p> +<ul> +<li> +let's assume that all configuration information is read on startup +by some specialized daemon (this can be part of init(8) as well), +which then performs role of communication agent through which passes +all configuration information, be it request for change, request +for info, request for start / shutdown, or notification about the change. +</li> +<li> +configuration information itself is stored either in binary database, or as +a filesystem hierachy mimicking configuration items hierarchy. +</li> +<li> +each user-level program performing some task (such as routing daemon, inetd +etc) is either equipped with the ability to communicate with config agent, or +is relinked with special stub which fakes to the program necessary config +files and events (such as signals to reread configuration). +<p>This probably means also that some libc routines would have to be replaced, +because they assume reading configuration from certain disk files.</p> + +<p>Since each such subsystem needs to implement some common actions such as +installing, deinstalling, start/stop etc, we could use already present +system of packages (with some minor modifications) to easily achieve +part of the goals (i.e. install/deinstall/upgrade/downgrade/stop/start).</p> +</li> +<li> +each subsystem performing some task requests its initial config data +from system monitor, at the same time registering with it to receive +configuration events, such as request to re-read data, to provide currently +used config data, return status, react for signals, restarts, etc... +</li> +<li> +system monitor acts as a meeting point for all producers and consumers +of events and config data. It needs to maintain a table of registered +subsystems, set of events they provide, set of events they want to receive, +etc.. Basing on this table, it routes appropriate information to +appropriate parties. +</li> +<li> +user interface is then just one of clients of system monitor, albeit possessing +special privileges. +</li> +<li> +one of important tasks of system monitor, in case given +object (subsystem) registers with it to be notified about certain events, is +to ensure that such type of event can be possibly generated. This is to +prevent subsystems from waiting for events coming from other non-existent +subsystems. See the discussion above on satisfying dependencies. +</li> +</ul> +<i><p>NOTE: this is one possible approach - a centralized one. It's worth to +consider other approach, distributed, in which case each object (subsystem) +sends and listens to the data at a meeting point specific to each other +object. This eliminates (or drastically minimizes) the role of system +monitor which is a single point of failure in centralized case.</p></i> +</li> +</ul> + +<hr> + +<p>Here is my initial proposal for the User Interface hierarchy:</p> + +<ul> +<li> +System configuration. + <ol> + <li> + Boot device and file <br> + <small>Name of the boot device (possibly networked) and boot + image.</small> + <ol> + <li> + (Enumeration of available devices) + <ol> + <li> + (Enumeration of available files) + </li> + </ol> + </li> + </ol> + </li> + <li> + Config file <br> + <small>Configuration file management - loading and saving, either + local or remote (if applicable). </small> + <ol> + <li> + Load / Save + <ol> + <li> + Source / Destination <br> + (Enumeration of available storage places, possibly + networked) + </li> + </ol> + </li> + <li> + Edit directly (geek mode) + </li> + </ol> + </li> + <li> + Subsystems <br> + <ol> + <li> + Module management <br> + <small>Optional hardware drivers and protocol modules + management.</small> + <ol> + <li> + (Enumeration of available loadable modules) + <ol> + <li> + Load / unload / status + </li> + </ol> + </li> + </ol> + </li> + <li> + Package management<br> + <small>Management of basic and optional system services.</small> + <ol> + <li> + (Enumeration of locally available packages) + <ol> + <li> + Start / Stop / Status / Configure + </li> + </ol> + </li> + </ol> + </li> + <li> + Default source of service packages<br> + <small>Where to automatically get the missing packages from. + </small> + <ol> + <li> + (Enumeration of available media) <br> + (local and remote disks, ftp, http) + </li> + </ol> + </li> + </ol> + </li> + <li> + Resource management + <ol> + <li> + Memory consumption <br> + <small>This is entry point to a subtree, which allows to set + up various resource limits for subsystems, services and + processes.</small> + </li> + <li> + Space consumption<br> + <small>(Things like minimal free space on permanent storage..) + </small> + </li> + <li> + Task priorities + <small>This includes not only currently running tasks, but all + which can possibly be started.</small> + <ol> + <li> + List / Modify + </li> + </ol> + </li> + </ol> + </li> + <li> + System console + </li> + <li> + Virtual consoles (if applicable) + </li> + <li> + System Date / Time Zone + </li> + <li> + Banner + </li> + <li> + Logging + <ol> + <li> + Local logging + </li> + <li> + Remote logging + </li> + </ol> + </li> + </ol> +</li> +<li> +Network configuration. + <ol> + <li> + Hostname and Domain + </li> + <li> + Interfaces + <ol> + <li> + (Enumeration of physical interfaces) <br> + (Enumeration of virtual interfaces, if applicable) <br> + (Options for creating virtual interfaces, if applicable) + <ol> + <li> + Interface options (speed, media, encapsulation, + description, etc.) + </li> + <li> + ARP + </li> + <li> + Bridging + </li> + <li> + IP + <ol> + <li> + Adress / netmask / alias + </li> + </ol> + </li> + <li> + IPX + </li> + <li> + AppleTalk + </li> + </ol> + </li> + </ol> + </li> + <li> + Protocol Options + <ol> + <li> + IP, UDP, TCP, ARP, IPX, ATM ... <br> + (Enumeration of available protocols) + <ol> + <li> + (Enumeration of protocol specific options, such as + buffer sizes, algorithms, ARP tables etc) + <ol> + <li> + List / Add / Delete / Modify / Set (where + applicable) + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + <li> + Routes + <ol> + <li> + List + </li> + <li> + Static + <ol> + <li> + Add / Delete / List + <ol> + <li> + (route expression) + </li> + </ol> + </li> + </ol> + </li> + <li> + Dynamic + <ol> + <li> + (Enumeration of available routing protocols) + <ol> + <li> + Add / Delete / List + <ol> + <li> + (route expression) + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + <li> + Network services + <ol> + <li> + DNS + <ol> + <li> + Hosts + <ol> + <li> + Add / Delete / List + <ol> + <li> + (hosts definitions) + </li> + </ol> + </li> + </ol> + </li> + <li> + Resolvers + <ol> + <li> + Add / Delete / List + <ol> + <li> + (hosts addresses) + </li> + </ol> + </li> + </ol> + </li> + <li> + Local DNS server config + </li> + </ol> + </li> + <li> + PPP + <ol> + <li> + Server + </li> + <li> + Client + </li> + </ol> + </li> + <li> + NFS + <ol> + <li> + Server + </li> + <li> + Client + </li> + </ol> + </li> + <li> + NIS + </li> + <li> + DHCP + <ol> + <li> + Add / Delete / Reserve / List + <ol> + <li> + (IP address expressions) + </li> + </ol> + </li> + </ol> + </li> + <li> + SNMP + <ol> + <li> + Protocol version + </li> + <li> + Send traps to... + </li> + <li> + Access Control Lists <br> + <small>(This is either full-blown ACL system in case + of SNMPv2, or a community string for SNMPv1.)</small> + </li> + </ol> + </li> + <li> + Printing + <ol> + <li> + Local / Remote + <ol> + <li> + Printers + <ol> + <li> + Add / Modify / Delete / List + </li> + </ol> + </li> + <li> + Queues + <ol> + <li> + Priority / Delete / List + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + <li> + SMB services + </li> + <li> + Network Address Translation + </li> + <li> + Packet filters + </li> + <li> + Bandwidth Manager + </li> + <li> + NTP + </li> + <li> + Remote Access + </li> + </ol> + </li> + </ol> +<li> +User management. + <ol> + <li> + User accounts + <ol> + <li> + Add / Delete / Modify / List + <ol> + <li> + Name / Password / ACL + </li> + </ol> + </li> + </ol> + </li> + <li> + User profiles + <ol> + <li> + Access Control Lists. + <ol> + <li> + Add / Delete / Modify / List + <ol> + <li> + Name / Template / Definition + </li> + </ol> + </li> + </ol> + </li> + <li> + ACL Templates + <ol> + <li> + Add / Delete / Modify / List + <ol> + <li> + Name + <ol> + <li> + Command restrictions list + </li> + <li> + Location restrictions list + </li> + <li> + Resources restrictions list + </li> + <li> + Time restrictions list + </li> + <li> + Authentication methods + <ol> + <li> + Unix passwd + </li> + <li> + S/Key + </li> + <li> + Kerberos + </li> + <li> + Radius + </li> + <li> + TACACS + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + </ol> + </li> + </ol> +</li> +<li> +Other services + <ol> + <li> + Cron tasks + </li> + </ol> +</li> +<li> +Filesystems. + <ol> + <li> + Local / Remote + <ol> + <li> + (Enumeration of available FS-s) + <ol> + <li> + FS / Mounting point / Options + </li> + </ol> + </li> + <li> + Swap Partition / Swap File + <ol> + <li> + Create / Turn on + </li> + </ol> + </ol> + </li> + </ol> +</li> +<li> +Environment + <ol> + <li> + Set / Unset / List + </li> + </ol> +</li> +<li> +System status + <ol> + <li> + (Enumeration of available status items) + </li> + </ol> +</li> +<li> +Diagnostics + <ol> + <li> + Debug + <ol> + <li> + (Enumeration of subsystems hierarchy, those of which can + provide debugging data) + <ol> + <li> + Set / Clear / Level + </li> + </ol> + </li> + </ol> + </li> + <li> + System messages + </li> + <li> + Ping / traceroute / rtquery + </li> + </ol> +</li> +</ul> + +<hr> +<i> +<p>Please send your comments to <A HREF="mailto:abial@freebsd.org"> +Andrzej Bialecki</a></p> +<p>Last modified: +@DATE@ +</p> +</i> + +</body> +</html> diff --git a/release/picobsd/doc/src/bugs.html b/release/picobsd/doc/src/bugs.html new file mode 100644 index 000000000000..f7c91c99b3fb --- /dev/null +++ b/release/picobsd/doc/src/bugs.html @@ -0,0 +1,152 @@ +<HTML> +<! $FreeBSD$ > +<HEAD> + <TITLE>History and Bug fixes</TITLE> +</HEAD> +<BODY> + +<center><h1>History and List of Bugfixes</h1></center> + +<p>This is the short release history of PicoBSD, as well as the list of bugs +which were found. Some of them were already corrected, so that you should read +the list before reporting a new one.</p> + +<p>We tried to make this software bug-free, but life is life... Sorry for the + inconvenience.</p> + +<h3>PicoBSD 0.44</h3> +<ul> +<li> + 1999.05.10: Slightly refreshed version to match 3.2-RELEASE. + No significant changes (yet)... :-( +</li> +</ul> +<h3>PicoBSD 0.43</h3> +<ul> +<li> + 1999.01.19: A lot of fixes related to architectural changes in + 3.0-current code. Most importantly, we run now ELF kernel and we use + the new bootloader. This is most probably the last release of PicoBSD in + its present shape - the next version will (hopefully) become a part of + normal release building process. +</li> +</ul> + +<h3>PicoBSD 0.42</h3> +<ul> +<li> + 1999.01.15: Well, it seems that this version was for developers + only... ;-) It was abandoned when recent massive changes in -current + demanded more serious measures... +</li> +<li> + 1998.10.15: Small fixes and updates to match the 3.0-RELEASE + source tree. The binary snapshot built from 3.0-R sources will + soon follow... +</li> +</ul> + +<h3>PicoBSD 0.41</h3> +<ul> +<li> + 1998.10.12: Two small buglets has been discovered, and fixed in CVS + copy of the sources. 'kget' utility was dumping core due to unexpected + change in behaviour of dumpnlist. 'ns' utility poorly handled other + netmasks than class C network. + <p>I prepared new tar archive containing these corrected sources.</p> +</li> +<li> + 1998.09.26: Yes, this took more than just "a few days"... :-(. This is + mainly a bugfix release of 0.4 - almost no new features were added, + except the 'dmesg' to examine kernel messages buffer. Also, all + programs are compiled in ELF format. SNMP services are provided now + by UCD-SNMP v.3.5. + + <p>Unfortunately, I had to remove DEVFS for now - there are too many + problems with it for now. This also means that we're back to creating + device nodes manually, and chances are that the one you need is + missing... </p> +</li> +</ul> + +<h3>PicoBSD 0.4</h3> +<ul> +<li> + 1998.08.28: Serious bug was discovered in MFS code (thanks to Eric + P. Scott for detailed bug report!). Though the bug itself is in + FreeBSD-current kernel code and not in the PicoBSD-specific sources, + it makes PicoBSD very fragile and easy to crash. + <p>Some people are already working on it, so expect the fixed version + in a few days. Its availability will be noted here, on this page, + so keep an eye on it.</p> +</li> +<li> + 1998.08.27: PicoBSD source tree is now a part of official FreeBSD + source tree (you can find it in src/release/picobsd). From now on, + all the fixes and changes will go directly to this tree, and from + time to time I'll be preparing a stand-alone snapshot of the sources. +</li> +<li> + 1998.08.19: PicoBSD 0.4 released. + <p>New features include: NATd, + netstat, DEVFS/SLICE instead of standard /dev, additional network + drivers, and several minor fixes. Distribution contains also + a collection of small versions of system programs (TinyWare), among + them custom init(8).</p> + <p>I added also the fourth type of setup - 'router' - which is a + specialized version of PicoBSD that focuses on providing as small + as possible router solution.</p> +</li> +</ul> +<h3>PicoBSD 0.31</h3> +<ul> +<li> + 1998.03.28: Some people reported that the binary files (*.flp) were + being corrupted during download because their browsers assumed that + these are text files. I changed the names to *.bin - their contents + is the same. +</li> +<li> + 1998.03.20: PicoBSD 0.31 released. New features include: SNMP daemon, + better creation of /kernel.config, some other minor fixes. Massive + changes in the building scripts. I also removed vn(4) driver from + "net" and "isp" floppies. +</li> +</ul> +<h3>PicoBSD 0.3</h3> +<p>The following bugs were found in this release of PicoBSD:</p> +<ul> +<li> 1998.02.27: A bug in kget(8) utility caused it to dump core in certain + situations. As a consequence, it wasn't possible to save the changes + made in UserConfig (-c). This will be corrected in the next release (or + bugfix issue). +</li> +<li> 1998.02.24: Wrongly sized MFS caused the passwd(1) on "net" type + floppy to fail because of lack of space for temporary files. This bug + affected only "net" floppies, and of course the scripts ("2000" looks + quite similar to "2200" :-(( ). Also, the 'update' script didn't work + as expected... +<p> This was fixed the same day, and the corrected files are: pb03en1.zip, + pb03pn1.zip, and pbsd-s031.tgz respectively. They are now under standard + links on the main page of PicoBSD project, so if you downloaded after + this date, you shouldn't worry.</p> +<p> Please check that you have the fixed versions - the archive name should + contain the tiny number, such as "pb03en<b>1</b>.zip", or + pbsd-s03<b>1</b>.tgz".</p> +<li> + 1998.02.15: PicoBSD 0.3 released. This is the first version that I can + truly recommend - previous one was too buggy... :-) +</li> +</li> +</ul> + +<h5>Last modified: +@DATE@ +</h5> + +<HR align="center" width="100%"> +<CENTER><h5>Any comments? Send them to +<A HREF="mailto:abial@freebsd.org">the author</A> </h5></CENTER> + +</BODY> +</HTML> diff --git a/release/picobsd/doc/src/faq.html b/release/picobsd/doc/src/faq.html new file mode 100644 index 000000000000..4a0d34e98cce --- /dev/null +++ b/release/picobsd/doc/src/faq.html @@ -0,0 +1,243 @@ +<HTML> +<! $FreeBSD$ > +<HEAD> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> + <META NAME="Author" CONTENT="Dinesh Nair"> + <META NAME="Description" CONTENT="Frequently Asked Questions for PicoBSD"> + <META NAME="Keywords" CONTENT="PicoBSD,FreeBSD,Unix,Dinesh Nair,Andrzej Bialecki,Network Computer"> + <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; FreeBSD 2.2.5-STABLE i386) [Netscape]"> + <TITLE>PicoBSD FAQ</TITLE> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000"> + +<CENTER> +<H1> +The PicoBSD FAQ +</H1></CENTER> + +<CENTER> +<HR WIDTH="100%"></CENTER> +<p><B>What is PicoBSD ?</B></p> + +<P>PicoBSD is a floppy sized version of popular operating system FreeBSD. +It fits within a single bootable 1.44MB floppy and runs on a minimum i386 +with 8MB RAM. PicoBSD currently comes in four flavours: dialup, net, router and +isp. For a description of how each of the flavours differ, take a look +at the <B><A HREF="http://www.freebsd.org/~picobsd/picobsd.html">PicoBSD +home page</A></B>. + +<p><B>What is this "pico" in the name?</B></p> + +<p>It's an SI measure unit, which is equivalent of 10e<sup>-12</sup>. +This is a good approximation of more colloquial "extremely small".</p> + +<p>You can also think of normal FreeBSD as a system infested with +fully grown daemons, and PicoBSD as a system infested with +"the little people" :-). </p> + +<P><B>What version of FreeBSD is PicoBSD based on ?</B></p> + +<P>PicoBSD has versions based on FreeBSD 3.2-RELEASE, 4.0-current and +FreeBSD 2.2.5-RELEASE. +<A HREF="mailto:abial@freebsd.org">Andrzej Bialecki</A> maintains the <A HREF="http://www.freebsd.org/~picobsd/picobsd.html">FreeBSD +3.x-RELEASE and -current versions</A> and +<A HREF="mailto:dinesh@alphaque.com">Dinesh Nair</A> +maintains the <A HREF="http://info.net-gw.com/picoBSD/">FreeBSD +2.2.5-RELEASE</A> version. Both the versions are different: +<UL TYPE=CIRCLE> +<LI> +the 3.x-RELEASE version is the one actively maintained, and provides support +for many new devices</li> + +<LI> +the 2.2.5-RELEASE version is not maintained anymore - the only difference is +that it has lynx on board.</li> +</UL> + +<p><b>What is current version of PicoBSD?</b></p> + +<p>Current version of PicoBSD is @VER@.</p> + +<P><B>What can PicoBSD do?</B></p> + +<P>With the TCP/IP capabilities of FreeBSD included in and based on the +strong 4.4BSD TCP/IP stack, PicoBSD can be used as a low cost Network Computer. +With a text based HTML 3.2 compliant browser (2.2.5-RELEASE version only) +and Internet access tools such as telnet and ftp, it can serve as a low +cost Internet dialup client. With support for mounting MSDOS and Unix harddisks, +it also can be used as a portable OS which you can carry around in a floppy. +The net and isp flavours would allow you to make use of those redundant +i386es as a low cost router or dialin PPP server. With SNMP and firewall +support built-in, PicoBSD provides the functionality of dedicated routers +and dialin terminal servers. + +<P><B>What are PicoBSD's minimum requirements?</B></p> + +<P>PicoBSD runs on a minimum i386 with 8MB RAM for the dialup flavour and +10MB RAM for the net and isp flavours. Diskspace requirements are a single +1.44MB floppy. For on-demand PPP access, a modem would be required, either +external or internal. +For LAN access, an Ethernet NIC (support for 3Com, NE2000 etc available) +would also be required. +<p>In case of "router" flavor, its requirements are even smaller: it can +run in as low as 4MB of RAM, on a 386SX CPU.</p> + +<P><B>Where do I get PicoBSD?</B></p> + PicoBSD is available at the following +locations: +<UL TYPE=CIRCLE> +<LI> +<A HREF="http://www.freebsd.org/~picobsd/picobsd.html">PicoBSD based on +FreeBSD 3.0-RELEASE and -current</A> maintained by Andrzej Bialecki</LI> + +<LI> +<A HREF="http://info.net-gw.com/picoBSD/">PicoBSD based on FreeBSD 2.2.5-RELEASE</A> +prepared by Dinesh Nair</LI> +</UL> +Additional mirror sites will be brought online as demand increases. If +you're interested in mirroring the PicoBSD distribution, please get in +touch with <A HREF="mailto:dinesh@alphaque.com">Dinesh Nair</A> or +<A HREF="mailto:abial@freebsd.org">Andrzej Bialecki</A>. + +<P><B>How do I copy it to the floppy?</B></p> + +<P>The binary images provided as part of the PicoBSD distribution are 1.44MB +sized floppy images. They cannot be copied to a floppy using the <I>MSDOS +COPY</I> or <I>Unix cp</I> commands. Instead, an image copy must be done +using tools such as <A HREF="ftp://ftp.freebsd.org/pub/FreeBSD/tools/rawrite.exe">rawrite.exe</A> +or f<A HREF="ftp://ftp.freebsd.org/pub/FreeBSD/tools/fdimage.exe">dimage.exe</A> +under MSDOS and <B>dd</B> under Unix. + +<P>Under DOS you would do something like this: +<UL> +<PRE><B>C:\> fdimage.exe picobsd.flp a:</B></PRE> +</UL> +while under Unix you would use something like: +<UL><B>dd if=picobsd.flp of=/dev/rfd0</B></UL> + +<p><B>How do I configure dialup PPP access on the Dialup flavour?</B></p> + +<P>There is an auto-configuration script to configure PPP dialup access. +Run <I>/stand/dialup</I> after booting up from the floppy and make the +relevant menu selections. Once you've tested it to work, you should make +your changes permanent by committing them to the floppy using <I>/stand/update</I>. + +<P><B>How do I set my DNS server ?</B></p> + +<P>Use the provided <I>/stand/ee</I> editor and edit <I>/etc/resolv.conf</I>. +Replace the <U>domain</U> with your domain and change the <U>nameserver</U> +IP address to your nameserver or your ISP's nameserver. You may have as +many <U>nameserver</U> lines as you want. Don't forget to run <I>/stand/update</I> +to commit your changes to the floppy. +<p>NOTE: starting with version 0.4, the <i>dialup</i> script asks you to +set your nameserver as well as default domain name.</p> + +<p><b>I can't execute the <i>/stand/update</i> on the "router" floppy.</b></p> +<p>The "router" floppy doesn't contain any real shell, so some commands work +differently (and some don't work at all). In order to use this script you +have to 'source it in', i.e.: +<pre> + (48)/# pwd + / + (48)/# . /stand/update +</pre> + +<P><B>How do I set my hostname ?</B></p> + +<P>Edit /<I>etc/rc.conf</I> and change the value of the <U>hostname</U> +variable. + +<p><b>PicoBSD has "mkdir" but not "rmdir". How can I delete +subsdirectories?</b></p> +<p>"rm -d" will delete directories.</p> + +<p><b>Can I use a modem configured on COM3/COM4 instead of COM1, COM2?</b></p> + +<p>Yes, but these ports are initially disabled - most machines have only +two serial ports anyway. You have to enable them in UserConfig.</P> +<p>Here are the preferred settings:</p> +<ul> +<li> sio0=COM1: port 0x3f8, irq 4, used by default for mouse (/dev/cuaa0) +</li> +<li> sio1=COM2: port 0x2f8, irq 3, used by default for modem (/dev/cuaa1) +</li> +<li> sio2=COM3: port 0x3e8, irq 5, disabled by default +</li> +<li> sio3=COM4: port 0x2e8, irq 10, disabled by default +</li> +</ul> + +<p><b>I see a configuration conflict the first time I boot PicoBSD. What +should I do?</b></p> + +<p>Disable those devices which are not present in your machine. If there is +still some conflict, change the settings (I/O port, IRQ etc.).</p> + +<p><b>Exception:</b> if you're using a PS/2 mouse, the visual configuration +tool will display CONF for sc0 and psm0. The default settings are correct, +and you should simply ignore the warning.</p> + +<p><b>What kind of SCSI support is there?</b></p> + +<p>None. Either build your own version of PicoBSD, or just install normal +FreeBSD distribution.</p> + +<p><b>Using version 0.4 I get many strange messages on my console...</b></p> +<p>This is related in large part to DEVFS subsystem - it is still somewhat +experimental, and its author left some diagnostics turned on.. They are +harmless. Versions 0.4x, x>0 don't use DEVFS at all, as it was too +experimental to work reliably...</p> + +<P><B>How do I connect using PPP ?</B></p> + +<P>Just run the PPP process, <I>/stand/ppp</I>. at the <B>ppp on pico></B> +prompt, type <U>dial</U> and sit back and wait for the modem to sing it's +mating tunes. When the <B>ppp on pico></B> prompt is capitalized to <B>PPP +on pico></B>, you've managed to succesfully achieve a link-level PPP and +TCP/IP connection with your ISP. Additionally, the PPP program will enter +<I>Packet Mode</I>. Remember, don't <U>quit</U> or <U>close</U> the PPP +connection if you want to continue to access the Internet. Type <U>help</U> +at the <B>ppp on pico></B> prompt for a list of PPP commands. + +<P><B>The PPP process is running on my screen. How do I use the browser +or telnet to a host ?</B></p> + +<P>PicoBSD has many virtual terminals, 10 on the dialup flavour. You have +run PPP on the first virtual terminal. You can switch to the others and +run the browser and telnet clients there. Switching thru the VTs is done +by ALT-F1 for VT0, ALT-F2 for VT1, ALT-F3 for VT2 etc. From these terminals, +you could use telnet or the lynx browser cum newsreader. + +<p><b>I can't establish a PPP connection. The mouse pointer randomly appears +and disappears. and moving the mouse has no effect.</b></p> + +<p>You have the mouse driver configured to use the modem's serial port. +Issue a 'ps -ax', remember the pid (process ID) of 'moused', then issue a +'kill -9 <pid>'. Edit /etc/rc.conf to specify the correct mouse port. Issue +an 'update' commmand to save new configuration to the floppy, and reboot.</p> + +<P><B>I saved my lynx configuration but it was not there when I rebooted. +Why ?</B> + +<P>The lynx configuration is saved in <I>/etc/lynx.cfg</I>. You should +run /<I>stand/update</I> to commit this to the floppy when you change the +configuration. In effect, anything you change in /etc can be committed +by running /<I>stand/update</I>. + +<P><B>How come there are no manual pages ?</B></p> + +<P>Well, this is a floppy-sized OS, so there's not enough space for full +manpages. Instead, short help descriptions are given with the <I>/stand/help</I> +program. If you need more detailed descriptions, take a look at the <A HREF="http://www.freebsd.org/handbook/">FreeBSD +Handbook</A> or the <A HREF="http://www.freebsd.org/">FreeBSD Home</A>. +<BR> +<BR> +<HR WIDTH="100%"> +<CENTER><FONT SIZE=-1>More FAQ points will be added as feedback from the +PicoBSD user community comes in. And big thanks to all of you who already +sent us some suggestions!</FONT></CENTER> +<P><B><FONT SIZE=-1>Last Modified: +@DATE@ +</FONT></B></P> +</BODY> +</HTML> diff --git a/release/picobsd/doc/src/hardware.html b/release/picobsd/doc/src/hardware.html new file mode 100644 index 000000000000..0afede238cf1 --- /dev/null +++ b/release/picobsd/doc/src/hardware.html @@ -0,0 +1,112 @@ +<html> +<! $FreeBSD$ > +<body> +<h1><center>Lists of supported hardware configurations.</center></h1> + +<p>Below you will find supported configurations for each of the flavors of +PicoBSD as of version @VER@, as well as the lists of programs included.</p> + +<h3>Dialup version:</h3> +<ul> +<li>minimum 386SX CPU (either Intel, AMD, Cyrix etc - doesn't matter), +</li> +<li>minimum 8MB of RAM (some people reported success +stories with 4MB only, but I certainly don't recommend it) +</li> +<li>a modem (for Internet connection using PPP protocol), either internal or +external, connected to COM1-COM4. NOTE: COM3 and COM4 are disabled by default +- you have to explicitly enable them in UserConfig. +</li> +<li>an Ethernet card for LAN connection: +<ul> +<li> ed - default settings: port 0x280, irq 10, iomem 0xd8000 + <p>NE2000 compatible ISA and PCI cards, most SMC and 3C503</p> +</li> +<li> ep - default settings: port 0x300, irq 10, + <p>3C509 ISA card</p> +</li> +<li> ie - default settings: port 0x300, irq 10, iomem 0xd0000 + <p>Intel EtherExpress ISA, StarLan, 3C507</p> +</li> +<li> le - default settings: port 0x300, irq 5, iomem 0xd0000 + <p>DEC EtherWorks 2 and 3</p> +</li> +<li> lnc - default settings: port 0x280, irq 10, iomem 0xd0000 + <p>Lance/PCNet</p> +</li> +<li> de - DEC21040-based PCI cards, +</li> +<li> fxp - Intel EtherExpress Pro/100B PCI card +</li> +</ul> +</li> +<li>10 virtual consoles plus console utilities (vidcontrol, kbdcontrol) +</li> +<li>basic networking tools: ifconfig, route, ping, ns (mini-netstat), +traceroute +</li> +<li>basic remote access tools: telnet, ftp and SSH +</li> +<li>basic OS tools: shell, mount (FreeBSD, DOS, Linux), umount, ps, kill, vm +(mini-vmstat), fsck, df, etc.. +</li> +<li>editable configuration (/etc directory and kernel configuration) +</li> +<li>simple editor ee +</li> +<li>simple help system for people new to FreeBSD +</li> +</ul> +<h3>Router-like version:</h3> +<ul> +<li>minimum 386SX CPU, +</li> +<li>minimum 10 MB of RAM (8MB for basic setup) +</li> +<li>support for PPP protocol on dialup/leased lines (using ijppp) +</li> +<li>support for several types of Ethernet cards (two of each kind) - see above +for descriptions: ed, ie, ep, de, fxp, lnc +</li> +<li>network daemons: routing daemon (routed), inetd, telnetd. +</li> +<li>IP Firewall and NAT daemon (natd). +</li> +<li>more OS utilities, including: syslogd, mount_nfs, network logins via +telnet +</li> +<li>this version doesn't include: ssh, ftp +</li> +</ul> +<h3>Router version:</h3> +<ul> +<li>minimum 386SX CPU, +</li> +<li>minimum 4 MB of RAM (6MB for running some additional daemons) +</li> +<li>support for PPP protocol on dialup/leased lines (using kernel ppp) +</li> +<li>support for several types of Ethernet cards - see above +for descriptions: ed, ie, ep, de, fxp, lnc +</li> +<li>custom init(8), which includes also a simple command-line interface, +and its own way to configure the system on startup. +</li> +<li>IP Firewall and NAT daemon (natd - it requires additional portion of RAM). +</li> +<li>very few OS tools, except those absolutely necessary, +</li> +</ul> + +<p>There's also the fourth version, which can serve as a dialin server - I hope +you'll find it as a cheap yet reliable alternative to commercial communication +servers :-)) This work is still in progress, and +<A HREF="beta.html">I need some people to test</a> the early +dial-in server version.</p> + +<hr> +<i>Last modified: +@DATE@ +</i> +</body> +</html> diff --git a/release/picobsd/doc/src/how2build.html b/release/picobsd/doc/src/how2build.html new file mode 100644 index 000000000000..e8da1e268dde --- /dev/null +++ b/release/picobsd/doc/src/how2build.html @@ -0,0 +1,196 @@ +<html> +<! $FreeBSD$ > +<head> +<title>PicoBSD Development Kit</title> +</head> +<body> +<h1><center> How to build your own version + of PicoBSD? +</center></h1> + +<ol> +<li> +<p> Beginning with version 0.4, PicoBSD sources are maintained as + part of official FreeBSD CVS repository, so + you can find them in src/release/picobsd.</p> +</li> +<li> + Become root. You'll need to mount and unmount various volumes. +</li> +<li> + Make sure you are running kernel with support for vn(4) devices. + If you run plain GENERIC (just as it was installed on your system), + you'll need to recompile you kernel and reinstall it. See the + appropriate entries in The Handbook (/usr/share/doc/handbook). +</li> +<li> Change working directory (<code>cd build</code>) and run the + <code>./build</code> script. Select target language, size of MFS and + one of pre-canned setups (personal dialup, dialin server or + router-like). Details of each setup are contained in dial/, + router/, isp/ and net/ directories respectively. You should at least + check <code>${TYPE}/config/PICOBSD</code> file to make sure it contains + the drivers you want. + +<p> You can also choose a special type called 'custom'. You'll need to + supply the full path to your own custom config tree constructed + exactly like one of the standard config directories. Also, you'll + probably want to adjust the number of inodes on MFS - see the + <code>stage1</code> script and look for <code>INODES=</code>.</p> + +<p> I also recommend to adjust the ISA devices parameters to + match the ones of your hardware - though PicoBSD can save the + changes from UserConfig, this way it will produce smaller + <code>/kernel.config</code> file.</p> +</li> +<li> I assume you will use 1.44MB floppy. If not, please edit the file + <code>build/stage3</code>. +</li> +<li> There are several directories which contain some sources and config + files: +<pre> + build/ main build directory; you MUST cd here! + dial/ config files for dialup setup + conf/ kernel config file + crunch1/ crunch of system programs + mfs.tree/ contains the MFS configuration + lang/ contains language-dependent files + floppy.tree/ contains the startup floppy hierarchy + + isp/ config files for dialin server setup + ... (as above) + net/ config files for router-like setup + ... (as above) + tinyware/ collection of small system utilities + tools/ additional tools them needed during build +</pre> +<p> There are no <code>/etc/passwd</code> nor <code>/etc/pwd.db</code> + files on the "dial" floppy - in case of other types, they are + reconstructed from <code>/etc/master.passwd</code> on each startup + (and then put on MFS with the rest of <code>/etc</code>). + In case of "dial" type floppy, you don't need them at all.</p> + +<p> NOTE: thanks to the above, the floppy is needed only during startup, + and then only if you want to synchronize (possibly changed) MFS /etc + with the one on the floppy. It means that you can pull off the floppy + from the drive as soon as <code>login:</code> prompt appears. + In other words, it is almost equal to read-only floppy.</p> +</li> +<li> Edit the set of installed programs. +<ul> +<li> Go to <code>${TYPE}/crunch1</code> directory, and edit it + to suit your needs. Keep in mind that floppies aren't made + of rubber... :-) +</li> +<li> There are some patches included in these directories, which + are applied during build process to some of the Makefiles in + your <code>/usr/src</code>. These patches attempt to decrease + the size of some programs by cutting off rarely/unlikely used + parts. The patches are reversed when you do a + <code>make clean</code> (or <code>build/clean</code> + for that matter). +<p> NOTE: patches may fail to apply, if your sources are too + different from the ones I used. Don't worry: they are so + straightforward that you can apply them by hand.</p> +</li> +<li> In order to have a functioning system you MUST include at + least <code>/stand/init</code>, or <code>/stand/oinit</code>, + or <code>/stand/sysinstall</code> in + your <code>crunch.conf</code>. Of course these can be your + own programs... But if you install the stock + <code>/sbin/init</code>, you + also have to install some others, like sh, getty, login etc... +<p> This release of PicoBSD contains a small replacement for + init(8), called 'oinit'. You can find it in TinyWare + collection. The main building script allows you to use it + instead of normal init(8). <b>Be sure to read the oinit's docs + before you decide to use it!</b></p> +</li> +</ul> +</li> +<li> Make sure that the system you're running has /dev/[r]vn0* entries in + /dev directory (if not, you can make them with 'MAKEDEV vn0'), AND + that your running kernel has built-in vnode driver (there should be a + line in your kernel config file stating 'pseudo-device vn xxx'). +</li> +<li> You'll need at least 9MB of free disk space, and free /mnt directory. +</li> +<li> Do a <code>cd build/</code> and fire off the <code>./build</code> + script. Select the build parameters or 'n' for 'no change'. If all + is well, after some time (like 10-30m) you end up with a + 'picobsd.bin' file in this directory. + +<p> WARNING: make sure you don't have stale <code>.depend</code> files + around!!! You may encounter many strange errors during build process + in that case.</p> + +<p> If there were any errors, please execute each script by hand and try + to find what causes this error. Most often this will be one of the + following reasons:</p> +<ul> +<li> <code>crunchgen</code> can't find the source directory for a + program 'proggy': +<ul> +<li> make sure that the source directory for 'proggy' is called + 'proggy', otherwise the crunchgen won't find it +</li> +<li> make sure that the Makefile allows crunchgen to deduce the + set of objects to build. You can manually add an OBJS= ... + to the program's Makefile. +</li> +</ul> +</li> +<li> crunch fails to build. +<ul> +<li> check your system source tree for stale .depend files and/or + objects (*.o) +</li> +<li> see if the individual programs can be built using original + Makefiles. If not, cvsup the correct sources. +</li> +</ul> +</li> +<li> /: write failed - file system is full +<ul> +<li> this one is obvious - you wanted to put too many programs on + the MFS and/or the target floppy. Or, you really don't have + any space left on the root partition.. :-) +</li> +<li> also, you can check if the + MFS size is correctly reported while it's still mounted (right + after <code>stage1</code> script ends). +</li> +</ul> +<li> the build process displays "Preparing MFS" and then + silently stops. In this case check if you're running it as + root, and that you run kernel with support for vn(4) + devices. Also, you can add 'set -x' at hte beginning + of the scripts to see exactly where they stop. +</li> +</ul> + + You can also remove <code>2>&1</code> redirections from Makefiles + to see the stderr. +</li> +<li> Transfer this file to the floppy: +<pre> + dd if=picobsd.bin of=/dev/rfd0 +</pre> + + (The 'build' script asks you if you want to do this.) +</li> +</ol> + +<p>That's all. You're welcome to change and improve these scripts. If you + stumble upon something which looks like a good idea to have it here, let me + know.</p> + +<p>If, for some reason, the scripts don't work for you at all, also let me + know.</p> + +<hr> +<i>Last modified: +@DATE@ + +<p><A HREF="mailto:abial@freebsd.org"><abial@freebsd.org></a></i></p> +</body> +</html> diff --git a/release/picobsd/doc/src/installflp.html b/release/picobsd/doc/src/installflp.html new file mode 100644 index 000000000000..b0ead20390b8 --- /dev/null +++ b/release/picobsd/doc/src/installflp.html @@ -0,0 +1,99 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<!-- $FreeBSD$ --> +<html> + <head> + <title>Configuring the PicoBSD install floppy</title> + </head> + + <body> + <h1>Configuring the PicoBSD install floppy</h1> + + <p>The PicoBSD Install Floppy is engineered to be flexible since every + site has their own needs for an automated install solution. The + base package contains tools and frameworks for further + customization. </p> + + <h2>Generating an Install Image</h2> + + <p>Central to the design of the install floppy is a tarball image of + the operating system. The install floppy downloads and extracts + the image from a master server. </p> + + <p>To generate the install image:</p> + + <ol> + <li>Install and configure a machine as it should be + installed. + <ul> + <li><em>Make the template machine as close to the target + machines as possible.</em> System-specific files such as + <tt>/etc/fstab</tt> can cause problems if they are + specific to a particular disk setup, such as multiple SCSI + disks in the template vs. single IDE disks in the target. + <li><em>Try to keep the template as small as practical.</em> + The more packages you install on the template, the larger + the image becomes. + </ul> + <li>Use tar to create the image. This shell script is useful + for automating the process. + <blockquote><pre> +#!/bin/sh +TARBALL="/fbsdimage.tgz" +GZIP="-9" + +tar -cpvzf ${TARBALL} --totals --exclude '/proc/*' --exclude '/var/tmp/*' \ + --exclude '/var/log/*' --exclude '/tmp/*' --exclude '/fbsdimage.tgz' / + </pre></blockquote> + <ul> + <li>Use the '--exclude' argument to remove files from the + image. + <li>Don't forget to exclude the image itself or your tarball + will be much larger than it should. + <li>The <b>GZIP</b> environment variable sets arguments to the + gzip command called by tar's z option. + </ul> + <li>Copy the image file to your load server into a public FTP + directory. + </ol> + + <h2>Configuring the Install Floppy</h2> + + <p>Once the install floppy has been built using the PicoBSD build + script, mount the floppy and modify the install + script, <tt>/floppy/etc/doinstall</tt>. <tt>doinstall</tt> is + called from rc on startup to install the disk image and perform + whatever other setup tasks are necessary. The script can set + network parameters, configure applications, select kernels, or + whatever else a shell script can do. A handful of useful + utilities is included on the disk to ease automated installation.</p> + + <p>At minumum, set the URL to the FTP server holding the disk + image. If you wish, uncomment and modify to taste any of the + code blocks provided.</p> + + <p>By default, the install floppy:</p> + <ul> + <li>Creates one large FreeBSD slice on the first IDE disk (wd0). + <li>Creates a 256MB swap partition and the rest for a large + root partition. + <li>Formats the large partition using <tt>newfs</tt> with + default parameters. ' + <li>Downloads the image via FTP and feeds it directly into + <tt>cpio</tt> for extraction. + </ul> + + <P>To modify the disk formatting parameters, modify the + <tt>/floppy/etc/prepdisk</tt> script. <tt>prepdisk</tt> is a + simple awk script that feeds directly into <tt>disklabel</tt>. + Simply edit the generated partition table to taste.</P> + + + + <hr> + <address><a href="mailto:dwhite@freebsd.org">Doug White</a></address> +<!-- Created: Thu Oct 7 21:42:17 PDT 1999 --> +<!-- hhmts start --> +Last modified: Thu Oct 7 22:18:22 PDT 1999 +<!-- hhmts end --> + </body> +</html> diff --git a/release/picobsd/doc/src/intrinsics.html b/release/picobsd/doc/src/intrinsics.html new file mode 100644 index 000000000000..c69d022a6126 --- /dev/null +++ b/release/picobsd/doc/src/intrinsics.html @@ -0,0 +1,126 @@ +<html> +<! $FreeBSD$ > +<head> +<title><center>Details of building process</center></title> +</head> +<body> +<h1><center> Details of building process.</center></h1> + +<p>For those of you who really want to know what's going on behind the scene, +and can't quite deduce it from scripts themselves, here's short description of +the build process:</p> + +<ul> +<li> The './build' script sets the basic parameters of the floppy, such as: +<ul> +<li> LANGUAGE: language of the various system messages, and C locale. + Available choices are: "en" (English) and "pl" (Polish). +</li> +<li> + SIZE: size of the memory filesystem (MFS), which will contain all the + binaries (except the kernel). Make it big enough for all the pieces to + fit, but keep it as small as possible (remember that running system + needs some space in /var and /tmp!). Presently, "dial" type of floppy + requires at least SIZE=1700, and others require ca. 2800 (numbers + are in kB). +</li> +<li> + TYPE: determines which set of programs and which trees will be + installed on the floppies. This simply acts as a selector to dive into + respective subdirectories in ../. Presently, the TYPE can be one of: + "dial" (dialup floppy), "net" (networking floppy), "router" (router + floppy) or "isp" (work in progress - not really usable yet). +</li> +</ul> +<li> + Then the './build' scripts checks if there is a kernel built on basis + of previously set parameters. The check is error prone, but is simple: + the target config file is called PICOBSD-${TYPE}.${SIZE}, and if there + exists a file called /sys/compile/PICOBSD-${TYPE}.${SIZE}/kernel, then + it is assumed it's the right one. + +<p> If there is no such file, the script starts compilation of the kernel, + using template in ../${YTPE}/conf/PICOBSD, and adding parameters which + determine the built-in MFS size.</p> +<li> + Then the './build' script starts the consecutive stages of the build + process, which are performed by scripts (in the following order): + stage1, populate, stage2, stage3. +</li> +<li> + 'stage1' prepares the file called fs.PICOBSD with given size - it's a + placeholder for the future MFS. Next, it turns it into device (using + vnconfig), and then performs some tricks :-) which allow for + doing 'disklabel'. I use the 'auto' option to disklabel(8), which + behaves strangely in 2.2.x - what it's supposed to do is to + automagically determine the disk parameters from the underlying + device (in this case, /dev/rvn0). This works ok in 3.0-current, and + allows for using arbitrary (>1024kB) MFS sizes. + +<p> One notable exception here is with the "router" floppy - I use one + of extended floppy formats (820kB).</p> + +<p> After the file is labelled, the newfs(8) is run. Here you can adjust + the parameter -i, which can gain you some space on the MFS (sacrificing + available number of inodes, so be careful).</p> + +<p> Such prepared blank filesystem is mounted on /mnt. Here the stage1 + ends.</p> +</li> +<li> + 'populate', as its name suggests, transfers all the pieces which will + reside in MFS, to the filesystem mounted on /mnt. This includes: +<ul> +<li> copying language dependent files from ../${TYPE}/lang/</li> +<li> making the MFS hierarchy according to informations in + ../${TYPE}/mfs.tree/ subdir. +<p> The MFS tree includes the /etc, which will contain the startup file + /etc/rc. + This file in turn doesn't do anything useful except copying the + real /etc hierarchy from the floppy filesystem. (There's one possible + improvement which comes to my mind - to have the whole /etc on the + floppy in tar.gz - this would require only one inode to store the whole + /etc, and we could gain some kB on the floppy)</p> +</li> +<li> making and installing the set of crunched programs, basing on the + description in ../${TYPE}/crunch1/crunch.conf. This involves + making the 'crunch', copying it to /mnt and making hard links to + the names of all the programs contained therein.</li> +<li> preparing a short list of kernel symbols, which will be used by + various utilities at runtime. In case of "net" and "isp" floppy, it also + prepares the kvm_kernel.db database, which will be used by such + programs as ps, netstat and others</li> +<li> preparing the list of "virgin" configuration of devices in kernel - + this list will be used by kget(8) program to save the changes to + /kernel.config file.</li> +</ul> +</li> +<li> + 'stage2' prepares the target kernel. It takes the filesystem contained + in fs.PICOBSD (which has all the above pieces inside), and writes it + into the target kernel. Then it kzip(8)'s such construed kernel. This + process also strips the symbols from the kernel (that's why we prepared + the symbol list earlier). +</li> +<li> + 'stage3' does almost the same as 'stage1', but this time it prepares + the filesystem of the target floppy. Default size for the floppy is + set at 1440kB. +<p> After preparing the filesystem (which again involves doing disklabel(8) + and newfs(8) - here you can notice that the resulting FS has very small + number of inodes in order to save space), the script transfers the + floppy hierarchy (which is + taken from ../${TYPE}/floppy.tree). Notice that it also contains + the /etc directory - its contents is copied right after bootup to the + real /etc in MFS. This allows for changing the system behaviour + (because you can't change the MFS contents without recompiling).</p> +<p> The script finally copies previously prepared kernel to the floppy + filesystem. The filesystem is unmounted, and here the build process + ends.</p> +</li> +</ul> + +<h6> +Last modified: +@DATE@ +</h6> diff --git a/release/picobsd/doc/src/intro.html b/release/picobsd/doc/src/intro.html new file mode 100644 index 000000000000..035cd0c14d21 --- /dev/null +++ b/release/picobsd/doc/src/intro.html @@ -0,0 +1,306 @@ +<HTML> +<! $FreeBSD$ > +<HEAD> + <TITLE>PicoBSD</TITLE> +</HEAD> +<BODY> + +<CENTER><h1><B>PicoBSD</B></h1> +<HR shade align="center" size="8" width="25%"></CENTER> + + +<p><b>Contents:</b></p> +<ul> +<li> +<A HREF="#what">What is it</a>, and +<A HREF="#hardware">what hardware is supported?</a> +</li> +<li> +<A HREF="#where"><b>Where can I get it?</b></a> +</li> +<li> +<A HREF="#how">How can I use it?</a> +</li> +<li> +<A HREF="#create">Create your own, custom version of PicoBSD!</a> +<p>Get the full PicoBSD Development Kit as well as full CVS repository of +the project.</p> +</li> +<li> +<A HREF="#info">Where can I get more info?</a> +</li> +<li> +<A HREF="bugs.html">Release history and bugs parade...</a> +<li> +<A HREF="#future">Plans for the future.</a> +</li> +<li> +<A HREF="#credits">Credits</a> +</li> +<li> +<A HREF="#license">Licensing issues</a> +</li> +<li> +<A HREF="faq.html">FAQ</a> +</li> +</ul> + +<HR shade align="center"> +<HR shade align="center"> + +<A NAME="what"><h3>What is it?</h3> +<p>If you ever dreamed about having really small, tiny, minimal system that +would offer you benefits of Unix, while still fitting in reasonable space - +here it is!</p> + +<p>PicoBSD is a one floppy version of +<A HREF="http://www.freebsd.org/">FreeBSD</a> 3.0-current, which in its +different variations allows you to have secure dialup access, small diskless +router or even a dial-in server. And all this on only one standard 1.44MB +floppy - no need to sacrifice over 100MB of your precious HDD space.</p> + +<p>PicoBSD is... well, pico-sized :-) , and the minimal hardware that +is required to run it is 386SX CPU with 8MB of RAM (no HDD!). +</p> + +<A NAME="hardware"> +<p>Here you can find detailed <A HREF="hardware.html">list of supported +hardware and features</a>. + +<p>Current version of PicoBSD is @VER@, and this means that I consider it +still immature, while on the other hand being somewhat tested and improved +over previous versions. Does it tell you something? Well, at least you can +try it - I cannot guarantee that it doesn't burn your house or blow up your +machine, though the former is unlikely... :-)</p> + +<HR shade align="center"> +<A NAME="where"><h3>Where can I get it?</h3> + +<p>There are two language editions of PicoBSD - English and Polish one. You'll +be probably more interested in the former :-) The only difference is in +the set of fonts included, C locale, and the language of messages.</p> +<p>You can download them from www.freebsd.org or one of its mirrors:</p> +<ul> +<li>Dialup version: <A HREF="http://www.freebsd.org/~picobsd/picobsd/pb_en-D.bin">English</a> +(<A HREF="http://www.freebsd.org/~picobsd/picobsd/doc_dial/README.en">README</a>) or +<A HREF="http://www.freebsd.org/~picobsd/picobsd/pb_pl-D.bin">Polish</a> +(<A HREF="http://www.freebsd.org/~picobsd/picobsd/doc_dial/README.pl">README</a>) +</li> +<li>Networking (formerly known as 'router-like') version: <A HREF="http://www.freebsd.org/~picobsd/picobsd/pb_en-N.bin">English</a> +(<A HREF="http://www.freebsd.org/~picobsd/picobsd/doc_net/README.en">README</a>) + or <A HREF="http://www.freebsd.org/~picobsd/picobsd/pb_pl-N.bin">Polish</a> +(<A HREF="http://www.freebsd.org/~picobsd/picobsd/doc_net/README.pl">README</a>) +</li> +<li>Router version: <A HREF="http://www.freebsd.org/~picobsd/picobsd/pb_en-R.bin">English</a> +(<A HREF="http://www.freebsd.org/~picobsd/picobsd/doc_router/README.en">README</a>) + or <A HREF="http://www.freebsd.org/~picobsd/picobsd/pb_pl-R.bin">Polish</a> +(<A HREF="http://www.freebsd.org/~picobsd/picobsd/doc_router/README.pl">README</a>) +</li> +<li>Dial-in server version: waiting for +<A HREF="http://www.freebsd.org/~picobsd/beta.html">beta testers</a> ... :-) +</ul> + +<p><i>(See the <A HREF="hardware.html">feature list</a> for more +details)</i></p> + +<p>The above floppies were built from 3.0-current sources. Though they +provide more features, they tend to be less stable than the latest +RELEASE of FreeBSD. Dinesh Nair back-ported these scripts to the +latest release (2.2.5), and continues development of PicoBSD using sources +from that branch. You can find floppies built from 2.2.5 sources +<A HREF="http://www.freebsd.org/~picobsd/picobsd225/">here</a> or at +<A HREF="http://info.net-gw.com/picoBSD/">his server</a>.</p> + +<HR shade align="center"> +<A NAME="how"><h3>How can I use it?</h3> +<p>Previous versions were packed with PKZIP(tm) compatible program - now they +are simply the raw binary floppy images, so you just need to grab the +appropriate version of the file.</p> + +<p>I assume you will use 1.44MB floppy to boot the system - other sizes +(bigger) are not tested.</p> + +<p>The file 'pb_xx-X.bin' must be written onto a blank floppy. It does NOT +mean that it can be copied using e.g. DOS 'copy' command. You must use a +program like +<A HREF="ftp://ftp.freebsd.org/pub/FreeBSD/tools/rawrite.exe">rawrite.exe</a> +or +<A HREF="ftp://ftp.freebsd.org/pub/FreeBSD/tools/fdimage.exe">fdimage.exe</a> + to write this file directly on the raw floppy.</p> + +<p>Under DOS you would do something like this:</p> +<pre> + C:\> fdimage.exe pb_xx-X.bin a: +</pre> + +<p>while under Unix you would use something like:</p> +<pre> + dd if=pb_xx-X.bin of=/dev/rfd0 +</pre> + +<p>Then boot off this floppy and enjoy!</p> + +<p>If you feel lost, try the 'help' command (it's available only on "dialup" +floppies)</p> + +<HR shade align="center"> +<A NAME="create"> +<h3>Create your own, custom version of PicoBSD!</h3> + +<p>I made available also the set of tools +(a.k.a the PicoBSD Development Kit) I used to create the floppies (see also the + <A HREF="how2build.html">detailed instructions</a>)</p> + +<p>You can also access the full CVS repository of PicoBSD - beginning with +version 0.4 it's a part of official FreeBSD CVS and lives in +<code>src/release/picobsd</code>. I also create the snapshots of this source +tree - keep in mind that they are not so up-to-date as the tree +in FreeBSD CVS. You can get the snapshot I made on +Sun Nov 1 11:48:32 PST 1998 +<A HREF="http://www.freebsd.org/~picobsd/picobsd/picobsd.tgz">here</a>.</p> + +<p> Now, if you don't like the setup of PicoBSD, or you miss +some program, or (better yet) you want to improve PicoBSD - you can grab the +copy of exactly the same tools I used and build your own, customized + version! </p> + +<p>Think of it: if your're an ISP, you can build the dialup version for + your customers, including some scripts to automatically connect them to +your site. You can also create a demo disk for your friend (or your boss! :-)). +You can also build a firewall/router for your office, etc, etc... + possibilities are really endless and limited only by your imagination.</p> + +<p>You will need at least 10MB of free disk space for building, and of course +the full system sources installed. I also assume that the sources are +quite -current. There is also a back-ported version of the scripts prepared by +<A HREF="mailto:dinesh@alphaque.com">Dinesh Nair</a> which builds ok on +2.2.6-R systems.</p> + +<p>Version 0.31 was packed with pax(1) - newer versions are packed again +with tar and gzip to avoid confusion... :-)</p> + +<p>I'm very interested in hearing from you about your experiences - if you +come up with a setup you think is interesting, please let me know!</p> + +<HR shade align="center"> +<A NAME="info"><h3>Where can I get more info?</h3> + +<p>Almost all of the programs included on the floppies are exactly the +same versions as in normal FreeBSD installation, so that the normal +manual pages apply. However, I didn't include the manpages themselves - +they would take over 200kB!</p> + +<p> For the total newbies, which would use (I assume) +the 'dialup' version, there is a short README on the floppy which gives +step by step instructions on how to get a dialup connection. There is also +a script called 'dialup' which attempts to configure PPP to allow for automatic +log in to your provider, and for background operation. +There is also a small help system ('help' command)</p> + +<p> There are some system utilities which are unique to PicoBSD, and at this + moment they are documented in detail only in source and READMEs :-(.</p> + + +<p>As for the new releases which will (hopefully) be prepared in the future: +just keep an eye on this page. I'll also send announcements to FreeBSD mailing +lists.</p> + +<HR shade align="center"> +<A NAME="future"><h3>Plans for the future</h3> + +<p>Well, I hope that thanks to your comments I'll be able to continuously +improve the setup and contents of PicoBSD. I also have specific dreams (if +dreams can be specific..) - here they are, as an incentive to your +imagination and coding skills:</p> +<ul> +<li> +To write a command line tool patterned after Cisco IOS, which could configure +various aspects of router-like version of PicoBSD. +<p>Well, currently you can read very preliminary draft of proposed +architecture, called the <A HREF="UCI.html">Unified Configuration Interface.</a></p> +</li> +<li> +To put an XWindow-like GUI on the 'dialup' floppy. (Update: you can look at +<A HREF="http://www.freebsd.org/~picobsd/preview/preview2.tgz">preview +version</a> and send me your comments. <b>I need some help in porting newer +version of W</b>). +</li> +<li> +To gain some experience with solid state disks, and prepare standard images +for e.g. 4MB versions of SSD, with Cisco 25xx-like contents... I also hope + to achieve this goal in the nearest +future, thanks to involvement of some PicoBSD enthusiast :-)</p> +(Update: I'm experimenting with an M-System's 16MB flash right now, and +there is also ongoing development for a driver for their DiskOnChip) +</li> +<li> +To be able to boot from more primitive filesystem than FFS - DOS or Minix +would be just fine, as they don't waste so much space for their internals. +</li> +<li> +To have an alternative to current MFS - it wastes a lot of space just +because it mimicks the normal FFS on top of memory blocks... +</li> +<li> +To further minimize the memory footprint of router-like setup. I'd like it +to be able to run truely effortlessly on 4MB machines... This would +probably include rewriting oinit(8) to run multithreaded. +</li> +<li> +And many others... You can find a complete list +<A HREF="TODO.html">here</a>. +</li> +</ul> + +<A NAME="credits"><h3>Credits</h3> + +<p>The following people are either responsible for the very existence of this +project, or significantly eased my pains in gaining necessary knowledge:</p> +<ul> +<li> +the whole FreeBSD team for this magnificent OS, and their hard work of +continuous development, +</li> +<li> +Dinesh Nair, for co-development and preparing of the version which compiled +on 2.2.5-RELEASE, +</li> +<li> +Joe Greco, for his encouraging example of XKERNEL (some parts of the scripts +still bear his fingerprints :-) (you can get it + <A HREF="../../../xkernel.tgz">here</a>). +</li> +<li>Goran Hasse of <A HREF="http://www.raditex.se">Raditex AB, Sweden</a>, for +sending me M-Systems' and SanDisk flash disks to experiment with. +</li> +<li> +Mike Smith for various tips and encouragement. +</li> +<li> +freebsd-* mailing lists participants, which helped me with some other +pieces. +</li> +<li> +and many other people who keep encouraging me to continue this work. Thanks, +guys! +</li> +</ul> + +<A NAME="license"><h3>Licensing issues</h3> + +<p>PicoBSD is distributed under BSD copyright, +which allows you to use it in various ways, including commercial +applications. So grab it and enjoy! And if you feel that you want to help +with this project, either by donating some time to write code, or by +some other donation, just <A HREF="mailto:abial@freebsd.org">contact me</a>.</p> + +<h5>Last modified: +@DATE@ +</h5> + +<HR shade align="left" size="2" width="100%"> +<CENTER><h5>Any comments? Send them to +<A HREF="mailto:abial@freebsd.org">the author</A> </h5></CENTER> + +</BODY> +</HTML> diff --git a/release/picobsd/floppy.tree/boot.config b/release/picobsd/floppy.tree/boot.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/floppy.tree/boot.config diff --git a/release/picobsd/floppy.tree/etc/disktab b/release/picobsd/floppy.tree/etc/disktab new file mode 100644 index 000000000000..ba97b44bd5f4 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/disktab @@ -0,0 +1,85 @@ +# +# Floppy formats: +# +# To make a filesystem on a floppy: +# fdformat [-f <size>] fd<drive>[.<size>] +# disklabel -B -r -w fd<drive>[.<size>] fd<size> +# newfs <opts> fd<drive>[.<size>] +# +# with <opts>: +# -t 2 - two heads +# -u 9|15|18 - sectors per track +# (using the default value of 1/4096 is not much useful for floppies) +# -l 1 - interleave 1 (for most floppies) +# -i 65536 - bytes of data per i-node +# (the default -i value will render you with a floppy wasting way +# too much space in i-node areas) + +fd360:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\ + :pa#720:oa#0:ba#4096:fa#512:\ + :pb#720:ob#0:bb#4096:fb#512:\ + :pc#720:oc#0:bc#4096:fc#512: + +fd720:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\ + :pa#1440:oa#0:ba#4096:fa#512:\ + :pb#1440:ob#0:bb#4096:fb#512:\ + :pc#1440:oc#0:bc#4096:fc#512: + +fd1200|floppy5|5in|5.25in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\ + :pa#2400:oa#0:ba#4096:fa#512:\ + :pb#2400:ob#0:bb#4096:fb#512:\ + :pc#2400:oc#0:bc#4096:fc#512: + +fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pb#2880:ob#0:bb#4096:fb#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +fd1024|floppy0|3.5in Special Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#16:nc#64:\ + :pa#2048:oa#0:ba#4096:fa#512:\ + :pb#2048:ob#0:bb#4096:fb#512:\ + :pc#2048:oc#0:bc#4096:fc#512: + +# a == root +# b == swap +# c == d == whole disk +# e == /var +# f == scratch +# h == /usr + +cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\ + :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \ + :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \ + :pb#24288:ob#15840:tb=swap: \ + :pc#202224:oc#0: \ + :pd#202224:od#0: \ + :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \ + :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \ + :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512: + +sony650|Sony 650 MB MOD|\ + :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\ + :pc#576600:oc#0:\ + :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024: + +mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\ + :ty=removeable:dt=SCSI:rm#3600:\ + :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\ + :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\ + :pc#444384:oc#0: + +minimum:ty=mfs:se#512:nt#1:rm#300:\ + :ns#2880:nc#1:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +zip100|zip 100:\ + :ty=removable:se#512:nc#96:nt#64:ns#32:\ + :pa#196608:oa#0:ba#4096:fa#512:\ + :pb#196608:ob#0:bb#4096:fb#512:\ + :pc#196608:oc#0:bc#4096:fc#512: diff --git a/release/picobsd/floppy.tree/etc/fstab b/release/picobsd/floppy.tree/etc/fstab new file mode 100644 index 000000000000..38e443535d82 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/fstab @@ -0,0 +1,4 @@ +/dev/fd0c /fd ufs rw,noauto 0 0 +/dev/wd0s1 /dos msdos rw,noauto 0 0 +/dev/wd0s1a /wd ufs rw,noauto 0 0 +/dev/wcd0c /cdrom cd9660 ro,noauto 0 0 diff --git a/release/picobsd/floppy.tree/etc/gettytab b/release/picobsd/floppy.tree/etc/gettytab new file mode 100644 index 000000000000..d2e252c97d1f --- /dev/null +++ b/release/picobsd/floppy.tree/etc/gettytab @@ -0,0 +1,38 @@ +# from: @(#)gettytab 5.14 (Berkeley) 3/27/91 +# +default:\ + :cb:ce:ck:lc:fd#1000:cl:im=\r\nPicoBSD (%h) (%t)\r\n\r\n:sp#1200: + +P|Pc|Pc console:\ + :ht:np:sp#115200: + +# Fixed speed entries +2|std.9600|9600-baud:\ + :np:sp#9600: +g|std.19200|19200-baud:\ + :np:sp#19200: +std.38400|38400-baud:\ + :np:sp#38400: +std.57600|57600-baud:\ + :np:sp#57600: +std.115200|115200-baud:\ + :np:sp#115200: + +# Entry specifying explicit device settings. See termios(4) and +# /usr/include/termios.h, too. The entry forces the tty into +# CLOCAL mode (so no DCD is required), and uses Xon/Xoff flow control. +# +# cflags: CLOCAL | HUPCL | CREAD | CS8 +# oflags: OPOST | ONLCR | OXTABS +# iflags: IXOFF | IXON | ICRNL | IGNPAR +# lflags: IEXTEN | ICANON | ISIG | ECHOCTL | ECHO | ECHOK | ECHOE | ECHOKE +# +# The `0' flags don't have input enabled. The `1' flags don't echo. +# (Echoing is done inside getty itself.) +# +local.9600|CLOCAL tty @ 9600 Bd:\ + :c0#0x0000c300:c1#0x0000cb00:c2#0x0000cb00:\ + :o0#0x00000007:o1#0x00000002:o2#0x00000007:\ + :i0#0x00000704:i1#0x00000000:i2#0x00000704:\ + :l0#0x000005cf:l1#0x00000000:l2#0x000005cf:\ + :sp#9600: diff --git a/release/picobsd/floppy.tree/etc/group b/release/picobsd/floppy.tree/etc/group new file mode 100644 index 000000000000..abbd733f3b0b --- /dev/null +++ b/release/picobsd/floppy.tree/etc/group @@ -0,0 +1,19 @@ +wheel:*:0:root,user +daemon:*:1:daemon +kmem:*:2:root +sys:*:3:root +tty:*:4:root +operator:*:5:root +mail:*:6: +bin:*:7: +news:*:8: +man:*:9: +games:*:13: +staff:*:20:root,user +guest:*:31:root +uucp:*:66: +xten:*:67:xten +dialer:*:68: +network:*:69: +nogroup:*:65533: +nobody:*:65534: diff --git a/release/picobsd/floppy.tree/etc/host.conf b/release/picobsd/floppy.tree/etc/host.conf new file mode 100644 index 000000000000..753112455a69 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/host.conf @@ -0,0 +1,3 @@ +# $FreeBSD$ +hosts +bind diff --git a/release/picobsd/floppy.tree/etc/hosts b/release/picobsd/floppy.tree/etc/hosts new file mode 100644 index 000000000000..fdcd49b4b7c4 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/hosts @@ -0,0 +1,14 @@ +# $FreeBSD$ +# This file contains ip <-> hostname mapping. +# It is also used for autoconfiguration based on Ethernet address +# and other things. The initial part is just a standard /etc/hosts +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.edu +127.0.0.1 pico.mydomain.edu +10.0.0.1 default + +#ethertable This line starts the ethernet->hostname mapping +# main_ether hostname +# 00:12:34:56:78:9a myaddress +# default default + diff --git a/release/picobsd/floppy.tree/etc/inetd.conf b/release/picobsd/floppy.tree/etc/inetd.conf new file mode 100644 index 000000000000..c7c50de341e4 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/inetd.conf @@ -0,0 +1,21 @@ +# +# Internet server configuration database +# +# @(#)inetd.conf 5.4 (Berkeley) 6/30/90 +# +telnet stream tcp nowait root /usr/libexec/telnetd telnetd +# +# "Small servers" -- used to be standard on, but we're more conservative +# about things due to Internet security concerns. Only turn on what you +# need. +# +#daytime stream tcp nowait root internal +#daytime dgram udp wait root internal +#time stream tcp nowait root internal +#time dgram udp wait root internal +#echo stream tcp nowait root internal +#echo dgram udp wait root internal +#discard stream tcp nowait root internal +#discard dgram udp wait root internal +#chargen stream tcp nowait root internal +#chargen dgram udp wait root internal diff --git a/release/picobsd/floppy.tree/etc/login.conf b/release/picobsd/floppy.tree/etc/login.conf new file mode 100644 index 000000000000..4337b1fb7481 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/login.conf @@ -0,0 +1,118 @@ +# This file controls resource limits, accounting limits and +# default user environment settings. +# +# $FreeBSD$ +# + + +# Authentication methods + +auth-defaults:\ + :auth=passwd: + +auth-root-defaults:\ + :auth-login=passwd:\ + :auth-rlogin=passwd:\ + +auth-ftp-defaults:\ + :auth=passwd: + +# Example defaults +# These settings are used by login(1) by default for classless users +# Note that entries like "cputime" set both "cputime-cur" and "cputime-max" + +default:\ + :cputime=infinity:\ + :datasize-cur=22M:\ + :stacksize-cur=8M:\ + :memorylocked-cur=10M:\ + :memoryuse-cur=30M:\ + :filesize=infinity:\ + :coredumpsize=0:\ + :maxproc-cur=64:\ + :openfiles-cur=64:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-defaults: + +# standard - standard user defaults +# +standard:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,EDITOR=/usr/bin/ee:\ + :path=~/bin /bin /usr/bin:\ + :nologin=/var/run/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=0:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=90d:\ + :umask=002:\ + :ignoretime@:\ + :tc=default: +# +# Staff users - few restrictions and allow login anytime +# +staff:\ + :ignorenologin:\ + :ignoretime:\ + :requirehome@:\ + :accounted@:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :umask=022:\ + :tc=standard: + + +# +# root - fallback for root logins +# +root:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :cputime=infinity:\ + :datasize=infinity:\ + :stacksize=infinity:\ + :memorylocked=infinity:\ + :memoryuse=infinity:\ + :filesize=infinity:\ + :coredumpsize=0:\ + :openfiles=infinity:\ + :maxproc=infinity:\ + :memoryuse-cur=32M:\ + :maxproc-cur=64:\ + :openfiles-cur=1024:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-root-defaults:\ +# +# Settings used by /etc/rc +# +daemon:\ + :coredumpsize@:\ + :coredumpsize-cur=0:\ + :datasize=infinity:\ + :datasize-cur@:\ + :maxproc=512:\ + :maxproc-cur@:\ + :memoryuse-cur=64M:\ + :memorylocked-cur=64M:\ + :openfiles=1024:\ + :openfiles-cur@:\ + :stacksize=16M:\ + :stacksize-cur@:\ + :tc=default: +# +# Polish Users Accounts. Setup proper environment variables. +# +polish:Polish Users Accounts:\ + :lang=pl_pl.ISO-8859-2:\ + :tc=default: diff --git a/release/picobsd/floppy.tree/etc/master.passwd b/release/picobsd/floppy.tree/etc/master.passwd new file mode 100644 index 000000000000..9d85cdf91b0e --- /dev/null +++ b/release/picobsd/floppy.tree/etc/master.passwd @@ -0,0 +1,7 @@ +root:$1$xOOaGnKU$U9QdsCI40XXcCUMBN.7Az.:0:0::0:0:Charlie &:/root:/bin/sh +toor:*:0:0::0:0:Bourne-again Superuser:/root: +daemon:*:1:1::0:0:Owner of many system processes:/root:/nonexistent +operator:*:2:20::0:0:System &:/usr/guest/operator:/bin/csh +bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/nonexistent +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/nonexistent +user:$1$T9q8Coad$WatJttamwr2UAdbfKbWxj.:1002:1002:polish:0:0:user:/home/user:/bin/sh diff --git a/release/picobsd/floppy.tree/etc/mfs.login.conf b/release/picobsd/floppy.tree/etc/mfs.login.conf new file mode 100644 index 000000000000..ba74169f9a2b --- /dev/null +++ b/release/picobsd/floppy.tree/etc/mfs.login.conf @@ -0,0 +1,62 @@ +# $FreeBSD$ + +# Authentication methods + +auth-defaults:\ + :auth=krb_skey_or_passwd,passwd,kerberos,skey: + +auth-root-defaults:\ + :auth-login=krb_skey_or_passwd,passwd,kerberos,skey:\ + :auth-rlogin=krb_or_skey,kerberos,skey: +auth-ftp-defaults:\ + :auth=skey_or_pwd,passwd,skey: +# Example defaults +default:\ + :cputime=infinity:\ + :datasize-cur=22M:\ + :stacksize-cur=8M:\ + :memorylocked-cur=10M:\ + :memoryuse-cur=30M:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :maxproc-cur=64:\ + :openfiles-cur=64:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-defaults: + +# root - fallback for root logins +root:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :cputime=infinity:\ + :datasize=infinity:\ + :stacksize=infinity:\ + :memorylocked=infinity:\ + :memoryuse=infinity:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :openfiles=infinity:\ + :maxproc=infinity:\ + :memoryuse-cur=32M:\ + :maxproc-cur=64:\ + :openfiles-cur=1024:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-root-defaults: +# Settings used by /etc/rc +daemon:\ + :coredumpsize@:\ + :coredumpsize-cur=0:\ + :datasize=infinity:\ + :datasize-cur@:\ + :maxproc=512:\ + :maxproc-cur@:\ + :memoryuse-cur=64M:\ + :memorylocked-cur=64M:\ + :openfiles=1024:\ + :openfiles-cur@:\ + :stacksize=16M:\ + :stacksize-cur@:\ + :tc=default: diff --git a/release/picobsd/floppy.tree/etc/mfs.rc b/release/picobsd/floppy.tree/etc/mfs.rc new file mode 100644 index 000000000000..c82b583d6442 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/mfs.rc @@ -0,0 +1,27 @@ +#!/bin/sh +# $FreeBSD$ +# WARNING !!! We remove this file during execution (see EOF). +# Awful things happen if its size is > 1024B + +stty status '^T' +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +### Special setup for one floppy PICOBSD ### +mount -o rdonly /dev/fd0 /start_floppy +cd /start_floppy/etc ; cp -Rp . /etc/ +cp -Rp /start_floppy/root / +cd /etc +gzip -d *.gz +pwd_mkdb -p ./master.passwd +umount /start_floppy +echo "Ok. (Now you can remove /dev/fd0 if you like)" +echo "" +. rc +exit 0 diff --git a/release/picobsd/floppy.tree/etc/ppp/ppp.conf b/release/picobsd/floppy.tree/etc/ppp/ppp.conf new file mode 100644 index 000000000000..ed5da5dd72ce --- /dev/null +++ b/release/picobsd/floppy.tree/etc/ppp/ppp.conf @@ -0,0 +1,8 @@ +# PPP Sample Configuration File +# Written by Toshiharu OHNO +default: + set device /dev/cuaa1 + set speed 38400 + disable lqr + deny lqr + set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\T TIMEOUT 40 CONNECT" diff --git a/release/picobsd/floppy.tree/etc/ppp/ppp.deny b/release/picobsd/floppy.tree/etc/ppp/ppp.deny new file mode 100644 index 000000000000..51e1e9bd03e3 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/ppp/ppp.deny @@ -0,0 +1,15 @@ +# list of users disallowed any pppd access via 'system +# password login'. +# read by pppd(8). +root +toor +daemon +operator +bin +games +news +man +ftp +uucp +xten +ingres diff --git a/release/picobsd/floppy.tree/etc/ppp/ppp.linkup b/release/picobsd/floppy.tree/etc/ppp/ppp.linkup new file mode 100644 index 000000000000..05107c6df855 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/ppp/ppp.linkup @@ -0,0 +1,10 @@ +# Example of ppp.linkup file +# +iij-demand: + delete ALL + add 0 0 HISADDR +# +# Otherwise, simply add peer as default gateway. +# +MYADDR: + add 0 0 HISADDR diff --git a/release/picobsd/floppy.tree/etc/ppp/ppp.secret.sample b/release/picobsd/floppy.tree/etc/ppp/ppp.secret.sample new file mode 100644 index 000000000000..bfaab7681aa5 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/ppp/ppp.secret.sample @@ -0,0 +1,23 @@ +################################################## +# +# Example of ppp.secret file +# +# This file is used to authenticate incoming connections. +# You must ``enable'' either PAP or CHAP in your ppp.conf file. +# The peer may then use any of the Authname/Authkey pairs listed. +# If an IP address is given, it will be assigned to the peer. +# +# If an entry exists for your local machine (as given by the +# ``hostname -s'' command), the password specified will be +# required for all server socket connections. Refer to the ppp(8) +# and pppctl(8) man pages for further details. +# +# $FreeBSD$ +# +################################################## + +# Authname Authkey Peer's IP address + +oscar OurSecretKey 192.244.184.34/24 +BigBird X4dWg9327 192.244.184.33/32 +tama localPasswdForControl diff --git a/release/picobsd/floppy.tree/etc/profile b/release/picobsd/floppy.tree/etc/profile new file mode 100644 index 000000000000..deb3213e76f2 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/profile @@ -0,0 +1,4 @@ +# System-wide .profile file for sh(1). +BLOCKSIZE=K; export BLOCKSIZE +PATH=/stand:.; export PATH +set -E diff --git a/release/picobsd/floppy.tree/etc/protocols b/release/picobsd/floppy.tree/etc/protocols new file mode 100644 index 000000000000..9555c28018a7 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/protocols @@ -0,0 +1,11 @@ +# +# Internet (IP) protocols +ip 0 IP # internet protocol, pseudo protocol number +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # Internet Group Management +tcp 6 TCP # transmission control protocol +udp 17 UDP # user datagram protocol +ipv6 41 IPV6 # ipv6 +ospf 89 OSPFIGP # Open Shortest Path First IGP +pim 103 PIM # Protocol Independent Multicast +pgm 113 PGM # PGM diff --git a/release/picobsd/floppy.tree/etc/rc b/release/picobsd/floppy.tree/etc/rc new file mode 100644 index 000000000000..84c0fb8efc48 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/rc @@ -0,0 +1,67 @@ +#!/bin/sh +# $FreeBSD$ +############################################ +### Special setup for one floppy PICOBSD ### +### THIS IS NOT THE NORMAL /etc/rc !!!!! ### +############################################ +mount -a -t nonfs +# before calling rc.conf, try to identify the system by using the +# ethernet address and name of the first interface. This is available +# to rc.conf and others as $main_eth $main_if for further processing. + +main_ether="" +for main_if in `ifconfig -l` ; do + set `ifconfig $main_if` + while [ "$1" != "" ] ; do + if [ $1 = "ether" ] ; then + main_ether=$2 + break 2 + else + shift + fi + done +done + +if [ -f /etc/rc.conf ]; then + . /etc/rc.conf +fi +rm -f /var/run/* +if [ "x$swapfile" != "xNO" -a -w "$swapfile" -a -b /dev/vn0b ]; then + echo "Adding $swapfile as additional swap." + vnconfig /dev/vn0b $swapfile && swapon /dev/vn0b +fi +# configure serial devices +if [ -f /etc/rc.serial ]; then + . /etc/rc.serial +fi +# start up the initial network configuration. +if [ -f /etc/rc.network ]; then + . /etc/rc.network + network_pass1 +fi +mount -a -t nfs +chmod 666 /dev/tty[pqrsPQRS]* +# clean up left-over files +(cd /var/run && { cp /dev/null utmp; chmod 644 utmp; }) +if [ -n "$network_pass1_done" ]; then + network_pass2 +fi +if [ -n "$network_pass2_done" ]; then + network_pass3 +fi +if [ "X${inetd_enable}" = X"YES" -a -f /stand/inetd ]; then + echo "Starting inetd."; inetd ${inetd_flags} +fi + +[ "X${sshd_enable}" = "XYES" ] && [ -f /stand/sshd ] && \ + sshd -f /etc/sshd_config + +dev_mkdb + +echo '' +if [ "x$swapfile" = "xNO" ]; then + echo "WARNING: no swap partition!" + echo "Don't run too many programs at the same time..." +fi +cat /etc/motd +exit 0 diff --git a/release/picobsd/floppy.tree/etc/rc.conf b/release/picobsd/floppy.tree/etc/rc.conf new file mode 100644 index 000000000000..12744fffaaff --- /dev/null +++ b/release/picobsd/floppy.tree/etc/rc.conf @@ -0,0 +1,72 @@ +#!/bin/sh +# $FreeBSD$ +# +# rc.conf for picobsd. +# $main_ether and $main_if are set from rc to the ethernet address and +# name of the first ethernet interface, if available, so a simple +# here-document below can be used for autoconfiguration. +# Remaining parameters are set using a switch. + +rc_conf_set_defaults() { +syslogd_enable="NO" +pccard_enable="NO" +swapfile="NO" # Set to name of swapfile if aux swapfile desired. +firewall_enable="NO" # firewall type (see /etc/rc.firewall) or NO +tcp_extensions="NO" # Allow RFC1323 & RFC1644 extensions (or NO). +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. +#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. +### Network daemons options: ### +sshd_enable="YES" # if present... +inetd_enable="YES" # Run the network daemon dispatcher (or NO) +inetd_flags="" # Optional flags to inetd +snmpd_enable="NO" # Run the SNMP daemon (or NO) +snmpd_flags="-C -c /etc/snmpd.conf" # Optional flags to snmpd +### Network routing options: ### +defaultrouter="NO" # Set to default gateway (or NO). +static_routes="" # Set to static route list (or leave empty). +gateway_enable="NO" # Set to YES if this host will be a gateway. +arpproxy_all="" # replaces obsolete kernel option ARP_PROXYALL. +mask="0xffffff00" +} + +# the following lets the user specify a name and ip for his system +read_address() { + echo "Please enter a hostname and IP address for your system $main_ether" + read hostname the_ip + if [ "X$hostname" != "X" ] ; then + echo "# $main_ether $hostname" >> /etc/hosts + echo "$the_ip $hostname" >> /etc/hosts + else + hostname=default + fi +} + +rc_conf_set_defaults + +hostname="" +while read a b c ; do + if [ "$a" = "#ethertable" ] ; then + hostname="." + elif [ "X$hostname" = "X." -a "X$a" = "X#" -a "X$b" = "X$main_ether" ] + then + hostname=$c + break + fi +done < /etc/hosts +if [ "X$hostname" = "X" -o "X$hostname" = "X." ] ; then + if [ "X$main_ether" = "X" ] ; then + echo "No ethernets found, using localhost" + hostname=localhost + else + read_address + fi +fi + +eval ifconfig_${main_if}=\" \$hostname netmask \$mask\" +network_interfaces=`ifconfig -l` + +### Allow local configuration override at the very end here ## +### can make use of a case statement to set per-host things. +if [ -f /etc/rc.conf.local ]; then + . /etc/rc.conf.local +fi diff --git a/release/picobsd/floppy.tree/etc/rc.firewall b/release/picobsd/floppy.tree/etc/rc.firewall new file mode 100644 index 000000000000..c2860baedce0 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/rc.firewall @@ -0,0 +1,172 @@ +############ +# Setup system for firewall service. +# $FreeBSD$ + +############ +# Define the firewall type in /etc/rc.conf. Valid values are: +# open - will allow anyone in +# client - will try to protect just this machine +# simple - will try to protect a whole network +# closed - totally disables IP services except via lo0 interface +# UNKNOWN - disables the loading of firewall rules. +# filename - will load the rules in the given filename (full path required) +# +# For ``client'' and ``simple'' the entries below should be customized +# appropriately. + +############ +# +# If you don't know enough about packet filtering, we suggest that you +# take time to read this book: +# +# Building Internet Firewalls +# Brent Chapman and Elizabeth Zwicky +# +# O'Reilly & Associates, Inc +# ISBN 1-56592-124-0 +# http://www.ora.com/ +# +# For a more advanced treatment of Internet Security read: +# +# Firewalls & Internet Security +# Repelling the wily hacker +# William R. Cheswick, Steven M. Bellowin +# +# Addison-Wesley +# ISBN 0-201-6337-4 +# http://www.awl.com/ +# + +if [ "x$1" != "x" ]; then + firewall_type=$1 +fi + +############ +# Set quiet mode if requested +if [ "x$firewall_quiet" = "xYES" ]; then + fwcmd="/sbin/ipfw -q" +else + fwcmd="/sbin/ipfw" +fi + +############ +# Flush out the list before we begin. +$fwcmd -f flush + +############ +# If you just configured ipfw in the kernel as a tool to solve network +# problems or you just want to disallow some particular kinds of traffic +# they you will want to change the default policy to open. You can also +# do this as your only action by setting the firewall_type to ``open''. + +# $fwcmd add 65000 pass all from any to any + +############ +# Only in rare cases do you want to change these rules +$fwcmd add 1000 pass all from any to any via lo0 +$fwcmd add 1010 deny all from 127.0.0.0/8 to 127.0.0.0/8 + + +# Prototype setups. +if [ "${firewall_type}" = "open" -o "${firewall_type}" = "OPEN" ]; then + + $fwcmd add 65000 pass all from any to any + +elif [ "${firewall_type}" = "client" ]; then + + ############ + # This is a prototype setup that will protect your system somewhat against + # people from outside your own network. + ############ + + # set these to your network and netmask and ip + net="192.168.4.0" + mask="255.255.255.0" + ip="192.168.4.17" + + # Allow any traffic to or from my own net. + $fwcmd add pass all from ${ip} to ${net}:${mask} + $fwcmd add pass all from ${net}:${mask} to ${ip} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${ip} 25 setup + + # Allow setup of outgoing TCP connections only + $fwcmd add pass tcp from ${ip} to any setup + + # Disallow setup of all other TCP connections + $fwcmd add deny tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${ip} + $fwcmd add pass udp from ${ip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${ip} + $fwcmd add pass udp from ${ip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" = "simple" ]; then + + ############ + # This is a prototype setup for a simple firewall. Configure this machine + # as a named server and ntp server, and point all the machines on the inside + # at this machine for those services. + ############ + + # set these to your outside interface network and netmask and ip + oif="ed0" + onet="192.168.4.0" + omask="255.255.255.0" + oip="192.168.4.17" + + # set these to your inside interface network and netmask and ip + iif="ed1" + inet="192.168.3.0" + imask="255.255.255.0" + iip="192.168.3.17" + + # Stop spoofing + $fwcmd add deny all from ${inet}:${imask} to any in via ${oif} + $fwcmd add deny all from ${onet}:${omask} to any in via ${iif} + + # Stop RFC1918 nets on the outside interface + $fwcmd add deny all from 192.168.0.0:255.255.0.0 to any via ${oif} + $fwcmd add deny all from 172.16.0.0:255.240.0.0 to any via ${oif} + $fwcmd add deny all from 10.0.0.0:255.0.0.0 to any via ${oif} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${oip} 25 setup + + # Allow access to our DNS + $fwcmd add pass tcp from any to ${oip} 53 setup + + # Allow access to our WWW + $fwcmd add pass tcp from any to ${oip} 80 setup + + # Reject&Log all setup of incoming connections from the outside + $fwcmd add deny log tcp from any to any in via ${oif} setup + + # Allow setup of any other TCP connection + $fwcmd add pass tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${oip} + $fwcmd add pass udp from ${oip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${oip} + $fwcmd add pass udp from ${oip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" != "UNKNOWN" -a -r "${firewall_type}" ]; then + $fwcmd ${firewall_type} +fi diff --git a/release/picobsd/floppy.tree/etc/rc.network b/release/picobsd/floppy.tree/etc/rc.network new file mode 100644 index 000000000000..235db0aa14fd --- /dev/null +++ b/release/picobsd/floppy.tree/etc/rc.network @@ -0,0 +1,79 @@ +#!/bin/sh - +# $FreeBSD$ +network_pass1() { + echo -n 'Doing initial network setup:' + # Set the host name if it is not already set + if [ -z "`hostname -s`" ] ; then + hostname $hostname + echo ' hostname' + fi + # Set up all the network interfaces, calling startup scripts if needed + for ifn in ${network_interfaces}; do + if [ -e /etc/start_if.${ifn} ]; then + . /etc/start_if.${ifn} + fi + # Do the primary ifconfig if specified + eval ifconfig_args=\$ifconfig_${ifn} + if [ -n "${ifconfig_args}" ] ; then + ifconfig ${ifn} ${ifconfig_args} + fi + # Check to see if aliases need to be added + alias=0 + while : + do + eval ifconfig_args=\$ifconfig_${ifn}_alias${alias} + if [ -n "${ifconfig_args}" ]; then + ifconfig ${ifn} ${ifconfig_args} alias + alias=`expr ${alias} + 1` + else + break; + fi + done + ifconfig ${ifn} + done + # Load the filters if required + if [ -n "$firewall_enable" -a -f /etc/rc.firewall -a \ + "x$firewall_enable" = "xYES" ] ; then + . /etc/rc.firewall + echo "Firewall rules loaded." + else + echo "Warning: kernel has firewall functionality, but firewall rules weren't loaded." + echo " All ip services are ENABLED by default." + fi + # Configure routing + if [ "x$defaultrouter" != "xNO" ] ; then + static_routes="default ${static_routes}" + route_default="default ${defaultrouter}" + fi + # Set up any static routes. This should be done before router discovery. + if [ "x${static_routes}" != "x" ]; then + for i in ${static_routes}; do + eval route_args=\$route_${i} + route add ${route_args} + done + fi + echo -n 'Additional routing options:' + if [ -n "$tcp_extensions" -a "x$tcp_extensions" != "xYES" ] ; then + echo -n ' tcp_extensions=NO' + sysctl -w net.inet.tcp.rfc1323=0 >/dev/null 2>&1 + sysctl -w net.inet.tcp.rfc1644=0 >/dev/null 2>&1 + fi + if [ "X$gateway_enable" = X"YES" ]; then + echo -n ' IP_gateway=YES' + sysctl -w net.inet.ip.forwarding=1 >/dev/null 2>&1 + fi + if [ "X$arpproxy_all" = X"YES" ]; then + echo -n ' turning on ARP_PROXY_ALL: ' + sysctl -w net.link.ether.inet.proxyall=1 2>&1 + fi + echo '.' + network_pass1_done=YES # Let future generations know we made it. +} + +network_pass2() { + network_pass2_done=YES +} + +network_pass3() { + network_pass3_done=YES +} diff --git a/release/picobsd/floppy.tree/etc/rc.serial b/release/picobsd/floppy.tree/etc/rc.serial new file mode 100644 index 000000000000..40fbd8a334cc --- /dev/null +++ b/release/picobsd/floppy.tree/etc/rc.serial @@ -0,0 +1,127 @@ +#!/bin/sh +# $FreeBSD$ + +# Change some defaults for serial devices. +# Standard defaults are: +# dtrwait 300 drainwait 0 +# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl +# initial iflag, lflag and oflag all 0 +# speed 9600 +# special chars from <sys/ttydefaults.h> +# nothing locked +# except for serial consoles the initial iflag, lflag and oflag are from +# <sys/ttydefaults.h> and clocal is locked on. + +default() { + # Reset everything changed by the other functions to initial defaults. + + ci=$1; shift # call in device identifier + co=$1; shift # call out device identifier + + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 300 drainwait 0 + stty </dev/ttyi$ci$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/ttyl$ci$i -clocal -crtscts -hupcl 0 + stty </dev/cuai$co$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/cual$co$i -clocal -crtscts -hupcl 0 + done +} + +maybe() { + # Special settings. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Don't use ^R; it breaks bash's ^R when typed ahead. + stty </dev/ttyi$ci$i reprint undef + stty </dev/cuai$co$i reprint undef + # Lock clocal off on dialin device for security. + stty </dev/ttyl$ci$i clocal + # Lock the speeds to use old binaries that don't support them. + # Any legal speed works to lock the initial speed. + stty </dev/ttyl$ci$i 300 + stty </dev/cual$co$i 300 + done +} + +modem() { + # Modem that supports CTS and perhaps RTS handshaking. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # may depend on modem + comcontrol /dev/tty$ci$i dtrwait 100 drainwait 180 + # Lock crtscts on. + # Speed reasonable for V42bis. + stty </dev/ttyi$ci$i crtscts 57600 + stty </dev/ttyl$ci$i crtscts + stty </dev/cuai$co$i crtscts 57600 + stty </dev/cual$co$i crtscts + done +} + +mouse() { + # Mouse on either callin or callout port. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Lock clocal on, hupcl off. + # Standard speed for Microsoft mouse. + stty </dev/ttyi$ci$i clocal -hupcl 1200 + stty </dev/ttyl$ci$i clocal hupcl + stty </dev/cuai$co$i clocal -hupcl 1200 + stty </dev/cual$co$i clocal hupcl + done +} + +terminal() { + # Terminal that supports CTS and perhaps RTS handshaking + # with the cable or terminal arranged so that DCD is on + # at least while the terminal is on. + # Also works for bidirectional communications to another pc + # provided at most one side runs getty. + # Same as modem() except we want a faster speed and no dtrwait. + + ci=$1; shift + co=$1; shift + + modem $ci $co $* + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 0 + stty </dev/ttyi$ci$i 115200 + stty </dev/cuai$co$i 115200 + done +} + +# Don't use anything from this file unless you have some buggy programs +# that require it. + +# Edit the functions and the examples to suit your system. +# $1 is the call in device identifier, $2 is the call out device identifier +# and the remainder of the line lists the device numbers. + +# Initialize assorted 8250-16550 (sio) ports. +# maybe d a 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v +# mouse d a 2 +# modem d a 1 +# terminal d a 0 + +# Initialize all ports on a Cyclades-8yo. +# modem c c 00 01 02 03 04 05 06 07 + +# Initialize all ports on a Cyclades-16ye. +# modem c c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + +# Initialize all ports on a Digiboard 8. +# modem D D 00 01 02 03 04 05 06 07 diff --git a/release/picobsd/floppy.tree/etc/remote b/release/picobsd/floppy.tree/etc/remote new file mode 100644 index 000000000000..6f9fcaf4ad5d --- /dev/null +++ b/release/picobsd/floppy.tree/etc/remote @@ -0,0 +1,50 @@ +# @(#)remote 5.2 (Berkeley) 6/30/90 +# +# remote -- remote host description file +# see tip(1), remote(5) +# +# dv device to use for the tty +# el EOL marks (default is NULL) +# du make a call flag (dial up) +# pn phone numbers (@ =>'s search phones file; possibly taken from +# PHONES environment variable) +# at ACU type +# ie input EOF marks (default is NULL) +# oe output EOF string (default is NULL) +# cu call unit (default is dv) +# br baud rate (defaults to 300) +# fs frame size (default is BUFSIZ) -- used in buffering writes on +# receive operations +# tc to continue a capability + +# Systems definitions +netcom|Netcom Unix Access:\ + :pn=\@:tc=unix1200: +omen|Omen BBS:\ + :pn=\@:tc=dos1200: + +# UNIX system definitions +unix1200|1200 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial1200: +unix300|300 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial300: + +# DOS system definitions +dos1200|1200 Baud dial-out to a DOS system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^Z:pa=none:tc=dial1200: + +# General dialer definitions used below +# +# COURIER switch settings: +# switch: 1 2 3 4 5 6 7 8 9 10 +# setting: D U D U D D U D U U +# Rackmount: U U D U D U D D U D +# +dial2400|2400 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#2400:cu=/dev/cuaa0:at=hayes:du: +dial1200|1200 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#1200:cu=/dev/cuaa0:at=hayes:du: + +# Hardwired line +cuaa0b|cua0b:dv=/dev/cuaa0:br#2400 +cuaa0c|cua0c:dv=/dev/cuaa0:br#9600 diff --git a/release/picobsd/floppy.tree/etc/services b/release/picobsd/floppy.tree/etc/services new file mode 100644 index 000000000000..eec499fafec7 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/services @@ -0,0 +1,94 @@ +echo 4/ddp +echo 7/tcp +echo 7/udp +discard 9/tcp +discard 9/udp +systat 11/tcp +systat 11/udp +daytime 13/tcp +daytime 13/udp +qotd 17/tcp +qotd 17/udp +chargen 19/tcp +chargen 19/udp +ftp-data 20/tcp +ftp-data 20/udp +ftp 21/tcp +ftp 21/udp +ssh 22/tcp +ssh 22/udp +telnet 23/tcp +telnet 23/udp +smtp 25/tcp +smtp 25/udp +time 37/tcp +time 37/udp +domain 53/tcp +domain 53/udp +tacacs-ds 65/tcp +tacacs-ds 65/udp +bootps 67/tcp +bootps 67/udp +bootpc 68/tcp +bootpc 68/udp +tftp 69/tcp +tftp 69/udp +gopher 70/tcp +gopher 70/udp +finger 79/tcp +finger 79/udp +http 80/tcp +http 80/udp +pop2 109/tcp +pop2 109/udp +pop3 110/tcp +pop3 110/udp +uucp-path 117/tcp +uucp-path 117/udp +nntp 119/tcp +nntp 119/udp +netbios-ns 137/tcp +netbios-ns 137/udp +netbios-dgm 138/tcp +netbios-dgm 138/udp +netbios-ssn 139/tcp +netbios-ssn 139/udp +imap 143/tcp +imap 143/udp +snmp 161/tcp +snmp 161/udp +snmptrap 162/tcp +snmptrap 162/udp +bgp 179/tcp +bgp 179/udp +irc 194/tcp +irc 194/udp +ipx 213/tcp +ipx 213/udp +imap3 220/tcp +imap3 220/udp +ldap 389/tcp +ldap 389/udp +netware-ip 396/tcp +netware-ip 396/udp +https 443/tcp +https 443/udp +exec 512/tcp +biff 512/udp +login 513/tcp +who 513/udp +cmd 514/tcp +syslog 514/udp +printer 515/tcp +printer 515/udp +talk 517/tcp +talk 517/udp +ntalk 518/tcp +ntalk 518/udp +timed 525/tcp +timed 525/udp +uucp 540/tcp +uucp 540/udp +uucp-rlogin 541/tcp +uucp-rlogin 541/udp +natd 8668/divert # Network Address Translation diff --git a/release/picobsd/floppy.tree/etc/shells b/release/picobsd/floppy.tree/etc/shells new file mode 100644 index 000000000000..df377f133737 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/shells @@ -0,0 +1,6 @@ +# List of acceptable shells for chpass(1). +# Ftpd will not allow users to connect who are not using +# one of these shells. + +/bin/sh +/bin/csh diff --git a/release/picobsd/floppy.tree/etc/snmpd.conf b/release/picobsd/floppy.tree/etc/snmpd.conf new file mode 100644 index 000000000000..29400dfb4b5e --- /dev/null +++ b/release/picobsd/floppy.tree/etc/snmpd.conf @@ -0,0 +1,58 @@ +# load average checks + +# load [1MAX=DEFMAXLOADAVE] [5MAX=DEFMAXLOADAVE] [15MAX=DEFMAXLOADAVE] +# +# 1MAX: If the 1 minute load average is above this limit at query +# time, the errorFlag will be set. +# 5MAX: Similar, but for 5 min average. +# 15MAX: Similar, but for 15 min average. + +# Check for loads: +load 12 14 14 + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.10 + +# snmp agent errors + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.101 + +# snmp version mib + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.100 + +# System contact information + +syslocation PicoBSD +syscontact root <root@pico> + +# Setting up the access control lists to the agent + +# sec.name source community +com2sec local localhost private +com2sec public default public + +# sec.model sec.name +group local any local +group public any public + +# incl/excl subtree mask +view all included .1 80 +view system included system fe +view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc + +# context sec.model sec.level prefix read write not +access public "" any noauth 0 system none none +access local "" any noauth 0 all all all + +# If you want to get back to the functionality of previous versions, +# where the public community could read anything from anywhere and the +# private community could write anything from anywhere, use these +# lines instead: +# +# com2sec public default public +# com2sec private default private +# group public any public +# group private any private +# view all included .1 80 +# access public "" any noauth 0 all none none +# access private "" any noauth 0 all all none diff --git a/release/picobsd/floppy.tree/etc/sshd_config b/release/picobsd/floppy.tree/etc/sshd_config new file mode 100644 index 000000000000..5e9688791d42 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/sshd_config @@ -0,0 +1,29 @@ +Port 22 +ListenAddress 0.0.0.0 +HostKey /etc/ssh_host_key +RandomSeed /etc/ssh_random_seed +ServerKeyBits 768 +LoginGraceTime 600 +KeyRegenerationInterval 3600 +PermitRootLogin yes +IgnoreRhosts no +StrictModes yes +QuietMode no +X11Forwarding no +X11DisplayOffset 10 +FascistLogging no +PrintMotd yes +KeepAlive yes +SyslogFacility AUTH +RhostsAuthentication no +RhostsRSAAuthentication yes +RSAAuthentication yes +PasswordAuthentication no +PermitEmptyPasswords no +UseLogin no +# CheckMail no +# PidFile /u/zappa/.ssh/pid +# AllowHosts *.our.com friend.other.com +# DenyHosts lowsecurity.theirs.com *.evil.org evil.org +# Umask 022 +# SilentDeny yes diff --git a/release/picobsd/floppy.tree/etc/termcap b/release/picobsd/floppy.tree/etc/termcap new file mode 100644 index 000000000000..dfbccb29debd --- /dev/null +++ b/release/picobsd/floppy.tree/etc/termcap @@ -0,0 +1,158 @@ +# Copyright (c) 1980, 1985, 1989 The Regents of the University of California. +# All rights reserved. +# @(#)termcap.src 5.88 (Berkeley) 4/30/91 +# +# $FreeBSD$ +# +# for syscons +# common entry without semigraphics +cons25w|ansiw|ansi80x25-raw:\ + :al=\E[L:am:bs:NP:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:co#80:\ + :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:li#25:cb=\E[1K:\ + :ms:nd=\E[C:pt:rs=\E[x\E[m\Ec:so=\E[7m:se=\E[m:up=\E[A:\ + :pa#64:Co#8:Sf=\E[3%dm:Sb=\E[4%dm:op=\E[37;40m:\ + :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ + :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\ + :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:eo:sf=\E[S:sr=\E[T:\ + :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\E[K:kB=\E[Z:\ + :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:bw:\ + :mb=\E[5m:md=\E[1m:mh=\E[30;1m:mr=\E[7m:me=\E[m:bl=^G:ut:it#8: +cons25|ansis|ansi80x25:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :tc=cons25w: +cons25-m|ansis-mono|ansi80x25-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25: +cons50|ansil|ansi80x50:\ + :li#50:tc=cons25: +cons50-m|ansil-mono|ansi80x50-mono:\ + :li#50:tc=cons25-m: +# 80x25 ISO 8859-1 FreeBSD console +cons25l1|cons25-iso8859-1:\ + :ac=l\215m\216k\214j\213u\226t\225v\227w\230q\222x\231n\217o\220s\224p\221r\223`\201a\202f\207g\210~\237.^Y-^X+\253,\273I\247y\232z\233:\ + :tc=cons25w: +cons25l1-m|cons25-iso8859-1-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25l1: +# 80x50 ISO 8859-1 FreeBSD console +cons50l1|cons50-iso8859-1:\ + :li#50:tc=cons25l1: +cons50l1-m|cons50-iso8859-1-mono:\ + :li#50:tc=cons25l1-m: +dosansi|ANSI.SYS standard crt|ansi:\ + :am:bs:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:co#80:\ + :do=\E[B:li#25:mi:nd=\E[C:\ + :se=\E[m:so=\E[7m:up=\E[A:us=\E[4m:ue=\E[m:\ + :md=\E[1m:mh=\E[m:mb=\E[5m:me=\E[m:\ + :kh=\EG:kb=^h:ku=\EH:kd=\EP:kl=\EK:kr=\EM:\ + :k1=\E;:k2=\E<:k3=\E=:k4=\E>:k5=\E?:\ + :k6=\E@:k7=\EA:k8=\EB:k9=\EC:k0=\ED: +vt200|vt220|vt220am|vt200am|dec-vt220|dec-vt200|dec vt200 series with jump scroll:\ + :@7=\E[4~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kh=\E[1~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :ve=\E[?25h:vi=\E[?25l:k0@:im@:ei@:\ + :F1=\E[23~:F2=\E[24~:ic=\E[@:IC=\E[%d@:ec=\E[%dX:tc=vt102: +vt100|dec-vt100|vt100-am|vt100am|dec vt100:\ + :do=2\E[B:co#80:li#24:cl=50\E[H\E[J:sf=2*\ED:\ + :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\ + :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\ + :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\ + :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\ + :if=/usr/share/tabset/vt100:nw=2\EE:ho=\E[H:\ + :as=2\E(0:ae=2\E(B:ac=llmmkkjjuuttvvwwqqxxnnpprr``aa:\ + :rs=\E>\E[?1;3;4;5l\E[?7;8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\ + :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=\177:\ + :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:\ + :k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:@8=\EOM:\ + :K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:pt:sr=2*\EM:vt#3:xn:\ + :sc=2\E7:rc=2\E8:cs=5\E[%i%d;%dr:UP=2\E[%dA:DO=2\E[%dB:RI=2\E[%dC:\ + :LE=2\E[%dD:ct=2\E[3g:st=2\EH:ta=^I:ms:bl=^G:cr=^M:eo:it#8:ut:\ + :RA=\E[?7l:SA=\E[?7h: +xterm|vs100|xterm terminal emulator (X window system):\ + :li#65:\ + :kh=\EOH:@7=\EOF:kb=^H:kD=^?:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:km:\ + :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;65r\E[65;1H:\ + :rs=\E>\E[?1;3;4;5l\E[?7;8h:\ + :tc=vt220: + + +vt100-nam|dec-vt100-nam|vt100nam|vt100 w/no am:\ + :am@:xn@:\ + :is=\E>\E[?1;3;4;5;7l\E[?8h\E[1;24r\E[24;1H:\ + :rs=\E>\E[?1;3;4;5;7l\E[?8h:\ + :tc=vt100-am: +vt100-np|dec-vt100-np|vt100 with no padding (for psl games):\ + :do=\E[B:cl=\E[H\E[J:sf=\ED:as=\E(0:ae=\E(B:\ + :cm=\E[%i%d;%dH:nd=\E[C:up=\E[A:nw=\EE:\ + :ce=\E[K:cd=\E[J:so=\E[7m:se=\E[m:us=\E[4m:ue=\E[m:\ + :md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:sr=\EM:\ + :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:UP=\E[%dA:DO=\E[%dB:RI=\E[%dC:\ + :LE=\E[%dD:ct=\E[3g:st=\EH:tc=vt100-am: +vt100-nac|dec-vt100-nac|vt100 without pseudographics and padding:\ + :as@:ae@:ac@:tc=vt100-np: +vt102|dec-vt102-am|vt102am|vt100 w/adv. video:\ + :al=\E[L:dl=\E[M:im=\E[4h:ei=\E[4l:mi:dc=\E[P:\ + :AL=\E[%dL:DL=\E[%dM:DC=\E[%dP:tc=vt100-np: + +# Note: this entry describes the "native" +# capabilities of the PC monochrome display, without ANY emulation; most +# communications packages (but NOT PC/IX connect) do some kind of emulation. +pc|ibmpc|ibm pc PC/IX:\ + :li#24:co#80:am:bs:bw:eo:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\ + :nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m: +pc3mono|IBM PC 386BSD Console with monochrome monitor:\ + :so=\E[0;1r\E[m:tc=pc3: +pc3|ibmpc3|IBM PC 386BSD Console:\ + :Co#8:\ + :DO=\E[%dB:\ + :F1=\E[W:F2=\E[X:\ + :K1=\E[H:K2=\E[I:K3=\E[E:K4=\E[F:K5=\E[G:\ + :LE=\E[%dD:\ + :RI=\E[%dC:\ + :Sb=\E[1;%dx:\ + :Sf=\E[2;%dx:\ + :UP=\E[%dA:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :am:\ + :bl=^G:\ + :bs:\ + :cb=\E[1K:\ + :cd=\E[J:\ + :ce=\E[K:\ + :cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:\ + :co#80:\ + :cr=^M:\ + :do=\E[B:\ + :ho=\E[H:\ + :is=\E[m:\ + :it#8:\ + :k;=\E[V:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\ + :kD=\177:\ + :@7=\E[F:\ + :kN=\E[G:\ + :kP=\E[I:\ + :kb=\177:\ + :kd=\E[B:\ + :kh=\E[H:\ + :kl=\E[D:\ + :kr=\E[C:\ + :ku=\E[A:\ + :le=^H:\ + :li#25:\ + :ms:\ + :nd=\E[C:\ + :op=\E[x:\ + :pa#64:\ + :rs=\E[m:\ + :se=\E[m:\ + :sf=\E[S:\ + :so=\E[7;1r\E[7m:\ + :sr=\E[T:\ + :ta=^I:\ + :te=\E[m:\ + :ti=\E[m:\ + :up=\E[A:\ + :ut: diff --git a/release/picobsd/floppy.tree/etc/ttys b/release/picobsd/floppy.tree/etc/ttys new file mode 100644 index 000000000000..33fe991b85ad --- /dev/null +++ b/release/picobsd/floppy.tree/etc/ttys @@ -0,0 +1,32 @@ +# +# @(#)ttys 5.1 (Berkeley) 4/17/89 +# +# name getty type status comments +# +# This entry needed for asking password when init goes to single-user mode +# If you want to be asked for password, change "secure" to "insecure" here +#console none unknown off secure +vga none cons25 off secure +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +#ttyv8 "/usr/libexec/getty Pc" cons25 on secure +#ttyv9 "/usr/libexec/getty Pc" cons25 on secure +# Pseudo terminals +ttyp0 none network secure +ttyp1 none network secure +ttyp2 none network secure +ttyp3 none network secure +ttyp4 none network secure +ttyp5 none network secure +ttyp6 none network secure +ttyp7 none network secure +ttyp8 none network secure +ttyp9 none network secure diff --git a/release/picobsd/floppy.tree/etc/update b/release/picobsd/floppy.tree/etc/update new file mode 100755 index 000000000000..c6ec9da61be3 --- /dev/null +++ b/release/picobsd/floppy.tree/etc/update @@ -0,0 +1,22 @@ +#!/bin/sh +# $FreeBSD$ +pwd=`pwd` +set `df /` ; dev="$8" +echo -n "Updating /etc contents on ${dev}... " +mount ${dev} /start_floppy +if [ "X$?" != "X0" ] ; then + echo "" + echo "Cannot mount ${dev} read-write!" + exit 1 +fi +cd /etc +rm *.db +rm passwd +cp -Rp . /start_floppy/etc/ +pwd_mkdb master.passwd +echo " Done." +echo -n "Updating kernel parameters... " +kget /start_floppy/boot/kernel.conf +umount /start_floppy +cd ${pwd} +echo " Done." diff --git a/release/picobsd/floppy.tree/kernel.config b/release/picobsd/floppy.tree/kernel.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/floppy.tree/kernel.config diff --git a/release/picobsd/floppy.tree/root/.profile b/release/picobsd/floppy.tree/root/.profile new file mode 100644 index 000000000000..dfe32d45f3f8 --- /dev/null +++ b/release/picobsd/floppy.tree/root/.profile @@ -0,0 +1 @@ +set -E # just make the shell understand arrow keys diff --git a/release/picobsd/help/README b/release/picobsd/help/README new file mode 100644 index 000000000000..69babc4612f2 --- /dev/null +++ b/release/picobsd/help/README @@ -0,0 +1,8 @@ +1998.02.20 + +This is work in progress. Eventually I'll prepare the help system for newbies, +and these files are just the beginning of it... + +<abial@nask.pl> + +$FreeBSD$ diff --git a/release/picobsd/help/cat.hlp.en b/release/picobsd/help/cat.hlp.en new file mode 100644 index 000000000000..ed14871118ff --- /dev/null +++ b/release/picobsd/help/cat.hlp.en @@ -0,0 +1,5 @@ +[1mcat[m concatenate and print files + + Usage: + + cat [-benstuv] [-] [file ...] diff --git a/release/picobsd/help/cat.hlp.pl b/release/picobsd/help/cat.hlp.pl new file mode 100644 index 000000000000..cb49b995193c --- /dev/null +++ b/release/picobsd/help/cat.hlp.pl @@ -0,0 +1,5 @@ +[1mcat[m polacz lub wyswietl pliki + + Sposob uzycia: + + cat [-benstuv] [-] [plik ...] diff --git a/release/picobsd/help/chmod.hlp.en b/release/picobsd/help/chmod.hlp.en new file mode 100644 index 000000000000..6e516c5eb13c --- /dev/null +++ b/release/picobsd/help/chmod.hlp.en @@ -0,0 +1,5 @@ +[1mchmod[m change file modes + + Usage: + + chmod [-R [-H | -L | -P]] mode file ... diff --git a/release/picobsd/help/chmod.hlp.pl b/release/picobsd/help/chmod.hlp.pl new file mode 100644 index 000000000000..be690196a8aa --- /dev/null +++ b/release/picobsd/help/chmod.hlp.pl @@ -0,0 +1,5 @@ +[1mchmod[m zmiana praw dostepu do pliku + + Sposob uzycia: + + chmod [-R [-H | -L | -P]] prawa plik ... diff --git a/release/picobsd/help/chown.hlp.en b/release/picobsd/help/chown.hlp.en new file mode 100644 index 000000000000..e32e855c33c0 --- /dev/null +++ b/release/picobsd/help/chown.hlp.en @@ -0,0 +1,8 @@ +[1mchgrp[m change group +[1mchown[m change owner + + Usage: + + chown [-R [-H | -L | -P]] [-f] [-h] owner[:group] file ... + chown [-R [-H | -L | -P]] [-f] [-h] :group file ... + chgrp [-R [-H | -L | -P]] [-f] [-h] group file ... diff --git a/release/picobsd/help/chown.hlp.pl b/release/picobsd/help/chown.hlp.pl new file mode 100644 index 000000000000..0cdda8b86921 --- /dev/null +++ b/release/picobsd/help/chown.hlp.pl @@ -0,0 +1,8 @@ +[1mchgrp[m zmien grupe +[1mchown[m zmien wlasciciela + + Sposob uzycia: + + chown [-R [-H | -L | -P]] [-f] [-h] wlasc[:grupa] plik ... + chown [-R [-H | -L | -P]] [-f] [-h] :grupa plik ... + chgrp [-R [-H | -L | -P]] [-f] [-h] grupa plik ... diff --git a/release/picobsd/help/cp.hlp.en b/release/picobsd/help/cp.hlp.en new file mode 100644 index 000000000000..81171591a57d --- /dev/null +++ b/release/picobsd/help/cp.hlp.en @@ -0,0 +1,6 @@ +[1mcp[m copy files + + Usage: + + cp [-R [-H | -L | -P]] [-f | -i] [-p] src target + cp [-R [-H | -L | -P]] [-f | -i] [-p] src1 ... srcN directory diff --git a/release/picobsd/help/cp.hlp.pl b/release/picobsd/help/cp.hlp.pl new file mode 100644 index 000000000000..30dea47a95f6 --- /dev/null +++ b/release/picobsd/help/cp.hlp.pl @@ -0,0 +1,6 @@ +[1mcp[m kopiuj pliki + + Sposob uzycia: + + cp [-R [-H | -L | -P]] [-f | -i] [-p] plik1 plik2 + cp [-R [-H | -L | -P]] [-f | -i] [-p] plik1 ... plikN katalog diff --git a/release/picobsd/help/df.hlp.en b/release/picobsd/help/df.hlp.en new file mode 100644 index 000000000000..987849b52aed --- /dev/null +++ b/release/picobsd/help/df.hlp.en @@ -0,0 +1,5 @@ +[1mdf[m display free disk space + + Usage: + + df [-ikn] [-t type] [file | filesystem ...] diff --git a/release/picobsd/help/df.hlp.pl b/release/picobsd/help/df.hlp.pl new file mode 100644 index 000000000000..39fda444a3d4 --- /dev/null +++ b/release/picobsd/help/df.hlp.pl @@ -0,0 +1,5 @@ +[1mdf[m pokaz ilosc wolnego miejsca na dysku + + Sposob uzycia: + + df [-ikn] [-t typ] [plik | filesystem ...] diff --git a/release/picobsd/help/dialup.hlp.en b/release/picobsd/help/dialup.hlp.en new file mode 100644 index 000000000000..c729023a6e83 --- /dev/null +++ b/release/picobsd/help/dialup.hlp.en @@ -0,0 +1,4 @@ +[1mdialup[m a simple PPP configuration script + + This script attempts to create the /etc/ppp/ppp.conf file suitable for + automatic dialing and background operation of 'ppp' program. diff --git a/release/picobsd/help/dialup.hlp.pl b/release/picobsd/help/dialup.hlp.pl new file mode 100644 index 000000000000..a19c8d911c83 --- /dev/null +++ b/release/picobsd/help/dialup.hlp.pl @@ -0,0 +1,5 @@ +[1mdialup[m prosty skrypt konfiguracyjny do PPP + + Skrypt ten tworzy plik /etc/ppp/ppp.conf w oparciu o wartosci + podane przez uzytkownika, umozliwiajac automatyczne wybieranie + numeru oraz dzialanie w tle. diff --git a/release/picobsd/help/dmesg.hlp.en b/release/picobsd/help/dmesg.hlp.en new file mode 100644 index 000000000000..b55e690b2b5b --- /dev/null +++ b/release/picobsd/help/dmesg.hlp.en @@ -0,0 +1,5 @@ +[1mdmesg[m display kernel message buffer contents + + Usage: + + dmesg | more diff --git a/release/picobsd/help/dmesg.hlp.pl b/release/picobsd/help/dmesg.hlp.pl new file mode 100644 index 000000000000..544c6ca49da3 --- /dev/null +++ b/release/picobsd/help/dmesg.hlp.pl @@ -0,0 +1,5 @@ +[1mdmesg[m wy¶wietl zawarto¶æ bufora komunikatów + + Sposób u¿ycia: + + dmesg | more diff --git a/release/picobsd/help/echo.hlp.en b/release/picobsd/help/echo.hlp.en new file mode 100644 index 000000000000..b54bdc3a736b --- /dev/null +++ b/release/picobsd/help/echo.hlp.en @@ -0,0 +1,8 @@ +[1mecho[m write arguments to the standard output + + Usage: + + echo [-n] [string...] + + Optional parameter -n tells echo not to end the output with new + line character. diff --git a/release/picobsd/help/echo.hlp.pl b/release/picobsd/help/echo.hlp.pl new file mode 100644 index 000000000000..e268038a5554 --- /dev/null +++ b/release/picobsd/help/echo.hlp.pl @@ -0,0 +1,8 @@ +[1mecho[m wypisz argumenty na standardowym wyjsciu (stdout) + + Sposob uzycia: + + echo [-n] [argumenty...] + + Opcjonalny parametr -n powoduje, ze nie zostanie dodany znak + konca wiersza. diff --git a/release/picobsd/help/ee.hlp.en b/release/picobsd/help/ee.hlp.en new file mode 100644 index 000000000000..dfb66c09fa1a --- /dev/null +++ b/release/picobsd/help/ee.hlp.en @@ -0,0 +1,4 @@ +[1mee[m Easy Editor + + This simple editor comes with its own help, visible in the upper part + of the screen. Follow that instructions. diff --git a/release/picobsd/help/ee.hlp.pl b/release/picobsd/help/ee.hlp.pl new file mode 100644 index 000000000000..e0582195af06 --- /dev/null +++ b/release/picobsd/help/ee.hlp.pl @@ -0,0 +1,4 @@ +[1mee[m Easy Editor + + Ten prosty edytor wyposazony jest w swoj wlasny system pomocy, + umieszczony w gornej czesci ekranu. diff --git a/release/picobsd/help/fsck.hlp.en b/release/picobsd/help/fsck.hlp.en new file mode 100644 index 000000000000..e4c13e35a576 --- /dev/null +++ b/release/picobsd/help/fsck.hlp.en @@ -0,0 +1,15 @@ +[1mfsck[m filesystem consistency check and interactive repair + + Usage: + + fsck -p [-f] [-m mode] + fsck [-b block#] [-c level] [-l maxparallel] [-y] [-n] [-m mode] + [filesystem] ... + + but in its simplest and most common version: + + fsck -y <filesystem> + + where <filesystem> is a name of the raw device, on which the filesystem + lies, e.g. /dev/rfd0 for floppy A:, or /dev/rwd0s1 for partition #1 on + first IDE drive. diff --git a/release/picobsd/help/fsck.hlp.pl b/release/picobsd/help/fsck.hlp.pl new file mode 100644 index 000000000000..5f4b74889bbe --- /dev/null +++ b/release/picobsd/help/fsck.hlp.pl @@ -0,0 +1,15 @@ +[1mfsck[m narzedzie do sprawdzania poprawnosci i spojnosci filesystemu. + + Sposob uzycia: + + fsck -p [-f] [-m mode] + fsck [-b block#] [-c level] [-l maxparallel] [-y] [-n] [-m mode] + [filesystem] ... + + ...ale w najprostszej i najczesciej spotykanej formie: + + fsck -y <filesystem> + + gdzie <filesystem> jest nazwa "surowego" urzadzenia, na ktorym + znajduje sie system plikow, np. /dev/rfd0 dla dyskietki A:, lub + /dev/rwd0s1 dla pierwszej partycji pierwszego dysku IDE. diff --git a/release/picobsd/help/ftp.hlp.en b/release/picobsd/help/ftp.hlp.en new file mode 100644 index 000000000000..3b61e90378b5 --- /dev/null +++ b/release/picobsd/help/ftp.hlp.en @@ -0,0 +1,8 @@ +[1mftp[m ARPANET file transfer program + + Usage: + + ftp [-adeginptvV] [host [port]] + ftp host:path[/] + ftp ftp://host[:port]/path[/] + ftp http://host[:port]/file diff --git a/release/picobsd/help/ftp.hlp.pl b/release/picobsd/help/ftp.hlp.pl new file mode 100644 index 000000000000..201aa17d694f --- /dev/null +++ b/release/picobsd/help/ftp.hlp.pl @@ -0,0 +1,8 @@ +[1mftp[m Program do przesylania plikow + + Sposob uzycia: + + ftp [-adeginptvV] [host [port]] + ftp host:path[/] + ftp ftp://host[:port]/path[/] + ftp http://host[:port]/file diff --git a/release/picobsd/help/gzip.hlp.en b/release/picobsd/help/gzip.hlp.en new file mode 100644 index 000000000000..f125fe3ad139 --- /dev/null +++ b/release/picobsd/help/gzip.hlp.en @@ -0,0 +1,26 @@ +[1mgzip, gunzip, zcat[m compress or expand files + + Usage: + + gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] + -c --stdout write on standard output, keep original + files unchanged + -d --decompress decompress + -f --force force overwrite of output file and compress + links + -h --help give this help + -l --list list compressed file contents + -L --license display software license + -n --no-name do not save or restore the original name and + time stamp + -N --name save or restore the original name and time stamp + -q --quiet suppress all warnings + -r --recursive operate recursively on directories + -S .suf --suffix .suf use suffix .suf on compressed files + -t --test test compressed file integrity + -v --verbose verbose mode + -V --version display version number + -1 --fast compress faster + -9 --best compress better + file... files to (de)compress. If none given, use + standard input. diff --git a/release/picobsd/help/gzip.hlp.pl b/release/picobsd/help/gzip.hlp.pl new file mode 100644 index 000000000000..807a95e6c27f --- /dev/null +++ b/release/picobsd/help/gzip.hlp.pl @@ -0,0 +1,12 @@ +[1mgzip, gunzip, zcat[m kompresuj lub dekompresuj plik(i) + + Sposob uzycia: + + gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] + -c --stdout dekompresuj na stdout + -d --decompress dekompresuj + -l --list pokaz zawartosc + -t --test testuj poprawnosc archiwum + -1 --fast szybka kompresja + -9 --best dobra kompresja + file... pliki do (de)kompresji. diff --git a/release/picobsd/help/help.hlp.en b/release/picobsd/help/help.hlp.en new file mode 100644 index 000000000000..b38db3d6c552 --- /dev/null +++ b/release/picobsd/help/help.hlp.en @@ -0,0 +1,7 @@ +[1mhelp[m Simple help system for PicoBSD + + This command displays short description of the commands included + on PicoBSD floppy. When invoked with no argument, it displays this + text :-). Any other argument is treated as a name of file located in + /help.a archive on the floppy, and this file is displayed page by + page. diff --git a/release/picobsd/help/help.hlp.pl b/release/picobsd/help/help.hlp.pl new file mode 100644 index 000000000000..47e039d0c847 --- /dev/null +++ b/release/picobsd/help/help.hlp.pl @@ -0,0 +1,7 @@ +[1mhelp[m Prosty system pomocy dla PicoBSD + + To polecenie wyswietla krotka instrukcje obslugi programow na + dyskietce. Uruchomione bez zadnego argumentu, wyswietla ten tekst. :-) + Kazdy inny argument traktowany jest jak nazwa pliku znajdujacego sie + w archiwum /help.a, po czym zostaje wyswietlona zawartosc tego pliku + strona po stronie. diff --git a/release/picobsd/help/hostname.hlp.en b/release/picobsd/help/hostname.hlp.en new file mode 100644 index 000000000000..0e29ffe18ff0 --- /dev/null +++ b/release/picobsd/help/hostname.hlp.en @@ -0,0 +1,5 @@ +[1mhostname[m set or print name of current host system + + Usage: + + hostname [-s] [name-of-host] diff --git a/release/picobsd/help/hostname.hlp.pl b/release/picobsd/help/hostname.hlp.pl new file mode 100644 index 000000000000..b40bda80c33b --- /dev/null +++ b/release/picobsd/help/hostname.hlp.pl @@ -0,0 +1,5 @@ +[1mhostname[m ustaw lub wyswietl nazwe maszyny + + Sposob uzycia: + + hostname [-s] [name-of-host] diff --git a/release/picobsd/help/ifconfig.hlp.en b/release/picobsd/help/ifconfig.hlp.en new file mode 100644 index 000000000000..65da95f4952f --- /dev/null +++ b/release/picobsd/help/ifconfig.hlp.en @@ -0,0 +1,18 @@ +[1mifconfig[m configure network interface parameters + + Usage: + + ifconfig -a [ -d ] [ -u ] [ af ] + ifconfig -l [ -d ] [ -u ] + [ af [ address [ dest_addr ] ] [ netmask mask ] + [ broadcast addr ] + + [ alias ] [ delete ] ] + [ up ] [ down ] + [ metric n ] + [ mtu n ] + [ arp | -arp ] + [ link0 | -link0 ] [ link1 | -link1 ] [ link2 | -link2 ] + [ media mtype ] + [ mediaopt mopts ] + [ -mediaopt mopts ] diff --git a/release/picobsd/help/ifconfig.hlp.pl b/release/picobsd/help/ifconfig.hlp.pl new file mode 100644 index 000000000000..7d35e4ead16d --- /dev/null +++ b/release/picobsd/help/ifconfig.hlp.pl @@ -0,0 +1,18 @@ +[1mifconfig[m konfiguracja parametrow interfejsow sieciowych + + Sposob uzycia: + + ifconfig -a [ -d ] [ -u ] [ af ] + ifconfig -l [ -d ] [ -u ] + [ af [ address [ dest_addr ] ] [ netmask mask ] + [ broadcast addr ] + + [ alias ] [ delete ] ] + [ up ] [ down ] + [ metric n ] + [ mtu n ] + [ arp | -arp ] + [ link0 | -link0 ] [ link1 | -link1 ] [ link2 | -link2 ] + [ media mtype ] + [ mediaopt mopts ] + [ -mediaopt mopts ] diff --git a/release/picobsd/help/kbdcontrol.hlp.en b/release/picobsd/help/kbdcontrol.hlp.en new file mode 100644 index 000000000000..0a776568800c --- /dev/null +++ b/release/picobsd/help/kbdcontrol.hlp.en @@ -0,0 +1,7 @@ +[1mkbdcontrol[m a utility for manipulating the syscons keyboard driver section + + Usage: + + kbdcontrol [-dFx] [-b duration.pitch | belltype] + [-r delay.repeat | speed] [-l mapfile] [-f # string] + [-h size] [-L mapfile] diff --git a/release/picobsd/help/kbdcontrol.hlp.pl b/release/picobsd/help/kbdcontrol.hlp.pl new file mode 100644 index 000000000000..a45933704992 --- /dev/null +++ b/release/picobsd/help/kbdcontrol.hlp.pl @@ -0,0 +1,7 @@ +[1mkbdcontrol[m ustawianie parametrow klawiatury + + Sposob uzycia: + + kbdcontrol [-dFx] [-b dlugosc.wysokosc | rodzaj] + [-r opoz.czest | szybk] [-l mapa] [-f # napis] + [-h rozmiar] [-L mapa] diff --git a/release/picobsd/help/kget.hlp.en b/release/picobsd/help/kget.hlp.en new file mode 100644 index 000000000000..632c807940ff --- /dev/null +++ b/release/picobsd/help/kget.hlp.en @@ -0,0 +1,21 @@ +[1mkget[m Get list of kernel configuration. + + This utility allows to gather device configuration which possibly + was changed in userconfig (-c) session, and to save it to /kernel.config + file on startup floppy, so that when user boots next time, the + settings will automatically be changed. + + Usage is straightforward: + + kget [-incore|kernel_name] [vanilla] + + E.g.: Get device configuration of running kernel + + kget -incore + + Produce list of parameters changed from /stand/vanilla + + kget -incore /stand/vanilla + + (You can redirect the stdout to /kernel.config - this list + already contains all the requires keywords.) diff --git a/release/picobsd/help/kget.hlp.pl b/release/picobsd/help/kget.hlp.pl new file mode 100644 index 000000000000..005fb26c8d11 --- /dev/null +++ b/release/picobsd/help/kget.hlp.pl @@ -0,0 +1,23 @@ +[1mkget[m Utworz liste konfiguracji jadra + + Ten program pozwala uzyskac parametry sterownikow urzadzen, + ktore byc moze zostaly zmienione na etapie uruchamiania systemu z + flaga '-c', pozwala rowniez zachowac te liste w specjalnym formacie + do pliku /kernel.config, zeby zostala uzyta jako dane konfiguracyjne + przy nastepnym starcie systemu. + + Sposob uzycia: + + kget [-incore|nazwa_jadra] [vanilla] + + E.g.: Utworz liste parametrow dzialajacego jadra: + + kget -incore + + Utworz liste roznic w parametrach w stosunku do listy + zawartej w pliku /stand/vanilla: + + kget -incore /stand/vanilla + + (Wynik tego polecenia mozna przekierowac wprost do pliku + /kernel.config na dyskietce) diff --git a/release/picobsd/help/kill.hlp.en b/release/picobsd/help/kill.hlp.en new file mode 100644 index 000000000000..e6322e703b01 --- /dev/null +++ b/release/picobsd/help/kill.hlp.en @@ -0,0 +1,8 @@ +[1mkill[m terminate or signal a process + + Usage: + + kill [-s signal_name] pid ... + kill -l [exit_status] + kill -signal_name pid ... + kill -signal_number pid ... diff --git a/release/picobsd/help/kill.hlp.pl b/release/picobsd/help/kill.hlp.pl new file mode 100644 index 000000000000..bde1e71686e5 --- /dev/null +++ b/release/picobsd/help/kill.hlp.pl @@ -0,0 +1,8 @@ +[1mkill[m zakoncz proces, lub wyslij sygnal + + Sposob uzycia: + + kill [-s signal_name] pid ... + kill -l [exit_status] + kill -signal_name pid ... + kill -signal_number pid ... diff --git a/release/picobsd/help/ln.hlp.en b/release/picobsd/help/ln.hlp.en new file mode 100644 index 000000000000..a7c7065a55a9 --- /dev/null +++ b/release/picobsd/help/ln.hlp.en @@ -0,0 +1,9 @@ +[1mln[m make links + + Usage: + + ln [-fs] file1 file2 + ln [-fs] file ... directory + + -f Unlink any already existing file (force link) + -s Create symbolic link diff --git a/release/picobsd/help/ln.hlp.pl b/release/picobsd/help/ln.hlp.pl new file mode 100644 index 000000000000..22fbd0681f91 --- /dev/null +++ b/release/picobsd/help/ln.hlp.pl @@ -0,0 +1,9 @@ +[1mln[m utworz link + + Sposob uzycia: + + ln [-fs] plik1 plik2 + ln [-fs] plik ... katalog + + -f (force) usun uprzednio istniejacy plik o tej samej nazwie + -s utworz link symboliczny diff --git a/release/picobsd/help/ls.hlp.en b/release/picobsd/help/ls.hlp.en new file mode 100644 index 000000000000..7a171cba2eed --- /dev/null +++ b/release/picobsd/help/ls.hlp.en @@ -0,0 +1,10 @@ +[1mls[m list directory contents + + Usage: + + ls [-ACFLRTWacdfgikloqrstu1] [file ...] + + Most common switches are: + + -l list in long format + -a include directory entries whose names begin with a dot '.' diff --git a/release/picobsd/help/ls.hlp.pl b/release/picobsd/help/ls.hlp.pl new file mode 100644 index 000000000000..f6860b69d910 --- /dev/null +++ b/release/picobsd/help/ls.hlp.pl @@ -0,0 +1,11 @@ +[1mls[m wyswietl zawartosc katalogu + + Sposob uzycia: + + ls [-ACFLRTWacdfgikloqrstu1] [plik ...] + + Najczesciej uzywane opcje: + + -l (long) wyswietl w rozszerzonym formacie + -a wyswietl rowniez te pliki, ktorych nazwy zaczynaja sie od '.' + -R wyswietl rowniez zawartosc podkatalogow diff --git a/release/picobsd/help/mkdir.hlp.en b/release/picobsd/help/mkdir.hlp.en new file mode 100644 index 000000000000..85c31422f25a --- /dev/null +++ b/release/picobsd/help/mkdir.hlp.en @@ -0,0 +1,5 @@ +[1mmkdir[m make directories + + Usage: + + mkdir [-p] [-m mode] directory ... diff --git a/release/picobsd/help/mkdir.hlp.pl b/release/picobsd/help/mkdir.hlp.pl new file mode 100644 index 000000000000..2354766303c6 --- /dev/null +++ b/release/picobsd/help/mkdir.hlp.pl @@ -0,0 +1,5 @@ +[1mmkdir[m utworz katalog + + Sposob uzycia: + + mkdir [-p] [-m mode] nazwa_katalogu ... diff --git a/release/picobsd/help/more.hlp.en b/release/picobsd/help/more.hlp.en new file mode 100644 index 000000000000..0333be22bca3 --- /dev/null +++ b/release/picobsd/help/more.hlp.en @@ -0,0 +1,7 @@ +[1mmore[m file perusal filter for crt viewing + + Usage: + + more [-ceinus] [-t tag] [-x tabs] [-/ pattern] [-#] [file ...] + + But most commonly just 'more <file>' or e.g. 'ls -l|more' diff --git a/release/picobsd/help/more.hlp.pl b/release/picobsd/help/more.hlp.pl new file mode 100644 index 000000000000..1e4d4e955fb0 --- /dev/null +++ b/release/picobsd/help/more.hlp.pl @@ -0,0 +1,8 @@ +[1mmore[m program do wyswietlania zawartosci plikow + + Sposob uzycia: + + more [-ceinus] [-t tag] [-x tabs] [-/ pattern] [-#] [plik ...] + + Najczesciej stosowany w postaci 'more nazwa pliku' lub jako + filtr: 'ls -l | more' diff --git a/release/picobsd/help/mount.hlp.en b/release/picobsd/help/mount.hlp.en new file mode 100644 index 000000000000..526fbe87f0c0 --- /dev/null +++ b/release/picobsd/help/mount.hlp.en @@ -0,0 +1,21 @@ +[1mmount[m mount file systems + + Usage: + + mount [-dfpruvw] [-o options] [-t ufs | external_type] special node + mount [-adfpruvw] [-t ufs | external_type] + mount [-dfpruvw] special | node + + E.g.: + + * mount UFS floppy A: on /mnt directory: + + mount /dev/fd0c /mnt + + * mount DOS primary partition (on primary IDE drive) on /dos: + + mount -t msdos /dev/wd0s1 /dos + + * mount Linux partition on /mnt + + mount -t ext2fs /dev/wd0s1 /mnt diff --git a/release/picobsd/help/mount.hlp.pl b/release/picobsd/help/mount.hlp.pl new file mode 100644 index 000000000000..0bf0bed254ae --- /dev/null +++ b/release/picobsd/help/mount.hlp.pl @@ -0,0 +1,19 @@ +[1mmount[m zamontuj system plikow + + Sposob uzycia: + + mount [-dfpruvw] [-o opcje] [-t [ufs|msdos|ext2fs] urzadzenie punkt + + N.p.: + + * zamontuj dyskietke DOS A: na katalogu /mnt: + + mount -t msdos /dev/fd0a /mnt + + * zamontuj pierwsza partycje DOS (na pierwszym dysku IDE) na /dos: + + mount -t msdos /dev/wd0s1 /dos + + * zamontuj partycje Linux na /mnt: + + mount -t ext2fs /dev/wd0s1 /mnt diff --git a/release/picobsd/help/mount_cd9660.hlp.en b/release/picobsd/help/mount_cd9660.hlp.en new file mode 100644 index 000000000000..1e138248cb29 --- /dev/null +++ b/release/picobsd/help/mount_cd9660.hlp.en @@ -0,0 +1,9 @@ +[1mmount_cd9660[m mount an ISO-9660 filesystem + + Usage: + + mount_cd9660 [-egrv] [-o options] [-s startsector] special node + + Most commonly, to mount an ATAPI CD-ROM on /mnt directory: + + mount_cd9660 /dev/wcd0c /mnt diff --git a/release/picobsd/help/mount_cd9660.hlp.pl b/release/picobsd/help/mount_cd9660.hlp.pl new file mode 100644 index 000000000000..d7b7d7511171 --- /dev/null +++ b/release/picobsd/help/mount_cd9660.hlp.pl @@ -0,0 +1,9 @@ +[1mmount_cd9660[m zamontuj CD-ROM (ISO-9660 filesystem) + + Sposob uzycia: + + mount_cd9660 [-egrv] [-o options] [-s startsector] urzadzenie punkt + + Najczesciej w celu zamontowania CD-ROMu ATAPI: + + mount_cd9660 /dev/wcd0c /mnt diff --git a/release/picobsd/help/mount_ext2fs.hlp.en b/release/picobsd/help/mount_ext2fs.hlp.en new file mode 100644 index 000000000000..636d9c90a728 --- /dev/null +++ b/release/picobsd/help/mount_ext2fs.hlp.en @@ -0,0 +1,11 @@ +[1mmount_ext2fs[m mount a ext2fs (Linux) file system + + Usage: + + mount_ext2fs [-o options] special node + + E.g. to mount first partition of first IDE drive on /mnt: + + mount_ext2fs /dev/wd0s1 /mnt + + To mount it read-only, add '-o ro' as options. diff --git a/release/picobsd/help/mount_ext2fs.hlp.pl b/release/picobsd/help/mount_ext2fs.hlp.pl new file mode 100644 index 000000000000..f2c241c0a560 --- /dev/null +++ b/release/picobsd/help/mount_ext2fs.hlp.pl @@ -0,0 +1,11 @@ +[1mmount_ext2fs[m zamontuj system plikow EXT2FS (Linux) + + Sposob uzycia: + + mount_ext2fs [-o opcje] urzadzenie punkt + + N.p. zeby zamontowac pierwsza partycje na pierwszym dysku IDE: + + mount_ext2fs /dev/wd0s1 /mnt + + W celu zamontowania tylko do odczytu, nalezy dodac opcje -o ro. diff --git a/release/picobsd/help/mount_msdos.hlp.en b/release/picobsd/help/mount_msdos.hlp.en new file mode 100644 index 000000000000..365b65c61274 --- /dev/null +++ b/release/picobsd/help/mount_msdos.hlp.en @@ -0,0 +1,13 @@ +[1mmount_msdos[m mount an MS-DOS file system + + Usage: + + mount_msdos [-o options] [-u user] [-g group] [-m mask] bdev dir + + E.g. to mount primary DOS partition of primary IDE drive on /dos: + + mount_msdos /dev/wd0s1 /dos + + To mount first extended partition on /mnt: + + mount_msdos /dev/wd0s5 /mnt diff --git a/release/picobsd/help/mount_msdos.hlp.pl b/release/picobsd/help/mount_msdos.hlp.pl new file mode 100644 index 000000000000..b587110387aa --- /dev/null +++ b/release/picobsd/help/mount_msdos.hlp.pl @@ -0,0 +1,13 @@ +[1mmount_msdos[m zamontuj system plikow MS-DOS + + Sposob uzycia: + + mount_msdos [-o opcje] [-u user] [-g grupa] [-m maska] bdev dir + + N.p. zeby zamontowac partycje C: z dysku IDE na /doc + + mount_msdos /dev/wd0s1 /dos + + W celu zamontowania pierwszej partycji extended" + + mount_msdos /dev/wd0s5 /mnt diff --git a/release/picobsd/help/moused.hlp.en b/release/picobsd/help/moused.hlp.en new file mode 100644 index 000000000000..0b7f7f401810 --- /dev/null +++ b/release/picobsd/help/moused.hlp.en @@ -0,0 +1,44 @@ +[1mmoused[m mouse daemon + + Usage: + + moused [-3DPRcdfs] [-F rate] [-r resolution] [-S baudrate] [-C threshold] + [-m N=M] [-z target] [-t mousetype] -p port + + Most common options are: + + -3 Emulate the third (middle) button for 2-button mice. It is emu- + lated by pressing the left and right physical buttons simultane- + ously. + -p port Use port to communicate with the mouse. + -t type + microsoft Microsoft (2-button) serial mouse protocol. + intellimouse Microsoft IntelliMouse protocol. Genius Net- + Mouse, ASCII Mie Mouse, Logitech MouseMan+ and + FirstMouse+ use this protocol too. + mousesystems MouseSystems 5-byte protocol. 3-button mice may + use this protocol. + mmseries MM Series mouse protocol. + logitech Logitech mouse protocol. Note that this is for + old Logitech models. mouseman or intellimouse + should be specified for newer models. + mouseman Logitech MouseMan and TrackMan protocol. Some + 3-button mice may be compatible with this proto- + col. Note that MouseMan+ and FirstMouse+ use + intellimouse protocol rather than this one. + glidepoint ALPS GlidePoint protocol. + thinkingmouse Kensington ThinkingMouse protocol. + mmhittab Hitachi tablet protocol. + +3-button serial mice may have a small switch to choose between +``MS'' and ``PC'', or ``2'' and ``3''. ``MS'' or ``2'' usually mean +the microsoft protocol. ``PC'' or ``3'' will choose the +mousesystems protocol. +To test if the selected protocol type is correct for the given mouse, en- +able the mouse pointer in the current virtual console: + vidcontrol -m on +start the mouse daemon in the foreground mode: + moused -f -p _selected_port_ -t _selected_protocol_ +and see if the mouse pointer travels correctly according to the mouse +movement. Then try cut & paste features by clicking the left, right and +middle buttons. Type ^C to stop the command. diff --git a/release/picobsd/help/moused.hlp.pl b/release/picobsd/help/moused.hlp.pl new file mode 100644 index 000000000000..41791207e716 --- /dev/null +++ b/release/picobsd/help/moused.hlp.pl @@ -0,0 +1,29 @@ +[1mmoused[m mouse daemon + + Sposob uzycia: + + moused [-3DPRcdfs] [-F rate] [-r resolution] [-S baudrate] [-C threshold] + [-m N=M] [-z target] [-t mousetype] -p port + + Najczestsze opcje to: + + -3 emulacja trzeciego (srodkowego) przycisku na dwu-klawiszowych + myszach. + -p port nazwa portu: /dev/cuaa0 == COM1:, psm0 == gniazdo PS/2 + -t typ + microsoft Microsoft (2 przyciski) mysz szeregowa. + intellimouse Microsoft IntelliMouse, Genius Net- Mouse, + ASCII Mie Mouse, Logitech MouseMan+, FirstMouse+ + mousesystems MouseSystems + mmseries MM Series + logitech Logitech. Ten protokol jest dla starszych typow + myszy - dla nowszych trzeba uzywac mouseman lub + intellimouse + mouseman Logitech MouseMan i TrackMan + glidepoint ALPS GlidePoint + thinkingmouse Kensington ThinkingMouse protocol. + mmhittab Hitachi tablet + +Mozna wlaczyc wyswietlanie wskaznika myszy przez: + + vidcontrol -m on diff --git a/release/picobsd/help/mv.hlp.en b/release/picobsd/help/mv.hlp.en new file mode 100644 index 000000000000..0cbf6d8991c7 --- /dev/null +++ b/release/picobsd/help/mv.hlp.en @@ -0,0 +1,9 @@ +[1mmv[m move files + + Usage: + + mv [-f | -i] source target + mv [-f | -i] source ... directory + + -f Do not prompt for confirmation + -i Prompt for confirmation diff --git a/release/picobsd/help/mv.hlp.pl b/release/picobsd/help/mv.hlp.pl new file mode 100644 index 000000000000..5a6b27e50fbb --- /dev/null +++ b/release/picobsd/help/mv.hlp.pl @@ -0,0 +1,9 @@ +[1mmv[m przenis plik(i) + + Sposob uzycia: + + mv [-f | -i] plik1 plik2 + mv [-f | -i] plik1 ... plikN katalog + + -f nie pytaj o potwierdzenie + -i pytaj o potwierdzenie diff --git a/release/picobsd/help/ping.hlp.en b/release/picobsd/help/ping.hlp.en new file mode 100644 index 000000000000..6d3cb71079f7 --- /dev/null +++ b/release/picobsd/help/ping.hlp.en @@ -0,0 +1,10 @@ +[1mping[m send ICMP ECHO_REQUEST packets to network hosts + + Usage: + + ping [-QRadfnqrv] [-c count] [-i wait] [-l preload] [-p pattern] + [-s packetsize] [host | [-L] [-I iface] [-T ttl] mcast-group] + + Most commonly: + + ping <host> diff --git a/release/picobsd/help/ping.hlp.pl b/release/picobsd/help/ping.hlp.pl new file mode 100644 index 000000000000..47faed6a12f0 --- /dev/null +++ b/release/picobsd/help/ping.hlp.pl @@ -0,0 +1,10 @@ +[1mping[m wyslij prosbe ICMP o echo + + Sposob uzycia: + + ping [-QRadfnqrv] [-c count] [-i wait] [-l preload] [-p pattern] + [-s packetsize] [host | [-L] [-I iface] [-T ttl] mcast-group] + + Najczesciej: + + ping nazwa_maszyny diff --git a/release/picobsd/help/ppp.hlp.en b/release/picobsd/help/ppp.hlp.en new file mode 100644 index 000000000000..55527dd72308 --- /dev/null +++ b/release/picobsd/help/ppp.hlp.en @@ -0,0 +1,16 @@ +[1mppp[m Point to Point Protocol client + + Usage: + + ppp [-auto | -background | -direct | -dedicated | -ddial ] [system] + + In case of PicoBSD most probably this will be: + + ppp -background <system_name> + + You should run 'dialup' script to configure automatic dialing. Then + you can use + + ppp -background dialup + + to connect to your provider. diff --git a/release/picobsd/help/ppp.hlp.pl b/release/picobsd/help/ppp.hlp.pl new file mode 100644 index 000000000000..7c5f6a6c5974 --- /dev/null +++ b/release/picobsd/help/ppp.hlp.pl @@ -0,0 +1,14 @@ +[1mppp[m obsluga protokolu PPP + + Sposob uzycia: + + ppp [-auto | -background | -direct | -dedicated | -ddial ] [system] + + W przypadku PicoBSD najczesciej bedzie to: + + ppp -background nazwa_polaczenia + + Nalezy przedtem uruchomic skrypt 'dialup' w celu poprawnej + konfiguracji. Wowczas w celu dokonania polaczenia wystarczy: + + ppp -background dialup diff --git a/release/picobsd/help/ps.hlp.en b/release/picobsd/help/ps.hlp.en new file mode 100644 index 000000000000..3e5125b3a045 --- /dev/null +++ b/release/picobsd/help/ps.hlp.en @@ -0,0 +1,9 @@ +[1mps[m List running processes + + This is a small 'ps' replacement, which uses information + available via sysctl(3) interface. It's primitive, but + gives you the most important informations, i.e. how many + processes are running and on which vty, and the pid number + to kill some of them. :-) + + Currently, no options are implemented yet. diff --git a/release/picobsd/help/ps.hlp.pl b/release/picobsd/help/ps.hlp.pl new file mode 100644 index 000000000000..f9b61ccd5504 --- /dev/null +++ b/release/picobsd/help/ps.hlp.pl @@ -0,0 +1,7 @@ +[1mps[m Pokaz dzialajace procesy + + Prosta wersja programu, korzystajaca z informacji dostepnych przez + sysctl(3). Wyswietla wystarczajaco duzo informacji, zeby zorientowac + sie w stanie systemu, oraz ewentualnie zastopowac jakies procesy. + + Obecnie nie posiada zadnych opcji. diff --git a/release/picobsd/help/pwd.hlp.en b/release/picobsd/help/pwd.hlp.en new file mode 100644 index 000000000000..593a9ebd57d2 --- /dev/null +++ b/release/picobsd/help/pwd.hlp.en @@ -0,0 +1 @@ +[1mpwd[m return working directory name diff --git a/release/picobsd/help/pwd.hlp.pl b/release/picobsd/help/pwd.hlp.pl new file mode 100644 index 000000000000..2a926bcfb6b3 --- /dev/null +++ b/release/picobsd/help/pwd.hlp.pl @@ -0,0 +1 @@ +[1mpwd[m wyswietl aktualny katalog. diff --git a/release/picobsd/help/reboot.hlp.en b/release/picobsd/help/reboot.hlp.en new file mode 100644 index 000000000000..d40c8ca398c0 --- /dev/null +++ b/release/picobsd/help/reboot.hlp.en @@ -0,0 +1,3 @@ +[1mreboot[m reboot the system + + Press Ctlr-Alt-Del instead of 'reboot'. diff --git a/release/picobsd/help/reboot.hlp.pl b/release/picobsd/help/reboot.hlp.pl new file mode 100644 index 000000000000..b809804f31d6 --- /dev/null +++ b/release/picobsd/help/reboot.hlp.pl @@ -0,0 +1,3 @@ +[1mreboot[m zrestartuj system + + Nacisnij Ctlr-Alt-Del. diff --git a/release/picobsd/help/rm.hlp.en b/release/picobsd/help/rm.hlp.en new file mode 100644 index 000000000000..60f2cd11feb3 --- /dev/null +++ b/release/picobsd/help/rm.hlp.en @@ -0,0 +1,13 @@ +[1mrm[m remove directory entries + + Usage: + + rm [-f | -i] [-dPRrW] file ... + + -f attepmt removal without confirmation, regardless of + premissions + -i request confirmation before removing + -r remove the whole tree rooted at "file" argument + + [1mWARNING:[m There is no way to "undelete" deleted files! They + are lost forever. diff --git a/release/picobsd/help/rm.hlp.pl b/release/picobsd/help/rm.hlp.pl new file mode 100644 index 000000000000..d847ff0b48c3 --- /dev/null +++ b/release/picobsd/help/rm.hlp.pl @@ -0,0 +1,12 @@ +[1mrm[m usun plik(i) + + Sposob uzycia: + + rm [-f | -i] [-dPRrW] plik ... + + -f sprobuj usunac sila, nie sprawdzajac praw dostepu + -i pytaj przed usunieciem + -r usun cale drzewko zaczynajace sie od nazwy 'plik' + + [1mOSTRZEZENIE:[m Nie ma zadnego sposobu na odtworzenie + skasowanych plikow!!! Sa one stracone na zawsze. diff --git a/release/picobsd/help/route.hlp.en b/release/picobsd/help/route.hlp.en new file mode 100644 index 000000000000..bf0061bc61ad --- /dev/null +++ b/release/picobsd/help/route.hlp.en @@ -0,0 +1,13 @@ +[1mroute[m manually manipulate the routing tables + + Usage: + + route [ -nqv ] command [[ modifiers ] args ] + + Where 'command' is most commonly 'add' or 'delete', modifiers can be + '-net' or '-host', and args are destination and gateway. + + E.g., to add default route to the gateway: + + route add default <gateway name or IP> + diff --git a/release/picobsd/help/route.hlp.pl b/release/picobsd/help/route.hlp.pl new file mode 100644 index 000000000000..92f4f6d03a74 --- /dev/null +++ b/release/picobsd/help/route.hlp.pl @@ -0,0 +1,13 @@ +[1mroute[m recznie manipuluj tablica routingu + + Sposob uzycia: + + route [ -nqv ] polecenie [[ opcje ] args ] + + 'Polecenie' to najczesciej 'add' (dodaj) lub 'delete' (usun), + 'opcje to '-net' lub '-host', a argumenty to nazwa hosta lub routera. + + Np. w celu dodania routingu do podstawowego routera w sieci (default): + + route add default nazwa_routera + diff --git a/release/picobsd/help/sh.hlp.en b/release/picobsd/help/sh.hlp.en new file mode 100644 index 000000000000..6198b237eff9 --- /dev/null +++ b/release/picobsd/help/sh.hlp.en @@ -0,0 +1,3 @@ +[1msh[m a Bourne Shell (command interpreter) + + This version is a slightly stripped down /bin/sh, also known as Ash. diff --git a/release/picobsd/help/sh.hlp.pl b/release/picobsd/help/sh.hlp.pl new file mode 100644 index 000000000000..c278b8e38242 --- /dev/null +++ b/release/picobsd/help/sh.hlp.pl @@ -0,0 +1,3 @@ +[1msh[m Bourne Shell (interpeter polecen) + + Jeest to Ash, nieco skromniejsz wersja standardowego /bin/sh. diff --git a/release/picobsd/help/shutdown.hlp.en b/release/picobsd/help/shutdown.hlp.en new file mode 100644 index 000000000000..f222d5ac3721 --- /dev/null +++ b/release/picobsd/help/shutdown.hlp.en @@ -0,0 +1,3 @@ +[1mshutdown[m shut down the system + + Press Ctlr-Alt-Del instead of 'shutdown'. diff --git a/release/picobsd/help/shutdown.hlp.pl b/release/picobsd/help/shutdown.hlp.pl new file mode 100644 index 000000000000..2a9a47a32698 --- /dev/null +++ b/release/picobsd/help/shutdown.hlp.pl @@ -0,0 +1,3 @@ +[1mshutdown[m zakoncz dzialanie systemu + + Nacisnij Ctlr-Alt-Del diff --git a/release/picobsd/help/ssh.hlp.en b/release/picobsd/help/ssh.hlp.en new file mode 100644 index 000000000000..bf6c168e22c8 --- /dev/null +++ b/release/picobsd/help/ssh.hlp.en @@ -0,0 +1,29 @@ +[1mssh[m Secure Shell remote access command + + Usage: ssh [options] host [command] + + -l user Log in using this user name. + -n Redirect input from /dev/null. + -a Disable authentication agent forwarding. + -x Disable X11 connection forwarding. + -i file Identity for RSA authentication (default: ~/.ssh/identity). + -t Tty; allocate a tty even if command is given. + -v Verbose; display verbose debugging messages. + -V Display version number only. + -q Quiet; don't display any warning messages. + -f Fork into background after authentication. + -e char Set escape character; ``none'' = disable (default: ~). + -c cipher Select encryption algorithm: ``idea'', ``3des'' + -p port Connect to this port. Server must be on the same port. + -P Don't use priviledged source port. + -L listen-port:host:port Forward local port to remote address + -R listen-port:host:port Forward remote port to local address + These cause ssh to listen for connections on a port, and + forward them to the other side by connecting to host:port. + -C Enable compression. + -o 'option' Process the option as if it was read from a configuration + file. + + Most commonly this will be: + + ssh -l your_login remote_host diff --git a/release/picobsd/help/ssh.hlp.pl b/release/picobsd/help/ssh.hlp.pl new file mode 100644 index 000000000000..5a0d3cbac977 --- /dev/null +++ b/release/picobsd/help/ssh.hlp.pl @@ -0,0 +1,29 @@ +[1mssh[m Secure Shell + + Sposob uzycia: ssh [options] host [command] + + -l user Log in using this user name. + -n Redirect input from /dev/null. + -a Disable authentication agent forwarding. + -x Disable X11 connection forwarding. + -i file Identity for RSA authentication (default: ~/.ssh/identity). + -t Tty; allocate a tty even if command is given. + -v Verbose; display verbose debugging messages. + -V Display version number only. + -q Quiet; don't display any warning messages. + -f Fork into background after authentication. + -e char Set escape character; ``none'' = disable (default: ~). + -c cipher Select encryption algorithm: ``idea'', ``3des'' + -p port Connect to this port. Server must be on the same port. + -P Don't use priviledged source port. + -L listen-port:host:port Forward local port to remote address + -R listen-port:host:port Forward remote port to local address + These cause ssh to listen for connections on a port, and + forward them to the other side by connecting to host:port. + -C Enable compression. + -o 'option' Process the option as if it was read from a configuration + file. + + Najczesciej uzywa sie w tej postaci: + + ssh -l nazwa_uzytk nazwa_maszyny diff --git a/release/picobsd/help/sysctl.hlp.en b/release/picobsd/help/sysctl.hlp.en new file mode 100644 index 000000000000..8a2c911a5afe --- /dev/null +++ b/release/picobsd/help/sysctl.hlp.en @@ -0,0 +1,15 @@ +[1msysctl[m get or set kernel state + + Usage: + + sysctl [-bnX] variable ... + sysctl [-bnX] -w variable=value ... + sysctl [-bnX] -a + sysctl [-bnX] -A + + To see the whole MIB table use: + sysctl -a + + To set specific variable to new value use: + + sysctl -w variable=value diff --git a/release/picobsd/help/sysctl.hlp.pl b/release/picobsd/help/sysctl.hlp.pl new file mode 100644 index 000000000000..abce3318bb1a --- /dev/null +++ b/release/picobsd/help/sysctl.hlp.pl @@ -0,0 +1,15 @@ +[1msysctl[m ustaw lub wyswietl parametr jadra + + Sposob uzycia: + + sysctl [-bnX] zmienna ... + sysctl [-bnX] -w zmienna=wartosc ... + sysctl [-bnX] -a + sysctl [-bnX] -A + + W celu wyswietlenia calego drzewa MIB: + sysctl -a + + W celu przypisania wartosci zmiennek: + + sysctl -w zmienna=wartosc diff --git a/release/picobsd/help/telnet.hlp.en b/release/picobsd/help/telnet.hlp.en new file mode 100644 index 000000000000..ddceebd53e64 --- /dev/null +++ b/release/picobsd/help/telnet.hlp.en @@ -0,0 +1,14 @@ +[1mtelnet[m user interface to the TELNET protocol + + Usage: + + telnet [-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user] + [-n tracefile][-r] [host-name [port]] + + Most commonly this will be just: + + telnet <remote_host> + + [1mWARNING:[m Telnet protocol is unsafe, as it passes the + passwords in clear text over the network. Use 'ssh' instead, where it's + possible. diff --git a/release/picobsd/help/telnet.hlp.pl b/release/picobsd/help/telnet.hlp.pl new file mode 100644 index 000000000000..be3f77b2aba3 --- /dev/null +++ b/release/picobsd/help/telnet.hlp.pl @@ -0,0 +1,14 @@ +[1mtelnet[m klient protokolu Telnet + + Sposob uzycia: + + telnet [-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user] + [-n tracefile][-r] [host-name [port]] + + Najczesciej jest to: + + telnet nazwa_maszyny + + [1mUWAGA:[m Protokol telnet jest niezbyt bezpieczny, gdyz + przesyla niezaszyfrowane hasla przez siec. Jesli to mozliwe, uzywaj + zamiast niego SSH. diff --git a/release/picobsd/help/test.hlp.en b/release/picobsd/help/test.hlp.en new file mode 100644 index 000000000000..351dc764895a --- /dev/null +++ b/release/picobsd/help/test.hlp.en @@ -0,0 +1 @@ +[1mtest[m condition evaluation utility diff --git a/release/picobsd/help/test.hlp.pl b/release/picobsd/help/test.hlp.pl new file mode 100644 index 000000000000..de1cec87fdc9 --- /dev/null +++ b/release/picobsd/help/test.hlp.pl @@ -0,0 +1 @@ +[1mtest[m sprawdz istnienie warunku diff --git a/release/picobsd/help/traceroute.hlp.en b/release/picobsd/help/traceroute.hlp.en new file mode 100644 index 000000000000..6eccd46b29fb --- /dev/null +++ b/release/picobsd/help/traceroute.hlp.en @@ -0,0 +1,14 @@ +[1mtraceroute[m print the route packets take to network host + + Usage: + + traceroute [-dnrv] [-w wait] [-m max_ttl] [-p port#] [-q nqueries] + [-t tos] [-s src_addr] [-g gateway] host [data_size] + + Most commonly: + + traceroute <host> + or + traceroute -n <host> + + if you don't want to waste time for resolving IP addresses into names. diff --git a/release/picobsd/help/traceroute.hlp.pl b/release/picobsd/help/traceroute.hlp.pl new file mode 100644 index 000000000000..bddf4a479df2 --- /dev/null +++ b/release/picobsd/help/traceroute.hlp.pl @@ -0,0 +1,14 @@ +[1mtraceroute[m poka¿ trasê pakietów w sieci + + Sposób u¿ycia: + + traceroute [-dnrv] [-w wait] [-m max_ttl] [-p port#] [-q nqueries] + [-t tos] [-s src_addr] [-g gateway] host [data_size] + + Najczê¶ciej: + + traceroute <host> + lub + traceroute -n <host> + + je¶li nie chcesz traciæ czasu na zamianê adresów IP na nazwy. diff --git a/release/picobsd/help/umount.hlp.en b/release/picobsd/help/umount.hlp.en new file mode 100644 index 000000000000..910a0b4bed11 --- /dev/null +++ b/release/picobsd/help/umount.hlp.en @@ -0,0 +1,12 @@ +[1mumount[m unmount filesystems + + Usage: + + umount [-fv] special | node + umount -a | -A [-fv] [-h host] [-t type] + + Most commonly this will be: + + umount <mount_point> + + e.g. 'umount /mnt' diff --git a/release/picobsd/help/umount.hlp.pl b/release/picobsd/help/umount.hlp.pl new file mode 100644 index 000000000000..20ea0d183d63 --- /dev/null +++ b/release/picobsd/help/umount.hlp.pl @@ -0,0 +1,12 @@ +[1mumount[m odmontuj system plikow + + Sposob uzycia: + + umount [-fv] urzadzenie | punkt + umount -a | -A [-fv] [-h host] [-t type] + + Najczesciej: + + umount /nazwa_katalogu + + Np. 'umount /mnt' diff --git a/release/picobsd/help/vidcontrol.hlp.en b/release/picobsd/help/vidcontrol.hlp.en new file mode 100644 index 000000000000..0aafefbcfa38 --- /dev/null +++ b/release/picobsd/help/vidcontrol.hlp.en @@ -0,0 +1,7 @@ +[1mvidcontrol[m a utility for manipulating the syscons video driver + + Usage: + + vidcontrol [-r fg bg] [-b color] [-c appearance] [-d] [-l scrmap] + [-L] [-m on|off] [-f size file] [-s number] [-t N|off] + [-x] [mode] [fgcol [bgcol]] [show] diff --git a/release/picobsd/help/vidcontrol.hlp.pl b/release/picobsd/help/vidcontrol.hlp.pl new file mode 100644 index 000000000000..5e8df49cbcec --- /dev/null +++ b/release/picobsd/help/vidcontrol.hlp.pl @@ -0,0 +1,7 @@ +[1mvidcontrol[m ustwa parametry sterownika video + + Sposob uzycia: + + vidcontrol [-r fg bg] [-b kolor] [-c kursor] [-d] [-l mapa] + [-L] [-m on|off] [-f rozmiar plik] [-s numer] [-t N|off] + [-x] [mode] [fgcol [bgcol]] [show] diff --git a/release/picobsd/help/vm.hlp.en b/release/picobsd/help/vm.hlp.en new file mode 100644 index 000000000000..6a391c1b1956 --- /dev/null +++ b/release/picobsd/help/vm.hlp.en @@ -0,0 +1,12 @@ +[1mvm[m Show memory usage. + + This program repeatedly displays current memory usage, showing the + following numbers: + + * procs: number of processes; r - running, w - waiting for I/O, + l - sleeping, s - swapping + * virt mem: virtual memory amounts (total and active), in kB + * real mem: real memory amounts (total and active), in kB + * shared vm: amount of shared virtual memory (total and active), in kB + * shared real: amount of shared real memory (total and active), in kB + * free: amount of free memory, in kB diff --git a/release/picobsd/help/vm.hlp.pl b/release/picobsd/help/vm.hlp.pl new file mode 100644 index 000000000000..00b8509a92d3 --- /dev/null +++ b/release/picobsd/help/vm.hlp.pl @@ -0,0 +1,14 @@ +[1mvm[m Pokaz zajetosc pamieci + + Program pokazuje aktualna zajetosc pamieci (do nacisniecia ^C), + wyswietlajac nastepujace wartosci: + + * procs: liczba procesow: r - running (dzialajace), + w - czekajace na I/O, + l - sleeping, + s - swapping, + * virt mem: ilosc pamieci witrualnej (total i active), w kB + * real mem: ilosc pamieci rzeczywistej (total i active) w kB + * shared vm: ilosc dzielonej pamieci wirtualnej, w kB + * shared real: ilosc dzielonej pamieci rzeczywistej, w kB + * free: ilosc wolnej pamieci, w kB. diff --git a/release/picobsd/install/Makefile.mfs b/release/picobsd/install/Makefile.mfs new file mode 100644 index 000000000000..ac567daefaca --- /dev/null +++ b/release/picobsd/install/Makefile.mfs @@ -0,0 +1,46 @@ +# +# $Id: Makefile,v 1.2.2.1 1999/05/09 22:04:07 abial Exp $ +# + +DESTDIR?=/mnt + +STAND_LINKS= bin sbin +USR_LINKS= bin sbin libexec +PL_LOCALE_LINKS= pl polish +MY_DEVS= std tun2 cuaa0 cuaa1 cuaa2 vty10 fd0 wd0s1h pty0 wd0 wd1 wd2 wd3 da0 da1 da2 da3 da4 da5 da6 bpf4 + +all: tree links files + +tree: + mtree -deU -f mfs.mtree -p ${DESTDIR} + +links: tree + (cd ${DESTDIR}; \ + for i in ${STAND_LINKS}; \ + do \ + ln -s /stand $${i}; \ + done; \ + cd var/run; \ + ln -s /dev/null log; \ + cd ../../usr; \ + for i in ${USR_LINKS}; \ + do \ + ln -s /stand $${i}; \ + done; \ + cd share/misc;\ + ln -s /etc/termcap termcap; ) + +files: tree + (cd ${DESTDIR}; \ + cp /sbin/dhclient-script stand/; \ + cp -Rp /boot . ; ) + + +# We don't do it under 'all' because it's needed only on non-DEVFS systems +devnodes: tree + (cd ${DESTDIR}/dev; \ + ln -s /dev/MAKEDEV; \ + ./MAKEDEV ${MY_DEVS}; \ + rm MAKEDEV) + +clean: diff --git a/release/picobsd/install/PICOBSD b/release/picobsd/install/PICOBSD new file mode 100644 index 000000000000..77ee4b5156f5 --- /dev/null +++ b/release/picobsd/install/PICOBSD @@ -0,0 +1,75 @@ +# +# $Id: PICOBSD,v 1.8.2.2 1999/02/15 02:49:24 des Exp $ +# +#Line starting with #PicoBSD contains PicoBSD build parameters +#marker def_sz init MFS_inodes floppy_inodes +#PicoBSD 2200 init 4096 4096 +options MD_ROOT_SIZE=2200 # same as def_sz + +machine "i386" +#cpu "I386_CPU" +#cpu "I486_CPU" +#cpu "I586_CPU" +cpu "I686_CPU" +ident PICOBSD +maxusers 10 + +options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +options FFS #Berkeley Fast Filesystem +options FFS_ROOT +# options NFS #Network Filesystem +options MFS +options MD_ROOT +options MSDOSFS #MSDOS Filesystem +# options "EXT2FS" +options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] +options "NO_F00F_HACK" + +device isa +device pci + +device fdc + +# ATA and ATAPI devices +device ata +device atadisk + +# syscons is the default console driver, resembling an SCO console + +device atkbdc 1 +device atkbd +device vga +device sc 1 + +device npx + +device sio + +#device ppc +#controller ppbus +#device nlpt +#device plip +#device ppi + +# Order is important here due to intrusive probes, do *not* alphabetize +# this list of network interfaces until the probes have been fixed. +# Right now it appears that the ie0 must be probed before ep0. See +# revision 1.20 of this file. +device de +device fxp + +#device ed +#device ep +#device ie + +device loop +device ether +# device tun 2 +device vn +device pty 16 +device md +#device gzip # Exec gzipped a.out's +device bpf 4 +options COMPAT_OLDISA #Use ISA shims and glue for old drivers + diff --git a/release/picobsd/install/PICOBSD.hints b/release/picobsd/install/PICOBSD.hints new file mode 100644 index 000000000000..3301f28051d7 --- /dev/null +++ b/release/picobsd/install/PICOBSD.hints @@ -0,0 +1,30 @@ +# $FreeBSD$ +hint.fd.0.at="fdc0" +hint.fd.0.drive="0" +hint.ata.0.port="0x1F0" +hint.ata.0.irq="14" +hint.ata.1.at="isa" +hint.ata.1.port="0x170" +hint.ata.1.irq="15" +hint.atkbd.0.at="isa" +hint.atkbd.0.irq="1" +hint.vga.0.at="isa" +hint.sc.0.at="isa" +hint.npx.0.at="isa" +hint.npx.0.port="0x0F0" +hint.npx.0.irq="13" +hint.sio.0.at="isa" +hint.sio.0.port="0x3F8" +hint.sio.0.flags="0x10" +hint.sio.0.irq="4" +hint.sio.1.at="isa" +hint.sio.1.port="0x2F8" +hint.sio.1.irq="3" +hint.sio.2.at="isa" +hint.sio.2.disabled="1" +hint.sio.2.port="0x3E8" +hint.sio.2.irq="5" +hint.sio.3.at="isa" +hint.sio.3.disabled="1" +hint.sio.3.port="0x2E8" +hint.sio.3.irq="9" diff --git a/release/picobsd/install/crunch1/Makefile b/release/picobsd/install/crunch1/Makefile new file mode 100644 index 000000000000..a5da44217483 --- /dev/null +++ b/release/picobsd/install/crunch1/Makefile @@ -0,0 +1,44 @@ +# +# $Id: Makefile,v 1.3 1999/01/19 23:12:50 abial Exp $ +# +SRC?=/usr/src + +all: crunch + +crunch: +# @if [ ! -f /usr/src/usr.bin/passwd/.picobsd.patched ]; then \ +# cat passwd.diff|(cd /usr/src/usr.bin/passwd; patch -p0); \ +# touch /usr/src/usr.bin/passwd/.picobsd.patched; \ +# fi + @cat crunch.conf|sed -e "s@/usr/src@${SRC}@" >crunch1.conf + @crunchgen ./crunch1.conf + @${MAKE} -f crunch1.mk -DNOPAM all \ + "CFLAGS=${CFLAGS} -DNOPAM -DRELEASE_CRUNCH -DCRUNCHED_BINARY -DNOSECURE -DNOCRYPT" #2>&1 >/dev/null + +clean: +# @if [ -f /usr/src/usr.bin/passwd/.picobsd.patched ]; then \ +# cat passwd.diff|(cd /usr/src/usr.bin/passwd; patch -R -p0); \ +# rm /usr/src/usr.bin/passwd/.picobsd.patched; \ +# fi + rm -f *.o *.stub *.lo *_stub.c *.mk \ + crunch.cache \ + crunch.mk \ + crunch.c \ + crunch1* \ + crunch \ + .tmp_* \ + *.gz + +install: + cp crunch1 ${MFS_MOUNTPOINT}/stand/crunch + chmod 555 ${MFS_MOUNTPOINT}/stand/crunch + for i in `crunchgen -l crunch1.conf` ; \ + do \ + ln ${MFS_MOUNTPOINT}/stand/crunch ${MFS_MOUNTPOINT}/stand/$${i}; \ + done + rm ${MFS_MOUNTPOINT}/stand/crunch + # Install the MIB files + #cp mibs/*.txt ${MFS_MOUNTPOINT}/usr/local/share/snmp/mibs/ + + +.include <bsd.prog.mk> diff --git a/release/picobsd/install/crunch1/crunch.conf b/release/picobsd/install/crunch1/crunch.conf new file mode 100644 index 000000000000..3a45dc126a0b --- /dev/null +++ b/release/picobsd/install/crunch1/crunch.conf @@ -0,0 +1,66 @@ +# +# $Id: crunch.conf,v 1.5.2.2 1999/05/07 10:03:06 abial Exp $ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# Default build options +buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec +# sources for ns & vm +srcdirs ../../tinyware + + +progs sh test awk cat chflags chmod chown cp cpio date dd +# progs sh test awk cat chflags chmod chown cp cpio date dd dev_mkdb +progs df dhclient disklabel echo fdisk fetch getty grep minigzip +progs hostname ifconfig init ln login ls mkdir mknod msg +progs more mount newfs pwd mount_std pwd_mkdb +# progs mount mount_ext2fs mount_cd9660 mount_nfs msg newfs ns passwd pwd pwd_mkdb mount_std +# progs reboot rm route stty sysctl syslogd tr umount +progs reboot rm route stty sysctl tr umount +# progs vm w + +#progs sh test echo hostname ln login getty stty +#progs msg kget reboot +#progs init ifconfig df sps cat +## progs cp rm mknod chmod chown mkdir ls syslogd +#progs cp rm mknod chmod chown mkdir ls +#progs sysctl route pwd_mkdb dev_mkdb +#progs mount umount +#progs kill mount_std grep tr awk newfs fetch +#progs pwd more +##progs passwd date +#progs date fdisk disklabel +#progs mount_cd9660 mount_nfs ping traceroute +#progs tar gzip cpio dhclient + +#ln mount_cd9660 cd9660 +# ln mount_nfs nfs +ln test [ +ln sh -sh +ln mount_std procfs +ln mount_std mount_procfs +ln msg dmesg +#ln ns netstat +ln minigzip gunzip +ln minigzip zcat +ln minigzip gzip +ln chown chgrp + +# libs -lncurses -lmytinfo -lipx -lz -lpcap -lalias -lwrap +#libs -lncurses -lmytinfo -lipx -lz -lpcap +# libs -lmytinfo -lz -lpcap -lipx +libs -lmytinfo -lz -lpcap -lipx +# libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -ledit -lutil -lcrypt -lm +libs -lgnuregex -lftpio +#libs -lradius # used by ppp diff --git a/release/picobsd/install/floppy.tree.exclude b/release/picobsd/install/floppy.tree.exclude new file mode 100644 index 000000000000..5f412ef5e7f4 --- /dev/null +++ b/release/picobsd/install/floppy.tree.exclude @@ -0,0 +1 @@ +CVS/* diff --git a/release/picobsd/install/floppy.tree/boot.config b/release/picobsd/install/floppy.tree/boot.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/install/floppy.tree/boot.config diff --git a/release/picobsd/install/floppy.tree/etc/disktab b/release/picobsd/install/floppy.tree/etc/disktab new file mode 100644 index 000000000000..7575ba66e088 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/disktab @@ -0,0 +1,87 @@ +# +# Floppy formats: +# +# To make a filesystem on a floppy: +# fdformat [-f <size>] fd<drive>[.<size>] +# disklabel -B -r -w fd<drive>[.<size>] fd<size> +# newfs <opts> fd<drive>[.<size>] +# +# with <opts>: +# -t 2 - two heads +# -u 9|15|18 - sectors per track +# (using the default value of 1/4096 is not much useful for floppies) +# -l 1 - interleave 1 (for most floppies) +# -i 65536 - bytes of data per i-node +# (the default -i value will render you with a floppy wasting way +# too much space in i-node areas) +# + +fd360:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\ + :pa#720:oa#0:ba#4096:fa#512:\ + :pb#720:ob#0:bb#4096:fb#512:\ + :pc#720:oc#0:bc#4096:fc#512: + +fd720:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\ + :pa#1440:oa#0:ba#4096:fa#512:\ + :pb#1440:ob#0:bb#4096:fb#512:\ + :pc#1440:oc#0:bc#4096:fc#512: + +fd1200|floppy5|5in|5.25in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\ + :pa#2400:oa#0:ba#4096:fa#512:\ + :pb#2400:ob#0:bb#4096:fb#512:\ + :pc#2400:oc#0:bc#4096:fc#512: + +fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pb#2880:ob#0:bb#4096:fb#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +fd1024|floppy0|3.5in Special Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#16:nc#64:\ + :pa#2048:oa#0:ba#4096:fa#512:\ + :pb#2048:ob#0:bb#4096:fb#512:\ + :pc#2048:oc#0:bc#4096:fc#512: + +# a == root +# b == swap +# c == d == whole disk +# e == /var +# f == scratch +# h == /usr + +cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\ + :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \ + :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \ + :pb#24288:ob#15840:tb=swap: \ + :pc#202224:oc#0: \ + :pd#202224:od#0: \ + :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \ + :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \ + :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512: + +sony650|Sony 650 MB MOD|\ + :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\ + :pc#576600:oc#0:\ + :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024: + +mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\ + :ty=removeable:dt=SCSI:rm#3600:\ + :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\ + :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\ + :pc#444384:oc#0: + +minimum:ty=mfs:se#512:nt#1:rm#300:\ + :ns#2880:nc#1:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +zip100|zip 100:\ + :ty=removable:se#512:nc#96:nt#64:ns#32:\ + :pa#196608:oa#0:ba#4096:fa#512:\ + :pb#196608:ob#0:bb#4096:fb#512:\ + :pc#196608:oc#0:bc#4096:fc#512: + diff --git a/release/picobsd/install/floppy.tree/etc/doinstall b/release/picobsd/install/floppy.tree/etc/doinstall new file mode 100755 index 000000000000..1e29e19fddb3 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/doinstall @@ -0,0 +1,112 @@ +#!/bin/sh +# +# PicoBSD installer script for FreeBSD +# +# Doug White +# $FreeBSD$ + +#### CONFIGURATION + +# URL to image tarball, fed to fetch(1) +image_url="ftp://YOUR.SERVER.HERE/pub/fbsdimage.tgz" + +# Target disk driver to fdisk -e +target_disk="wd0" + +#### END CONFIGURATION + +# Immediately abort on error +set -e + +# Do the install + +echo "==> Partitioning disk" +fdisk -e ${target_disk} + +echo "==> Disklabeling disk" +/etc/prepdisk ${target_disk} + +echo "==> Creating filesystem" +newfs /dev/r${target_disk}s1a > /dev/null + +echo "==> Mounting new filesystem" +mount /dev/${target_disk}s1a /mnt + +echo "==> Installing disk image" +if [ "X${image_url}" = "X" ] ; then + echo "No URL specified!" +else + echo "=====> From: ${image_url}" + cd /mnt + fetch -a -o - ${image_url} | gzip -d | cpio -idmu --quiet +fi + +# Some examples of post-install tweaking + +# The install floppy always DHCPs an address. If you want to make that +# address permanent on the system, use this code bit. + +#echo "==> Saving IP address" +#set `ifconfig fxp0 | grep inet` +#echo "ifconfig_fxp0=\"inet $2 netmask $4\"" >> /mnt/etc/rc.conf +#echo "=====> IP Address is $2" + +# If you enable different apps based on environment, here's an example. +# For 10.2.X.X networks, enable AMD. + +#echo "==> Checking if amd should be enabled" +#IFS=. +#set $2 +#if [ "X$1" = "X10" -a "X$2" = "X1" ] ; then +# echo "=====> Enabling amd" +# echo "amd_enable=\"YES\"" >> /mnt/etc/rc.conf +#fi + +#echo "==> Setting default router" +#echo "defaultrouter=\"10.1.1.3\"" >> /mnt/etc/rc.conf + +# Grab the DNS servers from the local DHCP configuration. + +#echo "==> Configuring name resolution" +#cp /etc/resolv.conf /mnt/etc + +# Prompt a menu to install a single or multiprocessor kernel. On our +# main image, we have two kernels, kernel-SMP and kernel-NOSMP. This +# menu drops a symlink that the bootblocks follow to the proper kernel. +# The user can enter a name for a different kernel if desired. + +#echo "==> Linking kernel" + +#DOKERN=0 +#cd /mnt +#chflags noschg kernel +#rm -f kernel +# +#while [ "X$DOKERN" = "X0" ] ; do +# +# DOKERN=1 +# +# echo " Please specify which kernel to use:" +# echo " 1. Uniprocessor" +# echo " 2. Multiprocessor (OK for SMP equipped systems with one CPU)" +# echo " Or type the name of the kernel you wish to use" +# read -p "Select >" KERN +# +# +# if [ "X$KERN" = "X1" ] ; then +# ln -s kernel-NOSMP kernel +# echo "=====> Uniprocessor kernel selected" +# elif [ "X$KERN" = "X2" ] ; then +# ln -s kernel-SMP kernel +# echo "=====> SMP kernel selected" +# elif [ -f $KERN ] ; then +# ln -s $KERN kernel +# echo "=====> User supplied kernel $KERN selected" +# else +# echo "*** Unknown kernel $KERN" +# KERN=0 +# fi +# +#done + +echo "==> Install complete!" diff --git a/release/picobsd/install/floppy.tree/etc/fstab b/release/picobsd/install/floppy.tree/etc/fstab new file mode 100644 index 000000000000..64d34ca9b1ae --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/fstab @@ -0,0 +1,4 @@ +#proc /proc procfs rw 0 0 +#/dev/fd0c /start_floppy ufs rw 1 1 +#/dev/wd0s1 /dos msdos rw 0 0 +#/dev/wcd0c /cdrom cd9660 ro,noauto 0 0 diff --git a/release/picobsd/install/floppy.tree/etc/gettytab b/release/picobsd/install/floppy.tree/etc/gettytab new file mode 100644 index 000000000000..90562acf2505 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/gettytab @@ -0,0 +1,40 @@ +# from: @(#)gettytab 5.14 (Berkeley) 3/27/91 +# +default:\ + :cb:ce:ck:lc:fd#1000:cl:im=\r\nPicoBSD (%h) (%t)\r\n\r\n:sp#1200: + +P|Pc|Pc console:\ + :ht:np:sp#115200: + +# +# Fixed speed entries +2|std.9600|9600-baud:\ + :np:sp#9600: +g|std.19200|19200-baud:\ + :np:sp#19200: +std.38400|38400-baud:\ + :np:sp#38400: +std.57600|57600-baud:\ + :np:sp#57600: +std.115200|115200-baud:\ + :np:sp#115200: + +# +# Entry specifying explicit device settings. See termios(4) and +# /usr/include/termios.h, too. The entry forces the tty into +# CLOCAL mode (so no DCD is required), and uses Xon/Xoff flow control. +# +# cflags: CLOCAL | HUPCL | CREAD | CS8 +# oflags: OPOST | ONLCR | OXTABS +# iflags: IXOFF | IXON | ICRNL | IGNPAR +# lflags: IEXTEN | ICANON | ISIG | ECHOCTL | ECHO | ECHOK | ECHOE | ECHOKE +# +# The `0' flags don't have input enabled. The `1' flags don't echo. +# (Echoing is done inside getty itself.) +# +local.9600|CLOCAL tty @ 9600 Bd:\ + :c0#0x0000c300:c1#0x0000cb00:c2#0x0000cb00:\ + :o0#0x00000007:o1#0x00000002:o2#0x00000007:\ + :i0#0x00000704:i1#0x00000000:i2#0x00000704:\ + :l0#0x000005cf:l1#0x00000000:l2#0x000005cf:\ + :sp#9600: diff --git a/release/picobsd/install/floppy.tree/etc/group b/release/picobsd/install/floppy.tree/etc/group new file mode 100644 index 000000000000..abbd733f3b0b --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/group @@ -0,0 +1,19 @@ +wheel:*:0:root,user +daemon:*:1:daemon +kmem:*:2:root +sys:*:3:root +tty:*:4:root +operator:*:5:root +mail:*:6: +bin:*:7: +news:*:8: +man:*:9: +games:*:13: +staff:*:20:root,user +guest:*:31:root +uucp:*:66: +xten:*:67:xten +dialer:*:68: +network:*:69: +nogroup:*:65533: +nobody:*:65534: diff --git a/release/picobsd/install/floppy.tree/etc/host.conf b/release/picobsd/install/floppy.tree/etc/host.conf new file mode 100644 index 000000000000..c67b871b42b5 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/host.conf @@ -0,0 +1,3 @@ +# $Id: host.conf,v 1.1.1.1 1998/08/27 17:38:42 abial Exp $ +hosts +bind diff --git a/release/picobsd/install/floppy.tree/etc/inetd.conf b/release/picobsd/install/floppy.tree/etc/inetd.conf new file mode 100644 index 000000000000..c7c50de341e4 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/inetd.conf @@ -0,0 +1,21 @@ +# +# Internet server configuration database +# +# @(#)inetd.conf 5.4 (Berkeley) 6/30/90 +# +telnet stream tcp nowait root /usr/libexec/telnetd telnetd +# +# "Small servers" -- used to be standard on, but we're more conservative +# about things due to Internet security concerns. Only turn on what you +# need. +# +#daytime stream tcp nowait root internal +#daytime dgram udp wait root internal +#time stream tcp nowait root internal +#time dgram udp wait root internal +#echo stream tcp nowait root internal +#echo dgram udp wait root internal +#discard stream tcp nowait root internal +#discard dgram udp wait root internal +#chargen stream tcp nowait root internal +#chargen dgram udp wait root internal diff --git a/release/picobsd/install/floppy.tree/etc/login.conf b/release/picobsd/install/floppy.tree/etc/login.conf new file mode 100644 index 000000000000..17bfb137ab45 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/login.conf @@ -0,0 +1,120 @@ +# This file controls resource limits, accounting limits and +# default user environment settings. +# +# $Id: login.conf,v 1.2.2.1 1999/04/30 18:48:09 hoek Exp $ +# + + +# Authentication methods + +auth-defaults:\ + :auth=passwd: + +auth-root-defaults:\ + :auth-login=passwd:\ + :auth-rlogin=passwd:\ + +auth-ftp-defaults:\ + :auth=passwd: + +# Example defaults +# These settings are used by login(1) by default for classless users +# Note that entries like "cputime" set both "cputime-cur" and "cputime-max" + +default:\ + :cputime=infinity:\ + :datasize-cur=22M:\ + :stacksize-cur=8M:\ + :memorylocked-cur=10M:\ + :memoryuse-cur=30M:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :maxproc-cur=64:\ + :openfiles-cur=64:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-defaults: + + +# +# standard - standard user defaults +# +standard:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,EDITOR=/usr/bin/ee:\ + :path=~/bin /bin /usr/bin:\ + :nologin=/var/run/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=90d:\ + :umask=002:\ + :ignoretime@:\ + :tc=default: +# +# Staff users - few restrictions and allow login anytime +# +staff:\ + :ignorenologin:\ + :ignoretime:\ + :requirehome@:\ + :accounted@:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :umask=022:\ + :tc=standard: + + +# +# root - fallback for root logins +# +root:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :cputime=infinity:\ + :datasize=infinity:\ + :stacksize=infinity:\ + :memorylocked=infinity:\ + :memoryuse=infinity:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :openfiles=infinity:\ + :maxproc=infinity:\ + :memoryuse-cur=32M:\ + :maxproc-cur=64:\ + :openfiles-cur=1024:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-root-defaults:\ +# +# Settings used by /etc/rc +# +daemon:\ + :coredumpsize@:\ + :coredumpsize-cur=0:\ + :datasize=infinity:\ + :datasize-cur@:\ + :maxproc=512:\ + :maxproc-cur@:\ + :memoryuse-cur=64M:\ + :memorylocked-cur=64M:\ + :openfiles=1024:\ + :openfiles-cur@:\ + :stacksize=16M:\ + :stacksize-cur@:\ + :tc=default: +# +# Polish Users Accounts. Setup proper environment variables. +# +polish:Polish Users Accounts:\ + :lang=pl_pl.ISO-8859-2:\ + :tc=default: diff --git a/release/picobsd/install/floppy.tree/etc/master.passwd b/release/picobsd/install/floppy.tree/etc/master.passwd new file mode 100644 index 000000000000..9d85cdf91b0e --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/master.passwd @@ -0,0 +1,7 @@ +root:$1$xOOaGnKU$U9QdsCI40XXcCUMBN.7Az.:0:0::0:0:Charlie &:/root:/bin/sh +toor:*:0:0::0:0:Bourne-again Superuser:/root: +daemon:*:1:1::0:0:Owner of many system processes:/root:/nonexistent +operator:*:2:20::0:0:System &:/usr/guest/operator:/bin/csh +bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/nonexistent +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/nonexistent +user:$1$T9q8Coad$WatJttamwr2UAdbfKbWxj.:1002:1002:polish:0:0:user:/home/user:/bin/sh diff --git a/release/picobsd/install/floppy.tree/etc/mfs.rc b/release/picobsd/install/floppy.tree/etc/mfs.rc new file mode 100644 index 000000000000..22b7678e49cf --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/mfs.rc @@ -0,0 +1,34 @@ +#!/bin/sh +# $Id: mfs.rc.en,v 1.1.1.1 1998/08/27 17:38:42 abial Exp $ +### WARNING !!!!!! ##### +# We remove this file during execution (see EOF). +# Awful things happen if its size is > 1024B + +stty status '^T' + +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +### Special setup for one floppy PICOBSD ### +echo "" +echo "-------------------------------------------" +echo " Please wait. The system is coming up..." +echo "-------------------------------------------" +echo "" +echo "Reading /etc from startup floppy..." +mount -o rdonly /dev/fd0a /start_floppy +cd /start_floppy/etc +cp -Rp . /etc/ +cd /etc +pwd_mkdb -p ./master.passwd +umount /start_floppy +echo "Ok. (Now you can remove floppy if you like)" +echo "" +. rc +exit 0 diff --git a/release/picobsd/install/floppy.tree/etc/prepdisk b/release/picobsd/install/floppy.tree/etc/prepdisk new file mode 100755 index 000000000000..ddba5c72ad3f --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/prepdisk @@ -0,0 +1,52 @@ +#!/bin/sh +# +# Prepares disk based on kernel disk information. Assumes fdisk -e was +# run beforehand. +# +# 'swap' is the size of the swap partition in 512 byte blocks (def: 256MB) + +# dev=target_disk + +target_disk=$1 + +dmesg | grep "${target_disk}.*sectors" | tr -d '(:)' | awk ' + { + v = $3 + c = $5 + h = $7 + s = $9 + ss = c * h * s - s + sw = 522240 + ap = ss - sw + + print "#",$0 > "_" + print "g c"c" h"h" s"s > "_" + print "p 1 165",s,ss > "_" + print "a 1" > "_" + + print "#",$0 > "__" + print "type: ESDI" > "__" + print "disk:", $1 > "__" + print "label:" > "__" + print "flags:" > "__" + print "bytes/sector: 512" > "__" + print "sectors/track:", s > "__" + print "tracks/cylinder:", h > "__" + print "sectors/cylinder:", s * h > "__" + print "cylinders:", c > "__" + print "sectors/unit:", ss > "__" + print "rpm: 3600" > "__" + print "interleave: 1" > "__" + print "trackskew: 0" > "__" + print "cylinderskew: 0" > "__" + print "headswitch: 0 # milliseconds" > "__" + print "track-to-track seek: 0 # milliseconds" > "__" + print "drivedata: 0 " > "__" + print "8 partitions:" > "__" + print "# size offset fstype [fsize bsize bps/cpg]" > "__" + print "a:",ap,"0 4.2BSD 512 4096 " > "__" + print "b:",sw,ap,"swap " > "__" + print "c:",ss,"0 unused 0 0" > "__" + } +' +disklabel -BrR ${target_disk} __ diff --git a/release/picobsd/install/floppy.tree/etc/profile b/release/picobsd/install/floppy.tree/etc/profile new file mode 100644 index 000000000000..babb9333f494 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/profile @@ -0,0 +1,3 @@ +# System-wide .profile file for sh(1). +BLOCKSIZE=K; export BLOCKSIZE +PATH=/stand:.; export PATH diff --git a/release/picobsd/install/floppy.tree/etc/protocols b/release/picobsd/install/floppy.tree/etc/protocols new file mode 100644 index 000000000000..c80be39f693a --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/protocols @@ -0,0 +1,7 @@ +# +# Internet (IP) protocols +ip 0 IP # internet protocol, pseudo protocol number +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # Internet Group Management +tcp 6 TCP # transmission control protocol +udp 17 UDP # user datagram protocol diff --git a/release/picobsd/install/floppy.tree/etc/rc b/release/picobsd/install/floppy.tree/etc/rc new file mode 100644 index 000000000000..09612a08784f --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/rc @@ -0,0 +1,64 @@ +#!/bin/sh +# $Id: rc.en,v 1.5 1999/01/19 23:15:41 abial Exp $ +############################################ +### Special setup for one floppy PICOBSD ### +### THIS IS NOT THE NORMAL /etc/rc !!!!! ### +############################################ +mount -a -t nonfs +if [ -f /etc/rc.conf ]; then + . /etc/rc.conf +fi +rm -f /var/run/* +if [ "x$swapfile" != "xNO" -a -w "$swapfile" -a -b /dev/vn0b ]; then + echo "Adding $swapfile as additional swap." + vnconfig /dev/vn0b $swapfile && swapon /dev/vn0b +fi +# configure serial devices +if [ -f /etc/rc.serial ]; then + . /etc/rc.serial +fi +# start up the initial network configuration. +if [ -f /etc/rc.network ]; then + . /etc/rc.network + network_pass1 +fi +mount -a -t nfs +chmod 666 /dev/tty[pqrsPQRS]* +# clean up left-over files +(cd /var/run && { cp /dev/null utmp; chmod 644 utmp; }) +if [ -n "$network_pass1_done" ]; then + network_pass2 +fi +if [ -n "$network_pass2_done" ]; then + network_pass3 +fi +if [ "X${inetd_enable}" = X"YES" ]; then + echo "Starting inetd."; inetd ${inetd_flags} +fi + +dev_mkdb + +echo '' +if [ "x$swapfile" = "xNO" ]; then + echo "WARNING: no swap partition!" + echo "Don't run too many programs at the same time..." +fi + +# Launch the installer +. /etc/doinstall + +echo '' +echo '' +echo '+----------- PicoBSD @VER@ (NET) ---------------+' +echo '| |' +echo '| Log in as "root" (password "setup"). |' +echo '| |' +echo '| This version of PicoBSD is fully under |' +echo '| BSD license. For more details see |' +echo '| http://www.freebsd.org/~picobsd, or contact |' +echo '| the author. |' +echo '| |' +echo '| abial@freebsd.org |' +echo '| |' +echo '+----------------------------------------------+' +exit 0 diff --git a/release/picobsd/install/floppy.tree/etc/rc.conf b/release/picobsd/install/floppy.tree/etc/rc.conf new file mode 100644 index 000000000000..7ec2d5cd15ea --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/rc.conf @@ -0,0 +1,26 @@ +#!/bin/sh +# $Id: rc.conf.en,v 1.1.1.1 1998/08/27 17:38:42 abial Exp $ +swapfile="NO" # Set to name of swapfile if aux swapfile desired. +### Network configuration sub-section ###################### +### Basic network options: ### +hostname="pico.mydomain.edu" # Set this! +firewall="NO" # firewall type (see /etc/rc.firewall) or NO +tcp_extensions="NO" # Allow RFC1323 & RFC1644 extensions (or NO). +network_interfaces="lo0 fxp0" # List of network interfaces (lo0 is loopback). +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. +ifconfig_fxp0="" # Force call to start_if.fxp0 +#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. +### Network daemons options: ### +inetd_enable="NO" # Run the network daemon dispatcher (or NO) +inetd_flags="" # Optional flags to inetd +snmpd_enable="NO" # Run the SNMP daemon (or NO) +snmpd_flags="-C -c /etc/snmpd.conf" # Optional flags to snmpd +### Network routing options: ### +defaultrouter="NO" # Set to default gateway (or NO). +static_routes="" # Set to static route list (or leave empty). +gateway_enable="NO" # Set to YES if this host will be a gateway. +arpproxy_all="" # replaces obsolete kernel option ARP_PROXYALL. +### Allow local configuration override at the very end here ## +if [ -f /etc/rc.conf.local ]; then + . /etc/rc.conf.local +fi diff --git a/release/picobsd/install/floppy.tree/etc/rc.network b/release/picobsd/install/floppy.tree/etc/rc.network new file mode 100644 index 000000000000..5c58b4c20b64 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/rc.network @@ -0,0 +1,79 @@ +#!/bin/sh - +# $Id: rc.network.en,v 1.1.1.1 1998/08/27 17:38:42 abial Exp $ +network_pass1() { + echo -n 'Doing initial network setup:' + # Set the host name if it is not already set + if [ -z "`hostname -s`" ] ; then + hostname $hostname + echo ' hostname' + fi + # Set up all the network interfaces, calling startup scripts if needed + for ifn in ${network_interfaces}; do + if [ -e /etc/start_if.${ifn} ]; then + . /etc/start_if.${ifn} + fi + # Do the primary ifconfig if specified + eval ifconfig_args=\$ifconfig_${ifn} + if [ -n "${ifconfig_args}" ] ; then + ifconfig ${ifn} ${ifconfig_args} + fi + # Check to see if aliases need to be added + alias=0 + while : + do + eval ifconfig_args=\$ifconfig_${ifn}_alias${alias} + if [ -n "${ifconfig_args}" ]; then + ifconfig ${ifn} ${ifconfig_args} alias + alias=`expr ${alias} + 1` + else + break; + fi + done + ifconfig ${ifn} + done + # Load the filters if required + if [ -n "$firewall_enable" -a -f /etc/rc.firewall -a \ + "x$firewall_enable" = "xYES" ] ; then + . /etc/rc.firewall + echo "Firewall rules loaded." + else + echo "Warning: kernel has firewall functionality, but firewall rules weren't loaded." + echo " All ip services are ENABLED by default." + fi + # Configure routing + if [ "x$defaultrouter" != "xNO" ] ; then + static_routes="default ${static_routes}" + route_default="default ${defaultrouter}" + fi + # Set up any static routes. This should be done before router discovery. + if [ "x${static_routes}" != "x" ]; then + for i in ${static_routes}; do + eval route_args=\$route_${i} + route add ${route_args} + done + fi + echo -n 'Additional routing options:' + if [ -n "$tcp_extensions" -a "x$tcp_extensions" != "xYES" ] ; then + echo -n ' tcp_extensions=NO' + sysctl -w net.inet.tcp.rfc1323=0 >/dev/null 2>&1 + sysctl -w net.inet.tcp.rfc1644=0 >/dev/null 2>&1 + fi + if [ "X$gateway_enable" = X"YES" ]; then + echo -n ' IP_gateway=YES' + sysctl -w net.inet.ip.forwarding=1 >/dev/null 2>&1 + fi + if [ "X$arpproxy_all" = X"YES" ]; then + echo -n ' turning on ARP_PROXY_ALL: ' + sysctl -w net.link.ether.inet.proxyall=1 2>&1 + fi + echo '.' + network_pass1_done=YES # Let future generations know we made it. +} + +network_pass2() { + network_pass2_done=YES +} + +network_pass3() { + network_pass3_done=YES +} diff --git a/release/picobsd/install/floppy.tree/etc/rc.serial b/release/picobsd/install/floppy.tree/etc/rc.serial new file mode 100644 index 000000000000..9eb1c8db1ae6 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/rc.serial @@ -0,0 +1,127 @@ +#!/bin/sh +# $Id: rc.serial,v 1.1.1.1 1998/08/27 17:38:42 abial Exp $ + +# Change some defaults for serial devices. +# Standard defaults are: +# dtrwait 300 drainwait 0 +# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl +# initial iflag, lflag and oflag all 0 +# speed 9600 +# special chars from <sys/ttydefaults.h> +# nothing locked +# except for serial consoles the initial iflag, lflag and oflag are from +# <sys/ttydefaults.h> and clocal is locked on. + +default() { + # Reset everything changed by the other functions to initial defaults. + + ci=$1; shift # call in device identifier + co=$1; shift # call out device identifier + + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 300 drainwait 0 + stty </dev/ttyi$ci$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/ttyl$ci$i -clocal -crtscts -hupcl 0 + stty </dev/cuai$co$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/cual$co$i -clocal -crtscts -hupcl 0 + done +} + +maybe() { + # Special settings. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Don't use ^R; it breaks bash's ^R when typed ahead. + stty </dev/ttyi$ci$i reprint undef + stty </dev/cuai$co$i reprint undef + # Lock clocal off on dialin device for security. + stty </dev/ttyl$ci$i clocal + # Lock the speeds to use old binaries that don't support them. + # Any legal speed works to lock the initial speed. + stty </dev/ttyl$ci$i 300 + stty </dev/cual$co$i 300 + done +} + +modem() { + # Modem that supports CTS and perhaps RTS handshaking. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # may depend on modem + comcontrol /dev/tty$ci$i dtrwait 100 drainwait 180 + # Lock crtscts on. + # Speed reasonable for V42bis. + stty </dev/ttyi$ci$i crtscts 57600 + stty </dev/ttyl$ci$i crtscts + stty </dev/cuai$co$i crtscts 57600 + stty </dev/cual$co$i crtscts + done +} + +mouse() { + # Mouse on either callin or callout port. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Lock clocal on, hupcl off. + # Standard speed for Microsoft mouse. + stty </dev/ttyi$ci$i clocal -hupcl 1200 + stty </dev/ttyl$ci$i clocal hupcl + stty </dev/cuai$co$i clocal -hupcl 1200 + stty </dev/cual$co$i clocal hupcl + done +} + +terminal() { + # Terminal that supports CTS and perhaps RTS handshaking + # with the cable or terminal arranged so that DCD is on + # at least while the terminal is on. + # Also works for bidirectional communications to another pc + # provided at most one side runs getty. + # Same as modem() except we want a faster speed and no dtrwait. + + ci=$1; shift + co=$1; shift + + modem $ci $co $* + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 0 + stty </dev/ttyi$ci$i 115200 + stty </dev/cuai$co$i 115200 + done +} + +# Don't use anything from this file unless you have some buggy programs +# that require it. + +# Edit the functions and the examples to suit your system. +# $1 is the call in device identifier, $2 is the call out device identifier +# and the remainder of the line lists the device numbers. + +# Initialize assorted 8250-16550 (sio) ports. +# maybe d a 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v +# mouse d a 2 +# modem d a 1 +# terminal d a 0 + +# Initialize all ports on a Cyclades-8yo. +# modem c c 00 01 02 03 04 05 06 07 + +# Initialize all ports on a Cyclades-16ye. +# modem c c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + +# Initialize all ports on a Digiboard 8. +# modem D D 00 01 02 03 04 05 06 07 diff --git a/release/picobsd/install/floppy.tree/etc/remote b/release/picobsd/install/floppy.tree/etc/remote new file mode 100644 index 000000000000..6f9fcaf4ad5d --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/remote @@ -0,0 +1,50 @@ +# @(#)remote 5.2 (Berkeley) 6/30/90 +# +# remote -- remote host description file +# see tip(1), remote(5) +# +# dv device to use for the tty +# el EOL marks (default is NULL) +# du make a call flag (dial up) +# pn phone numbers (@ =>'s search phones file; possibly taken from +# PHONES environment variable) +# at ACU type +# ie input EOF marks (default is NULL) +# oe output EOF string (default is NULL) +# cu call unit (default is dv) +# br baud rate (defaults to 300) +# fs frame size (default is BUFSIZ) -- used in buffering writes on +# receive operations +# tc to continue a capability + +# Systems definitions +netcom|Netcom Unix Access:\ + :pn=\@:tc=unix1200: +omen|Omen BBS:\ + :pn=\@:tc=dos1200: + +# UNIX system definitions +unix1200|1200 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial1200: +unix300|300 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial300: + +# DOS system definitions +dos1200|1200 Baud dial-out to a DOS system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^Z:pa=none:tc=dial1200: + +# General dialer definitions used below +# +# COURIER switch settings: +# switch: 1 2 3 4 5 6 7 8 9 10 +# setting: D U D U D D U D U U +# Rackmount: U U D U D U D D U D +# +dial2400|2400 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#2400:cu=/dev/cuaa0:at=hayes:du: +dial1200|1200 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#1200:cu=/dev/cuaa0:at=hayes:du: + +# Hardwired line +cuaa0b|cua0b:dv=/dev/cuaa0:br#2400 +cuaa0c|cua0c:dv=/dev/cuaa0:br#9600 diff --git a/release/picobsd/install/floppy.tree/etc/resolv.conf b/release/picobsd/install/floppy.tree/etc/resolv.conf new file mode 100644 index 000000000000..57a54e3ea70e --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/resolv.conf @@ -0,0 +1,3 @@ +# $Id: resolv.conf.en,v 1.1.1.1 1998/08/27 17:38:42 abial Exp $ +domain mydomain.edu +nameserver 192.33.4.12 diff --git a/release/picobsd/install/floppy.tree/etc/services b/release/picobsd/install/floppy.tree/etc/services new file mode 100644 index 000000000000..eec499fafec7 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/services @@ -0,0 +1,94 @@ +echo 4/ddp +echo 7/tcp +echo 7/udp +discard 9/tcp +discard 9/udp +systat 11/tcp +systat 11/udp +daytime 13/tcp +daytime 13/udp +qotd 17/tcp +qotd 17/udp +chargen 19/tcp +chargen 19/udp +ftp-data 20/tcp +ftp-data 20/udp +ftp 21/tcp +ftp 21/udp +ssh 22/tcp +ssh 22/udp +telnet 23/tcp +telnet 23/udp +smtp 25/tcp +smtp 25/udp +time 37/tcp +time 37/udp +domain 53/tcp +domain 53/udp +tacacs-ds 65/tcp +tacacs-ds 65/udp +bootps 67/tcp +bootps 67/udp +bootpc 68/tcp +bootpc 68/udp +tftp 69/tcp +tftp 69/udp +gopher 70/tcp +gopher 70/udp +finger 79/tcp +finger 79/udp +http 80/tcp +http 80/udp +pop2 109/tcp +pop2 109/udp +pop3 110/tcp +pop3 110/udp +uucp-path 117/tcp +uucp-path 117/udp +nntp 119/tcp +nntp 119/udp +netbios-ns 137/tcp +netbios-ns 137/udp +netbios-dgm 138/tcp +netbios-dgm 138/udp +netbios-ssn 139/tcp +netbios-ssn 139/udp +imap 143/tcp +imap 143/udp +snmp 161/tcp +snmp 161/udp +snmptrap 162/tcp +snmptrap 162/udp +bgp 179/tcp +bgp 179/udp +irc 194/tcp +irc 194/udp +ipx 213/tcp +ipx 213/udp +imap3 220/tcp +imap3 220/udp +ldap 389/tcp +ldap 389/udp +netware-ip 396/tcp +netware-ip 396/udp +https 443/tcp +https 443/udp +exec 512/tcp +biff 512/udp +login 513/tcp +who 513/udp +cmd 514/tcp +syslog 514/udp +printer 515/tcp +printer 515/udp +talk 517/tcp +talk 517/udp +ntalk 518/tcp +ntalk 518/udp +timed 525/tcp +timed 525/udp +uucp 540/tcp +uucp 540/udp +uucp-rlogin 541/tcp +uucp-rlogin 541/udp +natd 8668/divert # Network Address Translation diff --git a/release/picobsd/install/floppy.tree/etc/shells b/release/picobsd/install/floppy.tree/etc/shells new file mode 100644 index 000000000000..df377f133737 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/shells @@ -0,0 +1,6 @@ +# List of acceptable shells for chpass(1). +# Ftpd will not allow users to connect who are not using +# one of these shells. + +/bin/sh +/bin/csh diff --git a/release/picobsd/install/floppy.tree/etc/start_if.fxp0 b/release/picobsd/install/floppy.tree/etc/start_if.fxp0 new file mode 100644 index 000000000000..03e59894948c --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/start_if.fxp0 @@ -0,0 +1 @@ +/stand/dhclient diff --git a/release/picobsd/install/floppy.tree/etc/termcap b/release/picobsd/install/floppy.tree/etc/termcap new file mode 100644 index 000000000000..5a9316af0295 --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/termcap @@ -0,0 +1,123 @@ +# Copyright (c) 1980, 1985, 1989 The Regents of the University of California. +# All rights reserved. +# @(#)termcap.src 5.88 (Berkeley) 4/30/91 +# +# +# for syscons +# common entry without semigraphics +cons25w|ansiw|ansi80x25-raw:\ + :al=\E[L:am:bs:NP:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:co#80:\ + :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:li#25:cb=\E[1K:\ + :ms:nd=\E[C:pt:rs=\E[x\E[m\Ec:so=\E[7m:se=\E[m:up=\E[A:\ + :pa#64:Co#8:Sf=\E[3%dm:Sb=\E[4%dm:op=\E[37;40m:\ + :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ + :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\ + :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:eo:sf=\E[S:sr=\E[T:\ + :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\E[K:kB=\E[Z:\ + :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:bw:\ + :mb=\E[5m:md=\E[1m:mh=\E[30;1m:mr=\E[7m:me=\E[m:bl=^G:ut:it#8: +cons25|ansis|ansi80x25:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :tc=cons25w: +cons25-m|ansis-mono|ansi80x25-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25: +cons50|ansil|ansi80x50:\ + :li#50:tc=cons25: +cons50-m|ansil-mono|ansi80x50-mono:\ + :li#50:tc=cons25-m: +# 80x25 ISO 8859-1 FreeBSD console +cons25l1|cons25-iso8859-1:\ + :ac=l\215m\216k\214j\213u\226t\225v\227w\230q\222x\231n\217o\220s\224p\221r\223`\201a\202f\207g\210~\237.^Y-^X+\253,\273I\247y\232z\233:\ + :tc=cons25w: +cons25l1-m|cons25-iso8859-1-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25l1: +# 80x50 ISO 8859-1 FreeBSD console +cons50l1|cons50-iso8859-1:\ + :li#50:tc=cons25l1: +cons50l1-m|cons50-iso8859-1-mono:\ + :li#50:tc=cons25l1-m: +dosansi|ANSI.SYS standard crt|ansi:\ + :am:bs:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:co#80:\ + :do=\E[B:li#25:mi:nd=\E[C:\ + :se=\E[m:so=\E[7m:up=\E[A:us=\E[4m:ue=\E[m:\ + :md=\E[1m:mh=\E[m:mb=\E[5m:me=\E[m:\ + :kh=\EG:kb=^h:ku=\EH:kd=\EP:kl=\EK:kr=\EM:\ + :k1=\E;:k2=\E<:k3=\E=:k4=\E>:k5=\E?:\ + :k6=\E@:k7=\EA:k8=\EB:k9=\EC:k0=\ED: + +# Note: this entry describes the "native" +# capabilities of the PC monochrome display, without ANY emulation; most +# communications packages (but NOT PC/IX connect) do some kind of emulation. +pc|ibmpc|ibm pc PC/IX:\ + :li#24:co#80:am:bs:bw:eo:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\ + :nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m: +pc3mono|IBM PC 386BSD Console with monochrome monitor:\ + :so=\E[0;1r\E[m:tc=pc3: +pc3|ibmpc3|IBM PC 386BSD Console:\ + :Co#8:\ + :DO=\E[%dB:\ + :F1=\E[W:\ + :F2=\E[X:\ + :K1=\E[H:\ + :K2=\E[I:\ + :K3=\E[E:\ + :K4=\E[F:\ + :K5=\E[G:\ + :LE=\E[%dD:\ + :RI=\E[%dC:\ + :Sb=\E[1;%dx:\ + :Sf=\E[2;%dx:\ + :UP=\E[%dA:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :am:\ + :bl=^G:\ + :bs:\ + :cb=\E[1K:\ + :cd=\E[J:\ + :ce=\E[K:\ + :cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:\ + :co#80:\ + :cr=^M:\ + :do=\E[B:\ + :ho=\E[H:\ + :is=\E[m:\ + :it#8:\ + :k;=\E[V:\ + :k1=\E[M:\ + :k2=\E[N:\ + :k3=\E[O:\ + :k4=\E[P:\ + :k5=\E[Q:\ + :k6=\E[R:\ + :k7=\E[S:\ + :k8=\E[T:\ + :k9=\E[U:\ + :kD=\177:\ + :@7=\E[F:\ + :kN=\E[G:\ + :kP=\E[I:\ + :kb=\177:\ + :kd=\E[B:\ + :kh=\E[H:\ + :kl=\E[D:\ + :kr=\E[C:\ + :ku=\E[A:\ + :le=^H:\ + :li#25:\ + :ms:\ + :nd=\E[C:\ + :op=\E[x:\ + :pa#64:\ + :rs=\E[m:\ + :se=\E[m:\ + :sf=\E[S:\ + :so=\E[7;1r\E[7m:\ + :sr=\E[T:\ + :ta=^I:\ + :te=\E[m:\ + :ti=\E[m:\ + :up=\E[A:\ + :ut: diff --git a/release/picobsd/install/floppy.tree/etc/ttys b/release/picobsd/install/floppy.tree/etc/ttys new file mode 100644 index 000000000000..8ef5e6ebb37f --- /dev/null +++ b/release/picobsd/install/floppy.tree/etc/ttys @@ -0,0 +1,32 @@ +# +# @(#)ttys 5.1 (Berkeley) 4/17/89 +# +# name getty type status comments +# +# This entry needed for asking password when init goes to single-user mode +# If you want to be asked for password, change "secure" to "insecure" here +#console none unknown off secure +vga none cons25 off secure +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +#ttyv3 "/usr/libexec/getty Pc" cons25 on secure +#ttyv4 "/usr/libexec/getty Pc" cons25 on secure +#ttyv5 "/usr/libexec/getty Pc" cons25 on secure +#ttyv6 "/usr/libexec/getty Pc" cons25 on secure +#ttyv7 "/usr/libexec/getty Pc" cons25 on secure +#ttyv8 "/usr/libexec/getty Pc" cons25 on secure +#ttyv9 "/usr/libexec/getty Pc" cons25 on secure +# Pseudo terminals +ttyp0 none network secure +ttyp1 none network secure +ttyp2 none network secure +ttyp3 none network +ttyp4 none network +ttyp5 none network +ttyp6 none network +ttyp7 none network +ttyp8 none network +ttyp9 none network diff --git a/release/picobsd/install/floppy.tree/kernel.config b/release/picobsd/install/floppy.tree/kernel.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/install/floppy.tree/kernel.config diff --git a/release/picobsd/install/lang/README.en b/release/picobsd/install/lang/README.en new file mode 100644 index 000000000000..d2482aeed561 --- /dev/null +++ b/release/picobsd/install/lang/README.en @@ -0,0 +1,41 @@ +1998.07.12, Warsaw, Poland + + PicoBSD @VER@ (NET) + ----------------- + + +What is PicoBSD? +---------------- + +It's a one floppy version of FreeBSD (please see http://www.freebsd.org), +configured mainly for networking applications. It can be used as a router or +firewall, or kind of a fixit floppy (or all of them). + +You can find more information on the home page of this project at: + + http://www.freebsd.org/~picobsd/ + +What are minimal requirements? +------------------------------ + +* 386SX CPU or better (there is an FPU emulator in kernel) +* 10MB RAM - the more the better. If you have an HDD, you can make a + swap partition or swap file (using vnode driver and vnconfig). Then you + probably will be able to run with ca. 6MB only. But RAM is cheap... +* Modem sitting on COM1-COM4 (default is to use COM2), if you want to have + a PPP connection. +* Network card: compatible with NE2000, PCI Intel, 3Com 3c509 or with DEC + chipsets (ed, ep, fxp and de drivers). The kernel supports two of each + ISA (i.e. +6 total) plus two PPP connections (tun interfaces). So you can + easily build something like router with as many as 8 outlets :-) + +For detailed description and list of supported hardware see the original +documentation, or: + + http://www.freebsd.org/~picobsd/picobsd.html + +I'll be glad hearing from you about your experiences with PicoBSD. Thanks. + +Have fun! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/install/lang/README.pl b/release/picobsd/install/lang/README.pl new file mode 100644 index 000000000000..d7e3f6755ceb --- /dev/null +++ b/release/picobsd/install/lang/README.pl @@ -0,0 +1,56 @@ +1998.07.12, Warszawa + + PicoBSD @VER@ (wersja NET) + ------------------------ + +Co to jest PicoBSD? +------------------- + +Jest to jednodyskietkowa wersja FreeBSD skonfigurowana glownie pod katem +zastosowania jako klient/serwer uslug sieciowych (takich jak routing, +firewall, NFS). W celu zapoznania sie z pelnym systemem zajrzyj na +http://www.freebsd.org. Oficjalna strona tego projektu znajduje sie na +http://www.freebsd.org/~picobsd. + +Jakie sa minimalne wymagania? +----------------------------- + +* Procesor 386SX lub lepszy (jadro posiada emulator FPU) +* 10MB pamieci - jest to absolutnie nieprzekraczalne minimum. Oczywiscie im + wiecej, tym lepiej - ograniczenie jest glownie spowodowane brakiem swapu. Po + zapoznaniu sie z systemem mozesz sobie skonfigurowac tzw. swap-file na dysku + twardym, np. na partycji DOS-owej. Wowczas prawdopodobnie wystarczy 6MB + pamieci. +* Modem, skonfigurowany na COM1-COM4 (standardowo system wykorzystuje COM2), + jesli bedzie wykorzystywany dostep przez PPP. +* Karta sieciowa: kompatybilna z NE2000, niektore typy 3Com, lub wersje PCI z + chipsetem DEC21040 (drivery ed, ep, fxp i de). Jadro jest skonfigurowane + tak, zeby moc obsluzyc po dwie karty ed, ep, i de (czyli w sumie siedem) + oraz dwa polaczenia PPP rownoczesnie. Mozna wiec zbudowac router z 9 + interfejsami... :-) + +Jakie sa roznice w stosunku do poprzedniej wersji? +-------------------------------------------------- + +* Poszerzony zestaw sterownikow w jadrze systemu +* dodana obsluga CD-ROM +* agent SNMP (pelna wersja ucd-snmp, pozwalajaca na monitorowanie procesow i + zdalne uruchamianie skryptow) +* brak ssh, ftp i edytora ee (oznacza to, ze musisz edytowac pliki + konfiguracyjne montujac dyskietke na normalnym systemie) +* dodany inetd, telnetd, routed, tftpd, bootpd, ps, kill, netstat, + ping, traceroute +* brak vnconfig i vn(4): w przypadku routera powinien on miec tyle pamieci + RAM, zeby nie potrzebowac swapu, lub miec normalny swap. +* dodana obsluga hasel (passwd(1)) +* dodana obsluga NFS (klient) +* sa dwaj uzytkownicy: root (haslo 'setup') i user (haslo 'PicoBSD'). Ze + wzgledu na skomplikowana sprawe z prawami dostepu, user praktycznie moze + jedynie zrobic te rzeczy, ktore nie wymagaja praw roota (czyli np. telnet). +* dodany skrypt 'update', ktory powoduje uaktualnienie zawartosci katalogu + /etc na dyskietce w stosunku do tego, co znajduje sie na MFS. + + +Milej zabawy! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/install/lang/boot.help.en b/release/picobsd/install/lang/boot.help.en new file mode 100644 index 000000000000..7cbce1354839 --- /dev/null +++ b/release/picobsd/install/lang/boot.help.en @@ -0,0 +1,18 @@ +Usage: bios_drive:interface(unit,partition)kernel_name options + bios_drive 0, 1, ... + interface fd, wd or sd + unit 0, 1, ... + partition a, c, ... + kernel_name name of kernel, or ? for list of files in root directory + options -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles) + -d (debug early) -g (gdb) -h (serial console) -P (probe kbd) + -r (default root) -s (single user) -v (verbose) +Examples: + 1:sd(0,a)mykernel boot `mykernel' on the first SCSI drive when one IDE + drive is present + 1:wd(2,a) boot from the second (secondary master) IDE drive + 1:sd(0,a)? list the files in the root directory on the specified + drive/unit/partition, and set the default bios_drive, + interface, unit and partition + -cv boot with the defaults, then run UserConfig to modify + hardware parameters (c), and print verbose messages (v) diff --git a/release/picobsd/install/lang/boot.help.pl b/release/picobsd/install/lang/boot.help.pl new file mode 100644 index 000000000000..bb5b422529aa --- /dev/null +++ b/release/picobsd/install/lang/boot.help.pl @@ -0,0 +1,16 @@ +Opcje: dysk_bios:kontroler(dysk,partycja)nazwa_kernela opcje + dysk_bios 0, 1, ... + kontroler fd (dyskietka), wd (dysk IDE) lub sd (dysk SCSI) + dysk 0, 1, ... (numer dysku w kontrolerze) + partycja a, c, e, f ... (wedlug nazewnictwa BSD) + nazwa_kernela nazwa pliku kernela, lub ? zeby dostac liste plikow + opcje -a (pytaj o rootdev) -C (cdrom) -c (userconf.) -D (podwojna konsola) + -d (uruchom debugger) -g (gdb) -h (konsola szeregowa) + -P (probkuj klawiature) -r (domyslny rootdev) -s (tryb single user) + -v (verbose - szczegolowe komunikaty) +Np: 1:sd(0,a)mykernel startuj `mykernel' z 1 dysku SCSI gdy jest tez 1 dysk + IDE, i jednoczesnie ustaw go jako domyslny dysk_bios, + kontroler, dysk i partycje + -cv startuj z parametrami domyslnymi, potem uruchom + konfiguracje param. sprzetowych (-c), i podawaj + szczegolowe komunikaty w trakcie bootowania (-v). diff --git a/release/picobsd/install/lang/hosts.en b/release/picobsd/install/lang/hosts.en new file mode 100644 index 000000000000..522c1811553a --- /dev/null +++ b/release/picobsd/install/lang/hosts.en @@ -0,0 +1,5 @@ +# $Id: hosts.en,v 1.1.1.1 1998/08/27 17:38:43 abial Exp $ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.edu +127.0.0.1 pico.mydomain.edu diff --git a/release/picobsd/install/lang/hosts.pl b/release/picobsd/install/lang/hosts.pl new file mode 100644 index 000000000000..c3563eae8767 --- /dev/null +++ b/release/picobsd/install/lang/hosts.pl @@ -0,0 +1,5 @@ +# $Id: hosts.pl,v 1.1.1.1 1998/08/27 17:38:43 abial Exp $ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.org.pl +127.0.0.1 pico.mydomain.org.pl diff --git a/release/picobsd/install/lang/motd.en b/release/picobsd/install/lang/motd.en new file mode 100644 index 000000000000..97194182eedf --- /dev/null +++ b/release/picobsd/install/lang/motd.en @@ -0,0 +1,12 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (NET) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +You can find a short description of the [35mpicoBSD[37m +system in file /README. You can view it using +"more /README". + +For more info contact the author (abial@freebsd.org). + diff --git a/release/picobsd/install/lang/motd.pl b/release/picobsd/install/lang/motd.pl new file mode 100644 index 000000000000..4b1fcf551518 --- /dev/null +++ b/release/picobsd/install/lang/motd.pl @@ -0,0 +1,12 @@ +======================================================= + [31m)\_)\[37m +PicoBSD @VER@ (NET) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Witamy w PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +W glownym katalogu w pliku README znajdziesz [35mpicoBSD[37m +krotki opis systemu. Mozesz go obejrzec przy pomocy +"more /README". + +Wiecej informacji znajdziesz u autora (abial@freebsd.org). + diff --git a/release/picobsd/install/lang/resolv.conf.pl b/release/picobsd/install/lang/resolv.conf.pl new file mode 100644 index 000000000000..fe9223b69f87 --- /dev/null +++ b/release/picobsd/install/lang/resolv.conf.pl @@ -0,0 +1,3 @@ +# $Id: resolv.conf.pl,v 1.1.1.1 1998/08/27 17:38:43 abial Exp $ +domain mydomain.org.pl +nameserver 148.81.16.51 diff --git a/release/picobsd/install/mfs.mtree b/release/picobsd/install/mfs.mtree new file mode 100644 index 000000000000..5df3481116ec --- /dev/null +++ b/release/picobsd/install/mfs.mtree @@ -0,0 +1,58 @@ +# +# $Id: mfs.mtree,v 1.1.1.1 1998/08/27 17:38:44 abial Exp $ +# +/set type=dir uname=root gname=wheel mode=0755 +. + dev + .. + dos + .. + etc + .. + home + user + .. + .. + mnt + .. + mnt1 + .. + mnt2 + .. + proc + .. + root + .. + stand + .. + start_floppy + .. + tftpboot + .. + tmp mode=01777 + .. + usr + local + share + snmp + mibs + .. + .. + .. + .. + share + misc + .. + .. + .. + var + db + .. + run + .. + spool + lock + .. + .. + .. +.. diff --git a/release/picobsd/isp/Makefile.mfs b/release/picobsd/isp/Makefile.mfs new file mode 100644 index 000000000000..12eeab618065 --- /dev/null +++ b/release/picobsd/isp/Makefile.mfs @@ -0,0 +1,10 @@ +# +# $FreeBSD$ +# + +MY_DEVS= std tun2 vty10 fd0 wd0s1h pty0 \ + cuaa0 cuaa1 cuaa2 cuaa3 cuaa4 \ + cuaa5 cuaa6 cuaa7 cuaa8 cuaa9 + +.include "../build/Makefile.mfs" + diff --git a/release/picobsd/isp/PICOBSD b/release/picobsd/isp/PICOBSD new file mode 100644 index 000000000000..0990679741ca --- /dev/null +++ b/release/picobsd/isp/PICOBSD @@ -0,0 +1,116 @@ +# +# $FreeBSD$ +# +# Line starting with #PicoBSD contains PicoBSD build parameters +#marker def_sz init MFS_inodes floppy_inodes +#PicoBSD 2200 init 4096 32768 +options MD_ROOT_SIZE=2200 # same as def_sz + +machine i386 +cpu I386_CPU +cpu I486_CPU +cpu I586_CPU +cpu I686_CPU +ident PICOBSD +maxusers 20 + +options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +options FFS #Berkeley Fast Filesystem +options FFS_ROOT #FFS usable as root device [keep this!] +options NFS #Network Filesystem +options NFS_NOSERVER #Network Filesystem +#options BOOTP +options MFS #Memory Filesystem +options MD_ROOT #MFS as root +options MSDOSFS #MSDOS Filesystem +options CD9660 #ISO 9660 Filesystem +options PROCFS #Process filesystem +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] +options USERCONFIG #boot -c editor +options INTRO_USERCONFIG #imply -c and parse info area +options VISUAL_USERCONFIG #visual boot -c editor +options IPFIREWALL +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPDIVERT +#options DEVFS +options PCI_QUIET +# Support for bridging and bandwidth limiting +options DUMMYNET +options HZ=1000 +#options NMBCLUSTERS=4096 +#options BRIDGE + +device isa +device pci + +device fdc + +device ata +device atadisk +device atapicd + +# atkbdc0 controls both the keyboard and the PS/2 mouse +device atkbdc 1 +device atkbd +device vga + +# syscons is the default console driver, resembling an SCO console +device sc 1 + +device npx + +device sio + +# Support for multiport serial cards + +options COM_MULTIPORT + +# Hayes ESP boards + +options COM_ESP + +# Comtrol Rocketport +# The PCI versions +#device rp +#device rp +# The ISA versions +device rp + +# Cyclades Cyclom-Y serial driver +device cy 1 + +device ppc +device ppbus +device lpt +device plip +device ppi + +# +# The following Ethernet NICs are all PCI devices. +# +device de +device fxp + +# Order is important here due to intrusive probes, do *not* alphabetize +# this list of network interfaces until the probes have been fixed. +# Right now it appears that the ie0 must be probed before ep0. See +# revision 1.20 of this file. + +device ed +device ep +device ie +device lnc + +device loop +device ether +# iijppp uses tun instead of ppp device +device ppp 8 +device tun 2 +#device vn +device pty 16 +device md +#device gzip # Exec gzipped a.out's + +options COMPAT_OLDISA #Use ISA shims and glue for old drivers + diff --git a/release/picobsd/isp/PICOBSD.hints b/release/picobsd/isp/PICOBSD.hints new file mode 100644 index 000000000000..d69345e0b2a6 --- /dev/null +++ b/release/picobsd/isp/PICOBSD.hints @@ -0,0 +1,101 @@ +# $FreeBSD$ +hint.fdc.0.at="isa" +hint.fdc.0.port="0x3F0" +hint.fdc.0.irq="6" +hint.fdc.0.drq="2" +hint.fd.0.at="fdc0" +hint.fd.0.drive="0" +hint.ata.0.at="isa" +hint.ata.0.port="0x1F0" +hint.ata.0.irq="14" +hint.ata.1.at="isa" +hint.ata.1.port="0x170" +hint.ata.1.irq="15" +hint.atkbdc.0.at="isa" +hint.atkbdc.0.port="0x060" +hint.atkbd.0.at="atkbdc" +hint.atkbd.0.irq="1" +hint.vga.0.at="isa" +hint.sc.0.at="isa" +hint.npx.0.at="nexus" +hint.npx.0.port="0x0F0" +hint.npx.0.irq="13" +hint.sio.0.at="isa" +hint.sio.0.port="0x3F8" +hint.sio.0.flags="0x10" +hint.sio.0.irq="4" +hint.sio.1.at="isa" +hint.sio.1.port="0x2F8" +hint.sio.1.irq="3" +hint.sio.2.at="isa" +hint.sio.2.port="0x3E8" +hint.sio.2.irq="5" +hint.sio.3.at="isa" +hint.sio.3.port="0x2E8" +hint.sio.3.irq="9" +hint.sio.4.at="isa" +hint.sio.4.port="0x2a0" +hint.sio.4.flags="0x701" +hint.sio.5.at="isa" +hint.sio.5.port="0x2a8" +hint.sio.5.flags="0x701" +hint.sio.6.at="isa" +hint.sio.6.port="0x2b0" +hint.sio.6.flags="0x701" +hint.sio.7.at="isa" +hint.sio.7.port="0x2b8" +hint.sio.7.flags="0x701" +hint.sio.7.irq="12" +hint.sio.8.at="isa" +hint.sio.8.port="0x120" +hint.sio.8.flags="0xb05" +hint.sio.9.at="isa" +hint.sio.9.port="0x128" +hint.sio.9.flags="0xb05" +hint.sio.10.at="isa" +hint.sio.10.port="0x130" +hint.sio.10.flags="0xb05" +hint.sio.11.at="isa" +hint.sio.11.port="0x138" +hint.sio.11.flags="0xb05" +hint.sio.11.irq="12" +hint.rp.0.at="isa" +hint.rp.0.port="0x100" +hint.rp.1.at="isa" +hint.rp.1.port="0x180" +hint.cy.0.at="isa" +hint.cy.0.irq="10" +hint.cy.0.maddr="0xd4000" +hint.cy.0.msize="0x2000" +hint.cy.1.at="isa" +hint.cy.1.irq="11" +hint.cy.1.maddr="0xd6000" +hint.cy.1.msize="0x2000" +hint.ppc.0.at="isa" +hint.ppc.0.flags="0x40" +hint.ppc.0.irq="7" +hint.lpt.0.at="ppbus" +hint.plip.0.at="ppbus" +hint.ppi.0.at="ppbus" +hint.ed.0.at="isa" +hint.ed.0.port="0x280" +hint.ed.0.irq="5" +hint.ed.0.maddr="0xd8000" +hint.ed.1.at="isa" +hint.ed.1.port="0x300" +hint.ed.1.irq="5" +hint.ed.1.maddr="0xd0000" +hint.ep.0.at="isa" +hint.ep.0.port="0x300" +hint.ep.0.irq="10" +hint.ep.1.at="isa" +hint.ep.1.port="0x280" +hint.ep.1.irq="5" +hint.ie.0.at="isa" +hint.ie.0.port="0x300" +hint.ie.0.irq="5" +hint.ie.0.maddr="0xd0000" +hint.lnc.0.at="isa" +hint.lnc.0.port="0x300" +hint.lnc.0.irq="10" +hint.lnc.0.drq="0" diff --git a/release/picobsd/isp/crunch1/crunch.conf b/release/picobsd/isp/crunch1/crunch.conf new file mode 100644 index 000000000000..ecbf65ed270c --- /dev/null +++ b/release/picobsd/isp/crunch1/crunch.conf @@ -0,0 +1,50 @@ +# +# $FreeBSD$ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# Default build options +buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec +# sources for ns & vm +srcdirs ../../tinyware + +progs sh test echo hostname ln login getty +progs inetd telnetd stty w msg kget natd reboot +progs init fsck ifconfig df ps ns vm cat +progs cp rm mkdir ls chmod chown +progs sysctl route swapon pwd_mkdb dev_mkdb +progs mount mount_msdos umount comcontrol +progs kill mount_std natd + +progs minigzip +ln minigzip gzip +progs pwd pppd telnet less +ln less more +progs passwd date +progs mount_cd9660 mount_nfs ping traceroute routed ipfw + +ln mount_cd9660 cd9660 +ln mount_nfs nfs +ln test [ +ln sh -sh +#ln newfs mount_mfs +ln chown chgrp +ln mount_msdos msdos +ln mount_std procfs +ln mount_std mount_procfs +ln msg dmesg +ln ns netstat + +libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -lmytinfo -lipx -lz -lpcap -lalias -lwrap +libs -ltermcap -lgnuregex -ltelnet -lcurses diff --git a/release/picobsd/isp/floppy.tree.exclude b/release/picobsd/isp/floppy.tree.exclude new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/isp/floppy.tree.exclude diff --git a/release/picobsd/isp/lang/README.en b/release/picobsd/isp/lang/README.en new file mode 100644 index 000000000000..3f4128d10a4a --- /dev/null +++ b/release/picobsd/isp/lang/README.en @@ -0,0 +1,37 @@ +1999.04.20, Warsaw, Poland + + PicoBSD @VER@ + ----------- + + +What is PicoBSD? +---------------- + +It's a one floppy version of FreeBSD (please see http://www.freebsd.org), +configured mainly for networking applications. It can be used as a router or +firewall, or kind of a fixit floppy (or all of them). + +What are minimal requirements? +------------------------------ + +* 386SX CPU or better (there is an FPU emulator in kernel) +* 10MB RAM - the more the better. If you have an HDD, you can make a + swap partition or swap file (using vnode driver and vnconfig). Then you + probably will be able to run with ca. 6MB only. But RAM is cheap... +* Modem sitting on COM1-COM4 (default is to use COM2), if you want to have + a PPP connection. +* Network card: compatible with NE2000, or PCI cards with DEC chipsets + (ed and de drivers). The kernel supports two of them (i.e. four total) plus + two PPP connections (tun interfaces). So you can easily build something like + router with as many as 6 outlets :-) + +If you want to build a NAT (a.k.a. masquerading) router for your local +network, it's often enough if you run 'ppp -alias' on your serial line. +However, if you use ethernet cards, you should use combination of natd(8) +and ipfw(8). See the documentation on your full FreeBSD system. + +I'll be glad hearing from you about your experiences with PicoBSD. Thanks. + +Have fun! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/isp/lang/README.pl b/release/picobsd/isp/lang/README.pl new file mode 100644 index 000000000000..a680e20c3f4a --- /dev/null +++ b/release/picobsd/isp/lang/README.pl @@ -0,0 +1,33 @@ +1998.07.29, Warszawa + + PicoBSD @VER@ + ----------- + +Co to jest PicoBSD? +------------------- + +Jest to jednodyskietkowa wersja FreeBSD skonfigurowana glownie pod katem +zastosowania jako klient/serwer uslug sieciowych (takich jak routing, +firewall, NFS). W celu zapoznania sie z pelnym systemem zajrzyj na +http://www.freebsd.org + +Jakie sa minimalne wymagania? +----------------------------- + +* Procesor 386SX lub lepszy (jadro posiada emulator FPU) +* 10MB pamieci - jest to absolutnie nieprzekraczalne minimum. Oczywiscie im + wiecej, tym lepiej - ograniczenie jest glownie spowodowane brakiem swapu. Po + zapoznaniu sie z systemem mozesz sobie skonfigurowac tzw. swap-file na dysku + twardym, np. na partycji DOS-owej. Wowczas prawdopodobnie wystarczy 6MB + pamieci. +* Modem, skonfigurowany na COM1-COM4 (standardowo system wykorzystuje COM2), + jesli bedzie wykorzystywany dostep przez PPP. +* Karta sieciowa: kompatybilna z NE2000, niektore typy 3Com, lub wersje PCI z + chipsetem DEC21040 (drivery ed i de). Jadro jest skonfigurowane tak, zeby + moc obsluzyc po dwie karty ed i de (czyli w sumie cztery) oraz dwa + polaczenia PPP rownoczesnie. Mozna wiec zbudowac router z 6 interfejsami. + + +Milej zabawy! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/isp/lang/boot.help.en b/release/picobsd/isp/lang/boot.help.en new file mode 100644 index 000000000000..7cbce1354839 --- /dev/null +++ b/release/picobsd/isp/lang/boot.help.en @@ -0,0 +1,18 @@ +Usage: bios_drive:interface(unit,partition)kernel_name options + bios_drive 0, 1, ... + interface fd, wd or sd + unit 0, 1, ... + partition a, c, ... + kernel_name name of kernel, or ? for list of files in root directory + options -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles) + -d (debug early) -g (gdb) -h (serial console) -P (probe kbd) + -r (default root) -s (single user) -v (verbose) +Examples: + 1:sd(0,a)mykernel boot `mykernel' on the first SCSI drive when one IDE + drive is present + 1:wd(2,a) boot from the second (secondary master) IDE drive + 1:sd(0,a)? list the files in the root directory on the specified + drive/unit/partition, and set the default bios_drive, + interface, unit and partition + -cv boot with the defaults, then run UserConfig to modify + hardware parameters (c), and print verbose messages (v) diff --git a/release/picobsd/isp/lang/boot.help.pl b/release/picobsd/isp/lang/boot.help.pl new file mode 100644 index 000000000000..d60601ff4c9e --- /dev/null +++ b/release/picobsd/isp/lang/boot.help.pl @@ -0,0 +1,16 @@ +Opcje: dysk_bios:kontroler(dysk,partycja)nazwa_kernela opcje + dysk_bios 0, 1, ... + kontroler fd (dyskietka), wd (dysk IDE) lub sd (dysk SCSI) + dysk 0, 1, ... (numer dysku w kontrolerze) + partycja a, c, e, f ... (wedlug nazewnictwa BSD) + nazwa_kernela nazwa pliku kernela, lub ? zeby dostac liste plikow + opcje -a (pytaj o rootdev) -C (cdrom) -c (userconf.) -D (podwojna konsola) + -d (uruchom debugger) -g (gdb) -h (konsola szeregowa) + -P (probkuj klawiature) -r (domyslny rootdev) -s (tryb single user) + -v (verbose - szczegolowe komunikaty) +Np: 1:sd(0,a)mykernel startuj `mykernel' z 1 dysku SCSI gdy jest tez 1 dysk + IDE, i jednoczesnie ustaw go jako domyslny dysk_bios, + kontroler, dysk i partycja + -cv startuj z parametrami domyslnymi, potem uruchom + konfiguracje param. sprzetowych (-c), i podawaj + szczegolowe komunikaty w trakcie bootowania (-v). diff --git a/release/picobsd/isp/lang/motd.en b/release/picobsd/isp/lang/motd.en new file mode 100644 index 000000000000..86b4f8a0708a --- /dev/null +++ b/release/picobsd/isp/lang/motd.en @@ -0,0 +1,12 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (ISP-alpha) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +You can find a short description of the [35mpicoBSD[37m +system in file /README. You can view it using +"more /README". + +For more info contact the author (abial@freebsd.org). + diff --git a/release/picobsd/isp/lang/motd.pl b/release/picobsd/isp/lang/motd.pl new file mode 100644 index 000000000000..749792d823e4 --- /dev/null +++ b/release/picobsd/isp/lang/motd.pl @@ -0,0 +1,12 @@ +======================================================= + [31m)\_)\[37m +PicoBSD @VER@ (ISP-alpha) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Witamy w PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +W glownym katalogu w pliku README znajdziesz [35mpicoBSD[37m +krotki opis systemu. Mozesz go obejrzec przy pomocy +"more /README". + +Wiecej informacji znajdziesz u autora (abial@freebsd.org). + diff --git a/release/picobsd/isp/mfs.mtree b/release/picobsd/isp/mfs.mtree new file mode 100644 index 000000000000..b8057bb46a4e --- /dev/null +++ b/release/picobsd/isp/mfs.mtree @@ -0,0 +1,56 @@ +# +# $FreeBSD$ +# +/set type=dir uname=root gname=wheel mode=0755 +. + dev + .. + dos + .. + etc + .. + home + user + .. + .. + mnt + .. + mnt1 + .. + mnt2 + .. + proc + .. + root + .. + stand + .. + start_floppy + .. + tftpboot + .. + tmp mode=01777 + .. + usr + local + lib + snmp + .. + .. + .. + share + misc + .. + .. + .. + var + db + .. + run + .. + spool + lock + .. + .. + .. +.. diff --git a/release/picobsd/mfs_tree/etc/login.conf b/release/picobsd/mfs_tree/etc/login.conf new file mode 100644 index 000000000000..60e50f4c03bf --- /dev/null +++ b/release/picobsd/mfs_tree/etc/login.conf @@ -0,0 +1,62 @@ +# $FreeBSD$ + +# Authentication methods + +auth-defaults:\ + :auth=krb_skey_or_passwd,passwd,kerberos,skey: + +auth-root-defaults:\ + :auth-login=krb_skey_or_passwd,passwd,kerberos,skey:\ + :auth-rlogin=krb_or_skey,kerberos,skey: +auth-ftp-defaults:\ + :auth=skey_or_pwd,passwd,skey: +# Example defaults +default:\ + :cputime=infinity:\ + :datasize-cur=22M:\ + :stacksize-cur=8M:\ + :memorylocked-cur=10M:\ + :memoryuse-cur=30M:\ + :filesize=infinity:\ + :coredumpsize=0:\ + :maxproc-cur=64:\ + :openfiles-cur=64:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-defaults: + +# root - fallback for root logins +root:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :cputime=infinity:\ + :datasize=infinity:\ + :stacksize=infinity:\ + :memorylocked=infinity:\ + :memoryuse=infinity:\ + :filesize=infinity:\ + :coredumpsize=0:\ + :openfiles=infinity:\ + :maxproc=infinity:\ + :memoryuse-cur=32M:\ + :maxproc-cur=64:\ + :openfiles-cur=1024:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-root-defaults: +# Settings used by /etc/rc +daemon:\ + :coredumpsize@:\ + :coredumpsize-cur=0:\ + :datasize=infinity:\ + :datasize-cur@:\ + :maxproc=512:\ + :maxproc-cur@:\ + :memoryuse-cur=64M:\ + :memorylocked-cur=64M:\ + :openfiles=1024:\ + :openfiles-cur@:\ + :stacksize=16M:\ + :stacksize-cur@:\ + :tc=default: diff --git a/release/picobsd/mfs_tree/etc/rc b/release/picobsd/mfs_tree/etc/rc new file mode 100644 index 000000000000..f4273370bcb6 --- /dev/null +++ b/release/picobsd/mfs_tree/etc/rc @@ -0,0 +1,31 @@ +#!/bin/sh +# $FreeBSD$ +# WARNING !!! We overwrite this file during execution with a new rc file. +# Awful things happen if this file's size is > 1024B + +stty status '^T' +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +### Special setup for one floppy PICOBSD ### +dev="/dev/fd0c" +echo "Reading /etc from ${dev}..." +mount -o rdonly ${dev} /mnt +cd /mnt/etc ; cp -Rp . /etc/ +cp -Rp /mnt/root / +cd /etc +#rm files to stop overwrite warning +rm rc login.conf +gzip -d *.gz +pwd_mkdb -p ./master.passwd +umount /mnt +echo "Ok. (Now you can remove ${dev} if you like)" +echo "" +. rc +exit 0 diff --git a/release/picobsd/mfs_tree/stand/update b/release/picobsd/mfs_tree/stand/update new file mode 100755 index 000000000000..1b2193eda576 --- /dev/null +++ b/release/picobsd/mfs_tree/stand/update @@ -0,0 +1,39 @@ +#!/bin/sh +# $FreeBSD$ +# script to edit and save some config file(s) +thefiles=$* +pwd=`pwd` +dev="/dev/fd0c" +echo "Updating content on ${dev}: " +mount ${dev} /mnt +if [ "X$?" != "X0" ] ; then + echo "" + echo "Cannot mount ${dev} read-write!" + exit 1 +fi +if [ "$thefiles" = "" ] ; then + srcs=`ls /etc` + for i in $srcs ; do + if [ -f /mnt/etc/$i.gz ] ; then + echo -n "$i ..." + gzip < /etc/$i > /mnt/etc/$i.gz + fi + done +elif [ "$thefiles" = "passwd" ] ; then + ee /etc/master.passwd + pwd_mkdb master.passwd + gzip < /etc/master.passwd /mnt/etc/master.passwd.gz +else + for i in $thefiles; do + if [ -f $i ] ; then + ee $i + gzip < $i > /mnt/$i.gz + fi + done +fi +echo " Done." +echo -n "Updating kernel parameters... " +kget /mnt/boot/kernel.conf +umount /mnt +cd ${pwd} +echo " Done." diff --git a/release/picobsd/net/Makefile.mfs b/release/picobsd/net/Makefile.mfs new file mode 100644 index 000000000000..e471061c9b3c --- /dev/null +++ b/release/picobsd/net/Makefile.mfs @@ -0,0 +1,7 @@ +# +# $FreeBSD$ +# + +MY_DEVS= std tun2 cuaa0 cuaa1 cuaa2 vty10 fd0 wd0s1h pty0 + +.include "../build/Makefile.mfs" diff --git a/release/picobsd/net/PICOBSD b/release/picobsd/net/PICOBSD new file mode 100644 index 000000000000..d11eb94dc543 --- /dev/null +++ b/release/picobsd/net/PICOBSD @@ -0,0 +1,90 @@ +# +# $FreeBSD$ +# +#Line starting with #PicoBSD contains PicoBSD build parameters +#marker def_sz init MFS_inodes floppy_inodes +#PicoBSD 2200 init 4096 32768 +options MD_ROOT_SIZE=2200 # same as def_sz + +machine i386 +cpu I386_CPU +cpu I486_CPU +cpu I586_CPU +cpu I686_CPU +ident PICOBSD +maxusers 10 + +options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +options FFS #Berkeley Fast Filesystem +options FFS_ROOT #FFS usable as root device [keep this!] +options NFS_NOSERVER #Network Filesystem +options MFS #Memory Filesystem +options MD_ROOT #MFS as root +options MSDOSFS #MSDOS Filesystem +options CD9660 #ISO 9660 Filesystem +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] +options USERCONFIG #boot -c editor +options INTRO_USERCONFIG #imply -c and parse info area +options VISUAL_USERCONFIG #visual boot -c editor +options IPFIREWALL +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPDIVERT +options PCI_QUIET +options COMPAT_OLDISA #Use ISA shims and glue for old drivers +#options DEVFS +# Support for bridging and bandwidth limiting +#options DUMMYNET +#options BRIDGE + +device isa +device pci + +device fdc + +device ata +device atadisk +device atapicd +options ATA_STATIC_ID #Static device numbering + +# atkbdc0 controls both the keyboard and the PS/2 mouse +device atkbdc 1 +device atkbd + +device vga + +# syscons is the default console driver, resembling an SCO console +device sc 1 + +device npx + +device sio + +device ppc +device ppbus +device lpt +device plip +device ppi + +# +# The following Ethernet NICs are all PCI devices. +# +device de +device fxp + +# Order is important here due to intrusive probes, do *not* alphabetize +# this list of network interfaces until the probes have been fixed. +# Right now it appears that the ie0 must be probed before ep0. See +# revision 1.20 of this file. + +device ed +device ep +device ie + +device loop +device ether +device tun 2 +#device vn +device pty 16 +device md +#device gzip # Exec gzipped a.out's diff --git a/release/picobsd/net/PICOBSD.hints b/release/picobsd/net/PICOBSD.hints new file mode 100644 index 000000000000..676ea781caa3 --- /dev/null +++ b/release/picobsd/net/PICOBSD.hints @@ -0,0 +1,65 @@ +# $FreeBSD$ +hint.fdc.0.at="isa" +hint.fdc.0.port="0x3F0" +hint.fdc.0.irq="6" +hint.fdc.0.drq="2" +hint.fd.0.at="fdc0" +hint.fd.0.drive="0" +hint.ata.0.at="isa" +hint.ata.0.port="0x1F0" +hint.ata.0.irq="14" +hint.ata.1.at="isa" +hint.ata.1.port="0x170" +hint.ata.1.irq="15" +hint.atkbdc.0.at="isa" +hint.atkbdc.0.port="0x060" +hint.atkbd.0.at="atkbdc" +hint.atkbd.0.irq="1" +hint.vga.0.at="isa" +hint.sc.0.at="isa" +hint.npx.0.at="nexus" +hint.npx.0.port="0x0F0" +hint.npx.0.irq="13" +hint.sio.0.at="isa" +hint.sio.0.port="0x3F8" +hint.sio.0.flags="0x10" +hint.sio.0.irq="4" +hint.sio.1.at="isa" +hint.sio.1.port="0x2F8" +hint.sio.1.irq="3" +hint.sio.2.at="isa" +hint.sio.2.disabled="1" +hint.sio.2.port="0x3E8" +hint.sio.2.irq="5" +hint.sio.3.at="isa" +hint.sio.3.disabled="1" +hint.sio.3.port="0x2E8" +hint.sio.3.irq="9" +hint.ppc.0.at="isa" +hint.ppc.0.flags="0x40" +hint.ppc.0.irq="7" +hint.lpt.0.at="ppbus" +hint.plip.0.at="ppbus" +hint.ppi.0.at="ppbus" +hint.ed.0.at="isa" +hint.ed.0.port="0x280" +hint.ed.0.irq="5" +hint.ed.0.maddr="0xd8000" +hint.ed.1.at="isa" +hint.ed.1.port="0x300" +hint.ed.1.irq="10" +hint.ed.1.maddr="0xd0000" +hint.ep.0.at="isa" +hint.ep.0.port="0x300" +hint.ep.0.irq="10" +hint.ep.1.at="isa" +hint.ep.1.port="0x280" +hint.ep.1.irq="5" +hint.ie.0.at="isa" +hint.ie.0.port="0x300" +hint.ie.0.irq="5" +hint.ie.0.maddr="0xd0000" +hint.ie.1.at="isa" +hint.ie.1.port="0x360" +hint.ie.1.irq="7" +hint.ie.1.maddr="0xd0000" diff --git a/release/picobsd/net/crunch1/crunch.conf b/release/picobsd/net/crunch1/crunch.conf new file mode 100644 index 000000000000..587296ff91c0 --- /dev/null +++ b/release/picobsd/net/crunch1/crunch.conf @@ -0,0 +1,53 @@ +# +# $FreeBSD$ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# Default build options. +buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec +# sources for ns & vm +srcdirs ../../tinyware + +progs sh test echo hostname ln login getty stty +progs inetd telnetd w msg kget reboot +progs init ifconfig df sps ns vm cat +progs cp rm mknod chmod chown mkdir ls syslogd +progs sysctl route pwd_mkdb dev_mkdb +progs mount mount_msdos umount +progs kill mount_std natd + +progs pwd telnet less +ln less more +progs passwd date +progs mount_cd9660 mount_nfs ping traceroute routed ipfw + +progs ppp +special ppp buildopts -DNOKLDLOAD -DNOINET6 -DNONAT -DNOATM -DNOSUID -DHAVE_DES -DNORADIUS -DNOI4B + +progs minigzip +ln minigzip gzip +ln mount_cd9660 cd9660 +ln mount_nfs nfs +ln test [ +ln sh -sh +ln mount_msdos msdos +ln mount_std procfs +ln mount_std mount_procfs +ln sps ps +ln msg dmesg +ln ns netstat +ln chown chgrp + +libs -lncurses -lmytinfo -lipx -lz -lpcap -lalias -lwrap +libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -lgnuregex -ltelnet diff --git a/release/picobsd/net/floppy.tree/boot.config b/release/picobsd/net/floppy.tree/boot.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/net/floppy.tree/boot.config diff --git a/release/picobsd/net/floppy.tree/etc/disktab b/release/picobsd/net/floppy.tree/etc/disktab new file mode 100644 index 000000000000..7575ba66e088 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/disktab @@ -0,0 +1,87 @@ +# +# Floppy formats: +# +# To make a filesystem on a floppy: +# fdformat [-f <size>] fd<drive>[.<size>] +# disklabel -B -r -w fd<drive>[.<size>] fd<size> +# newfs <opts> fd<drive>[.<size>] +# +# with <opts>: +# -t 2 - two heads +# -u 9|15|18 - sectors per track +# (using the default value of 1/4096 is not much useful for floppies) +# -l 1 - interleave 1 (for most floppies) +# -i 65536 - bytes of data per i-node +# (the default -i value will render you with a floppy wasting way +# too much space in i-node areas) +# + +fd360:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\ + :pa#720:oa#0:ba#4096:fa#512:\ + :pb#720:ob#0:bb#4096:fb#512:\ + :pc#720:oc#0:bc#4096:fc#512: + +fd720:\ + :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\ + :pa#1440:oa#0:ba#4096:fa#512:\ + :pb#1440:ob#0:bb#4096:fb#512:\ + :pc#1440:oc#0:bc#4096:fc#512: + +fd1200|floppy5|5in|5.25in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\ + :pa#2400:oa#0:ba#4096:fa#512:\ + :pb#2400:ob#0:bb#4096:fb#512:\ + :pc#2400:oc#0:bc#4096:fc#512: + +fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pb#2880:ob#0:bb#4096:fb#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +fd1024|floppy0|3.5in Special Density Floppy:\ + :ty=floppy:se#512:nt#2:rm#300:ns#16:nc#64:\ + :pa#2048:oa#0:ba#4096:fa#512:\ + :pb#2048:ob#0:bb#4096:fb#512:\ + :pc#2048:oc#0:bc#4096:fc#512: + +# a == root +# b == swap +# c == d == whole disk +# e == /var +# f == scratch +# h == /usr + +cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\ + :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \ + :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \ + :pb#24288:ob#15840:tb=swap: \ + :pc#202224:oc#0: \ + :pd#202224:od#0: \ + :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \ + :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \ + :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512: + +sony650|Sony 650 MB MOD|\ + :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\ + :pc#576600:oc#0:\ + :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024: + +mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\ + :ty=removeable:dt=SCSI:rm#3600:\ + :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\ + :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\ + :pc#444384:oc#0: + +minimum:ty=mfs:se#512:nt#1:rm#300:\ + :ns#2880:nc#1:\ + :pa#2880:oa#0:ba#4096:fa#512:\ + :pc#2880:oc#0:bc#4096:fc#512: + +zip100|zip 100:\ + :ty=removable:se#512:nc#96:nt#64:ns#32:\ + :pa#196608:oa#0:ba#4096:fa#512:\ + :pb#196608:ob#0:bb#4096:fb#512:\ + :pc#196608:oc#0:bc#4096:fc#512: + diff --git a/release/picobsd/net/floppy.tree/etc/fstab b/release/picobsd/net/floppy.tree/etc/fstab new file mode 100644 index 000000000000..64d34ca9b1ae --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/fstab @@ -0,0 +1,4 @@ +#proc /proc procfs rw 0 0 +#/dev/fd0c /start_floppy ufs rw 1 1 +#/dev/wd0s1 /dos msdos rw 0 0 +#/dev/wcd0c /cdrom cd9660 ro,noauto 0 0 diff --git a/release/picobsd/net/floppy.tree/etc/gettytab b/release/picobsd/net/floppy.tree/etc/gettytab new file mode 100644 index 000000000000..90562acf2505 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/gettytab @@ -0,0 +1,40 @@ +# from: @(#)gettytab 5.14 (Berkeley) 3/27/91 +# +default:\ + :cb:ce:ck:lc:fd#1000:cl:im=\r\nPicoBSD (%h) (%t)\r\n\r\n:sp#1200: + +P|Pc|Pc console:\ + :ht:np:sp#115200: + +# +# Fixed speed entries +2|std.9600|9600-baud:\ + :np:sp#9600: +g|std.19200|19200-baud:\ + :np:sp#19200: +std.38400|38400-baud:\ + :np:sp#38400: +std.57600|57600-baud:\ + :np:sp#57600: +std.115200|115200-baud:\ + :np:sp#115200: + +# +# Entry specifying explicit device settings. See termios(4) and +# /usr/include/termios.h, too. The entry forces the tty into +# CLOCAL mode (so no DCD is required), and uses Xon/Xoff flow control. +# +# cflags: CLOCAL | HUPCL | CREAD | CS8 +# oflags: OPOST | ONLCR | OXTABS +# iflags: IXOFF | IXON | ICRNL | IGNPAR +# lflags: IEXTEN | ICANON | ISIG | ECHOCTL | ECHO | ECHOK | ECHOE | ECHOKE +# +# The `0' flags don't have input enabled. The `1' flags don't echo. +# (Echoing is done inside getty itself.) +# +local.9600|CLOCAL tty @ 9600 Bd:\ + :c0#0x0000c300:c1#0x0000cb00:c2#0x0000cb00:\ + :o0#0x00000007:o1#0x00000002:o2#0x00000007:\ + :i0#0x00000704:i1#0x00000000:i2#0x00000704:\ + :l0#0x000005cf:l1#0x00000000:l2#0x000005cf:\ + :sp#9600: diff --git a/release/picobsd/net/floppy.tree/etc/group b/release/picobsd/net/floppy.tree/etc/group new file mode 100644 index 000000000000..abbd733f3b0b --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/group @@ -0,0 +1,19 @@ +wheel:*:0:root,user +daemon:*:1:daemon +kmem:*:2:root +sys:*:3:root +tty:*:4:root +operator:*:5:root +mail:*:6: +bin:*:7: +news:*:8: +man:*:9: +games:*:13: +staff:*:20:root,user +guest:*:31:root +uucp:*:66: +xten:*:67:xten +dialer:*:68: +network:*:69: +nogroup:*:65533: +nobody:*:65534: diff --git a/release/picobsd/net/floppy.tree/etc/host.conf b/release/picobsd/net/floppy.tree/etc/host.conf new file mode 100644 index 000000000000..753112455a69 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/host.conf @@ -0,0 +1,3 @@ +# $FreeBSD$ +hosts +bind diff --git a/release/picobsd/net/floppy.tree/etc/inetd.conf b/release/picobsd/net/floppy.tree/etc/inetd.conf new file mode 100644 index 000000000000..c7c50de341e4 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/inetd.conf @@ -0,0 +1,21 @@ +# +# Internet server configuration database +# +# @(#)inetd.conf 5.4 (Berkeley) 6/30/90 +# +telnet stream tcp nowait root /usr/libexec/telnetd telnetd +# +# "Small servers" -- used to be standard on, but we're more conservative +# about things due to Internet security concerns. Only turn on what you +# need. +# +#daytime stream tcp nowait root internal +#daytime dgram udp wait root internal +#time stream tcp nowait root internal +#time dgram udp wait root internal +#echo stream tcp nowait root internal +#echo dgram udp wait root internal +#discard stream tcp nowait root internal +#discard dgram udp wait root internal +#chargen stream tcp nowait root internal +#chargen dgram udp wait root internal diff --git a/release/picobsd/net/floppy.tree/etc/login.conf b/release/picobsd/net/floppy.tree/etc/login.conf new file mode 100644 index 000000000000..1f2f02777ddd --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/login.conf @@ -0,0 +1,120 @@ +# This file controls resource limits, accounting limits and +# default user environment settings. +# +# $FreeBSD$ +# + + +# Authentication methods + +auth-defaults:\ + :auth=passwd: + +auth-root-defaults:\ + :auth-login=passwd:\ + :auth-rlogin=passwd:\ + +auth-ftp-defaults:\ + :auth=passwd: + +# Example defaults +# These settings are used by login(1) by default for classless users +# Note that entries like "cputime" set both "cputime-cur" and "cputime-max" + +default:\ + :cputime=infinity:\ + :datasize-cur=22M:\ + :stacksize-cur=8M:\ + :memorylocked-cur=10M:\ + :memoryuse-cur=30M:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :maxproc-cur=64:\ + :openfiles-cur=64:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-defaults: + + +# +# standard - standard user defaults +# +standard:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,EDITOR=/usr/bin/ee:\ + :path=~/bin /bin /usr/bin:\ + :nologin=/var/run/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=90d:\ + :umask=002:\ + :ignoretime@:\ + :tc=default: +# +# Staff users - few restrictions and allow login anytime +# +staff:\ + :ignorenologin:\ + :ignoretime:\ + :requirehome@:\ + :accounted@:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :umask=022:\ + :tc=standard: + + +# +# root - fallback for root logins +# +root:\ + :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\ + :cputime=infinity:\ + :datasize=infinity:\ + :stacksize=infinity:\ + :memorylocked=infinity:\ + :memoryuse=infinity:\ + :filesize=infinity:\ + :coredumpsize=infinity:\ + :openfiles=infinity:\ + :maxproc=infinity:\ + :memoryuse-cur=32M:\ + :maxproc-cur=64:\ + :openfiles-cur=1024:\ + :priority=0:\ + :requirehome@:\ + :umask=022:\ + :tc=auth-root-defaults:\ +# +# Settings used by /etc/rc +# +daemon:\ + :coredumpsize@:\ + :coredumpsize-cur=0:\ + :datasize=infinity:\ + :datasize-cur@:\ + :maxproc=512:\ + :maxproc-cur@:\ + :memoryuse-cur=64M:\ + :memorylocked-cur=64M:\ + :openfiles=1024:\ + :openfiles-cur@:\ + :stacksize=16M:\ + :stacksize-cur@:\ + :tc=default: +# +# Polish Users Accounts. Setup proper environment variables. +# +polish:Polish Users Accounts:\ + :lang=pl_pl.ISO-8859-2:\ + :tc=default: diff --git a/release/picobsd/net/floppy.tree/etc/master.passwd b/release/picobsd/net/floppy.tree/etc/master.passwd new file mode 100644 index 000000000000..9d85cdf91b0e --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/master.passwd @@ -0,0 +1,7 @@ +root:$1$xOOaGnKU$U9QdsCI40XXcCUMBN.7Az.:0:0::0:0:Charlie &:/root:/bin/sh +toor:*:0:0::0:0:Bourne-again Superuser:/root: +daemon:*:1:1::0:0:Owner of many system processes:/root:/nonexistent +operator:*:2:20::0:0:System &:/usr/guest/operator:/bin/csh +bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/nonexistent +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/nonexistent +user:$1$T9q8Coad$WatJttamwr2UAdbfKbWxj.:1002:1002:polish:0:0:user:/home/user:/bin/sh diff --git a/release/picobsd/net/floppy.tree/etc/mfs.rc b/release/picobsd/net/floppy.tree/etc/mfs.rc new file mode 100644 index 000000000000..0ae2d0170eef --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/mfs.rc @@ -0,0 +1,35 @@ +#!/bin/sh +# $FreeBSD$ +### WARNING !!!!!! ##### +# We remove this file during execution (see EOF). +# Awful things happen if its size is > 1024B + +stty status '^T' + +trap : 2 +trap : 3 + +HOME=/; export HOME +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin +export PATH + +trap "echo 'Reboot interrupted'; exit 1" 3 + +### Special setup for one floppy PICOBSD ### +echo "" +echo "-------------------------------------------" +echo " Please wait. The system is coming up..." +echo "-------------------------------------------" +echo "" +echo "Reading /etc from startup floppy..." +mount -o rdonly /dev/fd0a /start_floppy +cd /start_floppy/etc +cp -Rp . /etc/ +cd /etc +gzip -d -f *.gz +pwd_mkdb -p ./master.passwd +umount /start_floppy +echo "Ok. (Now you can remove floppy if you like)" +echo "" +. rc +exit 0 diff --git a/release/picobsd/net/floppy.tree/etc/ppp/ppp.conf b/release/picobsd/net/floppy.tree/etc/ppp/ppp.conf new file mode 100644 index 000000000000..ed5da5dd72ce --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/ppp/ppp.conf @@ -0,0 +1,8 @@ +# PPP Sample Configuration File +# Written by Toshiharu OHNO +default: + set device /dev/cuaa1 + set speed 38400 + disable lqr + deny lqr + set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\T TIMEOUT 40 CONNECT" diff --git a/release/picobsd/net/floppy.tree/etc/ppp/ppp.deny b/release/picobsd/net/floppy.tree/etc/ppp/ppp.deny new file mode 100644 index 000000000000..51e1e9bd03e3 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/ppp/ppp.deny @@ -0,0 +1,15 @@ +# list of users disallowed any pppd access via 'system +# password login'. +# read by pppd(8). +root +toor +daemon +operator +bin +games +news +man +ftp +uucp +xten +ingres diff --git a/release/picobsd/net/floppy.tree/etc/ppp/ppp.linkup b/release/picobsd/net/floppy.tree/etc/ppp/ppp.linkup new file mode 100644 index 000000000000..05107c6df855 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/ppp/ppp.linkup @@ -0,0 +1,10 @@ +# Example of ppp.linkup file +# +iij-demand: + delete ALL + add 0 0 HISADDR +# +# Otherwise, simply add peer as default gateway. +# +MYADDR: + add 0 0 HISADDR diff --git a/release/picobsd/net/floppy.tree/etc/ppp/ppp.secret.sample b/release/picobsd/net/floppy.tree/etc/ppp/ppp.secret.sample new file mode 100644 index 000000000000..bfaab7681aa5 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/ppp/ppp.secret.sample @@ -0,0 +1,23 @@ +################################################## +# +# Example of ppp.secret file +# +# This file is used to authenticate incoming connections. +# You must ``enable'' either PAP or CHAP in your ppp.conf file. +# The peer may then use any of the Authname/Authkey pairs listed. +# If an IP address is given, it will be assigned to the peer. +# +# If an entry exists for your local machine (as given by the +# ``hostname -s'' command), the password specified will be +# required for all server socket connections. Refer to the ppp(8) +# and pppctl(8) man pages for further details. +# +# $FreeBSD$ +# +################################################## + +# Authname Authkey Peer's IP address + +oscar OurSecretKey 192.244.184.34/24 +BigBird X4dWg9327 192.244.184.33/32 +tama localPasswdForControl diff --git a/release/picobsd/net/floppy.tree/etc/profile b/release/picobsd/net/floppy.tree/etc/profile new file mode 100644 index 000000000000..babb9333f494 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/profile @@ -0,0 +1,3 @@ +# System-wide .profile file for sh(1). +BLOCKSIZE=K; export BLOCKSIZE +PATH=/stand:.; export PATH diff --git a/release/picobsd/net/floppy.tree/etc/protocols b/release/picobsd/net/floppy.tree/etc/protocols new file mode 100644 index 000000000000..c80be39f693a --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/protocols @@ -0,0 +1,7 @@ +# +# Internet (IP) protocols +ip 0 IP # internet protocol, pseudo protocol number +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # Internet Group Management +tcp 6 TCP # transmission control protocol +udp 17 UDP # user datagram protocol diff --git a/release/picobsd/net/floppy.tree/etc/rc b/release/picobsd/net/floppy.tree/etc/rc new file mode 100644 index 000000000000..8efee86aaeb0 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/rc @@ -0,0 +1,60 @@ +#!/bin/sh - +# $FreeBSD$ +############################################ +### Special setup for one floppy PICOBSD ### +### THIS IS NOT THE NORMAL /etc/rc !!!!! ### +############################################ +mount -a -t nonfs +if [ -f /etc/rc.conf ]; then + . /etc/rc.conf +fi +rm -f /var/run/* +if [ "x$swapfile" != "xNO" -a -w "$swapfile" -a -b /dev/vn0b ]; then + echo "Adding $swapfile as additional swap." + vnconfig /dev/vn0b $swapfile && swapon /dev/vn0b +fi +# configure serial devices +if [ -f /etc/rc.serial ]; then + . /etc/rc.serial +fi +# start up the initial network configuration. +if [ -f /etc/rc.network ]; then + . /etc/rc.network + network_pass1 +fi +mount -a -t nfs +chmod 666 /dev/tty[pqrsPQRS]* +# clean up left-over files +(cd /var/run && { cp /dev/null utmp; chmod 644 utmp; }) +if [ -n "$network_pass1_done" ]; then + network_pass2 +fi +if [ -n "$network_pass2_done" ]; then + network_pass3 +fi +if [ "X${inetd_enable}" = X"YES" ]; then + echo "Starting inetd."; inetd ${inetd_flags} +fi + +dev_mkdb + +echo '' +if [ "x$swapfile" = "xNO" ]; then + echo "WARNING: no swap partition!" + echo "Don't run too many programs at the same time..." +fi +echo '' +echo '' +echo '+----------- PicoBSD @VER@ (NET) ---------------+' +echo '| |' +echo '| Log in as "root" (password "setup"). |' +echo '| |' +echo '| This version of PicoBSD is fully under |' +echo '| BSD license. For more details see |' +echo '| http://www.freebsd.org/~picobsd, or contact |' +echo '| the author. |' +echo '| |' +echo '| abial@freebsd.org |' +echo '| |' +echo '+----------------------------------------------+' +exit 0 diff --git a/release/picobsd/net/floppy.tree/etc/rc.conf b/release/picobsd/net/floppy.tree/etc/rc.conf new file mode 100644 index 000000000000..24cb9394bab4 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/rc.conf @@ -0,0 +1,25 @@ +#!/bin/sh +# $FreeBSD$ +swapfile="NO" # Set to name of swapfile if aux swapfile desired. +### Network configuration sub-section ###################### +### Basic network options: ### +hostname="pico.mydomain.edu" # Set this! +firewall="NO" # firewall type (see /etc/rc.firewall) or NO +tcp_extensions="NO" # Allow RFC1323 & RFC1644 extensions (or NO). +network_interfaces="lo0" # List of network interfaces (lo0 is loopback). +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. +#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. +### Network daemons options: ### +inetd_enable="YES" # Run the network daemon dispatcher (or NO) +inetd_flags="" # Optional flags to inetd +snmpd_enable="YES" # Run the SNMP daemon (or NO) +snmpd_flags="-C -c /etc/snmpd.conf" # Optional flags to snmpd +### Network routing options: ### +defaultrouter="NO" # Set to default gateway (or NO). +static_routes="" # Set to static route list (or leave empty). +gateway_enable="NO" # Set to YES if this host will be a gateway. +arpproxy_all="" # replaces obsolete kernel option ARP_PROXYALL. +### Allow local configuration override at the very end here ## +if [ -f /etc/rc.conf.local ]; then + . /etc/rc.conf.local +fi diff --git a/release/picobsd/net/floppy.tree/etc/rc.firewall b/release/picobsd/net/floppy.tree/etc/rc.firewall new file mode 100644 index 000000000000..c2860baedce0 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/rc.firewall @@ -0,0 +1,172 @@ +############ +# Setup system for firewall service. +# $FreeBSD$ + +############ +# Define the firewall type in /etc/rc.conf. Valid values are: +# open - will allow anyone in +# client - will try to protect just this machine +# simple - will try to protect a whole network +# closed - totally disables IP services except via lo0 interface +# UNKNOWN - disables the loading of firewall rules. +# filename - will load the rules in the given filename (full path required) +# +# For ``client'' and ``simple'' the entries below should be customized +# appropriately. + +############ +# +# If you don't know enough about packet filtering, we suggest that you +# take time to read this book: +# +# Building Internet Firewalls +# Brent Chapman and Elizabeth Zwicky +# +# O'Reilly & Associates, Inc +# ISBN 1-56592-124-0 +# http://www.ora.com/ +# +# For a more advanced treatment of Internet Security read: +# +# Firewalls & Internet Security +# Repelling the wily hacker +# William R. Cheswick, Steven M. Bellowin +# +# Addison-Wesley +# ISBN 0-201-6337-4 +# http://www.awl.com/ +# + +if [ "x$1" != "x" ]; then + firewall_type=$1 +fi + +############ +# Set quiet mode if requested +if [ "x$firewall_quiet" = "xYES" ]; then + fwcmd="/sbin/ipfw -q" +else + fwcmd="/sbin/ipfw" +fi + +############ +# Flush out the list before we begin. +$fwcmd -f flush + +############ +# If you just configured ipfw in the kernel as a tool to solve network +# problems or you just want to disallow some particular kinds of traffic +# they you will want to change the default policy to open. You can also +# do this as your only action by setting the firewall_type to ``open''. + +# $fwcmd add 65000 pass all from any to any + +############ +# Only in rare cases do you want to change these rules +$fwcmd add 1000 pass all from any to any via lo0 +$fwcmd add 1010 deny all from 127.0.0.0/8 to 127.0.0.0/8 + + +# Prototype setups. +if [ "${firewall_type}" = "open" -o "${firewall_type}" = "OPEN" ]; then + + $fwcmd add 65000 pass all from any to any + +elif [ "${firewall_type}" = "client" ]; then + + ############ + # This is a prototype setup that will protect your system somewhat against + # people from outside your own network. + ############ + + # set these to your network and netmask and ip + net="192.168.4.0" + mask="255.255.255.0" + ip="192.168.4.17" + + # Allow any traffic to or from my own net. + $fwcmd add pass all from ${ip} to ${net}:${mask} + $fwcmd add pass all from ${net}:${mask} to ${ip} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${ip} 25 setup + + # Allow setup of outgoing TCP connections only + $fwcmd add pass tcp from ${ip} to any setup + + # Disallow setup of all other TCP connections + $fwcmd add deny tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${ip} + $fwcmd add pass udp from ${ip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${ip} + $fwcmd add pass udp from ${ip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" = "simple" ]; then + + ############ + # This is a prototype setup for a simple firewall. Configure this machine + # as a named server and ntp server, and point all the machines on the inside + # at this machine for those services. + ############ + + # set these to your outside interface network and netmask and ip + oif="ed0" + onet="192.168.4.0" + omask="255.255.255.0" + oip="192.168.4.17" + + # set these to your inside interface network and netmask and ip + iif="ed1" + inet="192.168.3.0" + imask="255.255.255.0" + iip="192.168.3.17" + + # Stop spoofing + $fwcmd add deny all from ${inet}:${imask} to any in via ${oif} + $fwcmd add deny all from ${onet}:${omask} to any in via ${iif} + + # Stop RFC1918 nets on the outside interface + $fwcmd add deny all from 192.168.0.0:255.255.0.0 to any via ${oif} + $fwcmd add deny all from 172.16.0.0:255.240.0.0 to any via ${oif} + $fwcmd add deny all from 10.0.0.0:255.0.0.0 to any via ${oif} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${oip} 25 setup + + # Allow access to our DNS + $fwcmd add pass tcp from any to ${oip} 53 setup + + # Allow access to our WWW + $fwcmd add pass tcp from any to ${oip} 80 setup + + # Reject&Log all setup of incoming connections from the outside + $fwcmd add deny log tcp from any to any in via ${oif} setup + + # Allow setup of any other TCP connection + $fwcmd add pass tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${oip} + $fwcmd add pass udp from ${oip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${oip} + $fwcmd add pass udp from ${oip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" != "UNKNOWN" -a -r "${firewall_type}" ]; then + $fwcmd ${firewall_type} +fi diff --git a/release/picobsd/net/floppy.tree/etc/rc.network b/release/picobsd/net/floppy.tree/etc/rc.network new file mode 100644 index 000000000000..235db0aa14fd --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/rc.network @@ -0,0 +1,79 @@ +#!/bin/sh - +# $FreeBSD$ +network_pass1() { + echo -n 'Doing initial network setup:' + # Set the host name if it is not already set + if [ -z "`hostname -s`" ] ; then + hostname $hostname + echo ' hostname' + fi + # Set up all the network interfaces, calling startup scripts if needed + for ifn in ${network_interfaces}; do + if [ -e /etc/start_if.${ifn} ]; then + . /etc/start_if.${ifn} + fi + # Do the primary ifconfig if specified + eval ifconfig_args=\$ifconfig_${ifn} + if [ -n "${ifconfig_args}" ] ; then + ifconfig ${ifn} ${ifconfig_args} + fi + # Check to see if aliases need to be added + alias=0 + while : + do + eval ifconfig_args=\$ifconfig_${ifn}_alias${alias} + if [ -n "${ifconfig_args}" ]; then + ifconfig ${ifn} ${ifconfig_args} alias + alias=`expr ${alias} + 1` + else + break; + fi + done + ifconfig ${ifn} + done + # Load the filters if required + if [ -n "$firewall_enable" -a -f /etc/rc.firewall -a \ + "x$firewall_enable" = "xYES" ] ; then + . /etc/rc.firewall + echo "Firewall rules loaded." + else + echo "Warning: kernel has firewall functionality, but firewall rules weren't loaded." + echo " All ip services are ENABLED by default." + fi + # Configure routing + if [ "x$defaultrouter" != "xNO" ] ; then + static_routes="default ${static_routes}" + route_default="default ${defaultrouter}" + fi + # Set up any static routes. This should be done before router discovery. + if [ "x${static_routes}" != "x" ]; then + for i in ${static_routes}; do + eval route_args=\$route_${i} + route add ${route_args} + done + fi + echo -n 'Additional routing options:' + if [ -n "$tcp_extensions" -a "x$tcp_extensions" != "xYES" ] ; then + echo -n ' tcp_extensions=NO' + sysctl -w net.inet.tcp.rfc1323=0 >/dev/null 2>&1 + sysctl -w net.inet.tcp.rfc1644=0 >/dev/null 2>&1 + fi + if [ "X$gateway_enable" = X"YES" ]; then + echo -n ' IP_gateway=YES' + sysctl -w net.inet.ip.forwarding=1 >/dev/null 2>&1 + fi + if [ "X$arpproxy_all" = X"YES" ]; then + echo -n ' turning on ARP_PROXY_ALL: ' + sysctl -w net.link.ether.inet.proxyall=1 2>&1 + fi + echo '.' + network_pass1_done=YES # Let future generations know we made it. +} + +network_pass2() { + network_pass2_done=YES +} + +network_pass3() { + network_pass3_done=YES +} diff --git a/release/picobsd/net/floppy.tree/etc/rc.serial b/release/picobsd/net/floppy.tree/etc/rc.serial new file mode 100644 index 000000000000..40fbd8a334cc --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/rc.serial @@ -0,0 +1,127 @@ +#!/bin/sh +# $FreeBSD$ + +# Change some defaults for serial devices. +# Standard defaults are: +# dtrwait 300 drainwait 0 +# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl +# initial iflag, lflag and oflag all 0 +# speed 9600 +# special chars from <sys/ttydefaults.h> +# nothing locked +# except for serial consoles the initial iflag, lflag and oflag are from +# <sys/ttydefaults.h> and clocal is locked on. + +default() { + # Reset everything changed by the other functions to initial defaults. + + ci=$1; shift # call in device identifier + co=$1; shift # call out device identifier + + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 300 drainwait 0 + stty </dev/ttyi$ci$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/ttyl$ci$i -clocal -crtscts -hupcl 0 + stty </dev/cuai$co$i -clocal crtscts hupcl 9600 reprint ^R + stty </dev/cual$co$i -clocal -crtscts -hupcl 0 + done +} + +maybe() { + # Special settings. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Don't use ^R; it breaks bash's ^R when typed ahead. + stty </dev/ttyi$ci$i reprint undef + stty </dev/cuai$co$i reprint undef + # Lock clocal off on dialin device for security. + stty </dev/ttyl$ci$i clocal + # Lock the speeds to use old binaries that don't support them. + # Any legal speed works to lock the initial speed. + stty </dev/ttyl$ci$i 300 + stty </dev/cual$co$i 300 + done +} + +modem() { + # Modem that supports CTS and perhaps RTS handshaking. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # may depend on modem + comcontrol /dev/tty$ci$i dtrwait 100 drainwait 180 + # Lock crtscts on. + # Speed reasonable for V42bis. + stty </dev/ttyi$ci$i crtscts 57600 + stty </dev/ttyl$ci$i crtscts + stty </dev/cuai$co$i crtscts 57600 + stty </dev/cual$co$i crtscts + done +} + +mouse() { + # Mouse on either callin or callout port. + + ci=$1; shift + co=$1; shift + + for i in $* + do + # Lock clocal on, hupcl off. + # Standard speed for Microsoft mouse. + stty </dev/ttyi$ci$i clocal -hupcl 1200 + stty </dev/ttyl$ci$i clocal hupcl + stty </dev/cuai$co$i clocal -hupcl 1200 + stty </dev/cual$co$i clocal hupcl + done +} + +terminal() { + # Terminal that supports CTS and perhaps RTS handshaking + # with the cable or terminal arranged so that DCD is on + # at least while the terminal is on. + # Also works for bidirectional communications to another pc + # provided at most one side runs getty. + # Same as modem() except we want a faster speed and no dtrwait. + + ci=$1; shift + co=$1; shift + + modem $ci $co $* + for i in $* + do + comcontrol /dev/tty$ci$i dtrwait 0 + stty </dev/ttyi$ci$i 115200 + stty </dev/cuai$co$i 115200 + done +} + +# Don't use anything from this file unless you have some buggy programs +# that require it. + +# Edit the functions and the examples to suit your system. +# $1 is the call in device identifier, $2 is the call out device identifier +# and the remainder of the line lists the device numbers. + +# Initialize assorted 8250-16550 (sio) ports. +# maybe d a 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v +# mouse d a 2 +# modem d a 1 +# terminal d a 0 + +# Initialize all ports on a Cyclades-8yo. +# modem c c 00 01 02 03 04 05 06 07 + +# Initialize all ports on a Cyclades-16ye. +# modem c c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + +# Initialize all ports on a Digiboard 8. +# modem D D 00 01 02 03 04 05 06 07 diff --git a/release/picobsd/net/floppy.tree/etc/remote b/release/picobsd/net/floppy.tree/etc/remote new file mode 100644 index 000000000000..6f9fcaf4ad5d --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/remote @@ -0,0 +1,50 @@ +# @(#)remote 5.2 (Berkeley) 6/30/90 +# +# remote -- remote host description file +# see tip(1), remote(5) +# +# dv device to use for the tty +# el EOL marks (default is NULL) +# du make a call flag (dial up) +# pn phone numbers (@ =>'s search phones file; possibly taken from +# PHONES environment variable) +# at ACU type +# ie input EOF marks (default is NULL) +# oe output EOF string (default is NULL) +# cu call unit (default is dv) +# br baud rate (defaults to 300) +# fs frame size (default is BUFSIZ) -- used in buffering writes on +# receive operations +# tc to continue a capability + +# Systems definitions +netcom|Netcom Unix Access:\ + :pn=\@:tc=unix1200: +omen|Omen BBS:\ + :pn=\@:tc=dos1200: + +# UNIX system definitions +unix1200|1200 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial1200: +unix300|300 Baud dial-out to a UNIX system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial300: + +# DOS system definitions +dos1200|1200 Baud dial-out to a DOS system:\ + :el=^U^C^R^O^D^S^Q:ie=%$:oe=^Z:pa=none:tc=dial1200: + +# General dialer definitions used below +# +# COURIER switch settings: +# switch: 1 2 3 4 5 6 7 8 9 10 +# setting: D U D U D D U D U U +# Rackmount: U U D U D U D D U D +# +dial2400|2400 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#2400:cu=/dev/cuaa0:at=hayes:du: +dial1200|1200 Baud Hayes attributes:\ + :dv=/dev/cuaa0:br#1200:cu=/dev/cuaa0:at=hayes:du: + +# Hardwired line +cuaa0b|cua0b:dv=/dev/cuaa0:br#2400 +cuaa0c|cua0c:dv=/dev/cuaa0:br#9600 diff --git a/release/picobsd/net/floppy.tree/etc/resolv.conf b/release/picobsd/net/floppy.tree/etc/resolv.conf new file mode 100644 index 000000000000..4438442fb0ed --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/resolv.conf @@ -0,0 +1,3 @@ +# $FreeBSD$ +domain mydomain.edu +nameserver 192.33.4.12 diff --git a/release/picobsd/net/floppy.tree/etc/services b/release/picobsd/net/floppy.tree/etc/services new file mode 100644 index 000000000000..eec499fafec7 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/services @@ -0,0 +1,94 @@ +echo 4/ddp +echo 7/tcp +echo 7/udp +discard 9/tcp +discard 9/udp +systat 11/tcp +systat 11/udp +daytime 13/tcp +daytime 13/udp +qotd 17/tcp +qotd 17/udp +chargen 19/tcp +chargen 19/udp +ftp-data 20/tcp +ftp-data 20/udp +ftp 21/tcp +ftp 21/udp +ssh 22/tcp +ssh 22/udp +telnet 23/tcp +telnet 23/udp +smtp 25/tcp +smtp 25/udp +time 37/tcp +time 37/udp +domain 53/tcp +domain 53/udp +tacacs-ds 65/tcp +tacacs-ds 65/udp +bootps 67/tcp +bootps 67/udp +bootpc 68/tcp +bootpc 68/udp +tftp 69/tcp +tftp 69/udp +gopher 70/tcp +gopher 70/udp +finger 79/tcp +finger 79/udp +http 80/tcp +http 80/udp +pop2 109/tcp +pop2 109/udp +pop3 110/tcp +pop3 110/udp +uucp-path 117/tcp +uucp-path 117/udp +nntp 119/tcp +nntp 119/udp +netbios-ns 137/tcp +netbios-ns 137/udp +netbios-dgm 138/tcp +netbios-dgm 138/udp +netbios-ssn 139/tcp +netbios-ssn 139/udp +imap 143/tcp +imap 143/udp +snmp 161/tcp +snmp 161/udp +snmptrap 162/tcp +snmptrap 162/udp +bgp 179/tcp +bgp 179/udp +irc 194/tcp +irc 194/udp +ipx 213/tcp +ipx 213/udp +imap3 220/tcp +imap3 220/udp +ldap 389/tcp +ldap 389/udp +netware-ip 396/tcp +netware-ip 396/udp +https 443/tcp +https 443/udp +exec 512/tcp +biff 512/udp +login 513/tcp +who 513/udp +cmd 514/tcp +syslog 514/udp +printer 515/tcp +printer 515/udp +talk 517/tcp +talk 517/udp +ntalk 518/tcp +ntalk 518/udp +timed 525/tcp +timed 525/udp +uucp 540/tcp +uucp 540/udp +uucp-rlogin 541/tcp +uucp-rlogin 541/udp +natd 8668/divert # Network Address Translation diff --git a/release/picobsd/net/floppy.tree/etc/shells b/release/picobsd/net/floppy.tree/etc/shells new file mode 100644 index 000000000000..df377f133737 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/shells @@ -0,0 +1,6 @@ +# List of acceptable shells for chpass(1). +# Ftpd will not allow users to connect who are not using +# one of these shells. + +/bin/sh +/bin/csh diff --git a/release/picobsd/net/floppy.tree/etc/snmpd.conf b/release/picobsd/net/floppy.tree/etc/snmpd.conf new file mode 100644 index 000000000000..29400dfb4b5e --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/snmpd.conf @@ -0,0 +1,58 @@ +# load average checks + +# load [1MAX=DEFMAXLOADAVE] [5MAX=DEFMAXLOADAVE] [15MAX=DEFMAXLOADAVE] +# +# 1MAX: If the 1 minute load average is above this limit at query +# time, the errorFlag will be set. +# 5MAX: Similar, but for 5 min average. +# 15MAX: Similar, but for 15 min average. + +# Check for loads: +load 12 14 14 + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.10 + +# snmp agent errors + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.101 + +# snmp version mib + +# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.100 + +# System contact information + +syslocation PicoBSD +syscontact root <root@pico> + +# Setting up the access control lists to the agent + +# sec.name source community +com2sec local localhost private +com2sec public default public + +# sec.model sec.name +group local any local +group public any public + +# incl/excl subtree mask +view all included .1 80 +view system included system fe +view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc + +# context sec.model sec.level prefix read write not +access public "" any noauth 0 system none none +access local "" any noauth 0 all all all + +# If you want to get back to the functionality of previous versions, +# where the public community could read anything from anywhere and the +# private community could write anything from anywhere, use these +# lines instead: +# +# com2sec public default public +# com2sec private default private +# group public any public +# group private any private +# view all included .1 80 +# access public "" any noauth 0 all none none +# access private "" any noauth 0 all all none diff --git a/release/picobsd/net/floppy.tree/etc/termcap b/release/picobsd/net/floppy.tree/etc/termcap new file mode 100644 index 000000000000..5a9316af0295 --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/termcap @@ -0,0 +1,123 @@ +# Copyright (c) 1980, 1985, 1989 The Regents of the University of California. +# All rights reserved. +# @(#)termcap.src 5.88 (Berkeley) 4/30/91 +# +# +# for syscons +# common entry without semigraphics +cons25w|ansiw|ansi80x25-raw:\ + :al=\E[L:am:bs:NP:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:co#80:\ + :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:li#25:cb=\E[1K:\ + :ms:nd=\E[C:pt:rs=\E[x\E[m\Ec:so=\E[7m:se=\E[m:up=\E[A:\ + :pa#64:Co#8:Sf=\E[3%dm:Sb=\E[4%dm:op=\E[37;40m:\ + :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ + :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\ + :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:eo:sf=\E[S:sr=\E[T:\ + :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\E[K:kB=\E[Z:\ + :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:bw:\ + :mb=\E[5m:md=\E[1m:mh=\E[30;1m:mr=\E[7m:me=\E[m:bl=^G:ut:it#8: +cons25|ansis|ansi80x25:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :tc=cons25w: +cons25-m|ansis-mono|ansi80x25-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25: +cons50|ansil|ansi80x50:\ + :li#50:tc=cons25: +cons50-m|ansil-mono|ansi80x50-mono:\ + :li#50:tc=cons25-m: +# 80x25 ISO 8859-1 FreeBSD console +cons25l1|cons25-iso8859-1:\ + :ac=l\215m\216k\214j\213u\226t\225v\227w\230q\222x\231n\217o\220s\224p\221r\223`\201a\202f\207g\210~\237.^Y-^X+\253,\273I\247y\232z\233:\ + :tc=cons25w: +cons25l1-m|cons25-iso8859-1-mono:\ + :pa@:Co@:Sf@:Sb@:op@:us=\E[4m:ue=\E[m:md@:mh@:tc=cons25l1: +# 80x50 ISO 8859-1 FreeBSD console +cons50l1|cons50-iso8859-1:\ + :li#50:tc=cons25l1: +cons50l1-m|cons50-iso8859-1-mono:\ + :li#50:tc=cons25l1-m: +dosansi|ANSI.SYS standard crt|ansi:\ + :am:bs:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:co#80:\ + :do=\E[B:li#25:mi:nd=\E[C:\ + :se=\E[m:so=\E[7m:up=\E[A:us=\E[4m:ue=\E[m:\ + :md=\E[1m:mh=\E[m:mb=\E[5m:me=\E[m:\ + :kh=\EG:kb=^h:ku=\EH:kd=\EP:kl=\EK:kr=\EM:\ + :k1=\E;:k2=\E<:k3=\E=:k4=\E>:k5=\E?:\ + :k6=\E@:k7=\EA:k8=\EB:k9=\EC:k0=\ED: + +# Note: this entry describes the "native" +# capabilities of the PC monochrome display, without ANY emulation; most +# communications packages (but NOT PC/IX connect) do some kind of emulation. +pc|ibmpc|ibm pc PC/IX:\ + :li#24:co#80:am:bs:bw:eo:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\ + :nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m: +pc3mono|IBM PC 386BSD Console with monochrome monitor:\ + :so=\E[0;1r\E[m:tc=pc3: +pc3|ibmpc3|IBM PC 386BSD Console:\ + :Co#8:\ + :DO=\E[%dB:\ + :F1=\E[W:\ + :F2=\E[X:\ + :K1=\E[H:\ + :K2=\E[I:\ + :K3=\E[E:\ + :K4=\E[F:\ + :K5=\E[G:\ + :LE=\E[%dD:\ + :RI=\E[%dC:\ + :Sb=\E[1;%dx:\ + :Sf=\E[2;%dx:\ + :UP=\E[%dA:\ + :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\ + :am:\ + :bl=^G:\ + :bs:\ + :cb=\E[1K:\ + :cd=\E[J:\ + :ce=\E[K:\ + :cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:\ + :co#80:\ + :cr=^M:\ + :do=\E[B:\ + :ho=\E[H:\ + :is=\E[m:\ + :it#8:\ + :k;=\E[V:\ + :k1=\E[M:\ + :k2=\E[N:\ + :k3=\E[O:\ + :k4=\E[P:\ + :k5=\E[Q:\ + :k6=\E[R:\ + :k7=\E[S:\ + :k8=\E[T:\ + :k9=\E[U:\ + :kD=\177:\ + :@7=\E[F:\ + :kN=\E[G:\ + :kP=\E[I:\ + :kb=\177:\ + :kd=\E[B:\ + :kh=\E[H:\ + :kl=\E[D:\ + :kr=\E[C:\ + :ku=\E[A:\ + :le=^H:\ + :li#25:\ + :ms:\ + :nd=\E[C:\ + :op=\E[x:\ + :pa#64:\ + :rs=\E[m:\ + :se=\E[m:\ + :sf=\E[S:\ + :so=\E[7;1r\E[7m:\ + :sr=\E[T:\ + :ta=^I:\ + :te=\E[m:\ + :ti=\E[m:\ + :up=\E[A:\ + :ut: diff --git a/release/picobsd/net/floppy.tree/etc/ttys b/release/picobsd/net/floppy.tree/etc/ttys new file mode 100644 index 000000000000..8ef5e6ebb37f --- /dev/null +++ b/release/picobsd/net/floppy.tree/etc/ttys @@ -0,0 +1,32 @@ +# +# @(#)ttys 5.1 (Berkeley) 4/17/89 +# +# name getty type status comments +# +# This entry needed for asking password when init goes to single-user mode +# If you want to be asked for password, change "secure" to "insecure" here +#console none unknown off secure +vga none cons25 off secure +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +#ttyv3 "/usr/libexec/getty Pc" cons25 on secure +#ttyv4 "/usr/libexec/getty Pc" cons25 on secure +#ttyv5 "/usr/libexec/getty Pc" cons25 on secure +#ttyv6 "/usr/libexec/getty Pc" cons25 on secure +#ttyv7 "/usr/libexec/getty Pc" cons25 on secure +#ttyv8 "/usr/libexec/getty Pc" cons25 on secure +#ttyv9 "/usr/libexec/getty Pc" cons25 on secure +# Pseudo terminals +ttyp0 none network secure +ttyp1 none network secure +ttyp2 none network secure +ttyp3 none network +ttyp4 none network +ttyp5 none network +ttyp6 none network +ttyp7 none network +ttyp8 none network +ttyp9 none network diff --git a/release/picobsd/net/floppy.tree/kernel.config b/release/picobsd/net/floppy.tree/kernel.config new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/net/floppy.tree/kernel.config diff --git a/release/picobsd/net/lang/README.en b/release/picobsd/net/lang/README.en new file mode 100644 index 000000000000..d2482aeed561 --- /dev/null +++ b/release/picobsd/net/lang/README.en @@ -0,0 +1,41 @@ +1998.07.12, Warsaw, Poland + + PicoBSD @VER@ (NET) + ----------------- + + +What is PicoBSD? +---------------- + +It's a one floppy version of FreeBSD (please see http://www.freebsd.org), +configured mainly for networking applications. It can be used as a router or +firewall, or kind of a fixit floppy (or all of them). + +You can find more information on the home page of this project at: + + http://www.freebsd.org/~picobsd/ + +What are minimal requirements? +------------------------------ + +* 386SX CPU or better (there is an FPU emulator in kernel) +* 10MB RAM - the more the better. If you have an HDD, you can make a + swap partition or swap file (using vnode driver and vnconfig). Then you + probably will be able to run with ca. 6MB only. But RAM is cheap... +* Modem sitting on COM1-COM4 (default is to use COM2), if you want to have + a PPP connection. +* Network card: compatible with NE2000, PCI Intel, 3Com 3c509 or with DEC + chipsets (ed, ep, fxp and de drivers). The kernel supports two of each + ISA (i.e. +6 total) plus two PPP connections (tun interfaces). So you can + easily build something like router with as many as 8 outlets :-) + +For detailed description and list of supported hardware see the original +documentation, or: + + http://www.freebsd.org/~picobsd/picobsd.html + +I'll be glad hearing from you about your experiences with PicoBSD. Thanks. + +Have fun! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/net/lang/README.pl b/release/picobsd/net/lang/README.pl new file mode 100644 index 000000000000..d7e3f6755ceb --- /dev/null +++ b/release/picobsd/net/lang/README.pl @@ -0,0 +1,56 @@ +1998.07.12, Warszawa + + PicoBSD @VER@ (wersja NET) + ------------------------ + +Co to jest PicoBSD? +------------------- + +Jest to jednodyskietkowa wersja FreeBSD skonfigurowana glownie pod katem +zastosowania jako klient/serwer uslug sieciowych (takich jak routing, +firewall, NFS). W celu zapoznania sie z pelnym systemem zajrzyj na +http://www.freebsd.org. Oficjalna strona tego projektu znajduje sie na +http://www.freebsd.org/~picobsd. + +Jakie sa minimalne wymagania? +----------------------------- + +* Procesor 386SX lub lepszy (jadro posiada emulator FPU) +* 10MB pamieci - jest to absolutnie nieprzekraczalne minimum. Oczywiscie im + wiecej, tym lepiej - ograniczenie jest glownie spowodowane brakiem swapu. Po + zapoznaniu sie z systemem mozesz sobie skonfigurowac tzw. swap-file na dysku + twardym, np. na partycji DOS-owej. Wowczas prawdopodobnie wystarczy 6MB + pamieci. +* Modem, skonfigurowany na COM1-COM4 (standardowo system wykorzystuje COM2), + jesli bedzie wykorzystywany dostep przez PPP. +* Karta sieciowa: kompatybilna z NE2000, niektore typy 3Com, lub wersje PCI z + chipsetem DEC21040 (drivery ed, ep, fxp i de). Jadro jest skonfigurowane + tak, zeby moc obsluzyc po dwie karty ed, ep, i de (czyli w sumie siedem) + oraz dwa polaczenia PPP rownoczesnie. Mozna wiec zbudowac router z 9 + interfejsami... :-) + +Jakie sa roznice w stosunku do poprzedniej wersji? +-------------------------------------------------- + +* Poszerzony zestaw sterownikow w jadrze systemu +* dodana obsluga CD-ROM +* agent SNMP (pelna wersja ucd-snmp, pozwalajaca na monitorowanie procesow i + zdalne uruchamianie skryptow) +* brak ssh, ftp i edytora ee (oznacza to, ze musisz edytowac pliki + konfiguracyjne montujac dyskietke na normalnym systemie) +* dodany inetd, telnetd, routed, tftpd, bootpd, ps, kill, netstat, + ping, traceroute +* brak vnconfig i vn(4): w przypadku routera powinien on miec tyle pamieci + RAM, zeby nie potrzebowac swapu, lub miec normalny swap. +* dodana obsluga hasel (passwd(1)) +* dodana obsluga NFS (klient) +* sa dwaj uzytkownicy: root (haslo 'setup') i user (haslo 'PicoBSD'). Ze + wzgledu na skomplikowana sprawe z prawami dostepu, user praktycznie moze + jedynie zrobic te rzeczy, ktore nie wymagaja praw roota (czyli np. telnet). +* dodany skrypt 'update', ktory powoduje uaktualnienie zawartosci katalogu + /etc na dyskietce w stosunku do tego, co znajduje sie na MFS. + + +Milej zabawy! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/net/lang/boot.help.en b/release/picobsd/net/lang/boot.help.en new file mode 100644 index 000000000000..7cbce1354839 --- /dev/null +++ b/release/picobsd/net/lang/boot.help.en @@ -0,0 +1,18 @@ +Usage: bios_drive:interface(unit,partition)kernel_name options + bios_drive 0, 1, ... + interface fd, wd or sd + unit 0, 1, ... + partition a, c, ... + kernel_name name of kernel, or ? for list of files in root directory + options -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles) + -d (debug early) -g (gdb) -h (serial console) -P (probe kbd) + -r (default root) -s (single user) -v (verbose) +Examples: + 1:sd(0,a)mykernel boot `mykernel' on the first SCSI drive when one IDE + drive is present + 1:wd(2,a) boot from the second (secondary master) IDE drive + 1:sd(0,a)? list the files in the root directory on the specified + drive/unit/partition, and set the default bios_drive, + interface, unit and partition + -cv boot with the defaults, then run UserConfig to modify + hardware parameters (c), and print verbose messages (v) diff --git a/release/picobsd/net/lang/boot.help.pl b/release/picobsd/net/lang/boot.help.pl new file mode 100644 index 000000000000..bb5b422529aa --- /dev/null +++ b/release/picobsd/net/lang/boot.help.pl @@ -0,0 +1,16 @@ +Opcje: dysk_bios:kontroler(dysk,partycja)nazwa_kernela opcje + dysk_bios 0, 1, ... + kontroler fd (dyskietka), wd (dysk IDE) lub sd (dysk SCSI) + dysk 0, 1, ... (numer dysku w kontrolerze) + partycja a, c, e, f ... (wedlug nazewnictwa BSD) + nazwa_kernela nazwa pliku kernela, lub ? zeby dostac liste plikow + opcje -a (pytaj o rootdev) -C (cdrom) -c (userconf.) -D (podwojna konsola) + -d (uruchom debugger) -g (gdb) -h (konsola szeregowa) + -P (probkuj klawiature) -r (domyslny rootdev) -s (tryb single user) + -v (verbose - szczegolowe komunikaty) +Np: 1:sd(0,a)mykernel startuj `mykernel' z 1 dysku SCSI gdy jest tez 1 dysk + IDE, i jednoczesnie ustaw go jako domyslny dysk_bios, + kontroler, dysk i partycje + -cv startuj z parametrami domyslnymi, potem uruchom + konfiguracje param. sprzetowych (-c), i podawaj + szczegolowe komunikaty w trakcie bootowania (-v). diff --git a/release/picobsd/net/lang/hosts.en b/release/picobsd/net/lang/hosts.en new file mode 100644 index 000000000000..53f13bab8b37 --- /dev/null +++ b/release/picobsd/net/lang/hosts.en @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.edu +127.0.0.1 pico.mydomain.edu diff --git a/release/picobsd/net/lang/hosts.pl b/release/picobsd/net/lang/hosts.pl new file mode 100644 index 000000000000..89081d798683 --- /dev/null +++ b/release/picobsd/net/lang/hosts.pl @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.org.pl +127.0.0.1 pico.mydomain.org.pl diff --git a/release/picobsd/net/lang/motd.en b/release/picobsd/net/lang/motd.en new file mode 100644 index 000000000000..97194182eedf --- /dev/null +++ b/release/picobsd/net/lang/motd.en @@ -0,0 +1,12 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (NET) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +You can find a short description of the [35mpicoBSD[37m +system in file /README. You can view it using +"more /README". + +For more info contact the author (abial@freebsd.org). + diff --git a/release/picobsd/net/lang/motd.pl b/release/picobsd/net/lang/motd.pl new file mode 100644 index 000000000000..4b1fcf551518 --- /dev/null +++ b/release/picobsd/net/lang/motd.pl @@ -0,0 +1,12 @@ +======================================================= + [31m)\_)\[37m +PicoBSD @VER@ (NET) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Witamy w PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +W glownym katalogu w pliku README znajdziesz [35mpicoBSD[37m +krotki opis systemu. Mozesz go obejrzec przy pomocy +"more /README". + +Wiecej informacji znajdziesz u autora (abial@freebsd.org). + diff --git a/release/picobsd/net/mfs.mtree b/release/picobsd/net/mfs.mtree new file mode 100644 index 000000000000..9330dcf8f8ec --- /dev/null +++ b/release/picobsd/net/mfs.mtree @@ -0,0 +1,58 @@ +# +# $FreeBSD$ +# +/set type=dir uname=root gname=wheel mode=0755 +. + dev + .. + dos + .. + etc + .. + home + user + .. + .. + mnt + .. + mnt1 + .. + mnt2 + .. + proc + .. + root + .. + stand + .. + start_floppy + .. + tftpboot + .. + tmp mode=01777 + .. + usr + local + share + snmp + mibs + .. + .. + .. + .. + share + misc + .. + .. + .. + var + db + .. + run + .. + spool + lock + .. + .. + .. +.. diff --git a/release/picobsd/router/Makefile.mfs b/release/picobsd/router/Makefile.mfs new file mode 100644 index 000000000000..d9f96cc07118 --- /dev/null +++ b/release/picobsd/router/Makefile.mfs @@ -0,0 +1,7 @@ +# +# $FreeBSD$ +# + +MY_DEVS= std tun2 vty3 fd0 pty0 cuaa0 cuaa1 cuaa2 + +.include "../build/Makefile.mfs" diff --git a/release/picobsd/router/PICOBSD b/release/picobsd/router/PICOBSD new file mode 100644 index 000000000000..a64eaf51632a --- /dev/null +++ b/release/picobsd/router/PICOBSD @@ -0,0 +1,81 @@ +# +# $FreeBSD$ +# +#Line starting with #PicoBSD contains PicoBSD build parameters +#marker def_sz init MFS_inodes floppy_inodes +#PicoBSD 820 oinit 3072 32768 +options MD_ROOT_SIZE=820 # same as def_sz + +machine i386 +cpu I386_CPU +cpu I486_CPU +cpu I586_CPU +cpu I686_CPU +ident PICOBSD +maxusers 10 + +#options MATH_EMULATE #Support for x87 emulation +options INET #InterNETworking +options FFS #Berkeley Fast Filesystem +options FFS_ROOT #FFS usable as root device [keep this!] +#options NFS #Network Filesystem +options MFS #Memory Filesystem +options MD_ROOT #MFS as root +#options MSDOSFS #MSDOS Filesystem +#options CD9660 #ISO 9660 Filesystem +#options PROCFS #Process filesystem +options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] +options USERCONFIG #boot -c editor +#options USERCONFIG_BOOT #imply -c and parse info area +#options VISUAL_USERCONFIG #visual boot -c editor +options IPFIREWALL +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPDIVERT +options PCI_QUIET +#options DEVFS +options NO_SWAPPING +# Support for bridging and bandwidth limiting +#options DUMMYNET +#options BRIDGE + +device isa +device pci + +device fdc + +# atkbdc0 controlls both the keyboard and the PS/2 mouse +device atkbdc 1 +device atkbd + +device vga + +# syscons is the default console driver, resembling an SCO console +device sc 1 + +device npx + +device sio + +# The following Ethernet NICs are all PCI devices. +# +device de +device fxp + +# Order is important here due to intrusive probes, do *not* alphabetize +# this list of network interfaces until the probes have been fixed. +# Right now it appears that the ie0 must be probed before ep0. See +# revision 1.20 of this file. + +device ed +device ep +device ie + +device loop +device ether +#device tun 2 +device ppp 4 +device pty 16 +device md + +options COMPAT_OLDISA #Use ISA shims and glue for old drivers + diff --git a/release/picobsd/router/PICOBSD.hints b/release/picobsd/router/PICOBSD.hints new file mode 100644 index 000000000000..b9d89f79ab16 --- /dev/null +++ b/release/picobsd/router/PICOBSD.hints @@ -0,0 +1,53 @@ +# $FreeBSD$ +hint.fdc.0.at="isa" +hint.fdc.0.port="0x3F0" +hint.fdc.0.irq="6" +hint.fdc.0.drq="2" +hint.fd.0.at="fdc0" +hint.fd.0.drive="0" +hint.atkbdc.0.at="isa" +hint.atkbdc.0.port="0x060" +hint.atkbd.0.at="atkbdc" +hint.atkbd.0.irq="1" +hint.vga.0.at="isa" +hint.sc.0.at="isa" +hint.npx.0.at="nexus" +hint.npx.0.port="0x0F0" +hint.npx.0.irq="13" +hint.sio.0.at="isa" +hint.sio.0.port="0x3F8" +hint.sio.0.flags="0x10" +hint.sio.0.irq="4" +hint.sio.1.at="isa" +hint.sio.1.port="0x2F8" +hint.sio.1.irq="3" +hint.sio.2.at="isa" +hint.sio.2.disabled="1" +hint.sio.2.port="0x3E8" +hint.sio.2.irq="5" +hint.sio.3.at="isa" +hint.sio.3.disabled="1" +hint.sio.3.port="0x2E8" +hint.sio.3.irq="9" +hint.ed.0.at="isa" +hint.ed.0.port="0x280" +hint.ed.0.irq="5" +hint.ed.0.maddr="0xd8000" +hint.ed.1.at="isa" +hint.ed.1.port="0x300" +hint.ed.1.irq="10" +hint.ed.1.maddr="0xd0000" +hint.ep.0.at="isa" +hint.ep.0.port="0x300" +hint.ep.0.irq="10" +hint.ep.1.at="isa" +hint.ep.1.port="0x280" +hint.ep.1.irq="5" +hint.ie.0.at="isa" +hint.ie.0.port="0x300" +hint.ie.0.irq="5" +hint.ie.0.maddr="0xd0000" +hint.ie.1.at="isa" +hint.ie.1.port="0x360" +hint.ie.1.irq="7" +hint.ie.1.maddr="0xd0000" diff --git a/release/picobsd/router/crunch1/Makefile b/release/picobsd/router/crunch1/Makefile new file mode 100644 index 000000000000..08736da70a1d --- /dev/null +++ b/release/picobsd/router/crunch1/Makefile @@ -0,0 +1,34 @@ +# +# $FreeBSD$ +# +SRC?=/usr/src + +all: crunch + +crunch: + @cat crunch.conf|sed -e "s@/usr/src@${SRC}@" >crunch1.conf + @crunchgen ./crunch1.conf + @${MAKE} -f crunch1.mk NOSECURE=yes NOCRYPT=yes all \ + "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY -DRELEASE_CRUNCH" #2>&1 >/dev/null + +clean: + rm -f *.o *.stub *.lo *_stub.c *.mk \ + crunch.cache \ + crunch.mk \ + crunch.c \ + crunch1* \ + crunch \ + .tmp_* \ + *.gz + +install: + cp crunch1 ${MFS_MOUNTPOINT}/stand/crunch + chmod 555 ${MFS_MOUNTPOINT}/stand/crunch + for i in `crunchgen -l crunch1.conf` ; \ + do \ + ln ${MFS_MOUNTPOINT}/stand/crunch ${MFS_MOUNTPOINT}/stand/$${i}; \ + done + rm ${MFS_MOUNTPOINT}/stand/crunch + + +.include <bsd.prog.mk> diff --git a/release/picobsd/router/crunch1/crunch.conf b/release/picobsd/router/crunch1/crunch.conf new file mode 100644 index 000000000000..5e655a27aaf6 --- /dev/null +++ b/release/picobsd/router/crunch1/crunch.conf @@ -0,0 +1,40 @@ +# +# $FreeBSD$ +# +# NOTE: the string "/usr/src" will be automatically replaced with the +# correct value set in 'build' script - you should change it there + +# Default build options +buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC + +# other sources +srcdirs /usr/src/bin +srcdirs /usr/src/sbin/i386 +srcdirs /usr/src/sbin +srcdirs /usr/src/usr.bin +srcdirs /usr/src/gnu/usr.bin +srcdirs /usr/src/usr.sbin +srcdirs /usr/src/libexec +# sources for ns & vm +srcdirs ../../tinyware + +progs hostname cat kget +progs oinit ifconfig df sps ns vm msg +progs cp rm ls reboot +progs sysctl route +progs mount umount +progs kill natd + +progs pppd less +ln less more +progs ping traceroute routed ipfw + +progs minigzip +ln minigzip gzip +ln sps ps +ln ns netstat +ln msg dmesg + +libs -lncurses -lmytinfo -lipx -lz -lpcap -lalias +libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm +libs -lgnuregex -ltelnet diff --git a/release/picobsd/router/floppy.tree.exclude b/release/picobsd/router/floppy.tree.exclude new file mode 100644 index 000000000000..8850a34dd83b --- /dev/null +++ b/release/picobsd/router/floppy.tree.exclude @@ -0,0 +1,13 @@ +etc/inetd.conf +etc/master.passwd +etc/mfs.login.conf +etc/mfs.rc +etc/rc +etc/rc.conf +etc/rc.firewall +etc/rc.network +etc/rc.serial +etc/remote +etc/shells +etc/snmpd.conf +etc/ttys diff --git a/release/picobsd/router/floppy.tree/etc/mfs.rc b/release/picobsd/router/floppy.tree/etc/mfs.rc new file mode 100644 index 000000000000..aa60593473b1 --- /dev/null +++ b/release/picobsd/router/floppy.tree/etc/mfs.rc @@ -0,0 +1,25 @@ +# $FreeBSD$ +# This file is interpreted by oinit(8) +# +ncons 2 +motd /etc/motd +set HOME=/ +set PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin + +sysctl -w vm.defer_swapspace_pageouts=1 vm.disable_swapspace_pageouts=1 + +### Special setup for one floppy PICOBSD ### +echo +echo "-------------------------------------------" +echo " Please wait. The system is coming up..." +echo "-------------------------------------------" +echo +echo "Reading /etc from startup floppy..." +mount -o rdonly /dev/fd0a /start_floppy +cd /start_floppy/etc +cp -Rp . /etc +cd /etc +umount /dev/fd0a +echo "Ok. (Now you may remove floppy if you like)" +echo +. rc diff --git a/release/picobsd/router/floppy.tree/etc/rc b/release/picobsd/router/floppy.tree/etc/rc new file mode 100644 index 000000000000..794e928a1da5 --- /dev/null +++ b/release/picobsd/router/floppy.tree/etc/rc @@ -0,0 +1,18 @@ +#!/bin/sh +# $FreeBSD$ +### Special setup for one floppy PICOBSD ### +ifconfig lo0 inet 127.0.0.1 netmask 0xffffff00 +hostname pico +echo "" +echo "" +echo '+----------- PicoBSD @VER@ (ROUTER) ------------+' +echo '| |' +echo '| This version of PicoBSD is fully under |' +echo '| BSD license. For more details see |' +echo '| http://www.freebsd.org/~picobsd, or contact |' +echo '| the author. |' +echo '| |' +echo '| abial@freebsd.org |' +echo '| |' +echo '+----------------------------------------------+' +echo "" diff --git a/release/picobsd/router/floppy.tree/etc/rc.firewall b/release/picobsd/router/floppy.tree/etc/rc.firewall new file mode 100644 index 000000000000..c2860baedce0 --- /dev/null +++ b/release/picobsd/router/floppy.tree/etc/rc.firewall @@ -0,0 +1,172 @@ +############ +# Setup system for firewall service. +# $FreeBSD$ + +############ +# Define the firewall type in /etc/rc.conf. Valid values are: +# open - will allow anyone in +# client - will try to protect just this machine +# simple - will try to protect a whole network +# closed - totally disables IP services except via lo0 interface +# UNKNOWN - disables the loading of firewall rules. +# filename - will load the rules in the given filename (full path required) +# +# For ``client'' and ``simple'' the entries below should be customized +# appropriately. + +############ +# +# If you don't know enough about packet filtering, we suggest that you +# take time to read this book: +# +# Building Internet Firewalls +# Brent Chapman and Elizabeth Zwicky +# +# O'Reilly & Associates, Inc +# ISBN 1-56592-124-0 +# http://www.ora.com/ +# +# For a more advanced treatment of Internet Security read: +# +# Firewalls & Internet Security +# Repelling the wily hacker +# William R. Cheswick, Steven M. Bellowin +# +# Addison-Wesley +# ISBN 0-201-6337-4 +# http://www.awl.com/ +# + +if [ "x$1" != "x" ]; then + firewall_type=$1 +fi + +############ +# Set quiet mode if requested +if [ "x$firewall_quiet" = "xYES" ]; then + fwcmd="/sbin/ipfw -q" +else + fwcmd="/sbin/ipfw" +fi + +############ +# Flush out the list before we begin. +$fwcmd -f flush + +############ +# If you just configured ipfw in the kernel as a tool to solve network +# problems or you just want to disallow some particular kinds of traffic +# they you will want to change the default policy to open. You can also +# do this as your only action by setting the firewall_type to ``open''. + +# $fwcmd add 65000 pass all from any to any + +############ +# Only in rare cases do you want to change these rules +$fwcmd add 1000 pass all from any to any via lo0 +$fwcmd add 1010 deny all from 127.0.0.0/8 to 127.0.0.0/8 + + +# Prototype setups. +if [ "${firewall_type}" = "open" -o "${firewall_type}" = "OPEN" ]; then + + $fwcmd add 65000 pass all from any to any + +elif [ "${firewall_type}" = "client" ]; then + + ############ + # This is a prototype setup that will protect your system somewhat against + # people from outside your own network. + ############ + + # set these to your network and netmask and ip + net="192.168.4.0" + mask="255.255.255.0" + ip="192.168.4.17" + + # Allow any traffic to or from my own net. + $fwcmd add pass all from ${ip} to ${net}:${mask} + $fwcmd add pass all from ${net}:${mask} to ${ip} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${ip} 25 setup + + # Allow setup of outgoing TCP connections only + $fwcmd add pass tcp from ${ip} to any setup + + # Disallow setup of all other TCP connections + $fwcmd add deny tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${ip} + $fwcmd add pass udp from ${ip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${ip} + $fwcmd add pass udp from ${ip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" = "simple" ]; then + + ############ + # This is a prototype setup for a simple firewall. Configure this machine + # as a named server and ntp server, and point all the machines on the inside + # at this machine for those services. + ############ + + # set these to your outside interface network and netmask and ip + oif="ed0" + onet="192.168.4.0" + omask="255.255.255.0" + oip="192.168.4.17" + + # set these to your inside interface network and netmask and ip + iif="ed1" + inet="192.168.3.0" + imask="255.255.255.0" + iip="192.168.3.17" + + # Stop spoofing + $fwcmd add deny all from ${inet}:${imask} to any in via ${oif} + $fwcmd add deny all from ${onet}:${omask} to any in via ${iif} + + # Stop RFC1918 nets on the outside interface + $fwcmd add deny all from 192.168.0.0:255.255.0.0 to any via ${oif} + $fwcmd add deny all from 172.16.0.0:255.240.0.0 to any via ${oif} + $fwcmd add deny all from 10.0.0.0:255.0.0.0 to any via ${oif} + + # Allow TCP through if setup succeeded + $fwcmd add pass tcp from any to any established + + # Allow setup of incoming email + $fwcmd add pass tcp from any to ${oip} 25 setup + + # Allow access to our DNS + $fwcmd add pass tcp from any to ${oip} 53 setup + + # Allow access to our WWW + $fwcmd add pass tcp from any to ${oip} 80 setup + + # Reject&Log all setup of incoming connections from the outside + $fwcmd add deny log tcp from any to any in via ${oif} setup + + # Allow setup of any other TCP connection + $fwcmd add pass tcp from any to any setup + + # Allow DNS queries out in the world + $fwcmd add pass udp from any 53 to ${oip} + $fwcmd add pass udp from ${oip} to any 53 + + # Allow NTP queries out in the world + $fwcmd add pass udp from any 123 to ${oip} + $fwcmd add pass udp from ${oip} to any 123 + + # Everything else is denied as default. + +elif [ "${firewall_type}" != "UNKNOWN" -a -r "${firewall_type}" ]; then + $fwcmd ${firewall_type} +fi diff --git a/release/picobsd/router/lang/BAD_DOCS!!! b/release/picobsd/router/lang/BAD_DOCS!!! new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/release/picobsd/router/lang/BAD_DOCS!!! diff --git a/release/picobsd/router/lang/README.en b/release/picobsd/router/lang/README.en new file mode 100644 index 000000000000..71e9dd267f46 --- /dev/null +++ b/release/picobsd/router/lang/README.en @@ -0,0 +1,40 @@ +1998.07.12, Warsaw, Poland + + PicoBSD @VER@ (ROUTER) + ------------------ + + +What is PicoBSD? +---------------- + +It's a one floppy version of FreeBSD (please see http://www.freebsd.org), +configured as a stand-alone router. It offers also IP Firewall capabilities. + +You can find more information on the home page of this project at: + + http://www.freebsd.org/~picobsd/ + +What are minimal requirements? +------------------------------ + +* 386SX CPU or better (there is an FPU emulator in kernel) +* 4MB RAM - the more the better. The system will run a couple of small + processes in 4MB - enough to configure static routes and IP Firewall. If + you want to run routed(8), you'll need at least 6MB. +* Modem sitting on COM1-COM4 (default is to use COM2), if you want to have + a PPP connection. +* Network card: compatible with NE2000, PCI Intel, 3Com 3c509 or with DEC + chipsets (ed, ep, fxp and de drivers). The kernel supports two of them + (i.e. 7 total) plus two PPP connections (tun interfaces). So you can + easily build something like router with as many as 9 outlets :-) + +For detailed description and list of supported hardware see the original +documentation, or: + + http://www.freebsd.org/~picobsd/picobsd.html + +I'll be glad hearing from you about your experiences with PicoBSD. Thanks. + +Have fun! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/router/lang/README.pl b/release/picobsd/router/lang/README.pl new file mode 100644 index 000000000000..269348b20c5c --- /dev/null +++ b/release/picobsd/router/lang/README.pl @@ -0,0 +1,39 @@ +1998.07.12, Warszawa + + PicoBSD @VER@ (wersja ROUTER) + ------------------------- + +Co to jest PicoBSD? +------------------- + +Jest to jednodyskietkowa wersja FreeBSD skonfigurowana pod katem +zastosowania jako router, oferuje rowniez modul IP Firewall i translacje +adresow (NAT). + +W celu zapoznania sie z pelnym systemem zajrzyj na http://www.freebsd.org. +Oficjalna strona tego projektu znajduje sie na + + http://www.freebsd.org/~picobsd. + +Jakie sa minimalne wymagania? +----------------------------- + +* Procesor 386SX lub lepszy (jadro posiada emulator FPU) +* 4MB pamieci - jest to absolutnie nieprzekraczalne minimum. Oczywiscie im + wiecej, tym lepiej - przy tej ilosci mozliwe jest skonfigurowanie + statycznego routingu oraz IP Firewalla; jesli potrzebujesz rowniez + daemona routed i translacji adresow, wymagane jest minimum 6MB. +* Modem, skonfigurowany na COM1-COM4 (standardowo system wykorzystuje COM2), + jesli bedzie wykorzystywany dostep przez PPP. +* Karta sieciowa: kompatybilna z NE2000, niektore typy 3Com, lub wersje PCI z + chipsetem DEC21040 (drivery ed, ep, fxp i de). Jadro jest skonfigurowane + tak, zeby moc obsluzyc po dwie karty ed, ep, i de (czyli w sumie siedem) + oraz dwa polaczenia PPP rownoczesnie. Mozna wiec zbudowac router z 9 + interfejsami... :-) + +Po dalsze szczegoly zajrzyj do oryginalnej dokumentacji. + + +Milej zabawy! + +Andrzej Bialecki <abial@freebsd.org> diff --git a/release/picobsd/router/lang/boot.help.en b/release/picobsd/router/lang/boot.help.en new file mode 100644 index 000000000000..7cbce1354839 --- /dev/null +++ b/release/picobsd/router/lang/boot.help.en @@ -0,0 +1,18 @@ +Usage: bios_drive:interface(unit,partition)kernel_name options + bios_drive 0, 1, ... + interface fd, wd or sd + unit 0, 1, ... + partition a, c, ... + kernel_name name of kernel, or ? for list of files in root directory + options -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles) + -d (debug early) -g (gdb) -h (serial console) -P (probe kbd) + -r (default root) -s (single user) -v (verbose) +Examples: + 1:sd(0,a)mykernel boot `mykernel' on the first SCSI drive when one IDE + drive is present + 1:wd(2,a) boot from the second (secondary master) IDE drive + 1:sd(0,a)? list the files in the root directory on the specified + drive/unit/partition, and set the default bios_drive, + interface, unit and partition + -cv boot with the defaults, then run UserConfig to modify + hardware parameters (c), and print verbose messages (v) diff --git a/release/picobsd/router/lang/boot.help.pl b/release/picobsd/router/lang/boot.help.pl new file mode 100644 index 000000000000..bb5b422529aa --- /dev/null +++ b/release/picobsd/router/lang/boot.help.pl @@ -0,0 +1,16 @@ +Opcje: dysk_bios:kontroler(dysk,partycja)nazwa_kernela opcje + dysk_bios 0, 1, ... + kontroler fd (dyskietka), wd (dysk IDE) lub sd (dysk SCSI) + dysk 0, 1, ... (numer dysku w kontrolerze) + partycja a, c, e, f ... (wedlug nazewnictwa BSD) + nazwa_kernela nazwa pliku kernela, lub ? zeby dostac liste plikow + opcje -a (pytaj o rootdev) -C (cdrom) -c (userconf.) -D (podwojna konsola) + -d (uruchom debugger) -g (gdb) -h (konsola szeregowa) + -P (probkuj klawiature) -r (domyslny rootdev) -s (tryb single user) + -v (verbose - szczegolowe komunikaty) +Np: 1:sd(0,a)mykernel startuj `mykernel' z 1 dysku SCSI gdy jest tez 1 dysk + IDE, i jednoczesnie ustaw go jako domyslny dysk_bios, + kontroler, dysk i partycje + -cv startuj z parametrami domyslnymi, potem uruchom + konfiguracje param. sprzetowych (-c), i podawaj + szczegolowe komunikaty w trakcie bootowania (-v). diff --git a/release/picobsd/router/lang/hosts.en b/release/picobsd/router/lang/hosts.en new file mode 100644 index 000000000000..53f13bab8b37 --- /dev/null +++ b/release/picobsd/router/lang/hosts.en @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.edu +127.0.0.1 pico.mydomain.edu diff --git a/release/picobsd/router/lang/hosts.pl b/release/picobsd/router/lang/hosts.pl new file mode 100644 index 000000000000..89081d798683 --- /dev/null +++ b/release/picobsd/router/lang/hosts.pl @@ -0,0 +1,5 @@ +# $FreeBSD$ +# This file should contain the addresses and aliases +# for local hosts that share this file. +127.0.0.1 localhost localhost.mydomain.org.pl +127.0.0.1 pico.mydomain.org.pl diff --git a/release/picobsd/router/lang/motd.en b/release/picobsd/router/lang/motd.en new file mode 100644 index 000000000000..d0b03603c746 --- /dev/null +++ b/release/picobsd/router/lang/motd.en @@ -0,0 +1,9 @@ +================================================== + [31m)\_)\[37m +PicoBSD @VER@ (ROUTER) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Welcome to PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +You can find a short description of the [35mpicoBSD[37m +system in http://www.freebsd.org/~picobsd/. + diff --git a/release/picobsd/router/lang/motd.pl b/release/picobsd/router/lang/motd.pl new file mode 100644 index 000000000000..5acadf0d2aa1 --- /dev/null +++ b/release/picobsd/router/lang/motd.pl @@ -0,0 +1,11 @@ +======================================================= + [31m)\_)\[37m +PicoBSD @VER@ (ROUTER) [31m([37m[1mo,o[m[31m)[37m + [32m__ [31m\~/[37m +Witamy w PicoBSD! [32m-->=[41m===[40m[31m\[37m + [32m~~[37m [31md d[37m +Dokumentacja systemu znajduje sie na [35mpicoBSD[37m +http://www.freebsd.org/~picobsd/. + +Wiecej informacji znajdziesz u autora (abial@freebsd.org). + diff --git a/release/picobsd/tinyware/aps/Makefile b/release/picobsd/tinyware/aps/Makefile new file mode 100644 index 000000000000..cda9bdddba1c --- /dev/null +++ b/release/picobsd/tinyware/aps/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ +# +PROG=ps +SRCS+=main.c +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/aps/README b/release/picobsd/tinyware/aps/README new file mode 100644 index 000000000000..f455c7bae307 --- /dev/null +++ b/release/picobsd/tinyware/aps/README @@ -0,0 +1,19 @@ +1998.07.12 + +This is a small 'ps' replacement, which uses information available via +procfs(5) interface. It's primitive, but gives you the most important +informations, i.e. how many processes are running and on which vty, and the +pid number to kill some of them. :-) + +When I have some time, I'll add usual switches and other functions that normal +'ps' has... + +Also, what I'm now inclined to think is that it should be reworked to use +more general (and less complicated) sysctl(3). + +<abial@freebsd.org> + +(As of 1998.07.31 this program is no longer used in PicoBSD. See sps(1) in +TinyWare collection). + +$FreeBSD$ diff --git a/release/picobsd/tinyware/aps/main.c b/release/picobsd/tinyware/aps/main.c new file mode 100644 index 000000000000..eece247af3bd --- /dev/null +++ b/release/picobsd/tinyware/aps/main.c @@ -0,0 +1,101 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki + * 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 <stdio.h> +#include <string.h> +#include <sys/types.h> +#include <dirent.h> + +/* + * Ok, I could extract almost anything from /proc, but I'm too lazy... + * I think it will suffice for now. + */ + +int +main(int argc, char *argv[]) +{ + DIR *d; + struct dirent *e; + FILE *fd; + char buf[100]; + char *tok, *sep=" ", *sep1=","; + char *name, *pid, *ppid, *uid, *gid; + char *pgid, *sid, *tty, *cred; + char *major, *minor; + char con[10]; + + d=opendir("/proc"); + printf(" PID PPID TTY COMMAND\n"); + while((e=readdir(d))!=NULL) { + /* Skip '.' and '..' */ + if(e->d_name[0]=='.') continue; + /* Skip 'curproc' - it's us */ + if(e->d_name[0]=='c') continue; + sprintf(buf,"/proc/%s/status",e->d_name); + fd=fopen(buf,"r"); + fgets(buf,99,fd); + fclose(fd); + name=strtok(buf,sep); + pid=strtok(NULL,sep); + ppid=strtok(NULL,sep); + pgid=strtok(NULL,sep); + sid=strtok(NULL,sep); + tty=strtok(NULL,sep); + tok=strtok(NULL,sep); /* flags */ + tok=strtok(NULL,sep); /* start */ + tok=strtok(NULL,sep); /* user time */ + tok=strtok(NULL,sep); /* system time */ + tok=strtok(NULL,sep); /* wchan */ + cred=strtok(NULL,sep); /* credentials */ + major=strtok(tty,sep1); + minor=strtok(NULL,sep1); + if(strcmp(minor,"-1")==0) { + minor="?"; + } + if(strcmp(major,"-1")==0) { + major="?"; + } else if(strcmp(major,"12")==0) { + major="v"; + } else if(strcmp(major,"0")==0) { + major="con"; + minor="-"; + } else if(strcmp(major,"5")==0) { + major="p"; + } else major="x"; + if((strcmp(major,"v")==0) && (strcmp(minor,"255")==0)) { + major="con"; + minor="-"; + } + sprintf(con,"%s%s",major,minor); + printf("%5s %5s %4s (%s)\n",pid,ppid,con,name); + + } + closedir(d); + exit(0); +} diff --git a/release/picobsd/tinyware/help/Makefile b/release/picobsd/tinyware/help/Makefile new file mode 100644 index 000000000000..2bf727af61b7 --- /dev/null +++ b/release/picobsd/tinyware/help/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ +# +PROG=help +SRCS+=help.c +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/help/README b/release/picobsd/tinyware/help/README new file mode 100644 index 000000000000..9c9900feba3f --- /dev/null +++ b/release/picobsd/tinyware/help/README @@ -0,0 +1,8 @@ +1998.02.20 + +This is work in progress. Eventually I'll prepare the help system for newbies, +and these files are just the beginning of it... + +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/help/help.c b/release/picobsd/tinyware/help/help.c new file mode 100644 index 000000000000..b57b4f6f1557 --- /dev/null +++ b/release/picobsd/tinyware/help/help.c @@ -0,0 +1,157 @@ +/*- + * Copyright (c) 1998 Eric P. Scott <eps@sirius.com> + * Copyright (c) 1998 Andrzej Bialecki <abial@freebsd.org> + * 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 <stdio.h> +#include <string.h> +#include <ar.h> +#include <sys/ioctl.h> + +int display(FILE *, const char *); + +static int cnt, crt=-1; + +int +main(int argc, char *argv[]) +{ + register int i, s; + FILE *fd; + struct ttysize ts; + + if (!(fd=fopen("/help.a", "r"))) { + (void)fputs("Couldn't open help archive.\n", stderr); + exit(1); + } + cnt=0; + if (ioctl(fileno(stdout), TIOCGWINSZ, &ts)>=0) { + crt=ts.ts_lines-1; + } + if (crt<3) crt=23; + s=display(fd, argc>1 ? argv[1] : "help"); + if (s<0) s=0; + else for (i=2;i<argc;) { + rewind(fd); + s|=display(fd, argv[i++]); + if (s<0) { + s=0; + break; + } + } + (void)fclose(fd); + exit(s); +} + +int +more(void) +{ + char buf[8]; + + (void)fflush(stdout); + (void)fputs("\033[7mPress Enter to continue\033[m", stderr); + (void)fflush(stderr); + cnt=0; + if (fgets(buf, sizeof buf, stdin)) return 0; + (void)fputc('\n', stderr); + return 1; +} + +int +display(FILE *fd, const char *fname) +{ + register char *p; + register int c, n, o; + struct ar_hdr ar; + char aname[20]; + + if (!fgets(aname, sizeof aname, fd)) { + return 1; + } + if (strncmp(aname, ARMAG, SARMAG)) return 1; + (void)snprintf(aname, sizeof(aname), "%s/", fname); + for (;;) { + if (fread((void *)&ar, sizeof ar, 1, fd)!=1) return 1; + if (strncmp(ar.ar_fmag, ARFMAG, 2)) return 1; + n=0; + p=ar.ar_size; + do { + if ((c=(int)(*p++-'0'))<0||c>9) break; + n*=10; n+=c; + } while (p<&ar.ar_size[sizeof ar.ar_size]); + if (!strncmp(ar.ar_name, aname, strlen(aname))) break; + if (fseek(fd, (long)n, SEEK_CUR)<0) return 1; + if ((n&1)&&fgetc(fd)!='\n') return 1; + } + if (cnt>=crt&&more()) return -1; + (void)fputc('\n', stdout); + cnt++; + o=0; while (o<n&&(c=fgetc(fd))!=EOF) { + per: + o++; + (void)fputc(c, stdout); + if (c!='\n') continue; + if (++cnt<crt) continue; + if (o>=n||(c=fgetc(fd))==EOF) break; + if (more()) return -1; + goto per; + } + if (cnt>=crt&&more()) return -1; + (void)fputc('\n', stdout); + cnt++; + if (!strcmp(fname, "help")) { + rewind(fd); + (void)fgets(aname, sizeof aname, fd); + if (cnt>=crt&&more()) return -1; + (void)fputs("The following help items are available:\n", + stdout); + cnt++; + o=0; + while (fread((void *)&ar, sizeof ar, 1, fd)==1) { + if (strncmp(ar.ar_fmag, ARFMAG, 2)) break; + if ((o%6)==0) { + (void)fputc('\n', stdout); + if (++cnt>=crt&&more()) return -1; + } + *(index(ar.ar_name,'/'))=' '; + (void)printf("%.13s", ar.ar_name); + ++o; + n=0; + p=ar.ar_size; + do { + if ((c=(int)(*p++-'0'))<0||c>9) break; + n*=10; n+=c; + } while (p<&ar.ar_size[sizeof ar.ar_size]); + if (fseek(fd, (long)n, SEEK_CUR)<0) break; + if ((n&1)&&fgetc(fd)!='\n') break; + } + if (cnt>=crt&&more()) return -1; + (void)fputc('\n', stdout); + cnt++; + } + return 0; +} diff --git a/release/picobsd/tinyware/msg/Makefile b/release/picobsd/tinyware/msg/Makefile new file mode 100644 index 000000000000..840868872c5e --- /dev/null +++ b/release/picobsd/tinyware/msg/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ +# +PROG=msg +SRCS= msg.c +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/msg/README b/release/picobsd/tinyware/msg/README new file mode 100644 index 000000000000..d26e38326a9e --- /dev/null +++ b/release/picobsd/tinyware/msg/README @@ -0,0 +1,15 @@ +1998.09.14, Warsaw + +This program replaces 'dmesg' utility, aand allows you to retrieve the +system's message buffer without resorting to such dirty tricks as normal +'dmesg' uses (using libkvm and /dev/kmem to directly read kernel +memory.. *shudder*). + +This utility uses sysctl(3) interface. The mib variable it uses was +recently added to the kernel sources, so if you don't mind patching your +kernel tree, contact me directly - the patches are very small and simple. + +Andrzej Bialecki +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/msg/msg.c b/release/picobsd/tinyware/msg/msg.c new file mode 100644 index 000000000000..1aa458cf11c4 --- /dev/null +++ b/release/picobsd/tinyware/msg/msg.c @@ -0,0 +1,74 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki <abial@freebsd.org> + * 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$ + */ + +/* + * Small replacement for 'dmesg'. It doesn't need libkvm nor /dev/kmem. + */ + + +#include <stdio.h> +#include <sys/types.h> +#include <sys/sysctl.h> + +int +main(int argc, char *argv[]) +{ + int len,i; + char *buf,*p; + char *mib="machdep.msgbuf"; + + /* We use sysctlbyname, because the oid is unknown (OID_AUTO) */ + + /* get the buffer size */ + i=sysctlbyname(mib,NULL,&len,NULL,NULL); + if(i) { + perror("buffer sizing"); + exit(-1); + } + buf=(char *)malloc(len*sizeof(char)); + i=sysctlbyname(mib,buf,&len,NULL,NULL); + if(i) { + perror("retrieving data"); + exit(-1); + } + p=buf; + i=0; + while(p<(buf+len)) { + switch(*p) { + case '\0': + /* skip initial NULLs */ + break; + default: + putchar(*p); + } + p++; + } + if(*--p!='\n') putchar('\n'); + free(buf); + exit(0); +} diff --git a/release/picobsd/tinyware/msh/Makefile b/release/picobsd/tinyware/msh/Makefile new file mode 100644 index 000000000000..e1a1b541ca35 --- /dev/null +++ b/release/picobsd/tinyware/msh/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ +# +PROG=msh +SRCS= sh1.c sh2.c sh3.c sh4.c sh5.c sh6.c + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/msh/README b/release/picobsd/tinyware/msh/README new file mode 100644 index 000000000000..1b95b8271c8a --- /dev/null +++ b/release/picobsd/tinyware/msh/README @@ -0,0 +1,13 @@ +This is a port of Minix /bin/sh shell. + +It's quite limited, but also quite small. One of most serious +limitations is lack of support for user-defined functions. Also, +globbing should be implemented with our glob(3) - the version in +sh4.c is rather primitive. + +This version is under BSD license. + +Andrzej Bialecki +<abial@FreeBSD.org> + +$Id$ diff --git a/release/picobsd/tinyware/msh/msh.1 b/release/picobsd/tinyware/msh/msh.1 new file mode 100644 index 000000000000..f19bce02cb7a --- /dev/null +++ b/release/picobsd/tinyware/msh/msh.1 @@ -0,0 +1,261 @@ +.TH SH 1 +.SH NAME +sh, ., break, case, cd, continue, eval, exec, exit, export, for, if, read, readonly, set, shift, trap, umask, wait, while \- shell +.SH SYNOPSIS +\fBsh\fR [\fB\-eiknqstvxu\fR] [\fB\-c \fIstr\fR] \fB[\fIfile\fR]\fR +.br +.de FL +.TP +\\fB\\$1\\fR +\\$2 +.. +.de EX +.TP 20 +\\fB\\$1\\fR +# \\$2 +.. +.SH OPTIONS +.FL "\-c" "Execute the commands in \fIstr\fR" +.FL "\-e" "Quit on error" +.FL "\-i" "Interactive mode; ignore QUIT, TERMINATE, INTERRUPT" +.FL "\-k" "Look for name=value everywhere on command line" +.FL "\-n" "Do not execute commands" +.FL "\-q" "Change qflag from sig_ign to sig_del" +.FL "\-s" "Read commands from standard input" +.FL "\-t" "Exit after reading and executing one command" +.FL "\-v" "Echo input lines as they are read" +.FL "\-x" "Trace" +.FL "\-u" "Unset variables" +.SH EXAMPLES +.EX "sh script" "Run a shell script" +.SH DESCRIPTION +.PP +.I Sh +is the shell, which forms the user's main interface with the system. +On startup, the shell reads /etc/profile and $HOME/.profile, if they exist, +and executes any commands they contain. The Minix shell has most of the +features of the V7 (Bourne) shell, including redirection of input and output, +pipes, magic characters, background processes, and shell scripts. A brief +summary follows, but whole books have been written on shell programming alone. +.LP +Some of the more common notations are: +.PP +.in +2.45i +.ta 2i 2.2i +.ti -2.2i +date # Regular command +.ti -2.2i +sort <file # Redirect \fIstdin\fR (standard input) +.ti -2.2i +sort <file1 >file2 # Redirect \fIstdin\fR and \fIstdout\fR +.ti -2.2i +cc file.c 2>error # Redirect \fIstderr\fR +.ti -2.2i +a.out >f 2>&1 # Combine standard output and standard error +.ti -2.2i +sort <file1 >>file2 # Append output to \fIfile2\fR +.ti -2.2i +sort <file1 >file2 & # Background job +.ti -2.2i +(ls \-l; a.out) & # Run two background commands sequentially +.ti -2.2i +sort <file | wc # Two-process pipeline +.ti -2.2i +sort <f | uniq | wc # Three-process pipeline +.ti -2.2i +ls \-l *.c # List all files ending in \fI.c\fR +.ti -2.2i +ls \-l [\fIa-c\fR]* # List all files beginning with \fIa\fR, \fIb\fR, or \fIc\fR +.ti -2.2i +ls \-l ? # List all one-character file names +.ti -2.2i +ls \e? # List the file whose name is question mark +.ti -2.2i +ls \(fm???\(fm # List the file whose name is three question marks +.ti -2.2i +v=/usr/ast # Set shell variable \fIv\fR +.ti -2.2i +ls \-l $v # Use shell variable \fIv\fR +.ti -2.2i +PS1=\(fmHi! \(fm # Change the primary prompt to \fIHi!\fR +.ti -2.2i +PS2=\(fmMore: \(fm # Change the secondary prompt to \fIMore:\fR +.ti -2.2i +ls \-l $HOME # List the home directory +.ti -2.2i +echo $PATH # Echo the search path +.ti -2.2i +echo $? # Echo exit status of previous command in decimal +.ti -2.2i +echo $$ # Echo shell's pid in decimal +.ti -2.2i +echo $! # Echo PID of last background process +.ti -2.2i +echo $# # Echo number of parameters (shell script) +.ti -2.2i +echo $2 # Echo second parameter (shell script) +.ti -2.2i +echo "$2" # Echo second parameter without expanding spaces +.ti -2.2i +echo $* # Echo all parameters (shell script) +.ti -2.2i +echo $@ # Echo all parameters (shell script) +.ti -2.2i +echo "$@" # Echo all parameters without expanding spaces +.in -2.45i +.LP +The shell uses the following variables for specific purposes: +.PP +.in +2.25i +.ta 2i +.ti -2i +SHELL the path of the current shell +.ti -2i +HOME the default value for the cd(1) command +.ti -2i +PATH the directories to be searched to find commands +.ti -2i +IFS the internal field separators for command strings +.ti -2i +PS1 the primary shell prompt +.ti -2i +PS2 the secondary shell prompt +.in -2.25i +.LP +There are various forms of substitution on the shell command line: +.PP +.in +2.25i +.ta 2i +.ti -2i +`...` Command string between back-quotes is replaced by its output +.ti -2i +"..." Permits variable substitution between quotes +.ti -2i +\&'...' Inhibits variable substitution between quotes +.ti -2i +$VAR Replaced by contents of variable VAR +.ti -2i +${VAR} Delimits variable VAR from any following string +.in -2.25i +.LP +The expressions below depend on whether or not VAR has ever been set. +If VAR has been set, they give: +.PP +.in +2.25i +.ta 2i +.ti -2i +${VAR-str} Replace expression by VAR, else by str +.ti -2i +${VAR=str} Replace expression by VAR, else by str and set VAR to str +.ti -2i +${VAR?str} Replace expression by VAR, else print str and exit shell +.ti -2i +${VAR+str} Replace expression by str, else by null string +.in -2.25i +.LP +If a colon is placed after VAR, the expressions depend on whether or not +VAR is currently set and non-null. +.LP +The shell has a number of built-in commands: +.PP +.in +2.25i +.ta 2i +.ti -2i +: return true status +.ti -2i +\&. fn execute shell script fn on current path +.ti -2i +break [n] break from a for, until or while loop; exit n levels +.ti -2i +continue [n] continue a for, until or while loop; resume nth loop +.ti -2i +cd [dir] change current working directory; move to $HOME +.ti -2i +eval cmd rescan cmd, performing substitutions +.ti -2i +eval rescan the current command line +.ti -2i +exec cmd execute cmd without creating a new process +.ti -2i +exec <|> with no command name, modify shell I/O +.ti -2i +exit [n] exit a shell program, with exit value n +.ti -2i +export [var] export var to shell's children; list exported variables +.ti -2i +pwd print the name of the current working directory +.ti -2i +read var read a line from stdin and assign to var +.ti -2i +readonly [var] make var readonly; list readonly variables +.ti -2i +set -f set shell flag (+f unsets flag) +.ti -2i +set str set positional parameter to str +.ti -2i +set show the current shell variables +.ti -2i +shift reassign positional parameters (except ${0}) one left +.ti -2i +times print accumulated user and system times for processes +.ti -2i +trap arg sigs trap signals sigs and run arg on receipt +.ti -2i +trap list trapped signals +.ti -2i +umask [n] set the user file creation mask; show the current umask +.ti -2i +wait [n] wait for process pid n; wait for all processes +.in -2.25i +.LP +The shell also contains a programming language, which has the following +operators and flow control statements: +.PP +.in +3.50i +.ta 2i 3.25i +.ti -3.25i +# Comment The rest of the line is ignored +.ti -3.25i += Assignment Set a shell variable +.ti -3.25i +&& Logical AND Execute second command only if first succeeds +.ti -3.25i +|| Logical OR Execute second command only if first fails +.ti -3.25i +(...) Group Execute enclosed commands before continuing +.in -3.50i +.PP +.in +2.25i +.ta 2i +.ti -2i +for For loop (for ... in ... do ... done) +.ti -2i +case Case statement ((case ... ) ... ;; ... esac) +.ti -2i +esac Case statement end +.ti -2i +while While loop (while ... do ... done) +.ti -2i +do Do/For/While loop start (do ... until ...) +.ti -2i +done For/While loop end +.ti -2i +if Conditional statement (if ... else ... elif ... fi) +.ti -2i +in For loop selection +.ti -2i +then Conditional statement start +.ti -2i +else Conditional statement alternative +.ti -2i +elif Conditional statement end +.ti -2i +until Do loop end +.ti -2i +fi Conditional statement end +.in -2.25i +.SH "SEE ALSO" +.BR echo (1), +.BR expr (1), +.BR pwd (1), +.BR true (1). diff --git a/release/picobsd/tinyware/msh/sh.h b/release/picobsd/tinyware/msh/sh.h new file mode 100644 index 000000000000..223761eb18c7 --- /dev/null +++ b/release/picobsd/tinyware/msh/sh.h @@ -0,0 +1,388 @@ +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <fcntl.h> + +/* Need a way to have void used for ANSI, nothing for K&R. */ +#ifndef _ANSI +#undef _VOID +#define _VOID +#endif + +/* -------- sh.h -------- */ +/* + * shell + */ + +#define LINELIM 2100 +#define NPUSH 8 /* limit to input nesting */ + +#define NOFILE 20 /* Number of open files */ +#define NUFILE 10 /* Number of user-accessible files */ +#define FDBASE 10 /* First file usable by Shell */ + +/* + * values returned by wait + */ +#define WAITSIG(s) ((s)&0177) +#define WAITVAL(s) (((s)>>8)&0377) +#define WAITCORE(s) (((s)&0200)!=0) + +/* + * library and system defintions + */ +#ifdef __STDC__ +typedef void xint; /* base type of jmp_buf, for not broken compilers */ +#else +typedef char * xint; /* base type of jmp_buf, for broken compilers */ +#endif + +/* + * shell components + */ +/* #include "area.h" */ +/* #include "word.h" */ +/* #include "io.h" */ +/* #include "var.h" */ + +#define QUOTE 0200 + +#define NOBLOCK ((struct op *)NULL) +#define NOWORD ((char *)NULL) +#define NOWORDS ((char **)NULL) +#define NOPIPE ((int *)NULL) + +/* + * Description of a command or an operation on commands. + * Might eventually use a union. + */ +struct op { + int type; /* operation type, see below */ + char **words; /* arguments to a command */ + struct ioword **ioact; /* IO actions (eg, < > >>) */ + struct op *left; + struct op *right; + char *str; /* identifier for case and for */ +}; + +#define TCOM 1 /* command */ +#define TPAREN 2 /* (c-list) */ +#define TPIPE 3 /* a | b */ +#define TLIST 4 /* a [&;] b */ +#define TOR 5 /* || */ +#define TAND 6 /* && */ +#define TFOR 7 +#define TDO 8 +#define TCASE 9 +#define TIF 10 +#define TWHILE 11 +#define TUNTIL 12 +#define TELIF 13 +#define TPAT 14 /* pattern in case */ +#define TBRACE 15 /* {c-list} */ +#define TASYNC 16 /* c & */ + +/* + * actions determining the environment of a process + */ +#define BIT(i) (1<<(i)) +#define FEXEC BIT(0) /* execute without forking */ + +/* + * flags to control evaluation of words + */ +#define DOSUB 1 /* interpret $, `, and quotes */ +#define DOBLANK 2 /* perform blank interpretation */ +#define DOGLOB 4 /* interpret [?* */ +#define DOKEY 8 /* move words with `=' to 2nd arg. list */ +#define DOTRIM 16 /* trim resulting string */ + +#define DOALL (DOSUB|DOBLANK|DOGLOB|DOKEY|DOTRIM) + +Extern char **dolv; +Extern int dolc; +Extern int exstat; +Extern char gflg; +Extern int talking; /* interactive (talking-type wireless) */ +Extern int execflg; +Extern int multiline; /* \n changed to ; */ +Extern struct op *outtree; /* result from parser */ + +Extern xint *failpt; +Extern xint *errpt; + +struct brkcon { + jmp_buf brkpt; + struct brkcon *nextlev; +} ; +Extern struct brkcon *brklist; +Extern int isbreak; + +/* + * redirection + */ +struct ioword { + short io_unit; /* unit affected */ + short io_flag; /* action (below) */ + char *io_name; /* file name */ +}; +#define IOREAD 1 /* < */ +#define IOHERE 2 /* << (here file) */ +#define IOWRITE 4 /* > */ +#define IOCAT 8 /* >> */ +#define IOXHERE 16 /* ${}, ` in << */ +#define IODUP 32 /* >&digit */ +#define IOCLOSE 64 /* >&- */ + +#define IODEFAULT (-1) /* token for default IO unit */ + +Extern struct wdblock *wdlist; +Extern struct wdblock *iolist; + +/* + * parsing & execution environment + */ +extern struct env { + char *linep; + struct io *iobase; + struct io *iop; + xint *errpt; + int iofd; + struct env *oenv; +} e; + +/* + * flags: + * -e: quit on error + * -k: look for name=value everywhere on command line + * -n: no execution + * -t: exit after reading and executing one command + * -v: echo as read + * -x: trace + * -u: unset variables net diagnostic + */ +extern char *flag; + +extern char *null; /* null value for variable */ +extern int intr; /* interrupt pending */ + +Extern char *trap[_NSIG+1]; +Extern char ourtrap[_NSIG+1]; +Extern int trapset; /* trap pending */ + +extern int heedint; /* heed interrupt signals */ + +Extern int yynerrs; /* yacc */ + +Extern char line[LINELIM]; +extern char *elinep; + +/* + * other functions + */ +#ifdef __STDC__ +int (*inbuilt(char *s ))(void); +#else +int (*inbuilt())(); +#endif + +#ifdef __FreeBSD__ +#define _PROTOTYPE(x,y) x ## y +#endif + +_PROTOTYPE(char *rexecve , (char *c , char **v , char **envp )); +_PROTOTYPE(char *space , (int n )); +_PROTOTYPE(char *strsave , (char *s , int a )); +_PROTOTYPE(char *evalstr , (char *cp , int f )); +_PROTOTYPE(char *putn , (int n )); +_PROTOTYPE(char *itoa , (unsigned u , int n )); +_PROTOTYPE(char *unquote , (char *as )); +_PROTOTYPE(struct var *lookup , (char *n )); +_PROTOTYPE(int rlookup , (char *n )); +_PROTOTYPE(struct wdblock *glob , (char *cp , struct wdblock *wb )); +_PROTOTYPE(int subgetc , (int ec , int quoted )); +_PROTOTYPE(char **makenv , (void)); +_PROTOTYPE(char **eval , (char **ap , int f )); +_PROTOTYPE(int setstatus , (int s )); +_PROTOTYPE(int waitfor , (int lastpid , int canintr )); + +_PROTOTYPE(void onintr , (int s )); /* SIGINT handler */ + +_PROTOTYPE(int newenv , (int f )); +_PROTOTYPE(void quitenv , (void)); +_PROTOTYPE(void err , (char *s )); +_PROTOTYPE(int anys , (char *s1 , char *s2 )); +_PROTOTYPE(int any , (int c , char *s )); +_PROTOTYPE(void next , (int f )); +_PROTOTYPE(void setdash , (void)); +_PROTOTYPE(void onecommand , (void)); +_PROTOTYPE(void runtrap , (int i )); +_PROTOTYPE(void xfree , (char *s )); +_PROTOTYPE(int letter , (int c )); +_PROTOTYPE(int digit , (int c )); +_PROTOTYPE(int letnum , (int c )); +_PROTOTYPE(int gmatch , (char *s , char *p )); + +/* + * error handling + */ +_PROTOTYPE(void leave , (void)); /* abort shell (or fail in subshell) */ +_PROTOTYPE(void fail , (void)); /* fail but return to process next command */ +_PROTOTYPE(void warn , (char *s )); +_PROTOTYPE(void sig , (int i )); /* default signal handler */ + +/* -------- var.h -------- */ + +struct var { + char *value; + char *name; + struct var *next; + char status; +}; +#define COPYV 1 /* flag to setval, suggesting copy */ +#define RONLY 01 /* variable is read-only */ +#define EXPORT 02 /* variable is to be exported */ +#define GETCELL 04 /* name & value space was got with getcell */ + +Extern struct var *vlist; /* dictionary */ + +Extern struct var *homedir; /* home directory */ +Extern struct var *prompt; /* main prompt */ +Extern struct var *cprompt; /* continuation prompt */ +Extern struct var *path; /* search path for commands */ +Extern struct var *shell; /* shell to interpret command files */ +Extern struct var *ifs; /* field separators */ + +_PROTOTYPE(int yyparse , (void)); +_PROTOTYPE(struct var *lookup , (char *n )); +_PROTOTYPE(void setval , (struct var *vp , char *val )); +_PROTOTYPE(void nameval , (struct var *vp , char *val , char *name )); +_PROTOTYPE(void export , (struct var *vp )); +_PROTOTYPE(void ronly , (struct var *vp )); +_PROTOTYPE(int isassign , (char *s )); +_PROTOTYPE(int checkname , (char *cp )); +_PROTOTYPE(int assign , (char *s , int cf )); +_PROTOTYPE(void putvlist , (int f , int out )); +_PROTOTYPE(int eqname , (char *n1 , char *n2 )); + +_PROTOTYPE(int execute , (struct op *t , int *pin , int *pout , int act )); + +/* -------- io.h -------- */ +/* io buffer */ +struct iobuf { + unsigned id; /* buffer id */ + char buf[512]; /* buffer */ + char *bufp; /* pointer into buffer */ + char *ebufp; /* pointer to end of buffer */ +}; + +/* possible arguments to an IO function */ +struct ioarg { + char *aword; + char **awordlist; + int afile; /* file descriptor */ + unsigned afid; /* buffer id */ + long afpos; /* file position */ + struct iobuf *afbuf; /* buffer for this file */ +}; +Extern struct ioarg ioargstack[NPUSH]; +#define AFID_NOBUF (~0) +#define AFID_ID 0 + +/* an input generator's state */ +struct io { + int (*iofn)(_VOID); + struct ioarg *argp; + int peekc; + char prev; /* previous character read by readc() */ + char nlcount; /* for `'s */ + char xchar; /* for `'s */ + char task; /* reason for pushed IO */ +}; +Extern struct io iostack[NPUSH]; +#define XOTHER 0 /* none of the below */ +#define XDOLL 1 /* expanding ${} */ +#define XGRAVE 2 /* expanding `'s */ +#define XIO 3 /* file IO */ + +/* in substitution */ +#define INSUB() (e.iop->task == XGRAVE || e.iop->task == XDOLL) + +/* + * input generators for IO structure + */ +_PROTOTYPE(int nlchar , (struct ioarg *ap )); +_PROTOTYPE(int strchar , (struct ioarg *ap )); +_PROTOTYPE(int qstrchar , (struct ioarg *ap )); +_PROTOTYPE(int filechar , (struct ioarg *ap )); +_PROTOTYPE(int herechar , (struct ioarg *ap )); +_PROTOTYPE(int linechar , (struct ioarg *ap )); +_PROTOTYPE(int gravechar , (struct ioarg *ap , struct io *iop )); +_PROTOTYPE(int qgravechar , (struct ioarg *ap , struct io *iop )); +_PROTOTYPE(int dolchar , (struct ioarg *ap )); +_PROTOTYPE(int wdchar , (struct ioarg *ap )); +_PROTOTYPE(void scraphere , (void)); +_PROTOTYPE(void freehere , (int area )); +_PROTOTYPE(void gethere , (void)); +_PROTOTYPE(void markhere , (char *s , struct ioword *iop )); +_PROTOTYPE(int herein , (char *hname , int xdoll )); +_PROTOTYPE(int run , (struct ioarg *argp , int (*f)(_VOID))); + +/* + * IO functions + */ +_PROTOTYPE(int eofc , (void)); +_PROTOTYPE(int getc , (int ec )); +_PROTOTYPE(int readc , (void)); +_PROTOTYPE(void unget , (int c )); +_PROTOTYPE(void ioecho , (int c )); +_PROTOTYPE(void prs , (char *s )); +_PROTOTYPE(void putc , (int c )); +_PROTOTYPE(void prn , (unsigned u )); +_PROTOTYPE(void closef , (int i )); +_PROTOTYPE(void closeall , (void)); + +/* + * IO control + */ +_PROTOTYPE(void pushio , (struct ioarg *argp , int (*fn)(_VOID))); +_PROTOTYPE(int remap , (int fd )); +_PROTOTYPE(int openpipe , (int *pv )); +_PROTOTYPE(void closepipe , (int *pv )); +_PROTOTYPE(struct io *setbase , (struct io *ip )); + +extern struct ioarg temparg; /* temporary for PUSHIO */ +#define PUSHIO(what,arg,gen) ((temparg.what = (arg)),pushio(&temparg,(gen))) +#define RUN(what,arg,gen) ((temparg.what = (arg)), run(&temparg,(gen))) + +/* -------- word.h -------- */ +#ifndef WORD_H +#define WORD_H 1 +struct wdblock { + short w_bsize; + short w_nword; + /* bounds are arbitrary */ + char *w_words[1]; +}; + +_PROTOTYPE(struct wdblock *addword , (char *wd , struct wdblock *wb )); +_PROTOTYPE(struct wdblock *newword , (int nw )); +_PROTOTYPE(char **getwords , (struct wdblock *wb )); +#endif + +/* -------- area.h -------- */ + +/* + * storage allocation + */ +_PROTOTYPE(char *getcell , (unsigned nbytes )); +_PROTOTYPE(void garbage , (void)); +_PROTOTYPE(void setarea , (char *cp , int a )); +_PROTOTYPE(int getarea , (char *cp )); +_PROTOTYPE(void freearea , (int a )); +_PROTOTYPE(void freecell , (char *cp )); + +Extern int areanum; /* current allocation area */ + +#define NEW(type) (type *)getcell(sizeof(type)) +#define DELETE(obj) freecell((char *)obj) diff --git a/release/picobsd/tinyware/msh/sh1.c b/release/picobsd/tinyware/msh/sh1.c new file mode 100644 index 000000000000..34b024df9c51 --- /dev/null +++ b/release/picobsd/tinyware/msh/sh1.c @@ -0,0 +1,953 @@ +#define Extern extern +#include <sys/types.h> +#include <signal.h> +#define _NSIG NSIG +#include <errno.h> +#include <setjmp.h> +#include "sh.h" +/* -------- sh.c -------- */ +/* + * shell + */ + +/* #include "sh.h" */ + +int intr; +int inparse; +char flags['z'-'a'+1]; +char *flag = flags-'a'; +char *elinep = line+sizeof(line)-5; +char *null = ""; +int heedint =1; +struct env e ={line, iostack, iostack-1, + (xint *)NULL, FDBASE, (struct env *)NULL}; + +extern char **environ; /* environment pointer */ + +/* + * default shell, search rules + */ +char shellname[] = "/bin/sh"; +char search[] = ":/bin:/usr/bin"; + +_PROTOTYPE(void (*qflag), (int)) = SIG_IGN; + +_PROTOTYPE(int main, (int argc, char **argv )); +_PROTOTYPE(int newfile, (char *s )); +_PROTOTYPE(static char *findeq, (char *cp )); +_PROTOTYPE(static char *cclass, (char *p, int sub )); +_PROTOTYPE(void initarea, (void)); + +int main(argc, argv) +int argc; +register char **argv; +{ + register int f; + register char *s; + int cflag; + char *name, **ap; + int (*iof)(); + + initarea(); + if ((ap = environ) != NULL) { + while (*ap) + assign(*ap++, !COPYV); + for (ap = environ; *ap;) + export(lookup(*ap++)); + } + closeall(); + areanum = 1; + + shell = lookup("SHELL"); + if (shell->value == null) + setval(shell, shellname); + export(shell); + + homedir = lookup("HOME"); + if (homedir->value == null) + setval(homedir, "/"); + export(homedir); + + setval(lookup("$"), itoa(getpid(), 5)); + + path = lookup("PATH"); + if (path->value == null) + setval(path, search); + export(path); + + ifs = lookup("IFS"); + if (ifs->value == null) + setval(ifs, " \t\n"); + + prompt = lookup("PS1"); + if (prompt->value == null) +#ifndef UNIXSHELL + setval(prompt, "$ "); +#else + setval(prompt, "% "); +#endif + + if (geteuid() == 0) { + setval(prompt, "# "); + prompt->status &= ~EXPORT; + } + cprompt = lookup("PS2"); + if (cprompt->value == null) + setval(cprompt, "> "); + + iof = filechar; + cflag = 0; + name = *argv++; + if (--argc >= 1) { + if(argv[0][0] == '-' && argv[0][1] != '\0') { + for (s = argv[0]+1; *s; s++) + switch (*s) { + case 'c': + prompt->status &= ~EXPORT; + cprompt->status &= ~EXPORT; + setval(prompt, ""); + setval(cprompt, ""); + cflag = 1; + if (--argc > 0) + PUSHIO(aword, *++argv, iof = nlchar); + break; + + case 'q': + qflag = SIG_DFL; + break; + + case 's': + /* standard input */ + break; + + case 't': + prompt->status &= ~EXPORT; + setval(prompt, ""); + iof = linechar; + break; + + case 'i': + talking++; + default: + if (*s>='a' && *s<='z') + flag[*s]++; + } + } else { + argv--; + argc++; + } + if (iof == filechar && --argc > 0) { + setval(prompt, ""); + setval(cprompt, ""); + prompt->status &= ~EXPORT; + cprompt->status &= ~EXPORT; + if (newfile(name = *++argv)) + exit(1); + } + } + setdash(); + if (e.iop < iostack) { + PUSHIO(afile, 0, iof); + if (isatty(0) && isatty(1) && !cflag) + talking++; + } + signal(SIGQUIT, qflag); + if (name && name[0] == '-') { + talking++; + if ((f = open(".profile", 0)) >= 0) + next(remap(f)); + if ((f = open("/etc/profile", 0)) >= 0) + next(remap(f)); + } + if (talking) + signal(SIGTERM, sig); + if (signal(SIGINT, SIG_IGN) != SIG_IGN) + signal(SIGINT, onintr); + dolv = argv; + dolc = argc; + dolv[0] = name; + if (dolc > 1) + for (ap = ++argv; --argc > 0;) + if (assign(*ap = *argv++, !COPYV)) + dolc--; /* keyword */ + else + ap++; + setval(lookup("#"), putn((--dolc < 0) ? (dolc = 0) : dolc)); + + for (;;) { + if (talking && e.iop <= iostack) + prs(prompt->value); + onecommand(); + } +} + +void +setdash() +{ + register char *cp, c; + char m['z'-'a'+1]; + + cp = m; + for (c='a'; c<='z'; c++) + if (flag[c]) + *cp++ = c; + *cp = 0; + setval(lookup("-"), m); +} + +int +newfile(s) +register char *s; +{ + register f; + + if (strcmp(s, "-") != 0) { + f = open(s, 0); + if (f < 0) { + prs(s); + err(": cannot open"); + return(1); + } + } else + f = 0; + next(remap(f)); + return(0); +} + +void +onecommand() +{ + register i; + jmp_buf m1; + + while (e.oenv) + quitenv(); + areanum = 1; + freehere(areanum); + freearea(areanum); + garbage(); + wdlist = 0; + iolist = 0; + e.errpt = 0; + e.linep = line; + yynerrs = 0; + multiline = 0; + inparse = 1; + intr = 0; + execflg = 0; + setjmp(failpt = m1); /* Bruce Evans' fix */ + if (setjmp(failpt = m1) || yyparse() || intr) { + while (e.oenv) + quitenv(); + scraphere(); + if (!talking && intr) + leave(); + inparse = 0; + intr = 0; + return; + } + inparse = 0; + brklist = 0; + intr = 0; + execflg = 0; + if (!flag['n']) + execute(outtree, NOPIPE, NOPIPE, 0); + if (!talking && intr) { + execflg = 0; + leave(); + } + if ((i = trapset) != 0) { + trapset = 0; + runtrap(i); + } +} + +void +fail() +{ + longjmp(failpt, 1); + /* NOTREACHED */ +} + +void +leave() +{ + if (execflg) + fail(); + scraphere(); + freehere(1); + runtrap(0); + exit(exstat); + /* NOTREACHED */ +} + +void +warn(s) +register char *s; +{ + if(*s) { + prs(s); + exstat = -1; + } + prs("\n"); + if (flag['e']) + leave(); +} + +void +err(s) +char *s; +{ + warn(s); + if (flag['n']) + return; + if (!talking) + leave(); + if (e.errpt) + longjmp(e.errpt, 1); + closeall(); + e.iop = e.iobase = iostack; +} + +int +newenv(f) +int f; +{ + register struct env *ep; + + if (f) { + quitenv(); + return(1); + } + ep = (struct env *) space(sizeof(*ep)); + if (ep == NULL) { + while (e.oenv) + quitenv(); + fail(); + } + *ep = e; + e.oenv = ep; + e.errpt = errpt; + return(0); +} + +void +quitenv() +{ + register struct env *ep; + register fd; + + if ((ep = e.oenv) != NULL) { + fd = e.iofd; + e = *ep; + /* should close `'d files */ + DELETE(ep); + while (--fd >= e.iofd) + close(fd); + } +} + +/* + * Is any character from s1 in s2? + */ +int +anys(s1, s2) +register char *s1, *s2; +{ + while (*s1) + if (any(*s1++, s2)) + return(1); + return(0); +} + +/* + * Is character c in s? + */ +int +any(c, s) +register int c; +register char *s; +{ + while (*s) + if (*s++ == c) + return(1); + return(0); +} + +char * +putn(n) +register int n; +{ + return(itoa(n, -1)); +} + +char * +itoa(u, n) +register unsigned u; +int n; +{ + register char *cp; + static char s[20]; + int m; + + m = 0; + if (n < 0 && (int) u < 0) { + m++; + u = -u; + } + cp = s+sizeof(s); + *--cp = 0; + do { + *--cp = u%10 + '0'; + u /= 10; + } while (--n > 0 || u); + if (m) + *--cp = '-'; + return(cp); +} + +void +next(f) +int f; +{ + PUSHIO(afile, f, filechar); +} + +void +onintr(s) +int s; /* ANSI C requires a parameter */ +{ + signal(SIGINT, onintr); + intr = 1; + if (talking) { + if (inparse) { + prs("\n"); + fail(); + } + } + else if (heedint) { + execflg = 0; + leave(); + } +} + +int +letter(c) +register c; +{ + return((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_'); +} + +int +digit(c) +register c; +{ + return(c >= '0' && c <= '9'); +} + +int +letnum(c) +register c; +{ + return(letter(c) || digit(c)); +} + +char * +space(n) +int n; +{ + register char *cp; + + if ((cp = getcell(n)) == 0) + err("out of string space"); + return(cp); +} + +char * +strsave(s, a) +register char *s; +int a; +{ + register char *cp, *xp; + + if ((cp = space(strlen(s)+1)) != NULL) { + setarea((char *)cp, a); + for (xp = cp; (*xp++ = *s++) != '\0';) + ; + return(cp); + } + return(""); +} + +void +xfree(s) +register char *s; +{ + DELETE(s); +} + +/* + * trap handling + */ +void +sig(i) +register int i; +{ + trapset = i; + signal(i, sig); +} + +void runtrap(i) +int i; +{ + char *trapstr; + + if ((trapstr = trap[i]) == NULL) + return; + if (i == 0) + trap[i] = 0; + RUN(aword, trapstr, nlchar); +} + +/* -------- var.c -------- */ +/* #include "sh.h" */ + +/* + * Find the given name in the dictionary + * and return its value. If the name was + * not previously there, enter it now and + * return a null value. + */ +struct var * +lookup(n) +register char *n; +{ + register struct var *vp; + register char *cp; + register int c; + static struct var dummy; + + if (digit(*n)) { + dummy.name = n; + for (c = 0; digit(*n) && c < 1000; n++) + c = c*10 + *n-'0'; + dummy.status = RONLY; + dummy.value = c <= dolc? dolv[c]: null; + return(&dummy); + } + for (vp = vlist; vp; vp = vp->next) + if (eqname(vp->name, n)) + return(vp); + cp = findeq(n); + vp = (struct var *)space(sizeof(*vp)); + if (vp == 0 || (vp->name = space((int)(cp-n)+2)) == 0) { + dummy.name = dummy.value = ""; + return(&dummy); + } + for (cp = vp->name; (*cp = *n++) && *cp != '='; cp++) + ; + if (*cp == 0) + *cp = '='; + *++cp = 0; + setarea((char *)vp, 0); + setarea((char *)vp->name, 0); + vp->value = null; + vp->next = vlist; + vp->status = GETCELL; + vlist = vp; + return(vp); +} + +/* + * give variable at `vp' the value `val'. + */ +void +setval(vp, val) +struct var *vp; +char *val; +{ + nameval(vp, val, (char *)NULL); +} + +/* + * if name is not NULL, it must be + * a prefix of the space `val', + * and end with `='. + * this is all so that exporting + * values is reasonably painless. + */ +void +nameval(vp, val, name) +register struct var *vp; +char *val, *name; +{ + register char *cp, *xp; + char *nv; + int fl; + + if (vp->status & RONLY) { + for (xp = vp->name; *xp && *xp != '=';) + putc(*xp++); + err(" is read-only"); + return; + } + fl = 0; + if (name == NULL) { + xp = space(strlen(vp->name)+strlen(val)+2); + if (xp == 0) + return; + /* make string: name=value */ + setarea((char *)xp, 0); + name = xp; + for (cp = vp->name; (*xp = *cp++) && *xp!='='; xp++) + ; + if (*xp++ == 0) + xp[-1] = '='; + nv = xp; + for (cp = val; (*xp++ = *cp++) != '\0';) + ; + val = nv; + fl = GETCELL; + } + if (vp->status & GETCELL) + xfree(vp->name); /* form new string `name=value' */ + vp->name = name; + vp->value = val; + vp->status |= fl; +} + +void +export(vp) +struct var *vp; +{ + vp->status |= EXPORT; +} + +void +ronly(vp) +struct var *vp; +{ + if (letter(vp->name[0])) /* not an internal symbol ($# etc) */ + vp->status |= RONLY; +} + +int +isassign(s) +register char *s; +{ + if (!letter((int)*s)) + return(0); + for (; *s != '='; s++) + if (*s == 0 || !letnum(*s)) + return(0); + return(1); +} + +int +assign(s, cf) +register char *s; +int cf; +{ + register char *cp; + struct var *vp; + + if (!letter(*s)) + return(0); + for (cp = s; *cp != '='; cp++) + if (*cp == 0 || !letnum(*cp)) + return(0); + vp = lookup(s); + nameval(vp, ++cp, cf == COPYV? (char *)NULL: s); + if (cf != COPYV) + vp->status &= ~GETCELL; + return(1); +} + +int +checkname(cp) +register char *cp; +{ + if (!letter(*cp++)) + return(0); + while (*cp) + if (!letnum(*cp++)) + return(0); + return(1); +} + +void +putvlist(f, out) +register int f, out; +{ + register struct var *vp; + + for (vp = vlist; vp; vp = vp->next) + if (vp->status & f && letter(*vp->name)) { + if (vp->status & EXPORT) + write(out, "export ", 7); + if (vp->status & RONLY) + write(out, "readonly ", 9); + write(out, vp->name, (int)(findeq(vp->name) - vp->name)); + write(out, "\n", 1); + } +} + +int +eqname(n1, n2) +register char *n1, *n2; +{ + for (; *n1 != '=' && *n1 != 0; n1++) + if (*n2++ != *n1) + return(0); + return(*n2 == 0 || *n2 == '='); +} + +static char * +findeq(cp) +register char *cp; +{ + while (*cp != '\0' && *cp != '=') + cp++; + return(cp); +} + +/* -------- gmatch.c -------- */ +/* + * int gmatch(string, pattern) + * char *string, *pattern; + * + * Match a pattern as in sh(1). + */ + +#define CMASK 0377 +#define QUOTE 0200 +#define QMASK (CMASK&~QUOTE) +#define NOT '!' /* might use ^ */ + +int +gmatch(s, p) +register char *s, *p; +{ + register int sc, pc; + + if (s == NULL || p == NULL) + return(0); + while ((pc = *p++ & CMASK) != '\0') { + sc = *s++ & QMASK; + switch (pc) { + case '[': + if ((p = cclass(p, sc)) == NULL) + return(0); + break; + + case '?': + if (sc == 0) + return(0); + break; + + case '*': + s--; + do { + if (*p == '\0' || gmatch(s, p)) + return(1); + } while (*s++ != '\0'); + return(0); + + default: + if (sc != (pc&~QUOTE)) + return(0); + } + } + return(*s == 0); +} + +static char * +cclass(p, sub) +register char *p; +register int sub; +{ + register int c, d, not, found; + + if ((not = *p == NOT) != 0) + p++; + found = not; + do { + if (*p == '\0') + return((char *)NULL); + c = *p & CMASK; + if (p[1] == '-' && p[2] != ']') { + d = p[2] & CMASK; + p++; + } else + d = c; + if (c == sub || (c <= sub && sub <= d)) + found = !not; + } while (*++p != ']'); + return(found? p+1: (char *)NULL); +} + +/* -------- area.c -------- */ +#define REGSIZE sizeof(struct region) +#define GROWBY 256 +#undef SHRINKBY 64 +#define FREE 32767 +#define BUSY 0 +#define ALIGN (sizeof(int)-1) + +/* #include "area.h" */ + +struct region { + struct region *next; + int area; +}; + +/* + * All memory between (char *)areabot and (char *)(areatop+1) is + * exclusively administered by the area management routines. + * It is assumed that sbrk() and brk() manipulate the high end. + */ +static struct region *areabot; /* bottom of area */ +static struct region *areatop; /* top of area */ +static struct region *areanxt; /* starting point of scan */ + +void +initarea() +{ + while ((int)sbrk(0) & ALIGN) + sbrk(1); + areabot = (struct region *)sbrk(REGSIZE); + areabot->next = areabot; + areabot->area = BUSY; + areatop = areabot; + areanxt = areabot; +} + +char * +getcell(nbytes) +unsigned nbytes; +{ + register int nregio; + register struct region *p, *q; + register i; + + if (nbytes == 0) + abort(); /* silly and defeats the algorithm */ + /* + * round upwards and add administration area + */ + nregio = (nbytes+(REGSIZE-1))/REGSIZE + 1; + for (p = areanxt;;) { + if (p->area > areanum) { + /* + * merge free cells + */ + while ((q = p->next)->area > areanum && q != areanxt) + p->next = q->next; + /* + * exit loop if cell big enough + */ + if (q >= p + nregio) + goto found; + } + p = p->next; + if (p == areanxt) + break; + } + i = nregio >= GROWBY ? nregio : GROWBY; + p = (struct region *)sbrk(i * REGSIZE); + if (p == (struct region *)-1) + return((char *)NULL); + p--; + if (p != areatop) + abort(); /* allocated areas are contiguous */ + q = p + i; + p->next = q; + p->area = FREE; + q->next = areabot; + q->area = BUSY; + areatop = q; +found: + /* + * we found a FREE area big enough, pointed to by 'p', and up to 'q' + */ + areanxt = p + nregio; + if (areanxt < q) { + /* + * split into requested area and rest + */ + if (areanxt+1 > q) + abort(); /* insufficient space left for admin */ + areanxt->next = q; + areanxt->area = FREE; + p->next = areanxt; + } + p->area = areanum; + return((char *)(p+1)); +} + +void +freecell(cp) +char *cp; +{ + register struct region *p; + + if ((p = (struct region *)cp) != NULL) { + p--; + if (p < areanxt) + areanxt = p; + p->area = FREE; + } +} + +void +freearea(a) +register int a; +{ + register struct region *p, *top; + + top = areatop; + for (p = areabot; p != top; p = p->next) + if (p->area >= a) + p->area = FREE; +} + +void +setarea(cp,a) +char *cp; +int a; +{ + register struct region *p; + + if ((p = (struct region *)cp) != NULL) + (p-1)->area = a; +} + +int +getarea(cp) +char *cp; +{ + return ((struct region*)cp-1)->area; +} + +void +garbage() +{ + register struct region *p, *q, *top; + + top = areatop; + for (p = areabot; p != top; p = p->next) { + if (p->area > areanum) { + while ((q = p->next)->area > areanum) + p->next = q->next; + areanxt = p; + } + } +#ifdef SHRINKBY + if (areatop >= q + SHRINKBY && q->area > areanum) { + brk((char *)(q+1)); + q->next = areabot; + q->area = BUSY; + areatop = q; + } +#endif +} diff --git a/release/picobsd/tinyware/msh/sh2.c b/release/picobsd/tinyware/msh/sh2.c new file mode 100644 index 000000000000..f7eaf017f5ec --- /dev/null +++ b/release/picobsd/tinyware/msh/sh2.c @@ -0,0 +1,801 @@ +#define Extern extern +#include <sys/types.h> +#include <signal.h> +#define _NSIG NSIG +#include <errno.h> +#include <setjmp.h> +#include "sh.h" + +/* -------- csyn.c -------- */ +/* + * shell: syntax (C version) + */ + +typedef union { + char *cp; + char **wp; + int i; + struct op *o; +} YYSTYPE; +#define WORD 256 +#define LOGAND 257 +#define LOGOR 258 +#define BREAK 259 +#define IF 260 +#define THEN 261 +#define ELSE 262 +#define ELIF 263 +#define FI 264 +#define CASE 265 +#define ESAC 266 +#define FOR 267 +#define WHILE 268 +#define UNTIL 269 +#define DO 270 +#define DONE 271 +#define IN 272 +#define YYERRCODE 300 + +/* flags to yylex */ +#define CONTIN 01 /* skip new lines to complete command */ + +/* #include "sh.h" */ +#define SYNTAXERR zzerr() +static int startl; +static int peeksym; +static int nlseen; +static int iounit = IODEFAULT; + +static YYSTYPE yylval; + +_PROTOTYPE(static struct op *pipeline, (int cf )); +_PROTOTYPE(static struct op *andor, (void)); +_PROTOTYPE(static struct op *c_list, (void)); +_PROTOTYPE(static int synio, (int cf )); +_PROTOTYPE(static void musthave, (int c, int cf )); +_PROTOTYPE(static struct op *simple, (void)); +_PROTOTYPE(static struct op *nested, (int type, int mark )); +_PROTOTYPE(static struct op *command, (int cf )); +_PROTOTYPE(static struct op *dogroup, (int onlydone )); +_PROTOTYPE(static struct op *thenpart, (void)); +_PROTOTYPE(static struct op *elsepart, (void)); +_PROTOTYPE(static struct op *caselist, (void)); +_PROTOTYPE(static struct op *casepart, (void)); +_PROTOTYPE(static char **pattern, (void)); +_PROTOTYPE(static char **wordlist, (void)); +_PROTOTYPE(static struct op *list, (struct op *t1, struct op *t2 )); +_PROTOTYPE(static struct op *block, (int type, struct op *t1, struct op *t2, char **wp )); +_PROTOTYPE(static struct op *newtp, (void)); +_PROTOTYPE(static struct op *namelist, (struct op *t )); +_PROTOTYPE(static char **copyw, (void)); +_PROTOTYPE(static void word, (char *cp )); +_PROTOTYPE(static struct ioword **copyio, (void)); +_PROTOTYPE(static struct ioword *io, (int u, int f, char *cp )); +_PROTOTYPE(static void zzerr, (void)); +_PROTOTYPE(void yyerror, (char *s )); +_PROTOTYPE(static int yylex, (int cf )); +_PROTOTYPE(int collect, (int c, int c1 )); +_PROTOTYPE(int dual, (int c )); +_PROTOTYPE(static void diag, (int ec )); +_PROTOTYPE(static char *tree, (unsigned size )); +_PROTOTYPE(void printf, (char *s )); + +int +yyparse() +{ + startl = 1; + peeksym = 0; + yynerrs = 0; + outtree = c_list(); + musthave('\n', 0); + return(yynerrs!=0); +} + +static struct op * +pipeline(cf) +int cf; +{ + register struct op *t, *p; + register int c; + + t = command(cf); + if (t != NULL) { + while ((c = yylex(0)) == '|') { + if ((p = command(CONTIN)) == NULL) + SYNTAXERR; + if (t->type != TPAREN && t->type != TCOM) { + /* shell statement */ + t = block(TPAREN, t, NOBLOCK, NOWORDS); + } + t = block(TPIPE, t, p, NOWORDS); + } + peeksym = c; + } + return(t); +} + +static struct op * +andor() +{ + register struct op *t, *p; + register int c; + + t = pipeline(0); + if (t != NULL) { + while ((c = yylex(0)) == LOGAND || c == LOGOR) { + if ((p = pipeline(CONTIN)) == NULL) + SYNTAXERR; + t = block(c == LOGAND? TAND: TOR, t, p, NOWORDS); + } + peeksym = c; + } + return(t); +} + +static struct op * +c_list() +{ + register struct op *t, *p; + register int c; + + t = andor(); + if (t != NULL) { + if((peeksym = yylex(0)) == '&') + t = block(TASYNC, t, NOBLOCK, NOWORDS); + while ((c = yylex(0)) == ';' || c == '&' || (multiline && c == '\n')) { + if ((p = andor()) == NULL) + return(t); + if((peeksym = yylex(0)) == '&') + p = block(TASYNC, p, NOBLOCK, NOWORDS); + t = list(t, p); + } + peeksym = c; + } + return(t); +} + + +static int +synio(cf) +int cf; +{ + register struct ioword *iop; + register int i; + register int c; + + if ((c = yylex(cf)) != '<' && c != '>') { + peeksym = c; + return(0); + } + i = yylval.i; + musthave(WORD, 0); + iop = io(iounit, i, yylval.cp); + iounit = IODEFAULT; + if (i & IOHERE) + markhere(yylval.cp, iop); + return(1); +} + +static void +musthave(c, cf) +int c, cf; +{ + if ((peeksym = yylex(cf)) != c) + SYNTAXERR; + peeksym = 0; +} + +static struct op * +simple() +{ + register struct op *t; + + t = NULL; + for (;;) { + switch (peeksym = yylex(0)) { + case '<': + case '>': + (void) synio(0); + break; + + case WORD: + if (t == NULL) { + t = newtp(); + t->type = TCOM; + } + peeksym = 0; + word(yylval.cp); + break; + + default: + return(t); + } + } +} + +static struct op * +nested(type, mark) +int type, mark; +{ + register struct op *t; + + multiline++; + t = c_list(); + musthave(mark, 0); + multiline--; + return(block(type, t, NOBLOCK, NOWORDS)); +} + +static struct op * +command(cf) +int cf; +{ + register struct op *t; + struct wdblock *iosave; + register int c; + + iosave = iolist; + iolist = NULL; + if (multiline) + cf |= CONTIN; + while (synio(cf)) + cf = 0; + switch (c = yylex(cf)) { + default: + peeksym = c; + if ((t = simple()) == NULL) { + if (iolist == NULL) + return((struct op *)NULL); + t = newtp(); + t->type = TCOM; + } + break; + + case '(': + t = nested(TPAREN, ')'); + break; + + case '{': + t = nested(TBRACE, '}'); + break; + + case FOR: + t = newtp(); + t->type = TFOR; + musthave(WORD, 0); + startl = 1; + t->str = yylval.cp; + multiline++; + t->words = wordlist(); + if ((c = yylex(0)) != '\n' && c != ';') + peeksym = c; + t->left = dogroup(0); + multiline--; + break; + + case WHILE: + case UNTIL: + multiline++; + t = newtp(); + t->type = c == WHILE? TWHILE: TUNTIL; + t->left = c_list(); + t->right = dogroup(1); + t->words = NULL; + multiline--; + break; + + case CASE: + t = newtp(); + t->type = TCASE; + musthave(WORD, 0); + t->str = yylval.cp; + startl++; + multiline++; + musthave(IN, CONTIN); + startl++; + t->left = caselist(); + musthave(ESAC, 0); + multiline--; + break; + + case IF: + multiline++; + t = newtp(); + t->type = TIF; + t->left = c_list(); + t->right = thenpart(); + musthave(FI, 0); + multiline--; + break; + } + while (synio(0)) + ; + t = namelist(t); + iolist = iosave; + return(t); +} + +static struct op * +dogroup(onlydone) +int onlydone; +{ + register int c; + register struct op *list; + + c = yylex(CONTIN); + if (c == DONE && onlydone) + return((struct op *)NULL); + if (c != DO) + SYNTAXERR; + list = c_list(); + musthave(DONE, 0); + return(list); +} + +static struct op * +thenpart() +{ + register int c; + register struct op *t; + + if ((c = yylex(0)) != THEN) { + peeksym = c; + return((struct op *)NULL); + } + t = newtp(); + t->type = 0; + t->left = c_list(); + if (t->left == NULL) + SYNTAXERR; + t->right = elsepart(); + return(t); +} + +static struct op * +elsepart() +{ + register int c; + register struct op *t; + + switch (c = yylex(0)) { + case ELSE: + if ((t = c_list()) == NULL) + SYNTAXERR; + return(t); + + case ELIF: + t = newtp(); + t->type = TELIF; + t->left = c_list(); + t->right = thenpart(); + return(t); + + default: + peeksym = c; + return((struct op *)NULL); + } +} + +static struct op * +caselist() +{ + register struct op *t; + + t = NULL; + while ((peeksym = yylex(CONTIN)) != ESAC) + t = list(t, casepart()); + return(t); +} + +static struct op * +casepart() +{ + register struct op *t; + + t = newtp(); + t->type = TPAT; + t->words = pattern(); + musthave(')', 0); + t->left = c_list(); + if ((peeksym = yylex(CONTIN)) != ESAC) + musthave(BREAK, CONTIN); + return(t); +} + +static char ** +pattern() +{ + register int c, cf; + + cf = CONTIN; + do { + musthave(WORD, cf); + word(yylval.cp); + cf = 0; + } while ((c = yylex(0)) == '|'); + peeksym = c; + word(NOWORD); + return(copyw()); +} + +static char ** +wordlist() +{ + register int c; + + if ((c = yylex(0)) != IN) { + peeksym = c; + return((char **)NULL); + } + startl = 0; + while ((c = yylex(0)) == WORD) + word(yylval.cp); + word(NOWORD); + peeksym = c; + return(copyw()); +} + +/* + * supporting functions + */ +static struct op * +list(t1, t2) +register struct op *t1, *t2; +{ + if (t1 == NULL) + return(t2); + if (t2 == NULL) + return(t1); + return(block(TLIST, t1, t2, NOWORDS)); +} + +static struct op * +block(type, t1, t2, wp) +int type; +struct op *t1, *t2; +char **wp; +{ + register struct op *t; + + t = newtp(); + t->type = type; + t->left = t1; + t->right = t2; + t->words = wp; + return(t); +} + +struct res { + char *r_name; + int r_val; +} restab[] = { + "for", FOR, + "case", CASE, + "esac", ESAC, + "while", WHILE, + "do", DO, + "done", DONE, + "if", IF, + "in", IN, + "then", THEN, + "else", ELSE, + "elif", ELIF, + "until", UNTIL, + "fi", FI, + + ";;", BREAK, + "||", LOGOR, + "&&", LOGAND, + "{", '{', + "}", '}', + + 0, +}; + +int +rlookup(n) +register char *n; +{ + register struct res *rp; + + for (rp = restab; rp->r_name; rp++) + if (strcmp(rp->r_name, n) == 0) + return(rp->r_val); + return(0); +} + +static struct op * +newtp() +{ + register struct op *t; + + t = (struct op *)tree(sizeof(*t)); + t->type = 0; + t->words = NULL; + t->ioact = NULL; + t->left = NULL; + t->right = NULL; + t->str = NULL; + return(t); +} + +static struct op * +namelist(t) +register struct op *t; +{ + if (iolist) { + iolist = addword((char *)NULL, iolist); + t->ioact = copyio(); + } else + t->ioact = NULL; + if (t->type != TCOM) { + if (t->type != TPAREN && t->ioact != NULL) { + t = block(TPAREN, t, NOBLOCK, NOWORDS); + t->ioact = t->left->ioact; + t->left->ioact = NULL; + } + return(t); + } + word(NOWORD); + t->words = copyw(); + return(t); +} + +static char ** +copyw() +{ + register char **wd; + + wd = getwords(wdlist); + wdlist = 0; + return(wd); +} + +static void +word(cp) +char *cp; +{ + wdlist = addword(cp, wdlist); +} + +static struct ioword ** +copyio() +{ + register struct ioword **iop; + + iop = (struct ioword **) getwords(iolist); + iolist = 0; + return(iop); +} + +static struct ioword * +io(u, f, cp) +int u; +int f; +char *cp; +{ + register struct ioword *iop; + + iop = (struct ioword *) tree(sizeof(*iop)); + iop->io_unit = u; + iop->io_flag = f; + iop->io_name = cp; + iolist = addword((char *)iop, iolist); + return(iop); +} + +static void +zzerr() +{ + yyerror("syntax error"); +} + +void +yyerror(s) +char *s; +{ + yynerrs++; + if (talking && e.iop <= iostack) { + multiline = 0; + while (eofc() == 0 && yylex(0) != '\n') + ; + } + err(s); + fail(); +} + +static int +yylex(cf) +int cf; +{ + register int c, c1; + int atstart; + + if ((c = peeksym) > 0) { + peeksym = 0; + if (c == '\n') + startl = 1; + return(c); + } + nlseen = 0; + e.linep = line; + atstart = startl; + startl = 0; + yylval.i = 0; + +loop: + while ((c = getc(0)) == ' ' || c == '\t') + ; + switch (c) { + default: + if (any(c, "0123456789")) { + unget(c1 = getc(0)); + if (c1 == '<' || c1 == '>') { + iounit = c - '0'; + goto loop; + } + *e.linep++ = c; + c = c1; + } + break; + + case '#': + while ((c = getc(0)) != 0 && c != '\n') + ; + unget(c); + goto loop; + + case 0: + return(c); + + case '$': + *e.linep++ = c; + if ((c = getc(0)) == '{') { + if ((c = collect(c, '}')) != '\0') + return(c); + goto pack; + } + break; + + case '`': + case '\'': + case '"': + if ((c = collect(c, c)) != '\0') + return(c); + goto pack; + + case '|': + case '&': + case ';': + if ((c1 = dual(c)) != '\0') { + startl = 1; + return(c1); + } + startl = 1; + return(c); + case '^': + startl = 1; + return('|'); + case '>': + case '<': + diag(c); + return(c); + + case '\n': + nlseen++; + gethere(); + startl = 1; + if (multiline || cf & CONTIN) { + if (talking && e.iop <= iostack) + prs(cprompt->value); + if (cf & CONTIN) + goto loop; + } + return(c); + + case '(': + case ')': + startl = 1; + return(c); + } + + unget(c); + +pack: + while ((c = getc(0)) != 0 && !any(c, "`$ '\"\t;&<>()|^\n")) + if (e.linep >= elinep) + err("word too long"); + else + *e.linep++ = c; + unget(c); + if(any(c, "\"'`$")) + goto loop; + *e.linep++ = '\0'; + if (atstart && (c = rlookup(line))!=0) { + startl = 1; + return(c); + } + yylval.cp = strsave(line, areanum); + return(WORD); +} + +int +collect(c, c1) +register c, c1; +{ + char s[2]; + + *e.linep++ = c; + while ((c = getc(c1)) != c1) { + if (c == 0) { + unget(c); + s[0] = c1; + s[1] = 0; + prs("no closing "); yyerror(s); + return(YYERRCODE); + } + if (talking && c == '\n' && e.iop <= iostack) + prs(cprompt->value); + *e.linep++ = c; + } + *e.linep++ = c; + return(0); +} + +int +dual(c) +register c; +{ + char s[3]; + register char *cp = s; + + *cp++ = c; + *cp++ = getc(0); + *cp = 0; + if ((c = rlookup(s)) == 0) + unget(*--cp); + return(c); +} + +static void +diag(ec) +register int ec; +{ + register int c; + + c = getc(0); + if (c == '>' || c == '<') { + if (c != ec) + zzerr(); + yylval.i = ec == '>'? IOWRITE|IOCAT: IOHERE; + c = getc(0); + } else + yylval.i = ec == '>'? IOWRITE: IOREAD; + if (c != '&' || yylval.i == IOHERE) + unget(c); + else + yylval.i |= IODUP; +} + +static char * +tree(size) +unsigned size; +{ + register char *t; + + if ((t = getcell(size)) == NULL) { + prs("command line too complicated\n"); + fail(); + /* NOTREACHED */ + } + return(t); +} + +/* VARARGS1 */ +/* ARGSUSED */ +void +printf(s) /* yyparse calls it */ +char *s; +{ +} + diff --git a/release/picobsd/tinyware/msh/sh3.c b/release/picobsd/tinyware/msh/sh3.c new file mode 100644 index 000000000000..5959f2735424 --- /dev/null +++ b/release/picobsd/tinyware/msh/sh3.c @@ -0,0 +1,1143 @@ +#define Extern extern +#include <sys/types.h> +#include <signal.h> +#define _NSIG NSIG +#include <errno.h> +#include <setjmp.h> +#include <stddef.h> +#include <time.h> +#include <sys/times.h> +#include <sys/stat.h> +#include <sys/wait.h> +#undef NULL +#include "sh.h" + +/* -------- exec.c -------- */ +/* #include "sh.h" */ + +/* + * execute tree + */ + +static char *signame[] = { + "Signal 0", + "Hangup", + (char *)NULL, /* interrupt */ + "Quit", + "Illegal instruction", + "Trace/BPT trap", + "Abort", + "EMT trap", + "Floating exception", + "Killed", + "Bus error", + "Memory fault", + "Bad system call", + (char *)NULL, /* broken pipe */ + "Alarm clock", + "Terminated", +}; +#define NSIGNAL (sizeof(signame)/sizeof(signame[0])) + + +_PROTOTYPE(static int forkexec, (struct op *t, int *pin, int *pout, int act, char **wp, int *pforked )); +_PROTOTYPE(static int parent, (void)); +_PROTOTYPE(int iosetup, (struct ioword *iop, int pipein, int pipeout )); +_PROTOTYPE(static void echo, (char **wp )); +_PROTOTYPE(static struct op **find1case, (struct op *t, char *w )); +_PROTOTYPE(static struct op *findcase, (struct op *t, char *w )); +_PROTOTYPE(static void brkset, (struct brkcon *bc )); +_PROTOTYPE(int dolabel, (void)); +_PROTOTYPE(int dochdir, (struct op *t )); +_PROTOTYPE(int doshift, (struct op *t )); +_PROTOTYPE(int dologin, (struct op *t )); +_PROTOTYPE(int doumask, (struct op *t )); +_PROTOTYPE(int doexec, (struct op *t )); +_PROTOTYPE(int dodot, (struct op *t )); +_PROTOTYPE(int dowait, (struct op *t )); +_PROTOTYPE(int doread, (struct op *t )); +_PROTOTYPE(int doeval, (struct op *t )); +_PROTOTYPE(int dotrap, (struct op *t )); +_PROTOTYPE(int getsig, (char *s )); +_PROTOTYPE(void setsig, (int n, void (*f)())); +_PROTOTYPE(int getn, (char *as )); +_PROTOTYPE(int dobreak, (struct op *t )); +_PROTOTYPE(int docontinue, (struct op *t )); +_PROTOTYPE(static int brkcontin, (char *cp, int val )); +_PROTOTYPE(int doexit, (struct op *t )); +_PROTOTYPE(int doexport, (struct op *t )); +_PROTOTYPE(int doreadonly, (struct op *t )); +_PROTOTYPE(static void rdexp, (char **wp, void (*f)(), int key)); +_PROTOTYPE(static void badid, (char *s )); +_PROTOTYPE(int doset, (struct op *t )); +_PROTOTYPE(void varput, (char *s, int out )); +_PROTOTYPE(int dotimes, (void)); + +int +execute(t, pin, pout, act) +register struct op *t; +int *pin, *pout; +int act; +{ + register struct op *t1; + int i, pv[2], rv, child, a; + char *cp, **wp, **wp2; + struct var *vp; + struct brkcon bc; + + if (t == NULL) + return(0); + rv = 0; + a = areanum++; + wp = (wp2 = t->words) != NULL + ? eval(wp2, t->type == TCOM ? DOALL : DOALL & ~DOKEY) + : NULL; + + switch(t->type) { + case TPAREN: + case TCOM: + rv = forkexec(t, pin, pout, act, wp, &child); + if (child) { + exstat = rv; + leave(); + } + break; + + case TPIPE: + if ((rv = openpipe(pv)) < 0) + break; + pv[0] = remap(pv[0]); + pv[1] = remap(pv[1]); + (void) execute(t->left, pin, pv, 0); + rv = execute(t->right, pv, pout, 0); + break; + + case TLIST: + (void) execute(t->left, pin, pout, 0); + rv = execute(t->right, pin, pout, 0); + break; + + case TASYNC: + i = parent(); + if (i != 0) { + if (i != -1) { + setval(lookup("!"), putn(i)); + if (pin != NULL) + closepipe(pin); + if (talking) { + prs(putn(i)); + prs("\n"); + } + } else + rv = -1; + setstatus(rv); + } else { + signal(SIGINT, SIG_IGN); + signal(SIGQUIT, SIG_IGN); + if (talking) + signal(SIGTERM, SIG_DFL); + talking = 0; + if (pin == NULL) { + close(0); + open("/dev/null", 0); + } + exit(execute(t->left, pin, pout, FEXEC)); + } + break; + + case TOR: + case TAND: + rv = execute(t->left, pin, pout, 0); + if ((t1 = t->right)!=NULL && (rv == 0) == (t->type == TAND)) + rv = execute(t1, pin, pout, 0); + break; + + case TFOR: + if (wp == NULL) { + wp = dolv+1; + if ((i = dolc) < 0) + i = 0; + } else { + i = -1; + while (*wp++ != NULL) + ; + } + vp = lookup(t->str); + while (setjmp(bc.brkpt)) + if (isbreak) + goto broken; + brkset(&bc); + for (t1 = t->left; i-- && *wp != NULL;) { + setval(vp, *wp++); + rv = execute(t1, pin, pout, 0); + } + brklist = brklist->nextlev; + break; + + case TWHILE: + case TUNTIL: + while (setjmp(bc.brkpt)) + if (isbreak) + goto broken; + brkset(&bc); + t1 = t->left; + while ((execute(t1, pin, pout, 0) == 0) == (t->type == TWHILE)) + rv = execute(t->right, pin, pout, 0); + brklist = brklist->nextlev; + break; + + case TIF: + case TELIF: + if (t->right != NULL) { + rv = !execute(t->left, pin, pout, 0) ? + execute(t->right->left, pin, pout, 0): + execute(t->right->right, pin, pout, 0); + } + break; + + case TCASE: + if ((cp = evalstr(t->str, DOSUB|DOTRIM)) == 0) + cp = ""; + if ((t1 = findcase(t->left, cp)) != NULL) + rv = execute(t1, pin, pout, 0); + break; + + case TBRACE: +/* + if (iopp = t->ioact) + while (*iopp) + if (iosetup(*iopp++, pin!=NULL, pout!=NULL)) { + rv = -1; + break; + } +*/ + if (rv >= 0 && (t1 = t->left)) + rv = execute(t1, pin, pout, 0); + break; + } + +broken: + t->words = wp2; + isbreak = 0; + freehere(areanum); + freearea(areanum); + areanum = a; + if (talking && intr) { + closeall(); + fail(); + } + if ((i = trapset) != 0) { + trapset = 0; + runtrap(i); + } + return(rv); +} + +static int +forkexec(t, pin, pout, act, wp, pforked) +register struct op *t; +int *pin, *pout; +int act; +char **wp; +int *pforked; +{ + int i, rv, (*shcom)(); + register int f; + char *cp; + struct ioword **iopp; + int resetsig; + char **owp; + + owp = wp; + resetsig = 0; + *pforked = 0; + shcom = NULL; + rv = -1; /* system-detected error */ + if (t->type == TCOM) { + while ((cp = *wp++) != NULL) + ; + cp = *wp; + + /* strip all initial assignments */ + /* not correct wrt PATH=yyy command etc */ + if (flag['x']) + echo (cp ? wp: owp); + if (cp == NULL && t->ioact == NULL) { + while ((cp = *owp++) != NULL && assign(cp, COPYV)) + ; + return(setstatus(0)); + } + else if (cp != NULL) + shcom = inbuilt(cp); + } + t->words = wp; + f = act; + if (shcom == NULL && (f & FEXEC) == 0) { + i = parent(); + if (i != 0) { + if (i == -1) + return(rv); + if (pin != NULL) + closepipe(pin); + return(pout==NULL? setstatus(waitfor(i,0)): 0); + } + if (talking) { + signal(SIGINT, SIG_IGN); + signal(SIGQUIT, SIG_IGN); + resetsig = 1; + } + talking = 0; + intr = 0; + (*pforked)++; + brklist = 0; + execflg = 0; + } + if (owp != NULL) + while ((cp = *owp++) != NULL && assign(cp, COPYV)) + if (shcom == NULL) + export(lookup(cp)); +#ifdef COMPIPE + if ((pin != NULL || pout != NULL) && shcom != NULL && shcom != doexec) { + err("piping to/from shell builtins not yet done"); + return(-1); + } +#endif + if (pin != NULL) { + dup2(pin[0], 0); + closepipe(pin); + } + if (pout != NULL) { + dup2(pout[1], 1); + closepipe(pout); + } + if ((iopp = t->ioact) != NULL) { + if (shcom != NULL && shcom != doexec) { + prs(cp); + err(": cannot redirect shell command"); + return(-1); + } + while (*iopp) + if (iosetup(*iopp++, pin!=NULL, pout!=NULL)) + return(rv); + } + if (shcom) + return(setstatus((*shcom)(t))); + /* should use FIOCEXCL */ + for (i=FDBASE; i<NOFILE; i++) + close(i); + if (resetsig) { + signal(SIGINT, SIG_DFL); + signal(SIGQUIT, SIG_DFL); + } + if (t->type == TPAREN) + exit(execute(t->left, NOPIPE, NOPIPE, FEXEC)); + if (wp[0] == NULL) + exit(0); + cp = rexecve(wp[0], wp, makenv()); + prs(wp[0]); prs(": "); warn(cp); + if (!execflg) + trap[0] = NULL; + leave(); + /* NOTREACHED */ +} + +/* + * common actions when creating a new child + */ +static int +parent() +{ + register int i; + + i = fork(); + if (i != 0) { + if (i == -1) + warn("try again"); + } + return(i); +} + +/* + * 0< 1> are ignored as required + * within pipelines. + */ +int +iosetup(iop, pipein, pipeout) +register struct ioword *iop; +int pipein, pipeout; +{ + register u; + char *cp, *msg; + + if (iop->io_unit == IODEFAULT) /* take default */ + iop->io_unit = iop->io_flag&(IOREAD|IOHERE)? 0: 1; + if (pipein && iop->io_unit == 0) + return(0); + if (pipeout && iop->io_unit == 1) + return(0); + msg = iop->io_flag&(IOREAD|IOHERE)? "open": "create"; + if ((iop->io_flag & IOHERE) == 0) { + cp = iop->io_name; + if ((cp = evalstr(cp, DOSUB|DOTRIM)) == NULL) + return(1); + } + if (iop->io_flag & IODUP) { + if (cp[1] || (!digit(*cp) && *cp != '-')) { + prs(cp); + err(": illegal >& argument"); + return(1); + } + if (*cp == '-') + iop->io_flag = IOCLOSE; + iop->io_flag &= ~(IOREAD|IOWRITE); + } + switch (iop->io_flag) { + case IOREAD: + u = open(cp, 0); + break; + + case IOHERE: + case IOHERE|IOXHERE: + u = herein(iop->io_name, iop->io_flag&IOXHERE); + cp = "here file"; + break; + + case IOWRITE|IOCAT: + if ((u = open(cp, 1)) >= 0) { + lseek(u, (long)0, 2); + break; + } + case IOWRITE: + u = creat(cp, 0666); + break; + + case IODUP: + u = dup2(*cp-'0', iop->io_unit); + break; + + case IOCLOSE: + close(iop->io_unit); + return(0); + } + if (u < 0) { + prs(cp); + prs(": cannot "); + warn(msg); + return(1); + } else { + if (u != iop->io_unit) { + dup2(u, iop->io_unit); + close(u); + } + } + return(0); +} + +static void +echo(wp) +register char **wp; +{ + register i; + + prs("+"); + for (i=0; wp[i]; i++) { + if (i) + prs(" "); + prs(wp[i]); + } + prs("\n"); +} + +static struct op ** +find1case(t, w) +struct op *t; +char *w; +{ + register struct op *t1; + struct op **tp; + register char **wp, *cp; + + if (t == NULL) + return((struct op **)NULL); + if (t->type == TLIST) { + if ((tp = find1case(t->left, w)) != NULL) + return(tp); + t1 = t->right; /* TPAT */ + } else + t1 = t; + for (wp = t1->words; *wp;) + if ((cp = evalstr(*wp++, DOSUB)) && gmatch(w, cp)) + return(&t1->left); + return((struct op **)NULL); +} + +static struct op * +findcase(t, w) +struct op *t; +char *w; +{ + register struct op **tp; + + return((tp = find1case(t, w)) != NULL? *tp: (struct op *)NULL); +} + +/* + * Enter a new loop level (marked for break/continue). + */ +static void +brkset(bc) +struct brkcon *bc; +{ + bc->nextlev = brklist; + brklist = bc; +} + +/* + * Wait for the last process created. + * Print a message for each process found + * that was killed by a signal. + * Ignore interrupt signals while waiting + * unless `canintr' is true. + */ +int +waitfor(lastpid, canintr) +register int lastpid; +int canintr; +{ + register int pid, rv; + int s; + int oheedint = heedint; + + heedint = 0; + rv = 0; + do { + pid = wait(&s); + if (pid == -1) { + if (errno != EINTR || canintr) + break; + } else { + if ((rv = WAITSIG(s)) != 0) { + if (rv < NSIGNAL) { + if (signame[rv] != NULL) { + if (pid != lastpid) { + prn(pid); + prs(": "); + } + prs(signame[rv]); + } + } else { + if (pid != lastpid) { + prn(pid); + prs(": "); + } + prs("Signal "); prn(rv); prs(" "); + } + if (WAITCORE(s)) + prs(" - core dumped"); + if (rv >= NSIGNAL || signame[rv]) + prs("\n"); + rv = -1; + } else + rv = WAITVAL(s); + } + } while (pid != lastpid); + heedint = oheedint; + if (intr) + if (talking) { + if (canintr) + intr = 0; + } else { + if (exstat == 0) exstat = rv; + onintr(0); + } + return(rv); +} + +int +setstatus(s) +register int s; +{ + exstat = s; + setval(lookup("?"), putn(s)); + return(s); +} + +/* + * PATH-searching interface to execve. + * If getenv("PATH") were kept up-to-date, + * execvp might be used. + */ +char * +rexecve(c, v, envp) +char *c, **v, **envp; +{ + register int i; + register char *sp, *tp; + int eacces = 0, asis = 0; + + sp = any('/', c)? "": path->value; + asis = *sp == '\0'; + while (asis || *sp != '\0') { + asis = 0; + tp = e.linep; + for (; *sp != '\0'; tp++) + if ((*tp = *sp++) == ':') { + asis = *sp == '\0'; + break; + } + if (tp != e.linep) + *tp++ = '/'; + for (i = 0; (*tp++ = c[i++]) != '\0';) + ; + execve(e.linep, v, envp); + switch (errno) { + case ENOEXEC: + *v = e.linep; + tp = *--v; + *v = e.linep; + execve("/bin/sh", v, envp); + *v = tp; + return("no Shell"); + + case ENOMEM: + return("program too big"); + + case E2BIG: + return("argument list too long"); + + case EACCES: + eacces++; + break; + } + } + return(errno==ENOENT ? "not found" : "cannot execute"); +} + +/* + * Run the command produced by generator `f' + * applied to stream `arg'. + */ +int +run(argp, f) +struct ioarg *argp; +int (*f)(); +{ + struct op *otree; + struct wdblock *swdlist; + struct wdblock *siolist; + jmp_buf ev, rt; + xint *ofail; + int rv; + + areanum++; + swdlist = wdlist; + siolist = iolist; + otree = outtree; + ofail = failpt; + rv = -1; + if (newenv(setjmp(errpt = ev)) == 0) { + wdlist = 0; + iolist = 0; + pushio(argp, f); + e.iobase = e.iop; + yynerrs = 0; + if (setjmp(failpt = rt) == 0 && yyparse() == 0) + rv = execute(outtree, NOPIPE, NOPIPE, 0); + quitenv(); + } + wdlist = swdlist; + iolist = siolist; + failpt = ofail; + outtree = otree; + freearea(areanum--); + return(rv); +} + +/* -------- do.c -------- */ +/* #include "sh.h" */ + +/* + * built-in commands: doX + */ + +int +dolabel() +{ + return(0); +} + +int +dochdir(t) +register struct op *t; +{ + register char *cp, *er; + + if ((cp = t->words[1]) == NULL && (cp = homedir->value) == NULL) + er = ": no home directory"; + else if(chdir(cp) < 0) + er = ": bad directory"; + else + return(0); + prs(cp != NULL? cp: "cd"); + err(er); + return(1); +} + +int +doshift(t) +register struct op *t; +{ + register n; + + n = t->words[1]? getn(t->words[1]): 1; + if(dolc < n) { + err("nothing to shift"); + return(1); + } + dolv[n] = dolv[0]; + dolv += n; + dolc -= n; + setval(lookup("#"), putn(dolc)); + return(0); +} + +/* + * execute login and newgrp directly + */ +int +dologin(t) +struct op *t; +{ + register char *cp; + + if (talking) { + signal(SIGINT, SIG_DFL); + signal(SIGQUIT, SIG_DFL); + } + cp = rexecve(t->words[0], t->words, makenv()); + prs(t->words[0]); prs(": "); err(cp); + return(1); +} + +int +doumask(t) +register struct op *t; +{ + register int i, n; + register char *cp; + + if ((cp = t->words[1]) == NULL) { + i = umask(0); + umask(i); + for (n=3*4; (n-=3) >= 0;) + putc('0'+((i>>n)&07)); + putc('\n'); + } else { + for (n=0; *cp>='0' && *cp<='9'; cp++) + n = n*8 + (*cp-'0'); + umask(n); + } + return(0); +} + +int +doexec(t) +register struct op *t; +{ + register i; + jmp_buf ex; + xint *ofail; + + t->ioact = NULL; + for(i = 0; (t->words[i]=t->words[i+1]) != NULL; i++) + ; + if (i == 0) + return(1); + execflg = 1; + ofail = failpt; + if (setjmp(failpt = ex) == 0) + execute(t, NOPIPE, NOPIPE, FEXEC); + failpt = ofail; + execflg = 0; + return(1); +} + +int +dodot(t) +struct op *t; +{ + register i; + register char *sp, *tp; + char *cp; + + if ((cp = t->words[1]) == NULL) + return(0); + sp = any('/', cp)? ":": path->value; + while (*sp) { + tp = e.linep; + while (*sp && (*tp = *sp++) != ':') + tp++; + if (tp != e.linep) + *tp++ = '/'; + for (i = 0; (*tp++ = cp[i++]) != '\0';) + ; + if ((i = open(e.linep, 0)) >= 0) { + exstat = 0; + next(remap(i)); + return(exstat); + } + } + prs(cp); + err(": not found"); + return(-1); +} + +int +dowait(t) +struct op *t; +{ + register i; + register char *cp; + + if ((cp = t->words[1]) != NULL) { + i = getn(cp); + if (i == 0) + return(0); + } else + i = -1; + setstatus(waitfor(i, 1)); + return(0); +} + +int +doread(t) +struct op *t; +{ + register char *cp, **wp; + register nb; + register int nl = 0; + + if (t->words[1] == NULL) { + err("Usage: read name ..."); + return(1); + } + for (wp = t->words+1; *wp; wp++) { + for (cp = e.linep; !nl && cp < elinep-1; cp++) + if ((nb = read(0, cp, sizeof(*cp))) != sizeof(*cp) || + (nl = (*cp == '\n')) || + (wp[1] && any(*cp, ifs->value))) + break; + *cp = 0; + if (nb <= 0) + break; + setval(lookup(*wp), e.linep); + } + return(nb <= 0); +} + +int +doeval(t) +register struct op *t; +{ + return(RUN(awordlist, t->words+1, wdchar)); +} + +int +dotrap(t) +register struct op *t; +{ + register int n, i; + register int resetsig; + + if (t->words[1] == NULL) { + for (i=0; i<=_NSIG; i++) + if (trap[i]) { + prn(i); + prs(": "); + prs(trap[i]); + prs("\n"); + } + return(0); + } + resetsig = digit(*t->words[1]); + for (i = resetsig ? 1 : 2; t->words[i] != NULL; ++i) { + n = getsig(t->words[i]); + xfree(trap[n]); + trap[n] = 0; + if (!resetsig) { + if (*t->words[1] != '\0') { + trap[n] = strsave(t->words[1], 0); + setsig(n, sig); + } else + setsig(n, SIG_IGN); + } else { + if (talking) + if (n == SIGINT) + setsig(n, onintr); + else + setsig(n, n == SIGQUIT ? SIG_IGN + : SIG_DFL); + else + setsig(n, SIG_DFL); + } + } + return(0); +} + +int +getsig(s) +char *s; +{ + register int n; + + if ((n = getn(s)) < 0 || n > _NSIG) { + err("trap: bad signal number"); + n = 0; + } + return(n); +} + +void +setsig(n, f) +register n; +_PROTOTYPE(void (*f), (int)); +{ + if (n == 0) + return; + if (signal(n, SIG_IGN) != SIG_IGN || ourtrap[n]) { + ourtrap[n] = 1; + signal(n, f); + } +} + +int +getn(as) +char *as; +{ + register char *s; + register n, m; + + s = as; + m = 1; + if (*s == '-') { + m = -1; + s++; + } + for (n = 0; digit(*s); s++) + n = (n*10) + (*s-'0'); + if (*s) { + prs(as); + err(": bad number"); + } + return(n*m); +} + +int +dobreak(t) +struct op *t; +{ + return(brkcontin(t->words[1], 1)); +} + +int +docontinue(t) +struct op *t; +{ + return(brkcontin(t->words[1], 0)); +} + +static int +brkcontin(cp, val) +register char *cp; +int val; +{ + register struct brkcon *bc; + register nl; + + nl = cp == NULL? 1: getn(cp); + if (nl <= 0) + nl = 999; + do { + if ((bc = brklist) == NULL) + break; + brklist = bc->nextlev; + } while (--nl); + if (nl) { + err("bad break/continue level"); + return(1); + } + isbreak = val; + longjmp(bc->brkpt, 1); + /* NOTREACHED */ +} + +int +doexit(t) +struct op *t; +{ + register char *cp; + + execflg = 0; + if ((cp = t->words[1]) != NULL) + setstatus(getn(cp)); + leave(); + /* NOTREACHED */ +} + +int +doexport(t) +struct op *t; +{ + rdexp(t->words+1, export, EXPORT); + return(0); +} + +int +doreadonly(t) +struct op *t; +{ + rdexp(t->words+1, ronly, RONLY); + return(0); +} + +static void +rdexp(wp, f, key) +register char **wp; +void (*f)(); +int key; +{ + if (*wp != NULL) { + for (; *wp != NULL; wp++) + if (checkname(*wp)) + (*f)(lookup(*wp)); + else + badid(*wp); + } else + putvlist(key, 1); +} + +static void +badid(s) +register char *s; +{ + prs(s); + err(": bad identifier"); +} + +int +doset(t) +register struct op *t; +{ + register struct var *vp; + register char *cp; + register n; + + if ((cp = t->words[1]) == NULL) { + for (vp = vlist; vp; vp = vp->next) + varput(vp->name, 1); + return(0); + } + if (*cp == '-') { + /* bad: t->words++; */ + for(n = 0; (t->words[n]=t->words[n+1]) != NULL; n++) + ; + if (*++cp == 0) + flag['x'] = flag['v'] = 0; + else + for (; *cp; cp++) + switch (*cp) { + case 'e': + if (!talking) + flag['e']++; + break; + + default: + if (*cp>='a' && *cp<='z') + flag[*cp]++; + break; + } + setdash(); + } + if (t->words[1]) { + t->words[0] = dolv[0]; + for (n=1; t->words[n]; n++) + setarea((char *)t->words[n], 0); + dolc = n-1; + dolv = t->words; + setval(lookup("#"), putn(dolc)); + setarea((char *)(dolv-1), 0); + } + return(0); +} + +void +varput(s, out) +register char *s; +int out; +{ + if (letnum(*s)) { + write(out, s, strlen(s)); + write(out, "\n", 1); + } +} + + +#define SECS 60L +#define MINS 3600L + +int +dotimes() +{ + struct tms tbuf; + + times(&tbuf); + + prn((int)(tbuf.tms_cutime / MINS)); + prs("m"); + prn((int)((tbuf.tms_cutime % MINS) / SECS)); + prs("s "); + prn((int)(tbuf.tms_cstime / MINS)); + prs("m"); + prn((int)((tbuf.tms_cstime % MINS) / SECS)); + prs("s\n"); + return(0); +} + +struct builtin { + char *command; + int (*fn)(); +}; +static struct builtin builtin[] = { + ":", dolabel, + "cd", dochdir, + "shift", doshift, + "exec", doexec, + "wait", dowait, + "read", doread, + "eval", doeval, + "trap", dotrap, + "break", dobreak, + "continue", docontinue, + "exit", doexit, + "export", doexport, + "readonly", doreadonly, + "set", doset, + ".", dodot, + "umask", doumask, + "login", dologin, + "newgrp", dologin, + "times", dotimes, + 0, +}; + +int (*inbuilt(s))() +register char *s; +{ + register struct builtin *bp; + + for (bp = builtin; bp->command != NULL; bp++) + if (strcmp(bp->command, s) == 0) + return(bp->fn); + return((int(*)())NULL); +} + diff --git a/release/picobsd/tinyware/msh/sh4.c b/release/picobsd/tinyware/msh/sh4.c new file mode 100644 index 000000000000..ac2a5827aeea --- /dev/null +++ b/release/picobsd/tinyware/msh/sh4.c @@ -0,0 +1,767 @@ +#define Extern extern +#include <sys/types.h> +#include <sys/stat.h> +#include <dirent.h> +#include <limits.h> +#include <signal.h> +#define _NSIG NSIG +#include <errno.h> +#include <setjmp.h> +#include "sh.h" + +/* -------- eval.c -------- */ +/* #include "sh.h" */ +/* #include "word.h" */ + +/* + * ${} + * `command` + * blank interpretation + * quoting + * glob + */ + +_PROTOTYPE(static int expand, (char *cp, struct wdblock **wbp, int f )); +_PROTOTYPE(static char *blank, (int f )); +_PROTOTYPE(static int dollar, (int quoted )); +_PROTOTYPE(static int grave, (int quoted )); +_PROTOTYPE(void globname, (char *we, char *pp )); +_PROTOTYPE(static char *generate, (char *start1, char *end1, char *middle, char *end )); +_PROTOTYPE(static int anyspcl, (struct wdblock *wb )); +_PROTOTYPE(static int xstrcmp, (char *p1, char *p2 )); +_PROTOTYPE(void glob0, (char *a0, unsigned int a1, int a2, int (*a3)(char *, char *))); +_PROTOTYPE(void glob1, (char *base, char *lim )); +_PROTOTYPE(void glob2, (char *i, char *j )); +_PROTOTYPE(void glob3, (char *i, char *j, char *k )); +_PROTOTYPE(char *memcopy, (char *ato, char *from, int nb )); + +char ** +eval(ap, f) +register char **ap; +int f; +{ + struct wdblock *wb; + char **wp; + char **wf; + jmp_buf ev; + + wp = NULL; + wb = NULL; + wf = NULL; + if (newenv(setjmp(errpt = ev)) == 0) { + while (*ap && isassign(*ap)) + expand(*ap++, &wb, f & ~DOGLOB); + if (flag['k']) { + for (wf = ap; *wf; wf++) { + if (isassign(*wf)) + expand(*wf, &wb, f & ~DOGLOB); + } + } + for (wb = addword((char *)0, wb); *ap; ap++) { + if (!flag['k'] || !isassign(*ap)) + expand(*ap, &wb, f & ~DOKEY); + } + wb = addword((char *)0, wb); + wp = getwords(wb); + quitenv(); + } else + gflg = 1; + return(gflg? (char **)NULL: wp); +} + +/* + * Make the exported environment from the exported + * names in the dictionary. Keyword assignments + * will already have been done. + */ +char ** +makenv() + +{ + register struct wdblock *wb; + register struct var *vp; + + wb = NULL; + for (vp = vlist; vp; vp = vp->next) + if (vp->status & EXPORT) + wb = addword(vp->name, wb); + wb = addword((char *)0, wb); + return(getwords(wb)); +} + +char * +evalstr(cp, f) +register char *cp; +int f; +{ + struct wdblock *wb; + + wb = NULL; + if (expand(cp, &wb, f)) { + if (wb == NULL || wb->w_nword == 0 || (cp = wb->w_words[0]) == NULL) + cp = ""; + DELETE(wb); + } else + cp = NULL; + return(cp); +} + +static int +expand(cp, wbp, f) +register char *cp; +register struct wdblock **wbp; +int f; +{ + jmp_buf ev; + + gflg = 0; + if (cp == NULL) + return(0); + if (!anys("$`'\"", cp) && + !anys(ifs->value, cp) && + ((f&DOGLOB)==0 || !anys("[*?", cp))) { + cp = strsave(cp, areanum); + if (f & DOTRIM) + unquote(cp); + *wbp = addword(cp, *wbp); + return(1); + } + if (newenv(setjmp(errpt = ev)) == 0) { + PUSHIO(aword, cp, strchar); + e.iobase = e.iop; + while ((cp = blank(f)) && gflg == 0) { + e.linep = cp; + cp = strsave(cp, areanum); + if ((f&DOGLOB) == 0) { + if (f & DOTRIM) + unquote(cp); + *wbp = addword(cp, *wbp); + } else + *wbp = glob(cp, *wbp); + } + quitenv(); + } else + gflg = 1; + return(gflg == 0); +} + +/* + * Blank interpretation and quoting + */ +static char * +blank(f) +int f; +{ + register c, c1; + register char *sp; + int scanequals, foundequals; + + sp = e.linep; + scanequals = f & DOKEY; + foundequals = 0; + +loop: + switch (c = subgetc('"', foundequals)) { + case 0: + if (sp == e.linep) + return(0); + *e.linep++ = 0; + return(sp); + + default: + if (f & DOBLANK && any(c, ifs->value)) + goto loop; + break; + + case '"': + case '\'': + scanequals = 0; + if (INSUB()) + break; + for (c1 = c; (c = subgetc(c1, 1)) != c1;) { + if (c == 0) + break; + if (c == '\'' || !any(c, "$`\"")) + c |= QUOTE; + *e.linep++ = c; + } + c = 0; + } + unget(c); + if (!letter(c)) + scanequals = 0; + for (;;) { + c = subgetc('"', foundequals); + if (c == 0 || + f & (DOBLANK && any(c, ifs->value)) || + (!INSUB() && any(c, "\"'"))) { + scanequals = 0; + unget(c); + if (any(c, "\"'")) + goto loop; + break; + } + if (scanequals) + if (c == '=') { + foundequals = 1; + scanequals = 0; + } + else if (!letnum(c)) + scanequals = 0; + *e.linep++ = c; + } + *e.linep++ = 0; + return(sp); +} + +/* + * Get characters, substituting for ` and $ + */ +int +subgetc(ec, quoted) +register char ec; +int quoted; +{ + register char c; + +again: + c = getc(ec); + if (!INSUB() && ec != '\'') { + if (c == '`') { + if (grave(quoted) == 0) + return(0); + e.iop->task = XGRAVE; + goto again; + } + if (c == '$' && (c = dollar(quoted)) == 0) { + e.iop->task = XDOLL; + goto again; + } + } + return(c); +} + +/* + * Prepare to generate the string returned by ${} substitution. + */ +static int +dollar(quoted) +int quoted; +{ + int otask; + struct io *oiop; + char *dolp; + register char *s, c, *cp; + struct var *vp; + + c = readc(); + s = e.linep; + if (c != '{') { + *e.linep++ = c; + if (letter(c)) { + while ((c = readc())!=0 && letnum(c)) + if (e.linep < elinep) + *e.linep++ = c; + unget(c); + } + c = 0; + } else { + oiop = e.iop; + otask = e.iop->task; + e.iop->task = XOTHER; + while ((c = subgetc('"', 0))!=0 && c!='}' && c!='\n') + if (e.linep < elinep) + *e.linep++ = c; + if (oiop == e.iop) + e.iop->task = otask; + if (c != '}') { + err("unclosed ${"); + gflg++; + return(c); + } + } + if (e.linep >= elinep) { + err("string in ${} too long"); + gflg++; + e.linep -= 10; + } + *e.linep = 0; + if (*s) + for (cp = s+1; *cp; cp++) + if (any(*cp, "=-+?")) { + c = *cp; + *cp++ = 0; + break; + } + if (s[1] == 0 && (*s == '*' || *s == '@')) { + if (dolc > 1) { + /* currently this does not distinguish $* and $@ */ + /* should check dollar */ + e.linep = s; + PUSHIO(awordlist, dolv+1, dolchar); + return(0); + } else { /* trap the nasty ${=} */ + s[0] = '1'; + s[1] = 0; + } + } + vp = lookup(s); + if ((dolp = vp->value) == null) { + switch (c) { + case '=': + if (digit(*s)) { + err("cannot use ${...=...} with $n"); + gflg++; + break; + } + setval(vp, cp); + dolp = vp->value; + break; + + case '-': + dolp = strsave(cp, areanum); + break; + + case '?': + if (*cp == 0) { + prs("missing value for "); + err(s); + } else + err(cp); + gflg++; + break; + } + } else if (c == '+') + dolp = strsave(cp, areanum); + if (flag['u'] && dolp == null) { + prs("unset variable: "); + err(s); + gflg++; + } + e.linep = s; + PUSHIO(aword, dolp, quoted ? qstrchar : strchar); + return(0); +} + +/* + * Run the command in `...` and read its output. + */ +static int +grave(quoted) +int quoted; +{ + register char *cp; + register int i; + int pf[2]; + + for (cp = e.iop->argp->aword; *cp != '`'; cp++) + if (*cp == 0) { + err("no closing `"); + return(0); + } + if (openpipe(pf) < 0) + return(0); + if ((i = fork()) == -1) { + closepipe(pf); + err("try again"); + return(0); + } + if (i != 0) { + e.iop->argp->aword = ++cp; + close(pf[1]); + PUSHIO(afile, remap(pf[0]), quoted? qgravechar: gravechar); + return(1); + } + *cp = 0; + /* allow trapped signals */ + for (i=0; i<=_NSIG; i++) + if (ourtrap[i] && signal(i, SIG_IGN) != SIG_IGN) + signal(i, SIG_DFL); + dup2(pf[1], 1); + closepipe(pf); + flag['e'] = 0; + flag['v'] = 0; + flag['n'] = 0; + cp = strsave(e.iop->argp->aword, 0); + areanum = 1; + freehere(areanum); + freearea(areanum); /* free old space */ + e.oenv = NULL; + e.iop = (e.iobase = iostack) - 1; + unquote(cp); + talking = 0; + PUSHIO(aword, cp, nlchar); + onecommand(); + exit(1); +} + +char * +unquote(as) +register char *as; +{ + register char *s; + + if ((s = as) != NULL) + while (*s) + *s++ &= ~QUOTE; + return(as); +} + +/* -------- glob.c -------- */ +/* #include "sh.h" */ + +/* + * glob + */ + +#define scopy(x) strsave((x), areanum) +#define BLKSIZ 512 +#define NDENT ((BLKSIZ+sizeof(struct dirent)-1)/sizeof(struct dirent)) + +static struct wdblock *cl, *nl; +static char spcl[] = "[?*"; + +struct wdblock * +glob(cp, wb) +char *cp; +struct wdblock *wb; +{ + register i; + register char *pp; + + if (cp == 0) + return(wb); + i = 0; + for (pp = cp; *pp; pp++) + if (any(*pp, spcl)) + i++; + else if (!any(*pp & ~QUOTE, spcl)) + *pp &= ~QUOTE; + if (i != 0) { + for (cl = addword(scopy(cp), (struct wdblock *)0); anyspcl(cl); cl = nl) { + nl = newword(cl->w_nword*2); + for(i=0; i<cl->w_nword; i++) { /* for each argument */ + for (pp = cl->w_words[i]; *pp; pp++) + if (any(*pp, spcl)) { + globname(cl->w_words[i], pp); + break; + } + if (*pp == '\0') + nl = addword(scopy(cl->w_words[i]), nl); + } + for(i=0; i<cl->w_nword; i++) + DELETE(cl->w_words[i]); + DELETE(cl); + } + for(i=0; i<cl->w_nword; i++) + unquote(cl->w_words[i]); + glob0((char *)cl->w_words, cl->w_nword, sizeof(char *), xstrcmp); + if (cl->w_nword) { + for (i=0; i<cl->w_nword; i++) + wb = addword(cl->w_words[i], wb); + DELETE(cl); + return(wb); + } + } + wb = addword(unquote(cp), wb); + return(wb); +} + +void +globname(we, pp) +char *we; +register char *pp; +{ + register char *np, *cp; + char *name, *gp, *dp; + int dn, j, n, k; + DIR *dirp; + struct dirent *de; + char dname[NAME_MAX+1]; + struct stat dbuf; + + for (np = we; np != pp; pp--) + if (pp[-1] == '/') + break; + for (dp = cp = space((int)(pp-np)+3); np < pp;) + *cp++ = *np++; + *cp++ = '.'; + *cp = '\0'; + for (gp = cp = space(strlen(pp)+1); *np && *np != '/';) + *cp++ = *np++; + *cp = '\0'; + dirp = opendir(dp); + if (dirp == 0) { + DELETE(dp); + DELETE(gp); + return; + } + dname[NAME_MAX] = '\0'; + while ((de=readdir(dirp))!=NULL) { + /* XXX Hmmm... What this could be? (abial) */ + /* + if (ent[j].d_ino == 0) + continue; + */ + strncpy(dname, de->d_name, NAME_MAX); + if (dname[0] == '.') + if (*gp != '.') + continue; + for(k=0; k<NAME_MAX; k++) + if (any(dname[k], spcl)) + dname[k] |= QUOTE; + if (gmatch(dname, gp)) { + name = generate(we, pp, dname, np); + if (*np && !anys(np, spcl)) { + if (stat(name,&dbuf)) { + DELETE(name); + continue; + } + } + nl = addword(name, nl); + } + } + closedir(dirp); + DELETE(dp); + DELETE(gp); +} + +/* + * generate a pathname as below. + * start..end1 / middle end + * the slashes come for free + */ +static char * +generate(start1, end1, middle, end) +char *start1; +register char *end1; +char *middle, *end; +{ + char *p; + register char *op, *xp; + + p = op = space((int)(end1-start1)+strlen(middle)+strlen(end)+2); + for (xp = start1; xp != end1;) + *op++ = *xp++; + for (xp = middle; (*op++ = *xp++) != '\0';) + ; + op--; + for (xp = end; (*op++ = *xp++) != '\0';) + ; + return(p); +} + +static int +anyspcl(wb) +register struct wdblock *wb; +{ + register i; + register char **wd; + + wd = wb->w_words; + for (i=0; i<wb->w_nword; i++) + if (anys(spcl, *wd++)) + return(1); + return(0); +} + +static int +xstrcmp(p1, p2) +char *p1, *p2; +{ + return(strcmp(*(char **)p1, *(char **)p2)); +} + +/* -------- word.c -------- */ +/* #include "sh.h" */ +/* #include "word.h" */ + +#define NSTART 16 /* default number of words to allow for initially */ + +struct wdblock * +newword(nw) +register int nw; +{ + register struct wdblock *wb; + + wb = (struct wdblock *) space(sizeof(*wb) + nw*sizeof(char *)); + wb->w_bsize = nw; + wb->w_nword = 0; + return(wb); +} + +struct wdblock * +addword(wd, wb) +char *wd; +register struct wdblock *wb; +{ + register struct wdblock *wb2; + register nw; + + if (wb == NULL) + wb = newword(NSTART); + if ((nw = wb->w_nword) >= wb->w_bsize) { + wb2 = newword(nw * 2); + memcopy((char *)wb2->w_words, (char *)wb->w_words, nw*sizeof(char *)); + wb2->w_nword = nw; + DELETE(wb); + wb = wb2; + } + wb->w_words[wb->w_nword++] = wd; + return(wb); +} + +char ** +getwords(wb) +register struct wdblock *wb; +{ + register char **wd; + register nb; + + if (wb == NULL) + return((char **)NULL); + if (wb->w_nword == 0) { + DELETE(wb); + return((char **)NULL); + } + wd = (char **) space(nb = sizeof(*wd) * wb->w_nword); + memcopy((char *)wd, (char *)wb->w_words, nb); + DELETE(wb); /* perhaps should done by caller */ + return(wd); +} + +_PROTOTYPE(int (*func), (char *, char *)); +int globv; + +void +glob0(a0, a1, a2, a3) +char *a0; +unsigned a1; +int a2; +_PROTOTYPE(int (*a3), (char *, char *)); +{ + func = a3; + globv = a2; + glob1(a0, a0 + a1 * a2); +} + +void +glob1(base, lim) +char *base, *lim; +{ + register char *i, *j; + int v2; + char *lptr, *hptr; + int c; + unsigned n; + + + v2 = globv; + +top: + if ((n=(int)(lim-base)) <= v2) + return; + n = v2 * (n / (2*v2)); + hptr = lptr = base+n; + i = base; + j = lim-v2; + for(;;) { + if (i < lptr) { + if ((c = (*func)(i, lptr)) == 0) { + glob2(i, lptr -= v2); + continue; + } + if (c < 0) { + i += v2; + continue; + } + } + +begin: + if (j > hptr) { + if ((c = (*func)(hptr, j)) == 0) { + glob2(hptr += v2, j); + goto begin; + } + if (c > 0) { + if (i == lptr) { + glob3(i, hptr += v2, j); + i = lptr += v2; + goto begin; + } + glob2(i, j); + j -= v2; + i += v2; + continue; + } + j -= v2; + goto begin; + } + + + if (i == lptr) { + if (lptr-base >= lim-hptr) { + glob1(hptr+v2, lim); + lim = lptr; + } else { + glob1(base, lptr); + base = hptr+v2; + } + goto top; + } + + + glob3(j, lptr -= v2, i); + j = hptr -= v2; + } +} + +void +glob2(i, j) +char *i, *j; +{ + register char *index1, *index2, c; + int m; + + m = globv; + index1 = i; + index2 = j; + do { + c = *index1; + *index1++ = *index2; + *index2++ = c; + } while(--m); +} + +void +glob3(i, j, k) +char *i, *j, *k; +{ + register char *index1, *index2, *index3; + int c; + int m; + + m = globv; + index1 = i; + index2 = j; + index3 = k; + do { + c = *index1; + *index1++ = *index3; + *index3++ = *index2; + *index2++ = c; + } while(--m); +} + +char * +memcopy(ato, from, nb) +register char *ato, *from; +register int nb; +{ + register char *to; + + to = ato; + while (--nb >= 0) + *to++ = *from++; + return(ato); +} diff --git a/release/picobsd/tinyware/msh/sh5.c b/release/picobsd/tinyware/msh/sh5.c new file mode 100644 index 000000000000..74feac9cebce --- /dev/null +++ b/release/picobsd/tinyware/msh/sh5.c @@ -0,0 +1,675 @@ +#define Extern extern +#include <sys/types.h> +#include <signal.h> +#define _NSIG NSIG +#include <errno.h> +#include <setjmp.h> +#include "sh.h" + +/* -------- io.c -------- */ +/* #include "sh.h" */ + +/* + * shell IO + */ + +static struct iobuf sharedbuf = {AFID_NOBUF}; +static struct iobuf mainbuf = {AFID_NOBUF}; +static unsigned bufid = AFID_ID; /* buffer id counter */ + +struct ioarg temparg = {0, 0, 0, AFID_NOBUF, 0}; + +_PROTOTYPE(static void readhere, (char **name, char *s, int ec )); +_PROTOTYPE(void pushio, (struct ioarg *argp, int (*fn)())); +_PROTOTYPE(static int xxchar, (struct ioarg *ap )); +_PROTOTYPE(void tempname, (char *tname )); + +int +getc(ec) +register int ec; +{ + register int c; + + if(e.linep > elinep) { + while((c=readc()) != '\n' && c) + ; + err("input line too long"); + gflg++; + return(c); + } + c = readc(); + if (ec != '\'' && e.iop->task != XGRAVE) { + if(c == '\\') { + c = readc(); + if (c == '\n' && ec != '\"') + return(getc(ec)); + c |= QUOTE; + } + } + return(c); +} + +void +unget(c) +int c; +{ + if (e.iop >= e.iobase) + e.iop->peekc = c; +} + +int +eofc() + +{ + return e.iop < e.iobase || (e.iop->peekc == 0 && e.iop->prev == 0); +} + +int +readc() +{ + register c; + + for (; e.iop >= e.iobase; e.iop--) + if ((c = e.iop->peekc) != '\0') { + e.iop->peekc = 0; + return(c); + } + else { + if (e.iop->prev != 0) { + if ((c = (*e.iop->iofn)(e.iop->argp, e.iop)) != '\0') { + if (c == -1) { + e.iop++; + continue; + } + if (e.iop == iostack) + ioecho(c); + return(e.iop->prev = c); + } + else if (e.iop->task == XIO && e.iop->prev != '\n') { + e.iop->prev = 0; + if (e.iop == iostack) + ioecho('\n'); + return '\n'; + } + } + if (e.iop->task == XIO) { + if (multiline) + return e.iop->prev = 0; + if (talking && e.iop == iostack+1) + prs(prompt->value); + } + } + if (e.iop >= iostack) + return(0); + leave(); + /* NOTREACHED */ +} + +void +ioecho(c) +char c; +{ + if (flag['v']) + write(2, &c, sizeof c); +} + +void +pushio(argp, fn) +struct ioarg *argp; +int (*fn)(); +{ + if (++e.iop >= &iostack[NPUSH]) { + e.iop--; + err("Shell input nested too deeply"); + gflg++; + return; + } + e.iop->iofn = fn; + + if (argp->afid != AFID_NOBUF) + e.iop->argp = argp; + else { + e.iop->argp = ioargstack + (e.iop - iostack); + *e.iop->argp = *argp; + e.iop->argp->afbuf = e.iop == &iostack[0] ? &mainbuf : &sharedbuf; + if (isatty(e.iop->argp->afile) == 0 && + (e.iop == &iostack[0] || + lseek(e.iop->argp->afile, 0L, 1) != -1)) { + if (++bufid == AFID_NOBUF) + bufid = AFID_ID; + e.iop->argp->afid = bufid; + } + } + + e.iop->prev = ~'\n'; + e.iop->peekc = 0; + e.iop->xchar = 0; + e.iop->nlcount = 0; + if (fn == filechar || fn == linechar) + e.iop->task = XIO; + else if (fn == gravechar || fn == qgravechar) + e.iop->task = XGRAVE; + else + e.iop->task = XOTHER; +} + +struct io * +setbase(ip) +struct io *ip; +{ + register struct io *xp; + + xp = e.iobase; + e.iobase = ip; + return(xp); +} + +/* + * Input generating functions + */ + +/* + * Produce the characters of a string, then a newline, then EOF. + */ +int +nlchar(ap) +register struct ioarg *ap; +{ + register int c; + + if (ap->aword == NULL) + return(0); + if ((c = *ap->aword++) == 0) { + ap->aword = NULL; + return('\n'); + } + return(c); +} + +/* + * Given a list of words, produce the characters + * in them, with a space after each word. + */ +int +wdchar(ap) +register struct ioarg *ap; +{ + register char c; + register char **wl; + + if ((wl = ap->awordlist) == NULL) + return(0); + if (*wl != NULL) { + if ((c = *(*wl)++) != 0) + return(c & 0177); + ap->awordlist++; + return(' '); + } + ap->awordlist = NULL; + return('\n'); +} + +/* + * Return the characters of a list of words, + * producing a space between them. + */ +int +dolchar(ap) +register struct ioarg *ap; +{ + register char *wp; + + if ((wp = *ap->awordlist++) != NULL) { + PUSHIO(aword, wp, *ap->awordlist == NULL? strchar: xxchar); + return(-1); + } + return(0); +} + +static int +xxchar(ap) +register struct ioarg *ap; +{ + register int c; + + if (ap->aword == NULL) + return(0); + if ((c = *ap->aword++) == '\0') { + ap->aword = NULL; + return(' '); + } + return(c); +} + +/* + * Produce the characters from a single word (string). + */ +int +strchar(ap) +register struct ioarg *ap; +{ + register int c; + + if (ap->aword == NULL || (c = *ap->aword++) == 0) + return(0); + return(c); +} + +/* + * Produce quoted characters from a single word (string). + */ +int +qstrchar(ap) +register struct ioarg *ap; +{ + register int c; + + if (ap->aword == NULL || (c = *ap->aword++) == 0) + return(0); + return(c|QUOTE); +} + +/* + * Return the characters from a file. + */ +int +filechar(ap) +register struct ioarg *ap; +{ + register int i; + char c; + struct iobuf *bp = ap->afbuf; + + if (ap->afid != AFID_NOBUF) { + if ((i = ap->afid != bp->id) || bp->bufp == bp->ebufp) { + if (i) + lseek(ap->afile, ap->afpos, 0); + do { + i = read(ap->afile, bp->buf, sizeof(bp->buf)); + } while (i < 0 && errno == EINTR); + if (i <= 0) { + closef(ap->afile); + return 0; + } + bp->id = ap->afid; + bp->ebufp = (bp->bufp = bp->buf) + i; + } + ap->afpos++; + return *bp->bufp++ & 0177; + } + + do { + i = read(ap->afile, &c, sizeof(c)); + } while (i < 0 && errno == EINTR); + return(i == sizeof(c)? c&0177: (closef(ap->afile), 0)); +} + +/* + * Return the characters from a here temp file. + */ +int +herechar(ap) +register struct ioarg *ap; +{ + char c; + + + if (read(ap->afile, &c, sizeof(c)) != sizeof(c)) { + close(ap->afile); + c = 0; + } + return (c); + +} + +/* + * Return the characters produced by a process (`...`). + * Quote them if required, and remove any trailing newline characters. + */ +int +gravechar(ap, iop) +struct ioarg *ap; +struct io *iop; +{ + register int c; + + if ((c = qgravechar(ap, iop)&~QUOTE) == '\n') + c = ' '; + return(c); +} + +int +qgravechar(ap, iop) +register struct ioarg *ap; +struct io *iop; +{ + register int c; + + if (iop->xchar) { + if (iop->nlcount) { + iop->nlcount--; + return('\n'|QUOTE); + } + c = iop->xchar; + iop->xchar = 0; + } else if ((c = filechar(ap)) == '\n') { + iop->nlcount = 1; + while ((c = filechar(ap)) == '\n') + iop->nlcount++; + iop->xchar = c; + if (c == 0) + return(c); + iop->nlcount--; + c = '\n'; + } + return(c!=0? c|QUOTE: 0); +} + +/* + * Return a single command (usually the first line) from a file. + */ +int +linechar(ap) +register struct ioarg *ap; +{ + register int c; + + if ((c = filechar(ap)) == '\n') { + if (!multiline) { + closef(ap->afile); + ap->afile = -1; /* illegal value */ + } + } + return(c); +} + +void +prs(s) +register char *s; +{ + if (*s) + write(2, s, strlen(s)); +} + +void +putc(c) +char c; +{ + write(2, &c, sizeof c); +} + +void +prn(u) +unsigned u; +{ + prs(itoa(u, 0)); +} + +void +closef(i) +register int i; +{ + if (i > 2) + close(i); +} + +void +closeall() +{ + register u; + + for (u=NUFILE; u<NOFILE;) + close(u++); +} + +/* + * remap fd into Shell's fd space + */ +int +remap(fd) +register int fd; +{ + register int i; + int map[NOFILE]; + + if (fd < e.iofd) { + for (i=0; i<NOFILE; i++) + map[i] = 0; + do { + map[fd] = 1; + fd = dup(fd); + } while (fd >= 0 && fd < e.iofd); + for (i=0; i<NOFILE; i++) + if (map[i]) + close(i); + if (fd < 0) + err("too many files open in shell"); + } + return(fd); +} + +int +openpipe(pv) +register int *pv; +{ + register int i; + + if ((i = pipe(pv)) < 0) + err("can't create pipe - try again"); + return(i); +} + +void +closepipe(pv) +register int *pv; +{ + if (pv != NULL) { + close(*pv++); + close(*pv); + } +} + +/* -------- here.c -------- */ +/* #include "sh.h" */ + +/* + * here documents + */ + +struct here { + char *h_tag; + int h_dosub; + struct ioword *h_iop; + struct here *h_next; +}; + +static struct here *inhere; /* list of hear docs while parsing */ +static struct here *acthere; /* list of active here documents */ + +void +markhere(s, iop) +register char *s; +struct ioword *iop; +{ + register struct here *h, *lh; + + h = (struct here *) space(sizeof(struct here)); + if (h == 0) + return; + h->h_tag = evalstr(s, DOSUB); + if (h->h_tag == 0) + return; + h->h_iop = iop; + iop->io_name = 0; + h->h_next = NULL; + if (inhere == 0) + inhere = h; + else + for (lh = inhere; lh!=NULL; lh = lh->h_next) + if (lh->h_next == 0) { + lh->h_next = h; + break; + } + iop->io_flag |= IOHERE|IOXHERE; + for (s = h->h_tag; *s; s++) + if (*s & QUOTE) { + iop->io_flag &= ~ IOXHERE; + *s &= ~ QUOTE; + } + h->h_dosub = iop->io_flag & IOXHERE; +} + +void +gethere() +{ + register struct here *h, *hp; + + /* Scan here files first leaving inhere list in place */ + for (hp = h = inhere; h != NULL; hp = h, h = h->h_next) + readhere(&h->h_iop->io_name, h->h_tag, h->h_dosub? 0: '\''); + + /* Make inhere list active - keep list intact for scraphere */ + if (hp != NULL) { + hp->h_next = acthere; + acthere = inhere; + inhere = NULL; + } +} + +static void +readhere(name, s, ec) +char **name; +register char *s; +int ec; +{ + int tf; + char tname[30]; + register c; + jmp_buf ev; + char line [LINELIM+1]; + char *next; + + tempname(tname); + *name = strsave(tname, areanum); + tf = creat(tname, 0600); + if (tf < 0) + return; + if (newenv(setjmp(errpt = ev)) != 0) + unlink(tname); + else { + pushio(e.iop->argp, e.iop->iofn); + e.iobase = e.iop; + for (;;) { + if (talking && e.iop <= iostack) + prs(cprompt->value); + next = line; + while ((c = getc(ec)) != '\n' && c) { + if (ec == '\'') + c &= ~ QUOTE; + if (next >= &line[LINELIM]) { + c = 0; + break; + } + *next++ = c; + } + *next = 0; + if (strcmp(s, line) == 0 || c == 0) + break; + *next++ = '\n'; + write (tf, line, (int)(next-line)); + } + if (c == 0) { + prs("here document `"); prs(s); err("' unclosed"); + } + quitenv(); + } + close(tf); +} + +/* + * open here temp file. + * if unquoted here, expand here temp file into second temp file. + */ +int +herein(hname, xdoll) +char *hname; +int xdoll; +{ + register hf, tf; + + if (hname == 0) + return(-1); + hf = open(hname, 0); + if (hf < 0) + return (-1); + if (xdoll) { + char c; + char tname[30]; + jmp_buf ev; + + tempname(tname); + if ((tf = creat(tname, 0600)) < 0) + return (-1); + if (newenv(setjmp(errpt = ev)) == 0) { + PUSHIO(afile, hf, herechar); + setbase(e.iop); + while ((c = subgetc(0, 0)) != 0) { + c &= ~ QUOTE; + write(tf, &c, sizeof c); + } + quitenv(); + } else + unlink(tname); + close(tf); + tf = open(tname, 0); + unlink(tname); + return (tf); + } else + return (hf); +} + +void +scraphere() +{ + register struct here *h; + + for (h = inhere; h != NULL; h = h->h_next) { + if (h->h_iop && h->h_iop->io_name) + unlink(h->h_iop->io_name); + } + inhere = NULL; +} + +/* unlink here temp files before a freearea(area) */ +void +freehere(area) +int area; +{ + register struct here *h, *hl; + + hl = NULL; + for (h = acthere; h != NULL; h = h->h_next) + if (getarea((char *) h) >= area) { + if (h->h_iop->io_name != NULL) + unlink(h->h_iop->io_name); + if (hl == NULL) + acthere = h->h_next; + else + hl->h_next = h->h_next; + } else + hl = h; +} + +void +tempname(tname) +char *tname; +{ + static int inc; + register char *cp, *lp; + + for (cp = tname, lp = "/tmp/shtm"; (*cp = *lp++) != '\0'; cp++) + ; + lp = putn(getpid()*1000 + inc++); + for (; (*cp = *lp++) != '\0'; cp++) + ; +} diff --git a/release/picobsd/tinyware/msh/sh6.c b/release/picobsd/tinyware/msh/sh6.c new file mode 100644 index 000000000000..bd3ba05aeab3 --- /dev/null +++ b/release/picobsd/tinyware/msh/sh6.c @@ -0,0 +1,9 @@ +#define Extern + +#include <sys/types.h> +#include <signal.h> +#define _NSIG NSIG +#include <errno.h> +#include <setjmp.h> +#include "sh.h" + diff --git a/release/picobsd/tinyware/ns/Makefile b/release/picobsd/tinyware/ns/Makefile new file mode 100644 index 000000000000..5fff143ef5f8 --- /dev/null +++ b/release/picobsd/tinyware/ns/Makefile @@ -0,0 +1,10 @@ +# $FreeBSD$ +# +PROG=ns +SRCS= ns.c +CFLAGS+=-DBRIDGING +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/ns/README b/release/picobsd/tinyware/ns/README new file mode 100644 index 000000000000..830915c9e603 --- /dev/null +++ b/release/picobsd/tinyware/ns/README @@ -0,0 +1,43 @@ +Warsaw, 1998.07.20 + + Small replacement for netstat + ----------------------------- + +This program implements some basic functionality subset of normal netstat - +it can display the routing table and protocol statistics. + +Large part of the code dealing with retrieving the routing table via sysctl(3) +was taken from code examples written by Richard Stevens to accompany his +excellent book. + +Usage +----- + + ns [-rsi] [-p proto] [-w wait] + +where + + -r print routing table (default) + -s print protocol statistics + -i print interface statistics + -p proto display only statistics related to this + protocol, where 'proto' is one of: + - ip + - tcp + - udp + - icmp + - bdg - bridging stats, if 'ns' was compiled with + bridging support (flag BRIDGING in Makefile) + -w wait continuous display, repeat every 'wait' seconds. + +Bugs +---- + +* 'ns' doesn't resolve IP adresses to names +* well, real netstat provides _much_ more information... but this one needs + to be small, right? :-) + +Andrzej Bialecki +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/ns/ns.c b/release/picobsd/tinyware/ns/ns.c new file mode 100644 index 000000000000..0e2eeff7d4c3 --- /dev/null +++ b/release/picobsd/tinyware/ns/ns.c @@ -0,0 +1,767 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki + * 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$ + */ + + +/* + * Small replacement for netstat. Uses only sysctl(3) to get the info. + */ + +#include <stdio.h> +#include <errno.h> +#include <unistd.h> +#include <osreldate.h> +#include <err.h> +#include <sys/types.h> +#include <sys/time.h> +#include <sys/sysctl.h> +#include <sys/socket.h> +#include <net/if.h> +#include <netinet/in_systm.h> +#include <netinet/in.h> +#include <netinet/ip.h> +#include <netinet/ip_icmp.h> +#include <netinet/icmp_var.h> +#include <netinet/ip_var.h> +#include <netinet/tcp.h> +#include <netinet/tcp_timer.h> +#include <netinet/tcp_var.h> +#include <netinet/udp.h> +#include <netinet/udp_var.h> +#include <net/route.h> +#include <net/if_dl.h> +#include <sys/un.h> + +#ifdef BRIDGING +#include <net/if_types.h> /* IFT_ETHER */ +#include <net/ethernet.h> +#include <net/bridge.h> +#endif + +char *progname; +int iflag=0; +int rflag=0; +int sflag=0; +int pflag=0; +int wflag=0; /* repeat every wait seconds */ + +extern char *optarg; +extern int optind; + +void +usage() +{ + fprintf(stderr,"\n%s [-nrsi] [-p proto] [-w wait]\n",progname); +#ifdef BRIDGING + fprintf(stderr," proto: {ip|tcp|udp|icmp|bdg}\n\n"); +#else + fprintf(stderr," proto: {ip|tcp|udp|icmp}\n\n"); +#endif +} + +int if_num; + +/* + * The following parts related to retrieving the routing table and + * interface information, were borrowed from R. Stevens' code examples + * accompanying his excellent book. Thanks! + */ + +char * +sock_ntop(const struct sockaddr *sa, size_t salen) +{ + char portstr[7]; + static char str[128]; /* Unix domain is largest */ + + switch (sa->sa_family) { + case 255: { + u_long mask; + u_int index = 1 << 31; + u_short new_mask = 0; + int i; + + i=0; + mask = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr); + + while(mask & index) { + new_mask++; + index >>= 1; + } + sprintf(str,"/%hu", new_mask); + return(str); + } + case AF_UNSPEC: + case AF_INET: { + struct sockaddr_in *sin = (struct sockaddr_in *) sa; + + if (inet_ntop(AF_INET, &sin->sin_addr, str, sizeof(str)) == NULL) + return(NULL); + if (ntohs(sin->sin_port)!=0) { + snprintf(portstr, sizeof(portstr), ".%d", ntohs(sin->sin_port)); + strcat(str, portstr); + } + if(strcmp(str,"0.0.0.0")==0) sprintf(str,"default"); + return(str); + } + case AF_UNIX: { + struct sockaddr_un *unp = (struct sockaddr_un *) sa; + + /* OK to have no pathname bound to the socket: happens on + every connect() unless client calls bind() first. */ + if (unp->sun_path[0] == 0) + strcpy(str, "(no pathname bound)"); + else + snprintf(str, sizeof(str), "%s", unp->sun_path); + return(str); + } + case AF_LINK: { + struct sockaddr_dl *sdl = (struct sockaddr_dl *) sa; + + if (sdl->sdl_nlen > 0) { + bcopy(&sdl->sdl_data[0], str, sdl->sdl_nlen); + str[sdl->sdl_nlen]='\0'; + } else + snprintf(str, sizeof(str), "link#%d", sdl->sdl_index); + return(str); + } + default: + snprintf(str, sizeof(str), "sock_ntop: unknown AF_xxx: %d, len %d", + sa->sa_family, salen); + return(str); + } + return (NULL); +} + +char * +Sock_ntop(const struct sockaddr *sa, size_t salen) +{ + char *ptr; + + if ( (ptr = sock_ntop(sa, salen)) == NULL) + err(1,"sock_ntop error"); /* inet_ntop() sets errno */ + return(ptr); +} + + +#define ROUNDUP(a,size) (((a) & ((size)-1))?(1+((a)|((size)-1))):(a)) + +#define NEXT_SA(ap) ap=(struct sockaddr *) \ + ((caddr_t)ap+(ap->sa_len?ROUNDUP(ap->sa_len,sizeof(u_long)):\ + sizeof(u_long))) + +void +get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) +{ + int i; + + for(i=0;i<RTAX_MAX;i++) { + if(addrs &(1<<i)) { + rti_info[i]=sa; + NEXT_SA(sa); + } else + rti_info[i]=NULL; + } +} + +void +get_flags(char *buf, int flags) +{ + if(flags & 0x1) { + strcat(buf,"U"); + } + if(flags & 0x2) { + strcat(buf,"G"); + } + if(flags & 0x4) { + strcat(buf,"H"); + } + if(flags & 0x8) { + strcat(buf,"r"); + } + if(flags & 0x10) { + strcat(buf,"d"); + } + /* + if(flags & 0x20) { + strcat(buf,"mod,"); + } + */ + if(flags & 0x100) { + strcat(buf,"C"); + } + if(flags & 0x400) { + strcat(buf,"L"); + } + if(flags & 0x800) { + strcat(buf,"S"); + } + if(flags & 0x10000) { + strcat(buf,"c"); + } + if(flags & 0x20000) { + strcat(buf,"W"); + } + /* + if(flags & 0x200000) { + strcat(buf,",LOC"); + } + */ + if(flags & 0x400000) { + strcat(buf,"b"); + } + /* + if(flags & 0x800000) { + strcat(buf,",MCA"); + } + */ +} + +int +print_routing(char *proto) +{ + int mib[6],i=0,rt_len,if_len; + char *rt_buf,*if_buf,*next,*lim; + struct rt_msghdr *rtm; + struct if_msghdr *ifm,**ifm_table; + struct ifa_msghdr *ifam; + struct sockaddr *sa,*sa1,*rti_info[RTAX_MAX],**if_table; + struct rt_metrics rm; + char fbuf[50]; + + /* Get the routing table */ + mib[0]=CTL_NET; + mib[1]=PF_ROUTE; + mib[2]=0; + mib[3]=0; + mib[4]=NET_RT_DUMP; + mib[5]=0; + /* Estimate the size of table */ + if(sysctl(mib,6,NULL,&rt_len,NULL,0)==-1) { + perror("sysctl size"); + exit(-1); + } + if((rt_buf=(char *)malloc(rt_len))==NULL) { + perror("malloc"); + exit(-1); + } + /* Now get it. */ + if(sysctl(mib,6,rt_buf,&rt_len,NULL,0)==-1) { + perror("sysctl get"); + exit(-1); + } + /* Get the interfaces table */ + mib[0]=CTL_NET; + mib[1]=PF_ROUTE; + mib[2]=0; + mib[3]=0; + mib[4]=NET_RT_IFLIST; + mib[5]=0; + /* Estimate the size of table */ + if(sysctl(mib,6,NULL,&if_len,NULL,0)==-1) { + perror("sysctl size"); + exit(-1); + } + if((if_buf=(char *)malloc(if_len))==NULL) { + perror("malloc"); + exit(-1); + } + /* Now get it. */ + if(sysctl(mib,6,if_buf,&if_len,NULL,0)==-1) { + perror("sysctl get"); + exit(-1); + } + lim=if_buf+if_len; + i=0; + for(next=if_buf,i=0;next<lim;next+=ifm->ifm_msglen) { + ifm=(struct if_msghdr *)next; + i++; + } + if_num=i; + if_table=(struct sockaddr **)calloc(i,sizeof(struct sockaddr)); + ifm_table=(struct if_msghdr **)calloc(i,sizeof(struct if_msghdr)); + if (iflag) { + printf("\nInterface table:\n"); + printf("----------------\n"); + printf("Name Mtu Network Address " + "Ipkts Ierrs Opkts Oerrs Coll\n"); + } + i=0; + for(next=if_buf;next<lim;next+=ifm->ifm_msglen) { + + ifm=(struct if_msghdr *)next; + if_table[i]=(struct sockaddr *)(ifm+1); + ifm_table[i]=ifm; + + sa = if_table[i]; + if (iflag && sa->sa_family == AF_LINK) { + struct sockaddr_dl *sdl = (struct sockaddr_dl *) sa; + + printf("%-4s %-5d <Link> ", + sock_ntop(if_table[i], if_table[i]->sa_len), + ifm->ifm_data.ifi_mtu); + if ( sdl->sdl_alen == 6) { + unsigned char *p = sdl->sdl_data + sdl->sdl_nlen ; + printf("%02x:%02x:%02x:%02x:%02x:%02x ", + p[0], p[1], p[2], p[3], p[4], p[5] ); + } else + printf(" "); + printf("%9d%6d%9d%6d%6d\n", + ifm->ifm_data.ifi_ipackets, + ifm->ifm_data.ifi_ierrors, + ifm->ifm_data.ifi_opackets, + ifm->ifm_data.ifi_oerrors, + ifm->ifm_data.ifi_collisions + ); + } + i++; + } + if (!rflag) { + free(rt_buf); + free(if_buf); + free(if_table); + free(ifm_table); + return(0); + } + /* Now dump the routing table */ + printf("\nRouting table:\n"); + printf("--------------\n"); + printf("Destination Gateway Flags Netif Use\n"); + lim=rt_buf+rt_len; + for(next=rt_buf;next<lim;next+=rtm->rtm_msglen) { + rtm=(struct rt_msghdr *)next; + sa=(struct sockaddr *)(rtm+1); + get_rtaddrs(rtm->rtm_addrs,sa,rti_info); + if(rtm->rtm_flags & RTF_WASCLONED) { + if((rtm->rtm_flags & RTF_LLINFO)==0)continue; + } + if((sa=rti_info[RTAX_DST])!=NULL) { + sprintf(fbuf,"%s",sock_ntop(sa,sa->sa_len)); + if(((sa1=rti_info[RTAX_NETMASK])!=NULL) && sa1->sa_family==255) { + strcat(fbuf,sock_ntop(sa1,sa1->sa_len)); + } + printf("%-19s",fbuf); + } + if((sa=rti_info[RTAX_GATEWAY])!=NULL) { + printf("%-19s",sock_ntop(sa,sa->sa_len)); + } + memset(fbuf,0,sizeof(fbuf)); + get_flags(fbuf,rtm->rtm_flags); + printf("%-10s",fbuf); + for(i=0;i<if_num;i++) { + ifm=ifm_table[i]; + if((ifm->ifm_index==rtm->rtm_index) && + (ifm->ifm_data.ifi_type>0)) { + sa=if_table[i]; + break; + } + } + if(ifm->ifm_type==RTM_IFINFO) { + get_rtaddrs(ifm->ifm_addrs,sa,rti_info); + printf(" %s",Sock_ntop(sa,sa->sa_len)); + } else if(ifm->ifm_type==RTM_NEWADDR) { + ifam=(struct ifa_msghdr *)ifm_table[rtm->rtm_index-1]; + sa=(struct sockaddr *)(ifam+1); + get_rtaddrs(ifam->ifam_addrs,sa,rti_info); + printf(" %s",Sock_ntop(sa,sa->sa_len)); + } + printf(" %u",rtm->rtm_use); + printf("\n"); + } + free(rt_buf); + free(if_buf); + free(if_table); + free(ifm_table); + return(0); + +} + +print_ip_stats() +{ + int mib[4],len; + struct ipstat s; + + mib[0]=CTL_NET; + mib[1]=PF_INET; + mib[2]=IPPROTO_IP; +#ifndef IPCTL_STATS + printf("sorry, ip stats not available\n"); + return -1 ; +#else + mib[3]=IPCTL_STATS; + len=sizeof(struct ipstat); + if(sysctl(mib,4,&s,&len,NULL,0)<0) { + perror("sysctl"); + return(-1); + } + printf("\nIP statistics:\n"); + printf("--------------\n"); + printf(" %10lu total packets received\n",s.ips_total); + printf("* Packets ok:\n"); + printf(" %10lu fragments received\n",s.ips_fragments); + printf(" %10lu forwarded\n",s.ips_forward); +#if __FreeBSD_version > 300001 + printf(" %10lu fast forwarded\n",s.ips_fastforward); +#endif + printf(" %10lu forwarded on same net (redirect)\n",s.ips_redirectsent); + printf(" %10lu delivered to upper level\n",s.ips_delivered); + printf(" %10lu total ip packets generated here\n",s.ips_localout); + printf(" %10lu total packets reassembled ok\n",s.ips_reassembled); + printf(" %10lu total datagrams successfully fragmented\n",s.ips_fragmented); + printf(" %10lu output fragments created\n",s.ips_ofragments); + printf(" %10lu total raw IP packets generated\n",s.ips_rawout); + printf("\n* Bad packets:\n"); + printf(" %10lu bad checksum\n",s.ips_badsum); + printf(" %10lu too short\n",s.ips_tooshort); + printf(" %10lu not enough data (too small)\n",s.ips_toosmall); + printf(" %10lu more data than declared in header\n",s.ips_badhlen); + printf(" %10lu less data than declared in header\n",s.ips_badlen); + printf(" %10lu fragments dropped (dups, no mbuf)\n",s.ips_fragdropped); + printf(" %10lu fragments timed out in reassembly\n",s.ips_fragtimeout); + printf(" %10lu received for unreachable dest.\n",s.ips_cantforward); + printf(" %10lu unknown or unsupported protocol\n",s.ips_noproto); + printf(" %10lu lost due to no bufs etc.\n",s.ips_odropped); + printf(" %10lu couldn't fragment (DF set, etc.)\n",s.ips_cantfrag); + printf(" %10lu error in IP options processing\n",s.ips_badoptions); + printf(" %10lu dropped due to no route\n",s.ips_noroute); + printf(" %10lu bad IP version\n",s.ips_badvers); + printf(" %10lu too long (more than max IP size)\n",s.ips_toolong); +#if __FreeBSD_version > 300001 + printf(" %10lu multicast for unregistered groups\n",s.ips_notmember); +#endif +#endif +} + +print_tcp_stats() +{ + int mib[4],len; + struct tcpstat s; + + mib[0]=CTL_NET; + mib[1]=PF_INET; + mib[2]=IPPROTO_TCP; +#ifndef TCPCTL_STATS + printf("sorry, tcp stats not available\n"); + return -1 ; +#else + mib[3]=TCPCTL_STATS; + len=sizeof(struct tcpstat); + if(sysctl(mib,4,&s,&len,NULL,0)<0) { + perror("sysctl"); + return(-1); + } + printf("\nTCP statistics:\n"); + printf("---------------\n"); + printf("* Connections:\n"); + printf(" %10lu initiated\n",s.tcps_connattempt); + printf(" %10lu accepted\n",s.tcps_accepts); + printf(" %10lu established\n",s.tcps_connects); + printf(" %10lu dropped\n",s.tcps_drops); + printf(" %10lu embryonic connections dropped\n",s.tcps_conndrops); + printf(" %10lu closed (includes dropped)\n",s.tcps_closed); + printf(" %10lu segments where we tried to get RTT\n",s.tcps_segstimed); + printf(" %10lu times RTT successfully updated\n",s.tcps_rttupdated); + printf(" %10lu delayed ACKs sent\n",s.tcps_delack); + printf(" %10lu dropped in rxmt timeout\n",s.tcps_timeoutdrop); + printf(" %10lu retrasmit timeouts\n",s.tcps_rexmttimeo); + printf(" %10lu persist timeouts\n",s.tcps_persisttimeo); + printf(" %10lu keepalive timeouts\n",s.tcps_keeptimeo); + printf(" %10lu keepalive probes sent\n",s.tcps_keepprobe); + printf(" %10lu dropped in keepalive\n",s.tcps_keepdrops); + + printf("* Packets sent:\n"); + printf(" %10lu total packets sent\n",s.tcps_sndtotal); + printf(" %10lu data packets sent\n",s.tcps_sndpack); + printf(" %10lu data bytes sent\n",s.tcps_sndbyte); + printf(" %10lu data packets retransmitted\n",s.tcps_sndrexmitpack); + printf(" %10lu data bytes retransmitted\n",s.tcps_sndrexmitbyte); + printf(" %10lu ACK-only packets sent\n",s.tcps_sndacks); + printf(" %10lu window probes sent\n",s.tcps_sndprobe); + printf(" %10lu URG-only packets sent\n",s.tcps_sndurg); + printf(" %10lu window update-only packets sent\n",s.tcps_sndwinup); + printf(" %10lu control (SYN,FIN,RST) packets sent\n",s.tcps_sndctrl); + printf("* Packets received:\n"); + printf(" %10lu total packets received\n",s.tcps_rcvtotal); + printf(" %10lu packets in sequence\n",s.tcps_rcvpack); + printf(" %10lu bytes in sequence\n",s.tcps_rcvbyte); + printf(" %10lu packets with bad checksum\n",s.tcps_rcvbadsum); + printf(" %10lu packets with bad offset\n",s.tcps_rcvbadoff); + printf(" %10lu packets too short\n",s.tcps_rcvshort); + printf(" %10lu duplicate-only packets\n",s.tcps_rcvduppack); + printf(" %10lu duplicate-only bytes\n",s.tcps_rcvdupbyte); + printf(" %10lu packets with some duplicate data\n",s.tcps_rcvpartduppack); + printf(" %10lu duplicate bytes in partially dup. packets\n",s.tcps_rcvpartdupbyte); + printf(" %10lu out-of-order packets\n",s.tcps_rcvoopack); + printf(" %10lu out-of-order bytes\n",s.tcps_rcvoobyte); + printf(" %10lu packets with data after window\n",s.tcps_rcvpackafterwin); + printf(" %10lu bytes received after window\n",s.tcps_rcvbyteafterwin); + printf(" %10lu packets received after 'close'\n",s.tcps_rcvafterclose); + printf(" %10lu window probe packets\n",s.tcps_rcvwinprobe); + printf(" %10lu duplicate ACKs\n",s.tcps_rcvdupack); + printf(" %10lu ACKs for unsent data\n",s.tcps_rcvacktoomuch); + printf(" %10lu ACK packets\n",s.tcps_rcvackpack); + printf(" %10lu bytes ACKed by received ACKs\n",s.tcps_rcvackbyte); + printf(" %10lu window update packets\n",s.tcps_rcvwinupd); + printf(" %10lu segments dropped due to PAWS\n",s.tcps_pawsdrop); + printf(" %10lu times header predict ok for ACKs\n",s.tcps_predack); + printf(" %10lu times header predict ok for data packets\n",s.tcps_preddat); + printf(" %10lu PCB cache misses\n",s.tcps_pcbcachemiss); + printf(" %10lu times cached RTT in route updated\n",s.tcps_cachedrtt); + printf(" %10lu times cached RTTVAR updated\n",s.tcps_cachedrttvar); + printf(" %10lu times ssthresh updated\n",s.tcps_cachedssthresh); + printf(" %10lu times RTT initialized from route\n",s.tcps_usedrtt); + printf(" %10lu times RTTVAR initialized from route\n",s.tcps_usedrttvar); + printf(" %10lu times ssthresh initialized from route\n",s.tcps_usedssthresh); + printf(" %10lu timeout in persist state\n",s.tcps_persistdrop); + printf(" %10lu bogus SYN, e.g. premature ACK\n",s.tcps_badsyn); + printf(" %10lu resends due to MTU discovery\n",s.tcps_mturesent); + printf(" %10lu listen queue overflows\n",s.tcps_listendrop); +#endif +} + +print_udp_stats() +{ + int mib[4],len; + struct udpstat s; + + mib[0]=CTL_NET; + mib[1]=PF_INET; + mib[2]=IPPROTO_UDP; + mib[3]=UDPCTL_STATS; + len=sizeof(struct udpstat); + if(sysctl(mib,4,&s,&len,NULL,0)<0) { + perror("sysctl"); + return(-1); + } + printf("\nUDP statistics:\n"); + printf("---------------\n"); + printf("* Packets received:\n"); + printf(" %10lu total input packets\n",s.udps_ipackets); + printf(" %10lu packets shorter than header (dropped)\n",s.udps_hdrops); + printf(" %10lu bad checksum\n",s.udps_badsum); + printf(" %10lu data length larger than packet\n",s.udps_badlen); + printf(" %10lu no socket on specified port\n",s.udps_noport); + printf(" %10lu of above, arrived as broadcast\n",s.udps_noportbcast); + printf(" %10lu not delivered, input socket full\n",s.udps_fullsock); + printf(" %10lu packets missing PCB cache\n",s.udpps_pcbcachemiss); + printf(" %10lu packets not for hashed PCBs\n",s.udpps_pcbhashmiss); + printf("* Packets sent:\n"); + printf(" %10lu total output packets\n",s.udps_opackets); +#if __FreeBSD_version > 300001 + printf(" %10lu output packets on fast path\n",s.udps_fastout); +#endif +} + +char *icmp_names[]={ + "echo reply", + "#1", + "#2", + "destination unreachable", + "source quench", + "routing redirect", + "#6", + "#7", + "echo", + "router advertisement", + "router solicitation", + "time exceeded", + "parameter problem", + "time stamp", + "time stamp reply", + "information request", + "information request reply", + "address mask request", + "address mask reply", +}; + +print_icmp_stats() +{ + int mib[4],len,i; + struct icmpstat s; + + mib[0]=CTL_NET; + mib[1]=PF_INET; + mib[2]=IPPROTO_ICMP; + mib[3]=ICMPCTL_STATS; + len=sizeof(struct icmpstat); + if(sysctl(mib,4,&s,&len,NULL,0)<0) { + perror("sysctl"); + return(-1); + } + printf("\nICMP statistics:\n"); + printf("----------------\n"); + printf("* Output histogram:\n"); + for(i=0;i<(ICMP_MAXTYPE+1);i++) { + if(s.icps_outhist[i]>0) + printf("\t%10lu %s\n", + s.icps_outhist[i],icmp_names[i]); + } + printf("* Input histogram:\n"); + for(i=0;i<(ICMP_MAXTYPE+1);i++) { + if(s.icps_inhist[i]>0) + printf("\t%10lu %s\n", + s.icps_inhist[i],icmp_names[i]); + } + printf("* Other stats:\n"); + printf(" %10lu calls to icmp_error\n",s.icps_error); + printf(" %10lu no error 'cuz old ip too short\n",s.icps_oldshort); + printf(" %10lu no error 'cuz old was icmp\n",s.icps_oldicmp); + + printf(" %10lu icmp code out of range\n",s.icps_badcode); + printf(" %10lu packets shorter than min length\n",s.icps_tooshort); + printf(" %10lu bad checksum\n",s.icps_checksum); + printf(" %10lu calculated bound mismatch\n",s.icps_badlen); + printf(" %10lu number of responses\n",s.icps_reflect); + printf(" %10lu broad/multi-cast echo requests dropped\n",s.icps_bmcastecho); + printf(" %10lu broad/multi-cast timestamp requests dropped\n",s.icps_bmcasttstamp); +} + +int +stats(char *proto) +{ + if (!sflag) + return 0 ; + if(pflag) { + if(proto==NULL) { + fprintf(stderr,"Option '-p' requires paramter.\n"); + usage(); + exit(-1); + } + if(strcmp(proto,"ip")==0) print_ip_stats(); + if(strcmp(proto,"icmp")==0) print_icmp_stats(); + if(strcmp(proto,"udp")==0) print_udp_stats(); + if(strcmp(proto,"tcp")==0) print_tcp_stats(); +#ifdef BRIDGING + if(strcmp(proto,"bdg")==0) print_bdg_stats(); +#endif + return(0); + } + print_ip_stats(); + print_icmp_stats(); + print_udp_stats(); + print_tcp_stats(); +#ifdef BRIDGING + print_bdg_stats(); +#endif + return(0); +} + +int +main(int argc, char *argv[]) +{ + char c; + char *proto=NULL; + + progname=argv[0]; + + while((c=getopt(argc,argv,"inrsp:w:"))!=-1) { + switch(c) { + case 'w': + wflag = atoi(optarg) ; + break; + case 'n' /* ignored, just for compatibility with std netstat */ + break ; + case 'r': + rflag++; + break; + case 'i': + iflag++; + break; + case 's': + sflag++; + rflag=0; + break; + case 'p': + pflag++; + sflag++; + proto=optarg; + break; + case '?': + default: + usage(); + exit(0); + break; + } + } + if (rflag == 0 && sflag == 0 && iflag == 0) + rflag = 1 ; + argc-=optind; + if(argc>0) { + usage(); + exit(-1); + } + if (wflag) + printf("\033[H\033[J"); +again: + if (wflag) { + struct timeval t ; + gettimeofday ( &t, NULL); + printf("\033[H%s", ctime(& t.tv_sec)); + } + print_routing(proto); + stats(proto); + if (wflag) { + sleep(wflag); + goto again ; + } + exit(0); +} + +#ifdef BRIDGING +int +print_bdg_stats() /* print bridge statistics */ +{ + int i, slen ; + struct bdg_stats s ; + int mib[4] ; + + slen = sizeof(s); + + mib[0] = CTL_NET ; + mib[1] = PF_LINK ; + mib[2] = IFT_ETHER ; + mib[3] = PF_BDG ; + if (sysctl(mib,4, &s,&slen,NULL,0)==-1) { + return 0 ; /* no bridging */ + } + printf("-- Bridging statistics --\n") ; + printf( +"Name In Out Forward Drop Bcast Mcast Local Unknown\n"); + for (i = 0 ; i < 16 ; i++) { + if (s.s[i].name[0]) + printf("%-6s %9d%9d%9d%9d%9d%9d%9d%9d\n", + s.s[i].name, + s.s[i].p_in[(int)BDG_IN], + s.s[i].p_in[(int)BDG_OUT], + s.s[i].p_in[(int)BDG_FORWARD], + s.s[i].p_in[(int)BDG_DROP], + s.s[i].p_in[(int)BDG_BCAST], + s.s[i].p_in[(int)BDG_MCAST], + s.s[i].p_in[(int)BDG_LOCAL], + s.s[i].p_in[(int)BDG_UNKNOWN] ); + } +} +#endif diff --git a/release/picobsd/tinyware/oinit/Makefile b/release/picobsd/tinyware/oinit/Makefile new file mode 100644 index 000000000000..c655bb7bb7de --- /dev/null +++ b/release/picobsd/tinyware/oinit/Makefile @@ -0,0 +1,22 @@ +# $FreeBSD$ +# +PROG= oinit + +SH_PATH?= /bin/sh +SH_NAME?= -sh +SH_ARG?= /etc/rc + +CFLAGS= -DSH_PATH=\"${SH_PATH}\" -DSH_NAME=\"${SH_NAME}\" \ + -DSH_ARG=\"${SH_ARG}\" + + +#CFLAGS+= -DUSE_HISTORY +#CFLAGS+= -DOINIT_RC=\"/etc/oinit.rc\" + +#LDADD= -lutil -ledit -ltermcap +LDADD=-lutil +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/oinit/README b/release/picobsd/tinyware/oinit/README new file mode 100644 index 000000000000..e34c404f4a8d --- /dev/null +++ b/release/picobsd/tinyware/oinit/README @@ -0,0 +1,123 @@ +Warsaw, 1998.07.07 + +This README shortly describes the features of "oinit" - a very simplistic +version of init(8) combined with a shell. + +Features +-------- + +* oinit is able to run system in multi- and single-user modes, +* it can be started on system with DEVFS/SLICE (i.e. empty /dev), +* provides minimalistic user interface, called "shell()", +* it can run the system startup script (/etc/rc), +* it can be compiled with -DOINIT_RC to use its own startup script + (*very* primitive, but doesn't require any real shell to run it!), +* doesn't require the whole chain of init->getty->login->shell to be run, +* it is extremely small, and is ideally suited for situations when + there is little memory. + +As an additional bonus you receive some obvious and some hidden bugs... :-)) +This code is at most alpha quality yet. + + +How it works +------------ + +Unlike normal init(8), it forks itself on given number of vty's immediately +providing shell() interface. Currently it doesn't require (and is unable to +perform) any authentication, but this is easy to add if needed. + +Standard version of FreeBSD kernel looks for /sbin/init first, and then +tries to execute it. If it fails, it tries to find: + /sbin/oinit + /sbin/init.bak + /stand/sysinstall + +So it is easy to make use of it even on standard system - just put it in +/sbin/oinit and rename /sbin/init to something else, e.g. /sbin/init.bak. + ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +!!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +Init (or oinit) plays crucial role in the system. If you plan to do any +changes to your system's init, make sure you have a boot floppy with working +version of statically compiled init(8) on it - you can very easily put your +system in unusable state when fiddling with it. ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Shell() interface +----------------- + +It allows you to issue built-in and external commands. Built-in commands +are listed below. For each command there is short help available, with +example of usage. + + cd change working directory + pwd print working directory + set set environment variable (no expansion) + unset unset environment variable + env print all environment variables + echo echo arguments on stdout + exit exit from shell (oinit will start a new one after some delay) + . source-in a file with commands + ? help + +Any other command is passed to execvp(3) as it is. + +EXCEPTION: if you end the command line with a '&', the command is started +as daemon. This is NOT the same as in normal shell, where the '&' puts a +process in background. Here the newly started process is totally dissociated +from terminal. + +Prompt tells you: +* your `pwd` +* your PID +* and that you are root ('#'). + +WARNING: this pseudo-shell doesn't do any expansion whatsoever. + +To do list +---------- + +- oinit proper: + * fix signal handling and transitions, + * invent a one-file configuration database (combining as many files + from /etc as possible into one) able to properly handle inter- + dependencies in running various daemons, + * allow for interpreting of such database, and running various + programs ourselves (this would eventually allow to make /bin/sh + an option, not necessity), + * better hooks for incorporating other modules into oinit (see e.g. + the telnet() below), + * add optional authentication, + +- shell(): + * more built-ins: perhaps 'kill' and 'ps', + * variable expansion, + * globbing, + * conditionals, + * history? (it depends on how much memory it needs). + * programmatic hooks for easy customisation of user interface (like + hierarchy of commands and contexts), + * ... + +- implement as a routine (like shell()) a small remote login daemon telnet(), + as a built-in module to oinit. It would implement the simplest options of + normal telnet, and would itself handle authentication, passing control to + shell() on success. The authentication routine would be the same as for + checking console access. + +And allow me for a moment of day-dreaming: I'd like to rewrite oinit one day +to be a monolithic one-in-all application, non-forking but multithreaded... It +would contain all the modules, such as shell(), telnet(), ifconfig() etc... +started as threads, not separate processes. + +Credits +------- + +The overall framework was taken from FreeBSD /sbin/init. + +Andrzej Bialecki +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/oinit/oinit.c b/release/picobsd/tinyware/oinit/oinit.c new file mode 100644 index 000000000000..87b244835907 --- /dev/null +++ b/release/picobsd/tinyware/oinit/oinit.c @@ -0,0 +1,947 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki + * 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$ + */ + +/* + * A primitive version of init(8) with simplistic user interface + */ + +#include <sys/types.h> +#include <sys/param.h> +#include <sys/mount.h> +#include <sys/reboot.h> +#include <sys/time.h> +#include <sys/resource.h> +#include <sys/wait.h> +#include <ctype.h> +#include <err.h> + +#ifdef USE_HISTORY +#error "Not yet. But it's quite simple to add - patches are welcome!" +#endif + +#include <errno.h> +#include <fcntl.h> +#include <libutil.h> +#include <paths.h> +#include <setjmp.h> +#include <signal.h> +#include <stdio.h> +#include <string.h> +#include <syslog.h> +#include <unistd.h> +#include <varargs.h> + +#define BUFSIZE 1024 +#define MAX_CONS 12 + +#define NONE 0 +#define SINGLE 1 +#define MULTI 2 +#define DEATH 3 + +#define FALSE 0 +#define TRUE 1 + +char cwd[BUFSIZE]; +char vty[]="0123456789abcdef"; +char *progname; +char *motd=NULL; +int ncons=MAX_CONS; +int Reboot=FALSE; +int transition=MULTI; +int prevtrans=SINGLE; +jmp_buf machine; + +char *trans[]={ "NONE", "SINGLE", "MULTI", "DEATH" }; + +extern char **environ; + +/* Struct for holding session state */ +struct sess { + char tty[16]; /* vty device path */ + pid_t pid; /* pid of process running on it */ + int (*func)(int argc, char **argv); + /* internal function to run on it (after forking) */ +} ttys[MAX_CONS]; + +/* Struct for built-in command */ +struct command { + char *cmd; /* command name */ + char *descr; /* command description */ + char *usage; /* usage */ + char *example; /* example of usage */ + int (*func)(char *); /* callback function */ +}; + +/* Prototypes */ +int cd __P((char *)); +int pwd __P((char *)); +int echo __P((char *)); +int xit __P((char *)); +int set __P((char *)); +int unset __P((char *)); +int env __P((char *)); +int help __P((char *)); +int sourcer __P((char *)); +void do_command __P((int shell, char *cmdline)); +void transition_handler __P((int)); + +/* Table of built-in functions */ +struct command bltins[]={ + {"cd","Change working directory","cd [dir]","cd /etc",cd}, + {"pwd","Print current directory","pwd","pwd",pwd}, + {"exit","Exit from shell()","exit","exit",xit}, + {"set","Set environment variable","set [VAR=value]","set TERM=cons25",set}, + {"unset","Unset environment variable","unset VAR","unset EDITOR",unset}, + {"echo","Echo arguments on stdout","echo arg1 arg2 ...","echo Hello World!",echo}, + {"env","Print all environment variables","env","env",env}, + {".","Source-in a file with commands",". filename",". /etc/rc",sourcer}, + {"?","Print this help :-)","? [command]","? set",help}, + {NULL,NULL,NULL,NULL,NULL} +}; + +/* + * Built-in 'cd <path>' handler + */ +int +cd(char *path) +{ + if(chdir(path)) return(-1); + getcwd(cwd,BUFSIZE); + return(0); +} + +/* + * Built-in 'pwd' handler + */ +int +pwd(char *dummy) +{ + + if(getcwd(cwd,BUFSIZE)==NULL) return(-1); + printf("%s\n",cwd); + return(0); +} + +/* + * Built-in 'exit' handler + */ +int +xit(char *dummy) +{ + _exit(0); +} + +/* + * Built-in 'echo' handler + */ +int +echo(char *args) +{ + int i=0,j; + int len; + char c; + int s_quote=0,d_quote=0; + int sep=0,no_lf=0; + + if(args==NULL) { + printf("\n"); + return; + } + len=strlen(args); + if(len>=2) { + if(args[0]=='-' && args[1]=='n') { + no_lf++; + i=2; + while(i<len && (args[i]==' ' || args[i]=='\t')) i++; + } + } + while(i<len) { + c=args[i]; + switch(c) { + case ' ': + case '\t': + if(s_quote||d_quote) { + putchar(c); + } else if(!sep) { + putchar(' '); + sep=1; + } + break; + case '\\': + i++; + c=args[i]; + switch(c) { + case 'n': + putchar('\n'); + break; + case 'b': + putchar('\b'); + break; + case 't': + putchar('\t'); + break; + case 'r': + putchar('\r'); + break; + default: + putchar(c); + break; + } + break; + case '"': + if(!d_quote) { + d_quote=1; + for(j=i+1;j<len;j++) { + if(args[j]=='\\') { + j++; + continue; + } + if(args[j]=='"') { + d_quote=2; + break; + } + } + if(d_quote!=2) { + printf("\necho(): unmatched \"\n"); + return; + } + } else d_quote=0; + break; + case '\'': + if(!s_quote) { + s_quote=1; + for(j=i+1;j<len;j++) { + if(args[j]=='\\') { + j++; + continue; + } + if(args[j]=='\'') { + s_quote=2; + break; + } + } + if(s_quote!=2) { + printf("\necho(): unmatched '\n"); + return; + } + } else s_quote=0; + break; + case '`': + printf("echo(): backquote not implemented yet!\n"); + break; + default: + sep=0; + putchar(c); + break; + } + i++; + } + if(!no_lf) putchar('\n'); + fflush(stdout); +} + +/* + * Built-in 'set VAR=value' handler + */ +int +set(char *var) +{ + int res; + + if(var==NULL) return(env(NULL)); + res=putenv(var); + if(res) printf("set: %s\n",strerror(errno)); + return(res); +} + +/* + * Built-in 'env' handler + */ +int +env(char *dummy) +{ + char **e; + + e=environ; + while(*e!=NULL) { + printf("%s\n",*e++); + } + return(0); +} + +/* + * Built-in 'unset VAR' handler + */ +int +unset(char *var) +{ + if(var==NULL) { + printf("%s: parameter required.\n",progname); + return(-1); + } + return(unsetenv(var)); +} + +/* + * Built-in '?' handler + */ +int +help(char *cmd) +{ + struct command *x; + int found=0; + + if(cmd==NULL) { + printf("\nBuilt-in commands:\n"); + printf("-------------------\n"); + x=bltins; + while(x->cmd!=NULL) { + printf("%s\t%s\n",x->cmd,x->descr); + x++; + } + printf("\nEnter '? <cmd>' for details.\n\n"); + return(0); + } else { + x=bltins; + while(x->cmd!=NULL) { + if(strcmp(x->cmd,cmd)==0) { + found++; + break; + } + x++; + } + if(found) { + printf("\n%s\t%s:\n",x->cmd,x->descr); + printf("\tUsage:\n\t\t%s\n",x->usage); + printf("\te.g:\n\t\t%s\n\n",x->example); + return(0); + } else { + printf("\n%s: no such command.\n\n",cmd); + return(-1); + } + } +} + +/* + * Signal handler for shell() + */ +void +shell_sig(int sig) +{ + switch(sig) { + case SIGINT: + case SIGQUIT: + case SIGTERM: + /* ignore ? */ + break; + default: + break; + } +} + +/* + * Built-in '.' handler (read-in and execute commands from file) + */ +int +sourcer(char *fname) +{ + FILE *fd; + char buf[512],*tok,*arg,**av; + int ac,len,f,res,i; + pid_t pid; + char *sep=" \t"; + + fd=fopen(fname,"r"); + if(fd==NULL) { + printf("Couldn't open file '%s'\n",fname); + return(-1); + } + while(!feof(fd)) { + memset(buf,0,512); + if(fgets(buf,512,fd)==NULL) continue; + if((*buf=='#') || (*buf=='\n')) continue; + len=strlen(buf); + buf[len-1]='\0'; + if(strncmp(buf,"ncons",5)==0) { + tok=strtok(buf,sep); + tok=strtok(NULL,sep); + ncons=atoi(tok); + if((ncons<1)||(ncons>MAX_CONS)) { + syslog(LOG_EMERG,"%s: bad ncons value; defaulting to %d\n",fname,MAX_CONS); + ncons=MAX_CONS; + } + continue; + } else if(strncmp(buf,"motd",4)==0) { + tok=strtok(buf,sep); + motd=strdup(strtok(NULL,sep)); + continue; + } else { + do_command(0,buf); + } + /* Next command, please. */ + } + fclose(fd); + syslog(LOG_EMERG,"Done with %s",fname); +} + +void +do_command(int shell, char *cmdline) +{ + char *tok,*c,*sep=" \t"; + char **av; + struct command *x; + int found,len; + int ac,i,f,res; + int bg=0; + pid_t pid; + + len=strlen(cmdline); + if(cmdline[len-1]=='&') { + bg++; + cmdline[len-1]='\0'; + len--; + } else bg=0; + tok=strtok(cmdline,sep); + x=bltins; + found=0; + while(x->cmd!=NULL) { + if(strcmp(x->cmd,tok)==0) { + found++; + break; + } + x++; + } + if(found) { + tok=cmdline+strlen(x->cmd)+1; + while(*tok && isblank(*tok) && (tok<(cmdline+len))) tok++; + if(*tok==NULL) tok=NULL; + x->func(tok); + return; + } + ac=0; + av=(char **)calloc(((len+1)/2+1),sizeof(char *)); + av[ac++]=tok; + while((av[ac++]=strtok(NULL,sep))!=NULL) + continue; + switch((pid=fork())) { + case 0: + if(shell) { + signal(SIGINT,SIG_DFL); + signal(SIGQUIT,SIG_DFL); + signal(SIGTERM,SIG_DFL); + signal(SIGHUP,SIG_DFL); + } else { + close(0); + close(1); + close(2); + f=open(_PATH_CONSOLE,O_RDWR); + dup2(f,0); + dup2(f,1); + dup2(f,2); + if(f>2) close(f); + } + if(bg) { + if(daemon(0,0)) { + printf("do_command(%s): failed to run bg: %s\n", + av[0],strerror(errno)); + _exit(100); + } + } + execvp(av[0],av); + /* Something went wrong... */ + printf("do_command(%s): %s\n",av[0],strerror(errno)); + _exit(100); + break; + case -1: + printf("do_command(): %s\n",strerror(errno)); + break; + default: + while(waitpid(pid,&res,0)!=pid) continue; + if(WEXITSTATUS(res)) { + printf("do_command(%s): exit code=%d\n", + av[0],WEXITSTATUS(res)); + } + break; + } + free(av); + return; +} + +/* + * This is the user interface. This routine gets executed on each + * virtual console serviced by init. + * + * It works as normal shell does - for each external command it forks + * and execs, for each internal command just executes a function. + */ + +int +shell(int argc, char **argv) +{ + char buf[BUFSIZE]; + char *prompt=" # "; + int fd; + int res; + pid_t mypid; + + if(motd!=NULL) { + if((fd=open(motd,O_RDONLY))!=-1) { + do { + res=read(fd,buf,BUFSIZE); + res=write(1,buf,res); + } while(res>0); + close(fd); + } + } + + printf("\n\n+=========================================================+\n"); + printf("| Built-in shell() (enter '?' for short help on commands) |\n"); + printf("+=========================================================+\n\n"); + getcwd(cwd,BUFSIZE); + mypid=getpid(); + signal(SIGINT,shell_sig); + signal(SIGQUIT,shell_sig); + signal(SIGTERM,shell_sig); + while(!feof(stdin)) { + memset(buf,0,BUFSIZE); + printf("(%d)%s%s",mypid,cwd,prompt); + fflush(stdout); + if(fgets(buf,BUFSIZE-1,stdin)==NULL) continue; + buf[strlen(buf)-1]='\0'; + if(strlen(buf)==0) continue; + do_command(1,buf); + } + return(0); +} + +/* + * Stub for executing some external program on a console. This is called + * from previously forked copy of our process, so that exec is ok. + */ +int +external_cmd(int argc, char **argv) +{ + execvp(argv[0],argv); +} + +/* + * Acquire vty and properly attach ourselves to it. + * Also, build basic environment for running user interface. + */ + +int +start_session(int vty, int argc, char **argv) +{ + int fd; + char *t; + + close(0); + close(1); + close(2); + revoke(ttys[vty].tty); + fd=open(ttys[vty].tty,O_RDWR); + dup2(fd,0); + dup2(fd,1); + dup2(fd,2); + if(fd>2) close(fd); + login_tty(fd); + setpgid(0,getpid()); + putenv("TERM=cons25"); + putenv("HOME=/"); + putenv("PATH=/stand:/bin:/usr/bin:/sbin:."); + signal(SIGHUP,SIG_DFL); + signal(SIGINT,SIG_DFL); + signal(SIGQUIT,SIG_DFL); + signal(SIGTERM,SIG_DFL); + chdir("/"); + t=(char *)(rindex(ttys[vty].tty,'/')+1); + printf("\n\n\nStarting session on %s.\n",t); + ttys[vty].func(argc,argv); + _exit(0); +} + +/* + * Execute system startup script /etc/rc + * + * (Of course if you don't like it - I don't - you can run anything you + * want here. Perhaps it would be useful just to read some config DB and + * do these things ourselves, avoiding forking lots of shells and scripts.) + */ + +/* If OINIT_RC is defined, oinit will use it's own configuration file, + * /etc/oinit.rc. It's format is described below. Otherwise, it will use + * normal /etc/rc interpreted by Bourne shell. + */ +#ifndef OINIT_RC +#ifndef SH_NAME +#define SH_NAME "-sh" +#endif +#ifndef SH_PATH +#define SH_PATH _PATH_BSHELL +#endif +#ifndef SH_ARG +#define SH_ARG "/etc/rc" +#endif +void +runcom() +{ + char *argv[3]; + pid_t pid; + int st; + int fd; + + if((pid=fork())==0) { + /* child */ + close(0); + close(1); + close(2); + fd=open(_PATH_CONSOLE,O_RDWR); + dup2(fd,0); + dup2(fd,1); + dup2(fd,2); + if(fd>2) close(fd); + argv[0]=SH_NAME; + argv[1]=SH_ARG; + argv[2]=0; + execvp(SH_PATH,argv); + printf("runcom(): %s\n",strerror(errno)); + _exit(1); + } + /* Wait for child to exit */ + while(pid!=waitpid(pid,(int *)0,0)) continue; + return; +} +#else +/* Alternative /etc/rc - default is /etc/oinit.rc. Its format is as follows: + * - each empty line or line beginning with a '#' is discarded + * - any other line must contain a keyword, or a (nonblocking) command to run. + * + * Thus far, the following keywords are defined: + * ncons <number> number of virtual consoles to open + * motd <pathname> full path to motd file + * + * Examples of commands to run: + * + * ifconfig lo0 inet 127.0.0.1 netmask 255.0.0.0 + * ifconfig ed0 inet 148.81.168.10 netmask 255.255.255.0 + * kbdcontrol -l /usr/share/syscons/my_map.kbd + */ +void +runcom(char *fname) +{ + int fd; + + close(0); + close(1); + close(2); + fd=open(_PATH_CONSOLE,O_RDWR); + dup2(fd,0); + dup2(fd,1); + dup2(fd,2); + if(fd>2) close(fd); + sourcer(fname); +} +#endif + +int +run_multi() +{ + int i,j; + pid_t pid; + int found; + + /* Run /etc/rc if not in single user */ +#ifndef OINIT_RC + if(prevtrans==SINGLE) runcom(); +#else + if(prevtrans==SINGLE) runcom(OINIT_RC); +#endif + if(transition!=MULTI) return(-1); + + syslog(LOG_EMERG,"*** Starting multi-user mode ***"); + + /* Fork shell interface for each console */ + for(i=0;i<ncons;i++) { + if(ttys[i].pid==0) { + switch(pid=fork()) { + case 0: + start_session(i,0,NULL); + break; + case -1: + printf("%s: %s\n",progname,strerror(errno)); + break; + default: + ttys[i].pid=pid; + break; + } + } + } + /* Initialize any other services we'll use - most probably this will + * be a 'telnet' service (some day...). + */ + /* */ + + /* Emulate multi-user */ + while(transition==MULTI) { + /* XXX Modify this to allow for checking for the input on + * XXX listening sockets, and forking a 'telnet' service. + */ + /* */ + + /* Wait for any process to exit */ + pid=waitpid(-1,(int *)0,0); + if(pid==-1) continue; + found=0; + j=-1; + /* search if it's one of our sessions */ + for(i=0;i<ncons;i++) { + if(ttys[i].pid==pid) { + found++; + j=i; + ttys[j].pid=0; + break; + } + } + if(!found) { + /* Just collect the process's status */ + continue; + } else { + /* restart shell() on a console, if it died */ + if(transition!=MULTI) return(0); + switch(pid=fork()) { + case 0: + sleep(1); + start_session(j,0,NULL); + break; + case -1: + printf("%s: %s\n",progname,strerror(errno)); + break; + default: + ttys[j].pid=pid; + break; + } + } + } +} + +int clang; + +void +kill_timer(int sig) +{ + clang=1; +} + +kill_ttys() +{ +} + +/* + * Start a shell on ttyv0 (i.e. the console). + */ + +int +run_single() +{ + int i; + pid_t pid,wpid; + static int sigs[2]={SIGTERM,SIGKILL}; + + syslog(LOG_EMERG,"*** Starting single-user mode ***"); + /* Kill all existing sessions */ + syslog(LOG_EMERG,"Killing all existing sessions..."); + for(i=0;i<MAX_CONS;i++) { + kill(ttys[i].pid,SIGHUP); + ttys[i].pid=0; + } + for(i=0;i<2;i++) { + if(kill(-1,sigs[i])==-1 && errno==ESRCH) break; + clang=0; + alarm(10); + do { + pid=waitpid(-1,(int *)0,WUNTRACED); + if(errno==EINTR) continue; + else break; + } while (clang==0); + } + if(errno!=ECHILD) { + syslog(LOG_EMERG,"Some processes would not die; ps -axl advised"); + } + /* Single-user */ + switch(pid=fork()) { + case 0: + start_session(0,0,NULL); + break; + case -1: + printf("%s: %s\n",progname,strerror(errno)); + printf("The system is seriously hosed. I'm dying...\n"); + transition=DEATH; + return(-1); + break; + default: + do { + wpid=waitpid(pid,(int *)0,WUNTRACED); + } while(wpid!=pid && transition==SINGLE); + if(transition!=DEATH) { + prevtrans=transition; + transition=MULTI; + } + break; + } + return(0); +} + +/* + * Transition handler - installed as signal handler. + */ + +void +transition_handler(int sig) +{ + + switch(sig) { + case SIGHUP: + case SIGTERM: + prevtrans=transition; + transition=SINGLE; + syslog(LOG_EMERG,"*** Going from %s -> %s\n",trans[prevtrans],trans[transition]); + if(prevtrans!=transition) longjmp(machine,sig); + break; + case SIGINT: + case SIGQUIT: + prevtrans=transition; + transition=DEATH; + syslog(LOG_EMERG,"*** Going from %s -> %s\n",trans[prevtrans],trans[transition]); + if(prevtrans!=transition) longjmp(machine,sig); + break; + default: + syslog(LOG_EMERG,"pid=%d sig=%s (ignored)\n",getpid(),sys_siglist[sig]); + break; + } +} + +/* + * Change system state appropriately to the signals + */ + +int +transition_machine() +{ + int i; + + while(transition!=DEATH) { + switch(transition) { + case MULTI: + run_multi(); + break; + case SINGLE: + run_single(); + break; + } + } + syslog(LOG_EMERG,"Killing all existing sessions..."); + /* Kill all sessions */ + kill(-1,SIGKILL); + /* Be nice and wait for them */ + while(waitpid(-1,(int *)0,WNOHANG|WUNTRACED)>0) continue; + unmount("/",0); + reboot(RB_AUTOBOOT); + /* NOTREACHED */ +} + +int +main(int argc, char **argv) +{ + int devfs=0,c,i; + + /* These are copied from real init(8) */ + if(getuid()!=0) + errx(1,"%s",strerror(EPERM)); + openlog("init",LOG_CONS|LOG_ODELAY,LOG_AUTH); + if(setsid()<0) + warn("initial setsid() failed"); + if(setlogin("root")<0) + warn("setlogin() failed"); + + close(0); + close(1); + close(2); + chdir("/"); + + progname=rindex(argv[0],'/'); + if(progname==NULL) { + progname=argv[0]; + } else progname++; + + transition=MULTI; + + /* We must recognize the same options as real init does */ + while((c=getopt(argc,argv,"dsf"))!=-1) { + switch(c) { + case 'd': + devfs=1; + break; + case 's': + transition=SINGLE; + break; + case 'f': + break; + default: + printf("%s: unrecognized flag '-%c'\n",progname,c); + break; + } + } + if(devfs) + mount("devfs",_PATH_DEV,MNT_NOEXEC|MNT_RDONLY,0); + + /* Fill in the sess structures. */ + /* XXX Really, should be filled based upon config file. */ + for(i=0;i<MAX_CONS;i++) { + if(i==0) { + sprintf(ttys[i].tty,_PATH_CONSOLE); + } else { + sprintf(ttys[i].tty,"%sv%c",_PATH_TTY,vty[i]); + } + ttys[i].pid=0; + ttys[i].func=shell; + } + + getcwd(cwd,BUFSIZE); + + signal(SIGINT,transition_handler); + signal(SIGQUIT,transition_handler); + signal(SIGTERM,transition_handler); + signal(SIGHUP,transition_handler); + signal(SIGALRM,kill_timer); + + setjmp(machine); + transition_machine(transition); + /* NOTREACHED */ + exit(100); +} diff --git a/release/picobsd/tinyware/simple_httpd/Makefile b/release/picobsd/tinyware/simple_httpd/Makefile new file mode 100644 index 000000000000..524040efb534 --- /dev/null +++ b/release/picobsd/tinyware/simple_httpd/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ +# +PROG=simple_httpd +SRCS= simple_httpd.c +NOMAN=yes + +.include <bsd.prog.mk> diff --git a/release/picobsd/tinyware/simple_httpd/README b/release/picobsd/tinyware/simple_httpd/README new file mode 100644 index 000000000000..6961954615d4 --- /dev/null +++ b/release/picobsd/tinyware/simple_httpd/README @@ -0,0 +1,167 @@ +Simple_httpd - A small and free Web server + +"Simple_httpd is like /usr/bin/mail is to mail clients, no frills." + +This HTTP server can be used in any FreeBSD/PicoBSD application. + +It has been tested under FreeBSD 2.2.x, 3.x and 4.x. It might work +on other OS systems, but it's for FreeBSD primarily. + +The main advantage to Simple_httpd is that it is very small. +The 25K binary can satisfy most needs in a small or embedded +appplication. If you want a full featured server see +/usr/ports/www/apache* or http://www.apache.org + +Simple_httpd is released under a BSD style copyright that unlike +GPL is embedded developer friendly. + +The server is designed to be run in one of two modes. The standard +mode is a httpd server running in the background serving up a directory +of html,gif,cgi whatever. Your traditional www server. + +The "fetch" mode supports file transfer over httpd. This +is best thought of as mate for fetch(1). This feature can be +usefull to transfer a file from one host to another. + +Simple_httpd has the ability to run CGI scripts. All CGI +scripts must be located in ${DOCUMENT_ROOT}/cgi-bin. The +server currently only sets 3 enviroment variables before calling +the script. + +CGI Enviroment variables are below: + +SERVER_SOFTWARE = FreeBSD/PicoBSD +REMOTE_HOST = client.canada_lower_taxes.com +REMOTE_ADDR = 200.122.13.108 + +In most target applications for this server the extra DNS traffic from +the remote_addr lookup will likely be on the local lan anyway and not +on the other side of the internet. You can turn it off yourself in +the code if you want to speed the whole process up. Be sure to turn +it off for the logfile also. + +How to use it? +============== + +Compile with make, run as follows + +usage: simple_httpd [-vD] + [-d directory] + [-g grpid] + [-l logfile] + [-p port] +or +usage: simple_httpd [-p port] -f filename + +-v +Run the server verbose. Show the program options that will be used for this +process. Will only show information during startup, no messages will +be displayed while serving requests. In other words you can still +daemonize without fear of output on stdout. + +-D +Do not daemonize. The server will not run in the background. It will +stay attached to the tty. This is usefull for debugging. In this +mode no log file is created. Logging info is to stdout. + +This option is automatically selected if fetch option is selected. + +-d directory +The html document directory, if nothing is provided the default is +/httphome if UID is root, otherwise document root is ${HOME}/public_html + +-l logfile +Set the logfile to use. Log messages will be written to /var/log/jhttpd.log +if you are root and ${HOME}/jhttpd.log otherwise. If you don't want a +log file try "-l /dev/null" + +-p port +Set the port httpd server will listen to. Default is port 80 if +you are root and 1080 if you are not. + +-f filename +This is the only option needed to use the "fetch" feature. The file +specified will be the ONLY file served to ANY GET request from a browser +or fetch(1). + +Example +======= + +Standard Mode: +-------------- +If you have the FreeBSD handbook installed on your machine and would +like to serve it up over http for a quick look you could do this + +simple_httpd -d /usr/share/doc/handbook -l /usr/tmp/jlog.txt -p 1088 -v + +Any browser would be able to look at the handbook with +http://whatever_host/handbook.html:1088 + +I'm using 1088 as the port since I already have apache running on port 80 +and port 1080 on my host. + +Please note, the handbook is not installed by default in FreeBSD 3.x +It must be installed from the ports collection first if you want to +try this. + +Another simple example is to browse your local ports collection: + +cd /usr/ports +make readmes #wait about 1 hour! +simple_httpd -p 1080 -v -d /usr/ports + +Then point your browser at http://whatever_host/README.html + +Fetch Mode: +-------------- +This is designed to be used in conjunction with fetch(3). It allows +for easy transfer of files from one host to another without messy +authentication or pathnames required with ftp. The file to be +served up must be readable by the user running simple_httpd. +This is not a magic way to avoid permissions and read files. + +The daemon will only serve up ONE file. The file specified will +be returned for every GET request regardless of what the browser +asks for. This allows for on the fly naming. + +sender# simple_httpd -f /usr/tmp/big_file.tgz +receiver# fetch http://sender.com/Industrial_Secrets.tgz + +big_file.tgz was transferred from one machine to another and renamed +Industrial_Secrets.tgz at the same time. + +Tunneling over other TCP ports. Choose something that firewall +will probably pass. See /etc/services. + +sender# simple_httpd -p 53 -f /usr/tmp/big_file.tgz +receiver# fetch http://sender.com:53/Industrial_Secrets.tgz + +To Do +===== + +Simple authentication would be very usefull[understatment]. +/etc/passwd or PAM would be nice. + +I think a netmask option would be good. Most internet appliances +probably want to restrict traffic to local ethernet anyway. +ie: Allow anything from my class C. + +The server always has 1 zombie process hanging around when it +runs as a daemon. Should fix so that it doesn't happen. + +Anything to make it faster! + +Man page + +If anyone has any improvements or ways to easily implement something +please let me <wlloyd@slap.net> know. If you make some neat embedded +device with PicoBSD I want to know too! + +Credits +======= + +This program was originally contributed by Marc Nicholas <marc@netstor.com> + +Major rewrite by William Lloyd <wlloyd@slap.net> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/simple_httpd/simple_httpd.c b/release/picobsd/tinyware/simple_httpd/simple_httpd.c new file mode 100644 index 000000000000..71ee3396e9a5 --- /dev/null +++ b/release/picobsd/tinyware/simple_httpd/simple_httpd.c @@ -0,0 +1,480 @@ +/*- + * Simple_HTTPd v1.1 - a very small, barebones HTTP server + * + * Copyright (c) 1998-1999 Marc Nicholas <marc@netstor.com> + * All rights reserved. + * + * Major rewrite by William Lloyd <wlloyd@slap.net> + * + * 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 <sys/stat.h> +#include <sys/time.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/wait.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +#include <fcntl.h> +#include <netdb.h> +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> + +int http_port = 80; +int daemonize = 1; +int verbose = 0; +int http_sock, con_sock; + +char fetch_mode[100]; +char homedir[100]; +char logfile[80]; +char *adate(); + +struct hostent *hst; +struct sockaddr_in source; + +/* HTTP basics */ +static char httpd_server_ident[] = "Server: FreeBSD/PicoBSD simple_httpd 1.1\r"; + +static char http_200[] = "HTTP/1.0 200 OK\r"; + +/* Two parts, HTTP Header and then HTML */ +static char *http_404[2] = + {"HTTP/1.0 404 Not found\r\n", +"<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY><H1>Error 404</H1>\ +Not found - file doesn't exist or you do not have permission.\n</BODY></HTML>\r\n" +}; + +static char *http_405[2] = + {"HTTP/1.0 405 Method Not allowed\r\nAllow: GET,HEAD\r\n", +"<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY><H1>Error 405</H1>\ +This server only supports GET and HEAD requests.\n</BODY></HTML>\r\n" +}; + +/* + * Only called on initial invocation + */ +void +init_servconnection(void) +{ + struct sockaddr_in server; + + /* Create a socket */ + http_sock = socket(AF_INET, SOCK_STREAM, 0); + if (http_sock < 0) { + perror("socket"); + exit(1); + } + server.sin_family = AF_INET; + server.sin_port = htons(http_port); + server.sin_addr.s_addr = INADDR_ANY; + if (bind(http_sock, (struct sockaddr *) & server, sizeof(server)) < 0) { + perror("bind socket"); + exit(1); + } + if (verbose) printf("simple_httpd\n",http_port); +} + +/* + * Wait here until we see an incoming http request + */ +wait_connection(void) +{ + int lg; + + lg = sizeof(struct sockaddr_in); + + con_sock = accept(http_sock, (struct sockaddr *) & source, &lg); + if (con_sock <= 0) { + perror("accept"); + exit(1); + } +} + +/* + * Print timestamp for HTTP HEAD and GET + */ +http_date() +{ + time_t tl; + char buff[50]; + + tl = time(NULL); + strftime(buff, 50, "Date: %a, %d %h %Y %H:%M:%S %Z\r\n", gmtime(&tl)); + write(con_sock, buff, strlen(buff)); + //return(buff); +} + +/* + * Send data to the open socket + */ +http_output(char *html) +{ + write(con_sock, html, strlen(html)); + write(con_sock, "\r\n", 2); +} + + +/* + * Create and write the log information to file + * Log file format is one line per entry + */ +log_line(char *req) +{ + char log_buff[256]; + char msg[1024]; + char env_host[80], env_addr[80]; + long addr; + FILE *log; + + strcpy(log_buff,inet_ntoa(source.sin_addr)); + sprintf(env_addr, "REMOTE_ADDR=%s",log_buff); + + addr=inet_addr(log_buff); + + strcpy(msg,adate()); + strcat(msg," "); + hst=gethostbyaddr((char*) &addr, 4, AF_INET); + + /* If DNS hostname exists */ + if (hst) { + strcat(msg,hst->h_name); + sprintf(env_host, "REMOTE_HOST=%s",hst->h_name); + } + strcat(msg," ("); + strcat(msg,log_buff); + strcat(msg,") "); + strcat(msg,req); + + if (daemonize) { + log=fopen(logfile,"a"); + fprintf(log,"%s\n",msg); + fclose(log); + } else + printf("%s\n",msg); + + /* This is for CGI scripts */ + putenv(env_addr); + putenv(env_host); +} + +/* + * We have a connection. Identify what type of request GET, HEAD, CGI, etc + * and do what needs to be done + */ +http_request() +{ + int fd, lg, ld, i; + int cmd = 0; + int http1 = 0; + char *p, *par; + char *filename, *c; + struct stat file_status; + char req[1024]; + char msg[1024]; + char buff[8192]; + + lg = read(con_sock, req, 1024); + + if (p=strstr(req,"\n")) *p=0; + if (p=strstr(req,"\r")) *p=0; + + log_line(req); + + c = strtok(req, " "); + + /* Error msg if request is nothing */ + if (c == NULL) { + http_output(http_404[0]); + http_output(http_404[1]); + goto end_request; + } + + if (strncmp(c, "GET", 3) == 0) cmd = 1; + if (strncmp(c, "HEAD", 4) == 0) cmd = 2; + + /* Do error msg for any other type of request */ + if (cmd == 0) { + http_output(http_405[0]); + http_output(http_405[1]); + goto end_request; + } + + filename = strtok(NULL, " "); + + c = strtok(NULL, " "); + if (fetch_mode[0] != NULL) strcpy(filename,fetch_mode); + if (filename == NULL || + strlen(filename)==1) filename="/index.html"; + + while (filename[0]== '/') filename++; + + /* CGI handling. Untested */ + if (!strncmp(filename,"cgi-bin/",8)) + { + par=0; + if (par=strstr(filename,"?")) + { + *par=0; + par++; + } + if (access(filename,X_OK)) goto conti; + stat (filename,&file_status); + if (setuid(file_status.st_uid)) return(0); + if (seteuid(file_status.st_uid)) return(0); + if (!fork()) + { + close(1); + dup(con_sock); + //printf("HTTP/1.0 200 OK\nContent-type: text/html\n\n\n"); + printf("HTTP/1.0 200 OK\r\n"); + /* Plug in environment variable, others in log_line */ + putenv("SERVER_SOFTWARE=FreeBSD/PicoBSD"); + + execlp (filename,filename,par,0); + } + wait(&i); + return(0); + } + conti: + if (filename == NULL) { + http_output(http_405[0]); + http_output(http_405[1]); + goto end_request; + } + /* End of CGI handling */ + + /* Reject any request with '..' in it, bad hacker */ + c = filename; + while (*c != '\0') + if (c[0] == '.' && c[1] == '.') { + http_output(http_404[0]); + http_output(http_404[1]); + goto end_request; + } else + c++; + + /* Open filename */ + fd = open(filename, O_RDONLY); + if (fd < 0) { + http_output(http_404[0]); + http_output(http_404[1]); + goto end_request; + } + + /* Get file status information */ + if (fstat(fd, &file_status) < 0) { + http_output(http_404[0]); + http_output(http_404[1]); + goto end_request; + } + + /* Is it a regular file? */ + if (!S_ISREG(file_status.st_mode)) { + http_output(http_404[0]); + http_output(http_404[1]); + goto end_request; + } + + /* Past this point we are serving either a GET or HEAD */ + /* Print all the header info */ + http_output(http_200); + http_output(httpd_server_ident); + http_date(); + + sprintf(buff, "Content-length: %d\r\n", file_status.st_size); + + if (strstr(filename,".txt")) { + strcpy(buff,"Content-type: text/plain\r\n"); + } else if (strstr(filename,".html") || strstr(filename,".htm")) { + strcpy(buff,"Content-type: text/html\r\n"); + } else if (strstr(filename,".gif")) { + strcpy(buff,"Content-type: image/gif\r\n"); + } else if (strstr(filename,".jpg")) { + strcpy(buff,"Content-type: image/jpeg\r\n"); + } else { + /* Take a guess at content if we don't have something already */ + strcpy(buff,"Content-type: "); + strcat(buff,strstr(filename,".")+1); + strcat(buff,"\r\n"); + } + write(con_sock, buff, strlen(buff)); + + strftime(buff, 50, "Last-Modified: %a, %d %h %Y %H:%M:%S %Z\r\n\r\n", gmtime(&file_status.st_mtime)); + write(con_sock, buff, strlen(buff)); + + /* Send data only if GET request */ + if (cmd == 1) { + while (lg = read(fd, buff, 8192)) + write(con_sock, buff, lg); + } + +end_request: + close(fd); + close(con_sock); + +} + +/* + * Simple httpd server for use in PicoBSD or other embedded application. + * Should satisfy simple httpd needs. For more demanding situations + * apache is probably a better (but much larger) choice. + */ +main(int argc, char *argv[]) +{ + extern char *optarg; + extern int optind; + int bflag, ch, fd, ld; + int lg; + int httpd_group = 65534; + pid_t server_pid; + + /* Default for html directory */ + strcpy (homedir,getenv("HOME")); + if (!geteuid()) strcpy (homedir,"/httphome"); + else strcat (homedir,"/httphome"); + + /* Defaults for log file */ + if (geteuid()) { + strcpy(logfile,getenv("HOME")); + strcat(logfile,"/"); + strcat(logfile,"jhttp.log"); + } else + strcpy(logfile,"/var/log/jhttpd.log"); + + /* Parse command line arguments */ + while ((ch = getopt(argc, argv, "d:f:g:l:p:vDh")) != -1) + switch (ch) { + case 'd': + strcpy(homedir,optarg); + break; + case 'f': + daemonize = 0; + verbose = 1; + strcpy(fetch_mode,optarg); + break; + case 'g': + httpd_group = atoi(optarg); + break; + case 'l': + strcpy(logfile,optarg); + break; + case 'p': + http_port = atoi(optarg); + break; + case 'v': + verbose = 1; + break; + case 'D': + daemonize = 0; + break; + case '?': + case 'h': + default: + printf("usage: simple_httpd [[-d directory][-g grpid][-l logfile][-p port][-vD]]\n"); + exit(1); + /* NOTREACHED */ + } + + /* Not running as root and no port supplied, assume 1080 */ + if ((http_port == 80) && geteuid()) { + http_port = 1080; + } + + /* Do we really have rights in the html directory? */ + if (fetch_mode[0] == NULL) { + if (chdir(homedir)) { + perror("chdir"); + puts(homedir); + exit(1); + } + } + + /* Create log file if it doesn't exit */ + if ((access(logfile,W_OK)) && daemonize) { + ld = open (logfile,O_WRONLY); + chmod (logfile,00600); + close(ld); + } + + init_servconnection(); + + if (verbose) { + printf("Server started with options \n"); + printf("port: %d\n",http_port); + if (fetch_mode[0] == NULL) printf("html home: %s\n",homedir); + if (daemonize) printf("logfile: %s\n",logfile); + } + + /* httpd is spawned */ + if (daemonize) { + if (server_pid = fork()) { + wait3(0,WNOHANG,0); + if (verbose) printf("pid: %d\n",server_pid); + exit(0); + } + wait3(0,WNOHANG,0); + } + + if (fetch_mode[0] == NULL) setpgrp(0,httpd_group); + + /* How many connections do you want? + * Keep this lower than the available number of processes + */ + if (listen(http_sock,15) < 0) exit(1); + + label: + wait_connection(); + + if (fork()) { + wait3(0,WNOHANG,0); + close(con_sock); + goto label; + } + + http_request(); + + wait3(0,WNOHANG,0); + exit(0); +} + + +char *adate() +{ + static char out[50]; + long now; + struct tm *t; + time(&now); + t = localtime(&now); + sprintf(out, "%02d:%02d:%02d %02d/%02d/%02d", + t->tm_hour, t->tm_min, t->tm_sec, + t->tm_mday, t->tm_mon+1, t->tm_year ); + return out; +} diff --git a/release/picobsd/tinyware/sps/Makefile b/release/picobsd/tinyware/sps/Makefile new file mode 100644 index 000000000000..8997087da65e --- /dev/null +++ b/release/picobsd/tinyware/sps/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ +# +PROG=sps +SRCS= sps.c +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/sps/README b/release/picobsd/tinyware/sps/README new file mode 100644 index 000000000000..2357113bf2ca --- /dev/null +++ b/release/picobsd/tinyware/sps/README @@ -0,0 +1,11 @@ +This is a small 'ps' replacement, which uses information available via +sysctl(3) interface (contrary to the 'aps', which requires you to mount +procfs(5) to be able to get exactly the same info, so I think that 'sps' +is superior solution). + +When I have some time, I'll add usual switches and other functions that normal +'ps' has... + +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/sps/sps.c b/release/picobsd/tinyware/sps/sps.c new file mode 100644 index 000000000000..af405b151a4d --- /dev/null +++ b/release/picobsd/tinyware/sps/sps.c @@ -0,0 +1,122 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki + * 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$ + */ + +/* + * Small replacement for ps(1) - uses only sysctl(3) to retrieve info + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/param.h> +#include <sys/sysctl.h> +#include <sys/stat.h> +#include <sys/user.h> + +char p_stat[] = "?iRSTZWM"; + +int +main(int argc, char *argv[]) +{ + int mib[4], i, num, len, j, plen; + char buf[MAXPATHLEN], vty[5], pst[5], wmesg[10]; + struct kinfo_proc *ki; + char *t; + int ma, mi; + + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_ALL; + if (sysctl(mib, 3, NULL, &len, NULL, 0) != 0) { + perror("sysctl sizing"); + exit(1); + } + t = (char *)malloc(len); + if (sysctl(mib, 3, t, &len, NULL, 0) != 0) { + perror("sysctl info"); + exit(1); + } + mib[2] = KERN_PROC_ARGS; + num = len / KINFO_PROC_SIZE; + i = 0; + printf("USERNAME PID PPID PRI NICE TTY STAT WCHAN COMMAND\n"); + while(i < num) { + ki = (struct kinfo_proc *)(t + (num - i - 1) * KINFO_PROC_SIZE); + mib[3] = ki->ki_pid; + plen = MAXPATHLEN; + if (sysctl(mib, 4, buf, &plen, NULL, 0) != 0) { + perror("sysctl cmd info"); + exit(1); + } + if (plen == 0) { + sprintf(buf, "(%s)", ki->ki_comm); + } else { + for (j = 0; j < plen - 1; j++) { + if (buf[j] == '\0') buf[j] = ' '; + } + } + if (strcmp(ki->ki_wmesg, "") == 0) { + sprintf(wmesg, "-"); + } else { + strcpy(wmesg, ki->ki_wmesg); + } + ma = major(ki->ki_tdev); + mi = minor(ki->ki_tdev); + switch(ma) { + case 255: + strcpy(vty, "??"); + break; + case 12: + if(mi != 255) { + sprintf(vty, "v%d", mi); + break; + } + /* FALLTHROUGH */ + case 0: + strcpy(vty, "con"); + break; + case 5: + sprintf(vty, "p%d", mi); + break; + } + sprintf(pst, "%c", p_stat[ki->ki_stat]); + printf("%8s %5u %5u %3d %4d %3s %-4s %-7s %s\n", + ki->ki_login, + ki->ki_pid, + ki->ki_ppid, + ki->ki_priority - 22, + ki->ki_nice, + vty, + pst, + wmesg, + buf); + i++; + } + free((void *)t); + exit(0); +} diff --git a/release/picobsd/tinyware/view/Makefile b/release/picobsd/tinyware/view/Makefile new file mode 100644 index 000000000000..1c0399d12787 --- /dev/null +++ b/release/picobsd/tinyware/view/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +PROG=view +SRCS=view.c +CFLAGS+=-I/usr/local/include +LDADD+=-L/usr/local/lib -lpng -lvgl -lz -lm +NOMAN=yes + +.include <bsd.prog.mk> diff --git a/release/picobsd/tinyware/view/README b/release/picobsd/tinyware/view/README new file mode 100644 index 000000000000..df5f774a95f6 --- /dev/null +++ b/release/picobsd/tinyware/view/README @@ -0,0 +1,86 @@ +Warsaw, 1998.08.18 + + VIEW - small PNG viewer + ----------------------- + +This program is intended to serve as a simple console viewer for PNG +graphics. It also features some scripting abilities, which allow you to +build simple presentation. + +In fact, using even this initial version I was able to build a nice +presentation of PicoBSD abilities which I used in real-life situation (you +can see for yourself one of the presentation's screens, fbsd.png). + +The audience was impressed :-), especially when I asked them politely what +are requirements and cost to make that kind of presentation using M$ +products... + +Simple Viewing +-------------- + +Usage is as follows: + + view [-g nnn.nnn] [-r x] filename.png + +where + -g nnn.nnn screen gamma (you can adjust how bright is the + picture) + -r x resolution: + 0 - 640x480x16 + 1 - 640x200x256 + 2 - 320x240x256 + +Under right mouse button you can find a simple menu, which tells you also +the hotkeys. You can shift, rotate and zoom the picture. + +Presentation +------------ + +Usage is as above, but the file you give as argument is a (unix) text file +of the following format: + + 1 VIEW SCRIPT + 2 5 + 3 welcome.png + 4 /home/clipart/logo.png + 5 /home/present/title.png + 6 /home/present/outline.png + 7 /home/present/end.png + +(of course without the line numbering or the leading space!). The line number +1 is magic, and must be present in order to recognize the file properly. + +The second line tells how many pictures consist the presentation. The +following lines tell the file names containing the images themselves. + +See the example in file picobsd.vu. + +Command line arguments (gamma and resolution) are as above. You can also use +the pop-up menu to adjust image parameters, as well as go forward or +backward in the presentation. + +Bugs, caveats, missing features +------------------------------- + +* there are some bugs in libvgl which require strange workarounds, and even + then it doesn't work quite right. See the source for the 'XXX' comments... + +* I didn't have time to add gamma adjustment to the pop-up menu. It's + simple, though, and I leave it as an exercise for the reader :-)) + +* it would be great if someone would add GIF and jpeg support. + +* the error checking is probably weak. A bad PNG file or script file will + probably cause a coredump. + +* pop-up menu facilities need more abstraction to be usable in other cases. + +Anyway, as it is even now it's quite usable. + +Have fun! + +Andrzej Bialecki + +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/view/fbsd.png b/release/picobsd/tinyware/view/fbsd.png Binary files differnew file mode 100644 index 000000000000..0c5d3ed7887a --- /dev/null +++ b/release/picobsd/tinyware/view/fbsd.png diff --git a/release/picobsd/tinyware/view/picobsd.vu b/release/picobsd/tinyware/view/picobsd.vu new file mode 100644 index 000000000000..16a3630fa2d0 --- /dev/null +++ b/release/picobsd/tinyware/view/picobsd.vu @@ -0,0 +1,9 @@ +VIEW SCRIPT +7 +/png/logo.png +/png/1.png +/png/2.png +/png/p1.png +/png/p2.png +/png/p3.png +/png/p4.png diff --git a/release/picobsd/tinyware/view/view.c b/release/picobsd/tinyware/view/view.c new file mode 100644 index 000000000000..1cdc0aaa2c83 --- /dev/null +++ b/release/picobsd/tinyware/view/view.c @@ -0,0 +1,619 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki + * 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$ + */ + +/* + * Small PNG viewer with scripting abilities + */ + +#include <stdio.h> +#include <errno.h> +#include <fcntl.h> +#include <signal.h> +#include <termios.h> +#include <sys/types.h> +#include <sys/fbio.h> +#include <sys/consio.h> +#include <sys/mouse.h> +#include <vgl.h> +#include <png.h> + +#define NUMBER 8 + +extern char *optarg; +extern int optind; + +/* Prototypes */ +int kbd_action __P((int x, int y, char hotkey)); + +struct action { + int zoom; + int rotate; + int Xshift,Yshift; +}; + +struct menu_item { + char *descr; + char hotkey; + int (*func)(int x, int y, char hotkey); +}; + +struct menu_item std_menu[]= { + {"q Quit",'q',kbd_action}, + {"n Next",'n',kbd_action}, + {"p Previous",'p',kbd_action}, + {"Z Zoom in",'Z',kbd_action}, + {"z Zoom out",'z',kbd_action}, + {"r Rotate",'r',kbd_action}, + {"R Refresh",'R',kbd_action}, + {"l Left",'l',kbd_action}, + {"h Right",'h',kbd_action}, + {"j Up",'j',kbd_action}, + {"k Down",'k',kbd_action}, + {NULL,0,NULL} +}; + +char *progname; +VGLBitmap pic,bkg; +struct action a; +byte pal_red[256]; +byte pal_green[256]; +byte pal_blue[256]; +byte pal_colors; +double screen_gamma; +int max_screen_colors=15; +int quit,changed; +char **pres; +int nimg=0; +int auto_chg=0; +int cur_img=0; +char act; +FILE *log; + +void +usage() +{ + fprintf(stderr,"\nVGL graphics viewer, 1.0 (c) Andrzej Bialecki.\n"); + fprintf(stderr,"\nUsage:\n"); + fprintf(stderr,"\t%s [-r n] [-g n.n] filename\n",progname); + fprintf(stderr,"\nwhere:\n"); + fprintf(stderr,"\t-r n\tchoose resolution:\n"); + fprintf(stderr,"\t\t0 - 640x480x16 (default)\n"); + fprintf(stderr,"\t\t1 - 640x200x256\n"); + fprintf(stderr,"\t\t2 - 320x240x256\n"); + fprintf(stderr,"\t-g n.n\tset screen gamma (1.3 by default)\n"); + fprintf(stderr,"\n"); +} + +int +pop_up(char *title,int x, int y) +{ + VGLBitmap sav,clr; + int x1,y1,width,height,i,j; + int last_pos,cur_pos,max_item; + char buttons; + char *t; + + sav.Type=VGLDisplay->Type; + clr.Type=VGLDisplay->Type; + width=0; + height=0; + max_item=0; + i=0; + while(std_menu[i].descr!=NULL) { + height++; + max_item++; + if(strlen(std_menu[i].descr)>width) width=strlen(std_menu[i].descr); + i++; + } + width=width*8+2; + height=height*9+4+8; + sav.Xsize=width; + sav.Ysize=height; + clr.Xsize=width; + clr.Ysize=height; + sav.Bitmap=(byte *)calloc(width*height,1); + clr.Bitmap=(byte *)calloc(width*height,1); + if(x>(VGLDisplay->Xsize-width)) x1=VGLDisplay->Xsize-width; + else x1=x; + if(y>(VGLDisplay->Ysize-height)) y1=VGLDisplay->Ysize-height; + else y1=y; + VGLMouseMode(VGL_MOUSEHIDE); + VGLBitmapCopy(VGLDisplay,x1,y1,&sav,0,0,width,height); + VGLFilledBox(VGLDisplay,x1,y1,x1+width-1,y1+height-1,pal_colors-1); + VGLBitmapString(VGLDisplay,x1+1,y1+1,title,0,pal_colors-1,0,0); + VGLLine(VGLDisplay,x1,y1+9,x1+width,y1+9,0); + i=0; + while(std_menu[i].descr!=NULL) { + VGLBitmapString(VGLDisplay,x1+1,y1+11+i*9,std_menu[i].descr,0,pal_colors-1,0,0); + i++; + } + last_pos=-1; + VGLMouseMode(VGL_MOUSESHOW); + do { + pause(); + VGLMouseStatus(&x,&y,&buttons); + cur_pos=(y-y1-11)/9; + if((cur_pos<0)||(cur_pos>max_item-1)) { + if(last_pos==-1) last_pos=0; + VGLBitmapString(VGLDisplay,x1+1,y1+11+last_pos*9,std_menu[last_pos].descr,0,pal_colors-1,0,0); + last_pos=-1; + } else if(last_pos!=cur_pos) { + if(last_pos==-1) last_pos=0; + VGLBitmapString(VGLDisplay,x1+1,y1+11+last_pos*9,std_menu[last_pos].descr,0,pal_colors-1,0,0); + VGLBitmapString(VGLDisplay,x1+1,y1+11+cur_pos*9,std_menu[cur_pos].descr,pal_colors/2+1,pal_colors-1,0,0); + last_pos=cur_pos; + } + } while (buttons & MOUSE_BUTTON3DOWN); + VGLMouseMode(VGL_MOUSEHIDE); + /* XXX Screws up totally when r==3. Libvgl bug! */ + VGLBitmapCopy(&clr,0,0,VGLDisplay,x1,y1,width,height); + VGLBitmapCopy(&sav,0,0,VGLDisplay,x1,y1,width,height); + VGLMouseMode(VGL_MOUSESHOW); + free(sav.Bitmap); + free(clr.Bitmap); + changed++; + if((cur_pos>=0) && (cur_pos<max_item)) { + std_menu[cur_pos].func(x,y,std_menu[cur_pos].hotkey); + } + changed++; + return(0); +} + +void +display( VGLBitmap *pic, + byte *red, + byte *green, + byte *blue, + struct action *e) +{ + VGLBitmap target; + int x,y,i=0,j=0; + + VGLMouseMode(VGL_MOUSEHIDE); + VGLRestorePalette(); + /* XXX Broken in r!=2. Libvgl bug. */ + //VGLClear(VGLDisplay,0); + VGLBitmapCopy(&bkg,0,0,VGLDisplay,0,0,bkg.Xsize,bkg.Ysize); + + if(e!=NULL) { + if(e->zoom!=1 || e->rotate) { + target.Bitmap=(byte *)calloc(pic->Xsize*pic->Ysize*e->zoom*e->zoom,1); + if(e->rotate) { + target.Xsize=pic->Ysize*e->zoom; + target.Ysize=pic->Xsize*e->zoom; + } else { + target.Xsize=pic->Xsize*e->zoom; + target.Ysize=pic->Ysize*e->zoom; + } + target.Type=pic->Type; + for(x=0;x<pic->Xsize;x++) { + for(y=0;y<pic->Ysize;y++) { + for(i=0;i<e->zoom;i++) { + for(j=0;j<e->zoom;j++) { + if(e->rotate) { + VGLSetXY(&target,target.Xsize-(e->zoom*y+i),e->zoom*x+j,VGLGetXY(pic,x,y)); + } else { + VGLSetXY(&target,e->zoom*x+i,e->zoom*y+j,VGLGetXY(pic,x,y)); + } + } + } + } + } + } else { + target.Bitmap=(byte *)calloc(pic->Xsize*pic->Ysize,sizeof(byte)); + target.Xsize=pic->Xsize; + target.Ysize=pic->Ysize; + target.Type=pic->Type; + VGLBitmapCopy(pic,0,0,&target,0,0,pic->Xsize,pic->Ysize); + } + } else { + target.Bitmap=(byte *)calloc(pic->Xsize*pic->Ysize,sizeof(byte)); + target.Xsize=pic->Xsize; + target.Ysize=pic->Ysize; + target.Type=pic->Type; + VGLBitmapCopy(pic,0,0,&target,0,0,pic->Xsize,pic->Ysize); + } + VGLSetPalette(red, green, blue); + if(e!=NULL) { + VGLBitmapCopy(&target,0,0,VGLDisplay,e->Xshift,e->Yshift,target.Xsize,target.Ysize); + } else { + VGLBitmapCopy(&target,0,0,VGLDisplay,0,0,target.Xsize,target.Ysize); + } + VGLMouseMode(VGL_MOUSESHOW); + free(target.Bitmap); +} + +int +png_load(char *filename) +{ + int i,j,k; + FILE *fd; + u_char header[NUMBER]; + png_structp png_ptr; + png_infop info_ptr,end_info; + png_uint_32 width,height; + int bit_depth,color_type,interlace_type; + int compression_type,filter_type; + int channels,rowbytes; + double gamma; + png_colorp palette; + int num_palette; + png_bytep *row_pointers; + char c; + int res=0; + + fd=fopen(filename,"rb"); + + if(fd==NULL) { + VGLEnd(); + perror("fopen"); + exit(1); + } + fread(header,1,NUMBER,fd); + if(!png_check_sig(header,NUMBER)) { + fprintf(stderr,"Not a PNG file.\n"); + return(-1); + } + png_ptr=png_create_read_struct(PNG_LIBPNG_VER_STRING,(void *)NULL, + NULL,NULL); + info_ptr=png_create_info_struct(png_ptr); + end_info=png_create_info_struct(png_ptr); + if(!png_ptr || !info_ptr || !end_info) { + VGLEnd(); + fprintf(stderr,"failed to allocate needed structs!\n"); + png_destroy_read_struct(&png_ptr,&info_ptr,&end_info); + return(-1); + } + png_set_sig_bytes(png_ptr,NUMBER); + png_init_io(png_ptr,fd); + png_read_info(png_ptr,info_ptr); + png_get_IHDR(png_ptr,info_ptr,&width,&height,&bit_depth, + &color_type,&interlace_type,&compression_type,&filter_type); + png_get_PLTE(png_ptr,info_ptr,&palette,&num_palette); + channels=png_get_channels(png_ptr,info_ptr); + rowbytes=png_get_rowbytes(png_ptr,info_ptr); + if(bit_depth==16) + png_set_strip_16(png_ptr); + if(color_type & PNG_COLOR_MASK_ALPHA) + png_set_strip_alpha(png_ptr); + if(png_get_gAMA(png_ptr,info_ptr,&gamma)) + png_set_gamma(png_ptr,screen_gamma,gamma); + else + png_set_gamma(png_ptr,screen_gamma,0.45); + if(res==0) { + /* Dither */ + if(color_type & PNG_COLOR_MASK_COLOR) { + if(png_get_valid(png_ptr,info_ptr,PNG_INFO_PLTE)) { + png_uint_16p histogram; + png_get_hIST(png_ptr,info_ptr,&histogram); + png_set_dither(png_ptr,palette,num_palette,max_screen_colors,histogram,0); + } else { + png_color std_color_cube[16]={ + {0x00,0x00,0x00}, + {0x02,0x02,0x02}, + {0x04,0x04,0x04}, + {0x06,0x06,0x06}, + {0x08,0x08,0x08}, + {0x0a,0x0a,0x0a}, + {0x0c,0x0c,0x0c}, + {0x0e,0x0e,0x0e}, + {0x10,0x10,0x10}, + {0x12,0x12,0x12}, + {0x14,0x14,0x14}, + {0x16,0x16,0x16}, + {0x18,0x18,0x18}, + {0x1a,0x1a,0x1a}, + {0x1d,0x1d,0x1d}, + {0xff,0xff,0xff}, + }; + png_set_dither(png_ptr,std_color_cube,max_screen_colors,max_screen_colors,NULL,0); + } + } + } + png_set_packing(png_ptr); + if(png_get_valid(png_ptr,info_ptr,PNG_INFO_sBIT)) { + png_color_8p sig_bit; + + png_get_sBIT(png_ptr,info_ptr,&sig_bit); + png_set_shift(png_ptr,sig_bit); + } + png_read_update_info(png_ptr,info_ptr); + png_get_IHDR(png_ptr,info_ptr,&width,&height,&bit_depth, + &color_type,&interlace_type,&compression_type,&filter_type); + png_get_PLTE(png_ptr,info_ptr,&palette,&num_palette); + channels=png_get_channels(png_ptr,info_ptr); + rowbytes=png_get_rowbytes(png_ptr,info_ptr); + row_pointers=malloc(height*sizeof(png_bytep)); + for(i=0;i<height;i++) { + row_pointers[i]=malloc(rowbytes); + } + png_read_image(png_ptr,row_pointers); + png_read_end(png_ptr,end_info); + png_destroy_read_struct(&png_ptr,&info_ptr,&end_info); + fclose(fd); + /* Set palette */ + if(res) k=2; + else k=2; + for(i=0;i<256;i++) { + pal_red[i]=255; + pal_green[i]=255; + pal_blue[i]=255; + } + for(i=0;i<num_palette;i++) { + pal_red[i]=(palette+i)->red>>k; + pal_green[i]=(palette+i)->green>>k; + pal_blue[i]=(palette+i)->blue>>k; + } + pal_colors=num_palette; + if(pic.Bitmap!=NULL) free(pic.Bitmap); + pic.Bitmap=(byte *)calloc(rowbytes*height,sizeof(byte)); + pic.Type=MEMBUF; + pic.Xsize=rowbytes; + pic.Ysize=height; + for(i=0;i<rowbytes;i++) { + for(j=0;j<height;j++) { + VGLSetXY(&pic, + i,j,row_pointers[j][i]); + } + } + a.zoom=1; + a.Xshift=(VGLDisplay->Xsize-pic.Xsize)/2; + a.Yshift=(VGLDisplay->Ysize-pic.Ysize)/2; + a.rotate=0; + return(0); +} + +void +kbd_handler(int sig) +{ + u_char buf[10]; + int res; + + res=read(0,&buf,10); + changed++; + act=buf[res-1]; +} + +int +kbd_action(int x, int y, char key) +{ + changed=0; + if(key!='n') auto_chg=0; + switch(key) { + case 'q': + quit=1; + break; + case 'Z': + a.zoom++; + changed++; + break; + case 'z': + a.zoom--; + if(a.zoom<1) a.zoom=1; + changed++; + break; + case 'l': + a.Xshift+=VGLDisplay->Xsize/5; + changed++; + break; + case 'h': + a.Xshift-=VGLDisplay->Xsize/5; + changed++; + break; + case 'k': + a.Yshift+=VGLDisplay->Ysize/5; + changed++; + break; + case 'j': + a.Yshift-=VGLDisplay->Ysize/5; + changed++; + break; + case 'R': + changed++; + break; + case 'r': + if(a.rotate) a.rotate=0; + else a.rotate=1; + changed++; + break; + case '\n': + case 'n': + if(nimg>0) { + if(cur_img<nimg-1) { + cur_img++; + } else { + cur_img=0; + } + png_load(pres[cur_img]); + changed++; + } + break; + case 'p': + if(nimg>0) { + if(cur_img>0) { + cur_img--; + } else { + cur_img=nimg-1; + } + png_load(pres[cur_img]); + changed++; + } + break; + } + act=0; +} + +int +main(int argc, char *argv[]) +{ + int i,j,k; + char c; + int res=0; + int x,y; + char buttons; + struct termios t_new,t_old; + FILE *fsc; + + char buf[100]; + + progname=argv[0]; + screen_gamma=1.5; +#ifdef DEBUG + log=fopen("/png/view.log","w"); +#endif + while((c=getopt(argc,argv,"r:g:"))!=-1) { + switch(c) { + case 'r': + res=atoi(optarg); + if(res>0) max_screen_colors=256; + break; + case 'g': + screen_gamma=atof(optarg); + break; + case '?': + default: + usage(); + exit(0); + } + } + switch(res) { + case 0: + VGLInit(SW_CG640x480); + break; + case 1: + VGLInit(SW_VGA_CG320); + break; + case 2: + VGLInit(SW_VGA_MODEX); + break; + default: + fprintf(stderr,"No such resolution!\n"); + usage(); + exit(-1); + } +#ifdef DEBUG + fprintf(log,"VGL initialised\n"); +#endif + VGLSavePalette(); + if(argc>optind) { + res=png_load(argv[optind]); + } else { + VGLEnd(); + usage(); + exit(0); + } + if(res) { + /* Hmm... Script? */ + fsc=fopen(argv[optind],"r"); +#ifdef DEBUG + fprintf(log,"Trying script %s\n",argv[optind]); +#endif + fgets(buf,99,fsc); + buf[strlen(buf)-1]='\0'; + if(strncmp("VIEW SCRIPT",buf,11)!=NULL) { + VGLEnd(); + usage(); + } + if(strlen(buf)>12) { + auto_chg=atoi(buf+12); + } + fgets(buf,99,fsc); + buf[strlen(buf)-1]='\0'; + nimg=atoi(buf); + if(nimg==0) { + VGLEnd(); + usage(); + } + pres=(char **)calloc(nimg,sizeof(char *)); + for(i=0;i<nimg;i++) { + fgets(buf,99,fsc); + buf[strlen(buf)-1]='\0'; + pres[i]=strdup(buf); + } + fclose(fsc); + cur_img=0; +#ifdef DEBUG + fprintf(log,"Script with %d entries\n",nimg); +#endif + png_load(pres[cur_img]); + } + VGLMouseInit(VGL_MOUSEHIDE); + /* Prepare the keyboard */ + tcgetattr(0,&t_old); + memcpy(&t_new,&t_old,sizeof(struct termios)); + cfmakeraw(&t_new); + tcsetattr(0,TCSAFLUSH,&t_new); + fcntl(0,F_SETFL,O_ASYNC); + /* XXX VGLClear doesn't work.. :-(( Prepare a blank background */ + bkg.Bitmap=(byte *)calloc(VGLDisplay->Xsize*VGLDisplay->Ysize,1); + bkg.Xsize=VGLDisplay->Xsize; + bkg.Ysize=VGLDisplay->Ysize; + bkg.Type=VGLDisplay->Type; + signal(SIGIO,kbd_handler); + a.zoom=1; + a.Xshift=(VGLDisplay->Xsize-pic.Xsize)/2; + a.Yshift=(VGLDisplay->Ysize-pic.Ysize)/2; + a.rotate=0; + quit=0; + changed=0; + display(&pic,pal_red,pal_green,pal_blue,&a); + while(!quit) { + if(act) { +#ifdef DEBUG + fprintf(log,"kbd_action(%c)\n",act); +#endif + kbd_action(x,y,act); + } + if(quit) break; + if(changed) { +#ifdef DEBUG + fprintf(log,"changed, redisplaying\n"); +#endif + display(&pic,pal_red,pal_green,pal_blue,&a); + changed=0; + } + if(auto_chg) { + sleep(auto_chg); + kbd_action(x,y,'n'); + } else { + pause(); + } + VGLMouseStatus(&x,&y,&buttons); + if(buttons & MOUSE_BUTTON3DOWN) { +#ifdef DEBUG + fprintf(log,"pop_up called\n"); +#endif + pop_up("View",x,y); + } + } + VGLEnd(); +#ifdef DEBUG + fclose(log); +#endif + exit(0); +} diff --git a/release/picobsd/tinyware/vm/Makefile b/release/picobsd/tinyware/vm/Makefile new file mode 100644 index 000000000000..359aa3e9cfc4 --- /dev/null +++ b/release/picobsd/tinyware/vm/Makefile @@ -0,0 +1,10 @@ +# $FreeBSD$ +# +PROG=vm +#CFLAGS+= +SRCS= vm.c +NOMAN=yes + +.include <bsd.prog.mk> + + diff --git a/release/picobsd/tinyware/vm/README b/release/picobsd/tinyware/vm/README new file mode 100644 index 000000000000..c4a940c629e8 --- /dev/null +++ b/release/picobsd/tinyware/vm/README @@ -0,0 +1,10 @@ +1998.02.12 + +This is a small replacement for vmstat(8) program. It allows you to measure +current memory utilisation. The same info is available via sysctl(8) program, +but unfortunately this particular variable doesn't have its handler, and +consequently it is not displayed in stock version of sysctl(8). + +<abial@freebsd.org> + +$FreeBSD$ diff --git a/release/picobsd/tinyware/vm/vm.c b/release/picobsd/tinyware/vm/vm.c new file mode 100644 index 000000000000..482a2be286b9 --- /dev/null +++ b/release/picobsd/tinyware/vm/vm.c @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 1998 Andrzej Bialecki + * 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 <stdio.h> +#include <sys/types.h> +#include <sys/sysctl.h> +#include <sys/vmmeter.h> +#include <vm/vm_param.h> + +#define pgtok(a) ((a) * (u_int) pagesize >> 10) + +int +main(int argc, char *argv[]) +{ + int mib[2],i=0,len; + int pagesize, pagesize_len; + struct vmtotal v; + + pagesize_len = sizeof(int); + sysctlbyname("vm.stats.vm.v_page_size",&pagesize,&pagesize_len,NULL,0); + + len=sizeof(struct vmtotal); + mib[0]=CTL_VM; + mib[1]=VM_METER; + for(;;) { + sysctl(mib,2,&v,&len,NULL,0); + if(i==0) { + printf(" procs kB virt mem real mem shared vm shared real free\n"); + printf(" r w l s tot act tot act tot act tot act\n"); + } + printf("%2hu%2hu%2hu%2hu",v.t_rq-1,v.t_dw+v.t_pw,v.t_sl,v.t_sw); + printf("%7ld %7ld %7ld%7ld", + (long)pgtok(v.t_vm),(long)pgtok(v.t_avm), + (long)pgtok(v.t_rm),(long)pgtok(v.t_arm)); + printf("%7ld%7ld%7ld%7ld%7ld\n", + (long)pgtok(v.t_vmshr),(long)pgtok(v.t_avmshr), + (long)pgtok(v.t_rmshr),(long)pgtok(v.t_armshr), + (long)pgtok(v.t_free)); + sleep(5); + i++; + if(i>22) i=0; + } + exit(0); + +} diff --git a/release/scripts/X11/build_x.sh b/release/scripts/X11/build_x.sh new file mode 100755 index 000000000000..24b56fe95379 --- /dev/null +++ b/release/scripts/X11/build_x.sh @@ -0,0 +1,64 @@ +#!/bin/sh +# +# Builds X from the port and stores it under the specified directory. + +# usage information +# +usage() { + echo "$0 <output dir>" + echo + echo "Where <output dir> is the base directory to install X into. This" + echo "script also assumes that it can checkout XFree86 into " + echo `dirname $0`"/XFree86 and that it can get the distfiles from" + echo "/usr/ports/distfiles (or fetch them into that directory)." + echo + echo "Also, this should really be run as root." + exit 1 +} + +# check the command line +if [ $# -ne 1 ]; then + usage +fi + +# setup the output dir +output_dir=$1 +case $output_dir in + /*) + ;; + *) + output_dir=`pwd`/${output_dir} + ;; +esac +if ! mkdir -p $1; then + echo "Could not create ${output_dir}!" + echo + usage +fi + +# extract the directory this script lives in +home_dir=`dirname $0` + +# check out the XFree86 and XFree86-contrib ports and set them up +if ! ( cd $home_dir && \ + cvs -R -d ${CVSROOT} co -P XFree86 XFree86-contrib ); then + echo "Could not checkout the XFree86 port!" + echo + usage +fi + +# actually build X +if ! ( cd $home_dir/XFree86 && \ + make BUILD_XDIST=yes DISTDIR=/usr/ports/distfiles \ + DESTDIR=${output_dir} NO_PKG_REGISTER=yes all install ); then + echo "Could not build XFree86!" + echo + usage +fi +if ! ( cd $home_dir/XFree86-contrib && \ + make DISTDIR=/usr/ports/distfiles DESTDIR=${output_dir} \ + NO_PKG_REGISTER=yes all install ); then + echo "Could not build XFree86-contrib!" + echo + usage +fi diff --git a/release/scripts/X11/generate_plists.sh b/release/scripts/X11/generate_plists.sh new file mode 100755 index 000000000000..5ae7ecb17b4e --- /dev/null +++ b/release/scripts/X11/generate_plists.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# +# This script generates the list of files stored in a set of tarballs. For +# each argument, it uses tar to extract the list of contents and then outputs +# the list to a file with the same base name and the extension "plist". + +# generate_plist <tar archive> <packing list> +# +# Takes the archive listed in the first argument and generates a corresponding +# plist file to the name listed in the second argument. +generate_plist() { + echo "Generating $2 from $1..." + + tar_arguments='tf'; + + # handle gzip/bzip2/compress + case $1 in + *gz) + tar_arguments="${tar_arguments}z" + ;; + *bz) + tar_arguments="${tar_arguments}y" + ;; + *Z) + tar_arguments="${tar_arguments}Z" + ;; + esac + + tar ${tar_arguments} $1 > $2 +} + +# output the usage +# +usage() { + echo "$0 <tarball_dir> <plist_dir>" + echo + echo "Where <tarball_dir> is a directory containing all the X tarballs" + echo "in their proper directory structure and <plist_dir> is a" + echo "directory to put all the packing lists under." + exit 1 +} + +# copy the directory structure of the tarball directory over into the +# packing list directory +# +mirror_directories() { + echo "Creating packing list directory structure..." + find ${tarball_dir} -type d | \ + sed -e "s:^${tarball_dir}:mkdir -p ${plist_dir}:" | \ + sh -x || exit 1 +} + +# build all the package lists +# +build_plists() { + for archive in `find ${tarball_dir} ! -type d`; do + plist=`echo ${archive} | \ + sed -e "s/^${tarball_dir}/${plist_dir}/"`.plist + generate_plist ${archive} ${plist} + done +} + +# check for enough arguments +if [ $# -ne 2 ]; then + usage +fi + +# setup the variables +tarball_dir=$1 +plist_dir=$2 + +# do all the work +if mirror_directories; then + build_plists +fi diff --git a/release/scripts/X11/generate_tarballs.sh b/release/scripts/X11/generate_tarballs.sh new file mode 100755 index 000000000000..0df2d98a27bb --- /dev/null +++ b/release/scripts/X11/generate_tarballs.sh @@ -0,0 +1,81 @@ +#!/bin/sh +# +# This script takes a directory containing the base install of X, a directory +# containing the packing lists for the tarballs, and generates the distribution +# tarballs in a 3rd destination directory. + +# generate_tarball <packing list> <tarball> +# +# Takes the packing list listed in the first argument and generates a +# corresponding tarball relative to the source directory in a file with the +# name listed in the second argument. +generate_tarball() { + echo "Generating $2 from $1..." + + tar_arguments='cnTfp'; + + # handle gzip/bzip2/compress + case $2 in + *gz) + tar_arguments="${tar_arguments}z" + ;; + *bz) + tar_arguments="${tar_arguments}y" + ;; + *Z) + tar_arguments="${tar_arguments}Z" + ;; + esac + + cat $1 | (cd ${source_dir} ; tar ${tar_arguments} - - ) > $2 +} + +# output the usage +# +usage() { + echo "$0 <source_dir> <plist_dir> <tarball_dir>" + echo + echo "Where <source_dir> is a directory containing the built X binaries," + echo "<plist_dir> is the directory containing all of the packing lists" + echo "(generated by generate_plists.sh), and <tarball_dir> is the" + echo "directory to put all the tarballs under." + exit 1 +} + +# copy the directory structure of the packing list directory over into the +# tarball directory +# +mirror_directories() { + echo "Creating tarball directory structure..." + find ${plist_dir} -type d | \ + sed -e "s:^${plist_dir}:mkdir -p ${tarball_dir}:" | \ + sh -x || exit 1 +} + +# build all the tarballs +# +build_tarballs() { + for plist in `find ${plist_dir} ! -type d`; do + archive=`echo ${plist} | \ + sed -e "s:^${plist_dir}:${tarball_dir}:" \ + -e 's/\.plist$//'` + generate_tarball ${plist} ${archive} + done +} + +# check for enough arguments +if [ $# -ne 3 ]; then + usage +fi + +# setup the variables +source_dir=$1 +plist_dir=$2 +tarball_dir=$3 + +# do all the work +if mirror_directories; then + build_tarballs +else + echo $0: mirroring directories failed +fi diff --git a/release/scripts/X11/package_x_dists.sh b/release/scripts/X11/package_x_dists.sh new file mode 100755 index 000000000000..4c9c4a1d0f1c --- /dev/null +++ b/release/scripts/X11/package_x_dists.sh @@ -0,0 +1,54 @@ +#!/bin/sh +# +# This script uses a few child scripts to build X and then package it up. +# It assumes that all the needed child scripts are in the same directory that +# it lives in. It takes three parameters, one is the directory containing the +# packing lists for the tarballs, the second is the directory that we can use +# for our scratch work, and the third is the directory to stick all the +# tarballs in. We also expect CVSROOT to be set to a working CVS repo with +# the ports tree in it, although we only need read-only access. + +# usage info +# +usage() { + echo "$0 <work dir> <tarball dir>" + echo + echo "Where <work dir> is the name of the scratch directory we can do" + echo " our work under. Note that we toast the scratch directory at the" + echo " beginning." + exit 1 +} + +# check our command line +if [ $# -ne 2 ]; then + usage +fi + +# setup our directory variables +# note the generate_plists.sh script can be used to populate $plist_dir +home_dir=`dirname $0` +plist_dir=${home_dir}/plists/`uname -m` +work_dir=$1 +tarball_dir=$2 + +# setup the scratch directory +[ -r ${work_dir} ] && rm -rf ${work_dir} +if ! mkdir -p ${work_dir}; then + echo "Could not create ${work_dir}!" + echo + usage +fi +mkdir ${work_dir}/scripts +cp $home_dir/* ${work_dir}/scripts/ +mkdir ${work_dir}/tmp + +# build X +if ! ${work_dir}/scripts/build_x.sh ${work_dir}/tmp; then + exit 1 +fi + +# now package it up into tarballs +if ! ${work_dir}/scripts/generate_tarballs.sh \ + ${work_dir}/tmp/usr/X11R6 ${plist_dir} ${tarball_dir}; then + exit 1 +fi diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9480.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9480.tgz.plist new file mode 100644 index 000000000000..8b87b0bb0062 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9480.tgz.plist @@ -0,0 +1 @@ +bin/XF98_NEC480 diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9EGC.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9EGC.tgz.plist new file mode 100644 index 000000000000..f6a3d7074893 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9EGC.tgz.plist @@ -0,0 +1 @@ +bin/XF98_EGC diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9GA9.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9GA9.tgz.plist new file mode 100644 index 000000000000..3a65c75b811e --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9GA9.tgz.plist @@ -0,0 +1 @@ +bin/XF98_GA968 diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9GAN.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9GAN.tgz.plist new file mode 100644 index 000000000000..5649527d6abe --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9GAN.tgz.plist @@ -0,0 +1 @@ +bin/XF98_GANBWAP diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9LPW.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9LPW.tgz.plist new file mode 100644 index 000000000000..1fbadfd304a9 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9LPW.tgz.plist @@ -0,0 +1 @@ +bin/XF98_PWLB diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9MGA.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9MGA.tgz.plist new file mode 100644 index 000000000000..a5b835e5855b --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9MGA.tgz.plist @@ -0,0 +1 @@ +bin/XF98_MGA diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9NKV.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9NKV.tgz.plist new file mode 100644 index 000000000000..459b09119747 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9NKV.tgz.plist @@ -0,0 +1 @@ +bin/XF98_NKVNEC diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9NS3.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9NS3.tgz.plist new file mode 100644 index 000000000000..33e814e466ac --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9NS3.tgz.plist @@ -0,0 +1 @@ +bin/XF98_NECS3 diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9SPW.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9SPW.tgz.plist new file mode 100644 index 000000000000..60b73a1cdfb5 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9SPW.tgz.plist @@ -0,0 +1 @@ +bin/XF98_PWSKB diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9SVG.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9SVG.tgz.plist new file mode 100644 index 000000000000..aae4896773a0 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9SVG.tgz.plist @@ -0,0 +1 @@ +bin/XF98_SVGA diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9TGU.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9TGU.tgz.plist new file mode 100644 index 000000000000..0d282078d076 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9TGU.tgz.plist @@ -0,0 +1 @@ +bin/XF98_TGUI diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9WEP.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9WEP.tgz.plist new file mode 100644 index 000000000000..04181bd7382e --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9WEP.tgz.plist @@ -0,0 +1 @@ +bin/XF98_WABEP diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9WS.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9WS.tgz.plist new file mode 100644 index 000000000000..76f479ba6d07 --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9WS.tgz.plist @@ -0,0 +1 @@ +bin/XF98_WABS diff --git a/release/scripts/X11/plists/i386/PC98-Servers/X9WSN.tgz.plist b/release/scripts/X11/plists/i386/PC98-Servers/X9WSN.tgz.plist new file mode 100644 index 000000000000..9d345cc8532b --- /dev/null +++ b/release/scripts/X11/plists/i386/PC98-Servers/X9WSN.tgz.plist @@ -0,0 +1 @@ +bin/XF98_WSNA diff --git a/release/scripts/X11/plists/i386/Servers/X3DL.tgz.plist b/release/scripts/X11/plists/i386/Servers/X3DL.tgz.plist new file mode 100644 index 000000000000..95bc0594baf9 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/X3DL.tgz.plist @@ -0,0 +1 @@ +bin/XF86_3DLabs diff --git a/release/scripts/X11/plists/i386/Servers/X8514.tgz.plist b/release/scripts/X11/plists/i386/Servers/X8514.tgz.plist new file mode 100644 index 000000000000..66f089e22696 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/X8514.tgz.plist @@ -0,0 +1 @@ +bin/XF86_8514 diff --git a/release/scripts/X11/plists/i386/Servers/XAGX.tgz.plist b/release/scripts/X11/plists/i386/Servers/XAGX.tgz.plist new file mode 100644 index 000000000000..6f41acb860f5 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XAGX.tgz.plist @@ -0,0 +1 @@ +bin/XF86_AGX diff --git a/release/scripts/X11/plists/i386/Servers/XI128.tgz.plist b/release/scripts/X11/plists/i386/Servers/XI128.tgz.plist new file mode 100644 index 000000000000..2a8ba145b103 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XI128.tgz.plist @@ -0,0 +1 @@ +bin/XF86_I128 diff --git a/release/scripts/X11/plists/i386/Servers/XMa32.tgz.plist b/release/scripts/X11/plists/i386/Servers/XMa32.tgz.plist new file mode 100644 index 000000000000..12323fb0d324 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XMa32.tgz.plist @@ -0,0 +1 @@ +bin/XF86_Mach32 diff --git a/release/scripts/X11/plists/i386/Servers/XMa64.tgz.plist b/release/scripts/X11/plists/i386/Servers/XMa64.tgz.plist new file mode 100644 index 000000000000..7f75015338a7 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XMa64.tgz.plist @@ -0,0 +1 @@ +bin/XF86_Mach64 diff --git a/release/scripts/X11/plists/i386/Servers/XMa8.tgz.plist b/release/scripts/X11/plists/i386/Servers/XMa8.tgz.plist new file mode 100644 index 000000000000..6a6a6f443750 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XMa8.tgz.plist @@ -0,0 +1 @@ +bin/XF86_Mach8 diff --git a/release/scripts/X11/plists/i386/Servers/XMono.tgz.plist b/release/scripts/X11/plists/i386/Servers/XMono.tgz.plist new file mode 100644 index 000000000000..06ef98d26369 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XMono.tgz.plist @@ -0,0 +1 @@ +bin/XF86_Mono diff --git a/release/scripts/X11/plists/i386/Servers/XP9K.tgz.plist b/release/scripts/X11/plists/i386/Servers/XP9K.tgz.plist new file mode 100644 index 000000000000..be9adab5856f --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XP9K.tgz.plist @@ -0,0 +1 @@ +bin/XF86_P9000 diff --git a/release/scripts/X11/plists/i386/Servers/XS3.tgz.plist b/release/scripts/X11/plists/i386/Servers/XS3.tgz.plist new file mode 100644 index 000000000000..2ff889fc6a13 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XS3.tgz.plist @@ -0,0 +1 @@ +bin/XF86_S3 diff --git a/release/scripts/X11/plists/i386/Servers/XS3V.tgz.plist b/release/scripts/X11/plists/i386/Servers/XS3V.tgz.plist new file mode 100644 index 000000000000..8a7161906f01 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XS3V.tgz.plist @@ -0,0 +1 @@ +bin/XF86_S3V diff --git a/release/scripts/X11/plists/i386/Servers/XSVGA.tgz.plist b/release/scripts/X11/plists/i386/Servers/XSVGA.tgz.plist new file mode 100644 index 000000000000..bf3b71150cc7 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XSVGA.tgz.plist @@ -0,0 +1 @@ +bin/XF86_SVGA diff --git a/release/scripts/X11/plists/i386/Servers/XVG16.tgz.plist b/release/scripts/X11/plists/i386/Servers/XVG16.tgz.plist new file mode 100644 index 000000000000..7d2e6163f603 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XVG16.tgz.plist @@ -0,0 +1 @@ +bin/XF86_VGA16 diff --git a/release/scripts/X11/plists/i386/Servers/XW32.tgz.plist b/release/scripts/X11/plists/i386/Servers/XW32.tgz.plist new file mode 100644 index 000000000000..4b46da8a1556 --- /dev/null +++ b/release/scripts/X11/plists/i386/Servers/XW32.tgz.plist @@ -0,0 +1 @@ +bin/XF86_W32 diff --git a/release/scripts/X11/plists/i386/X9set.tgz.plist b/release/scripts/X11/plists/i386/X9set.tgz.plist new file mode 100644 index 000000000000..fe5bb0d0b720 --- /dev/null +++ b/release/scripts/X11/plists/i386/X9set.tgz.plist @@ -0,0 +1,76 @@ +bin/XF98Setup +bin/xmseconfig +lib/X11/XF86Setup/ +lib/X11/XF86Setup/phase1.tcl +lib/X11/XF86Setup/phase2.tcl +lib/X11/XF86Setup/phase3.tcl +lib/X11/XF86Setup/phase4.tcl +lib/X11/XF86Setup/phase5.tcl +lib/X11/XF86Setup/setuplib.tcl +lib/X11/XF86Setup/srvflags.tcl +lib/X11/XF86Setup/carddata.tcl +lib/X11/XF86Setup/card.tcl +lib/X11/XF86Setup/done.tcl +lib/X11/XF86Setup/filelist98.tcl +lib/X11/XF86Setup/keyboard.tcl +lib/X11/XF86Setup/mseproto98.tcl +lib/X11/XF86Setup/mondata.tcl +lib/X11/XF86Setup/monitor.tcl +lib/X11/XF86Setup/modeselect.tcl +lib/X11/XF86Setup/mouse.tcl +lib/X11/XF86Setup/LICENSE +lib/X11/XF86Setup/tcllib/ +lib/X11/XF86Setup/tcllib/button.tcl +lib/X11/XF86Setup/tcllib/combobox.tcl +lib/X11/XF86Setup/tcllib/misc.tcl +lib/X11/XF86Setup/tcllib/downarrow.xbm +lib/X11/XF86Setup/tcllib/dialog.tcl +lib/X11/XF86Setup/tcllib/entry.tcl +lib/X11/XF86Setup/tcllib/focus.tcl +lib/X11/XF86Setup/tcllib/init.tcl +lib/X11/XF86Setup/tcllib/listbox.tcl +lib/X11/XF86Setup/tcllib/menu.tcl +lib/X11/XF86Setup/tcllib/optionMenu.tcl +lib/X11/XF86Setup/tcllib/palette.tcl +lib/X11/XF86Setup/tcllib/scale.tcl +lib/X11/XF86Setup/tcllib/scrollbar.tcl +lib/X11/XF86Setup/tcllib/tclIndex +lib/X11/XF86Setup/tcllib/tearoff.tcl +lib/X11/XF86Setup/tcllib/text.tcl +lib/X11/XF86Setup/tcllib/tk.tcl +lib/X11/XF86Setup/tcllib/tkerror.tcl +lib/X11/XF86Setup/tcllib/uparrow.xbm +lib/X11/XF86Setup/tcllib/license.terms +lib/X11/XF86Setup/pics/ +lib/X11/XF86Setup/pics/vidcard.xbm +lib/X11/XF86Setup/pics/vidcard.msk +lib/X11/XF86Setup/pics/XFree86.xbm +lib/X11/XF86Setup/pics/XFree86.msk +lib/X11/XF86Setup/scripts/ +lib/X11/XF86Setup/scripts/mseconfig.tcl +lib/X11/XF86Setup/texts/ +lib/X11/XF86Setup/texts/local_text.tcl +lib/X11/XF86Setup/texts/generic/ +lib/X11/XF86Setup/texts/generic/messages.tcl +lib/X11/XF86Setup/texts/generic/message_proc.tcl +lib/X11/XF86Setup/texts/generic/help_card.tcl +lib/X11/XF86Setup/texts/generic/help_done.tcl +lib/X11/XF86Setup/texts/generic/help_keyboard.tcl +lib/X11/XF86Setup/texts/generic/help_monitor.tcl +lib/X11/XF86Setup/texts/generic/help_mouse.tcl +lib/X11/XF86Setup/texts/generic/help_other.tcl +lib/X11/XF86Setup/texts/generic/help_intro.tcl +lib/X11/XF86Setup/texts/generic/help_modeselect.tcl +lib/X11/XF86Setup/texts/ja/ +lib/X11/XF86Setup/texts/ja/messages.tcl +lib/X11/XF86Setup/texts/ja/message_proc.tcl +lib/X11/XF86Setup/texts/ja/help_card.tcl +lib/X11/XF86Setup/texts/ja/help_done.tcl +lib/X11/XF86Setup/texts/ja/help_keyboard.tcl +lib/X11/XF86Setup/texts/ja/help_monitor.tcl +lib/X11/XF86Setup/texts/ja/help_mouse.tcl +lib/X11/XF86Setup/texts/ja/help_other.tcl +lib/X11/XF86Setup/texts/ja/help_intro.tcl +lib/X11/XF86Setup/texts/ja/help_modeselect.tcl +man/man1/XF86Setup.1.gz +man/man1/xmseconfig.1.gz diff --git a/release/scripts/X11/plists/i386/Xbin.tgz.plist b/release/scripts/X11/plists/i386/Xbin.tgz.plist new file mode 100644 index 000000000000..26c5a6e8338b --- /dev/null +++ b/release/scripts/X11/plists/i386/Xbin.tgz.plist @@ -0,0 +1,175 @@ +bin/ +bin/imake +bin/makedepend +bin/lndir +bin/xmkmf +bin/mkdirhier +bin/gccmakedep +bin/mergelib +bin/makeg +bin/appres +bin/bdftopcf +bin/bitmap +bin/bmtoa +bin/atobm +bin/beforelight +bin/editres +bin/fsinfo +bin/fslsfonts +bin/fstobdf +bin/iceauth +bin/mkfontdir +bin/oclock +bin/proxymngr +bin/showrgb +bin/rstartd +bin/rstart +bin/smproxy +bin/twm +bin/x11perf +bin/x11perfcomp +bin/Xmark +bin/xauth +bin/xclipboard +bin/xcutsel +bin/xclock +bin/xcmsdb +bin/xconsole +bin/xdm +bin/sessreg +bin/xdpyinfo +bin/dga +bin/xfd +bin/xfindproxy +bin/xfwp +bin/xhost +bin/xieperf +bin/xinit +bin/startx +bin/setxkbmap +bin/xkbcomp +bin/xkbevd +bin/xkbprint +bin/xkbvleds +bin/xkbwatch +bin/xkbbell +bin/xkill +bin/xlogo +bin/xlsatoms +bin/xlsclients +bin/xlsfonts +bin/xmag +bin/xmh +bin/xmodmap +bin/xprop +bin/xrdb +bin/xrefresh +bin/xrx +bin/xset +bin/xsetroot +bin/xsm +bin/xstdcmap +bin/xsetmode +bin/xsetpointer +bin/xterm +bin/resize +bin/xvidtune +bin/xwd +bin/xwininfo +bin/xwud +bin/Xwrapper +bin/reconfig +bin/xf86config +bin/kbd_mode +bin/scanpci +bin/joycal +bin/SuperProbe +bin/xf98config +bin/lbxproxy +bin/xon +bin/ico +bin/listres +bin/showfont +bin/viewres +bin/xbiff +bin/xcalc +bin/xditview +bin/xedit +bin/xev +bin/xeyes +bin/xfontsel +bin/xgc +bin/xload +bin/xman +bin/xmessage +lib/libICE.so.6 +lib/libICE.so +lib/libPEX5.so.6 +lib/libPEX5.so +lib/libSM.so.6 +lib/libSM.so +lib/libX11.so.6 +lib/libX11.so +lib/libXIE.so.6 +lib/libXIE.so +lib/libXThrStub.so.6 +lib/libXThrStub.so +lib/libXaw.so.6 +lib/libXaw.so +lib/libXext.so.6 +lib/libXext.so +lib/libXi.so.6 +lib/libXi.so +lib/libXmu.so.6 +lib/libXmu.so +lib/libXp.so.6 +lib/libXp.so +lib/libXt.so.6 +lib/libXt.so +lib/libXtst.so.6 +lib/libXtst.so +lib/liboldX.so.6 +lib/liboldX.so +lib/modules/ +lib/modules/xie.so +lib/modules/pex5.so +lib/modules/xf86Jstk.so +lib/modules/xf86Wacom.so +lib/modules/xf86Elo.so +lib/modules/xf86Dyna.so +lib/modules/xf86MuTouch.so +lib/modules/xf86Summa.so +lib/modules/xf86AceCad.so +lib/modules/xf86Dial.so +lib/modules/xf86Calcomp.so +lib/X11/app-defaults/ +lib/X11/app-defaults/Bitmap +lib/X11/app-defaults/Bitmap-color +lib/X11/app-defaults/Beforelight +lib/X11/app-defaults/Editres +lib/X11/app-defaults/Editres-color +lib/X11/app-defaults/Clock-color +lib/X11/app-defaults/XClipboard +lib/X11/app-defaults/XClock +lib/X11/app-defaults/XConsole +lib/X11/app-defaults/Chooser +lib/X11/app-defaults/Xfd +lib/X11/app-defaults/XLogo +lib/X11/app-defaults/XLogo-color +lib/X11/app-defaults/Xmag +lib/X11/app-defaults/Xmh +lib/X11/app-defaults/XSm +lib/X11/app-defaults/XTerm +lib/X11/app-defaults/XTerm-color +lib/X11/app-defaults/Xvidtune +lib/X11/app-defaults/Viewres +lib/X11/app-defaults/XCalc +lib/X11/app-defaults/XCalc-color +lib/X11/app-defaults/Xditview +lib/X11/app-defaults/Xditview-chrtr +lib/X11/app-defaults/Xedit +lib/X11/app-defaults/XFontSel +lib/X11/app-defaults/Xgc +lib/X11/app-defaults/XLoad +lib/X11/app-defaults/Xman +lib/X11/app-defaults/Xmessage diff --git a/release/scripts/X11/plists/i386/Xcfg.tgz.plist b/release/scripts/X11/plists/i386/Xcfg.tgz.plist new file mode 100644 index 000000000000..1a2d960ee64a --- /dev/null +++ b/release/scripts/X11/plists/i386/Xcfg.tgz.plist @@ -0,0 +1,11 @@ +lib/X11/xdm/ +lib/X11/xdm/xdm-config +lib/X11/xdm/Xresources +lib/X11/xdm/Xservers +lib/X11/xdm/Xaccess +lib/X11/xdm/Xsession +lib/X11/xdm/GiveConsole +lib/X11/xdm/TakeConsole +lib/X11/xdm/Xsetup_0 +lib/X11/xinit/xinitrc +lib/X11/proxymngr/pmconfig diff --git a/release/scripts/X11/plists/i386/Xdoc.tgz.plist b/release/scripts/X11/plists/i386/Xdoc.tgz.plist new file mode 100644 index 000000000000..a7bdbdbb825f --- /dev/null +++ b/release/scripts/X11/plists/i386/Xdoc.tgz.plist @@ -0,0 +1,63 @@ +lib/X11/doc/ +lib/X11/doc/COPYRIGHT +lib/X11/doc/README +lib/X11/doc/README.Config +lib/X11/doc/BUILD +lib/X11/doc/RELNOTES +lib/X11/doc/README.Linux +lib/X11/doc/README.ati +lib/X11/doc/README.trident +lib/X11/doc/README.tseng +lib/X11/doc/README.WstDig +lib/X11/doc/README.DECtga +lib/X11/doc/README.apm +lib/X11/doc/README.rendition +lib/X11/doc/README.epson +lib/X11/doc/README.chips +lib/X11/doc/README.cirrus +lib/X11/doc/README.Video7 +lib/X11/doc/README.P9000 +lib/X11/doc/README.agx +lib/X11/doc/README.S3 +lib/X11/doc/README.S3V +lib/X11/doc/README.SiS +lib/X11/doc/README.W32 +lib/X11/doc/README.Oak +lib/X11/doc/README.I128 +lib/X11/doc/README.Mach32 +lib/X11/doc/README.Mach64 +lib/X11/doc/README.ark +lib/X11/doc/README.MGA +lib/X11/doc/README.NVIDIA +lib/X11/doc/README.mouse +lib/X11/doc/README.neo +lib/X11/doc/README.3DLabs +lib/X11/doc/README.cyrix +lib/X11/doc/README.i740 +lib/X11/doc/README.r128 +lib/X11/doc/VideoModes.doc +lib/X11/doc/QuickStart.doc +lib/X11/doc/README.clkprog +lib/X11/doc/xinput +lib/X11/doc/ServersOnly +lib/X11/doc/README.DGA +lib/X11/doc/AccelCards +lib/X11/doc/Monitors +lib/X11/doc/Devices +lib/X11/doc/README.LinkKit +lib/X11/doc/VGADriver.Doc +lib/X11/doc/VideoBoard98 +lib/X11/doc/README.FreeBSD +lib/X11/doc/README.NetBSD +lib/X11/doc/README.OpenBSD +lib/X11/doc/README.fbdev +lib/X11/doc/README.DGux +lib/X11/doc/README.LynxOS +lib/X11/doc/README.SCO +lib/X11/doc/README.isc +lib/X11/doc/README.OS2 +lib/X11/doc/OS2.Notes +lib/X11/doc/README.SOLX86 +lib/X11/doc/README.SVR4 +lib/X11/doc/README.i810 +lib/X11/doc/DocIndex diff --git a/release/scripts/X11/plists/i386/Xf100.tgz.plist b/release/scripts/X11/plists/i386/Xf100.tgz.plist new file mode 100644 index 000000000000..8b706fd1834c --- /dev/null +++ b/release/scripts/X11/plists/i386/Xf100.tgz.plist @@ -0,0 +1,201 @@ +lib/X11/fonts/100dpi/ +lib/X11/fonts/100dpi/courB08.pcf.gz +lib/X11/fonts/100dpi/courB10.pcf.gz +lib/X11/fonts/100dpi/courB12.pcf.gz +lib/X11/fonts/100dpi/courB14.pcf.gz +lib/X11/fonts/100dpi/courB18.pcf.gz +lib/X11/fonts/100dpi/courB24.pcf.gz +lib/X11/fonts/100dpi/courBO08.pcf.gz +lib/X11/fonts/100dpi/courBO10.pcf.gz +lib/X11/fonts/100dpi/courBO12.pcf.gz +lib/X11/fonts/100dpi/courBO14.pcf.gz +lib/X11/fonts/100dpi/courBO18.pcf.gz +lib/X11/fonts/100dpi/courBO24.pcf.gz +lib/X11/fonts/100dpi/courO08.pcf.gz +lib/X11/fonts/100dpi/courO10.pcf.gz +lib/X11/fonts/100dpi/courO12.pcf.gz +lib/X11/fonts/100dpi/courO14.pcf.gz +lib/X11/fonts/100dpi/courO18.pcf.gz +lib/X11/fonts/100dpi/courO24.pcf.gz +lib/X11/fonts/100dpi/courR08.pcf.gz +lib/X11/fonts/100dpi/courR10.pcf.gz +lib/X11/fonts/100dpi/courR12.pcf.gz +lib/X11/fonts/100dpi/courR14.pcf.gz +lib/X11/fonts/100dpi/courR18.pcf.gz +lib/X11/fonts/100dpi/courR24.pcf.gz +lib/X11/fonts/100dpi/helvB08.pcf.gz +lib/X11/fonts/100dpi/helvB10.pcf.gz +lib/X11/fonts/100dpi/helvB12.pcf.gz +lib/X11/fonts/100dpi/helvB14.pcf.gz +lib/X11/fonts/100dpi/helvB18.pcf.gz +lib/X11/fonts/100dpi/helvB24.pcf.gz +lib/X11/fonts/100dpi/helvBO08.pcf.gz +lib/X11/fonts/100dpi/helvBO10.pcf.gz +lib/X11/fonts/100dpi/helvBO12.pcf.gz +lib/X11/fonts/100dpi/helvBO14.pcf.gz +lib/X11/fonts/100dpi/helvBO18.pcf.gz +lib/X11/fonts/100dpi/helvBO24.pcf.gz +lib/X11/fonts/100dpi/helvO08.pcf.gz +lib/X11/fonts/100dpi/helvO10.pcf.gz +lib/X11/fonts/100dpi/helvO12.pcf.gz +lib/X11/fonts/100dpi/helvO14.pcf.gz +lib/X11/fonts/100dpi/helvO18.pcf.gz +lib/X11/fonts/100dpi/helvO24.pcf.gz +lib/X11/fonts/100dpi/helvR08.pcf.gz +lib/X11/fonts/100dpi/helvR10.pcf.gz +lib/X11/fonts/100dpi/helvR12.pcf.gz +lib/X11/fonts/100dpi/helvR14.pcf.gz +lib/X11/fonts/100dpi/helvR18.pcf.gz +lib/X11/fonts/100dpi/helvR24.pcf.gz +lib/X11/fonts/100dpi/ncenB08.pcf.gz +lib/X11/fonts/100dpi/ncenB10.pcf.gz +lib/X11/fonts/100dpi/ncenB12.pcf.gz +lib/X11/fonts/100dpi/ncenB14.pcf.gz +lib/X11/fonts/100dpi/ncenB18.pcf.gz +lib/X11/fonts/100dpi/ncenB24.pcf.gz +lib/X11/fonts/100dpi/ncenBI08.pcf.gz +lib/X11/fonts/100dpi/ncenBI10.pcf.gz +lib/X11/fonts/100dpi/ncenBI12.pcf.gz +lib/X11/fonts/100dpi/ncenBI14.pcf.gz +lib/X11/fonts/100dpi/ncenBI18.pcf.gz +lib/X11/fonts/100dpi/ncenBI24.pcf.gz +lib/X11/fonts/100dpi/ncenI08.pcf.gz +lib/X11/fonts/100dpi/ncenI10.pcf.gz +lib/X11/fonts/100dpi/ncenI12.pcf.gz +lib/X11/fonts/100dpi/ncenI14.pcf.gz +lib/X11/fonts/100dpi/ncenI18.pcf.gz +lib/X11/fonts/100dpi/ncenI24.pcf.gz +lib/X11/fonts/100dpi/ncenR08.pcf.gz +lib/X11/fonts/100dpi/ncenR10.pcf.gz +lib/X11/fonts/100dpi/ncenR12.pcf.gz +lib/X11/fonts/100dpi/ncenR14.pcf.gz +lib/X11/fonts/100dpi/ncenR18.pcf.gz +lib/X11/fonts/100dpi/ncenR24.pcf.gz +lib/X11/fonts/100dpi/symb08.pcf.gz +lib/X11/fonts/100dpi/symb10.pcf.gz +lib/X11/fonts/100dpi/symb12.pcf.gz +lib/X11/fonts/100dpi/symb14.pcf.gz +lib/X11/fonts/100dpi/symb18.pcf.gz +lib/X11/fonts/100dpi/symb24.pcf.gz +lib/X11/fonts/100dpi/timB08.pcf.gz +lib/X11/fonts/100dpi/timB10.pcf.gz +lib/X11/fonts/100dpi/timB12.pcf.gz +lib/X11/fonts/100dpi/timB14.pcf.gz +lib/X11/fonts/100dpi/timB18.pcf.gz +lib/X11/fonts/100dpi/timB24.pcf.gz +lib/X11/fonts/100dpi/timBI08.pcf.gz +lib/X11/fonts/100dpi/timBI10.pcf.gz +lib/X11/fonts/100dpi/timBI12.pcf.gz +lib/X11/fonts/100dpi/timBI14.pcf.gz +lib/X11/fonts/100dpi/timBI18.pcf.gz +lib/X11/fonts/100dpi/timBI24.pcf.gz +lib/X11/fonts/100dpi/timI08.pcf.gz +lib/X11/fonts/100dpi/timI10.pcf.gz +lib/X11/fonts/100dpi/timI12.pcf.gz +lib/X11/fonts/100dpi/timI14.pcf.gz +lib/X11/fonts/100dpi/timI18.pcf.gz +lib/X11/fonts/100dpi/timI24.pcf.gz +lib/X11/fonts/100dpi/timR08.pcf.gz +lib/X11/fonts/100dpi/timR10.pcf.gz +lib/X11/fonts/100dpi/timR12.pcf.gz +lib/X11/fonts/100dpi/timR14.pcf.gz +lib/X11/fonts/100dpi/timR18.pcf.gz +lib/X11/fonts/100dpi/timR24.pcf.gz +lib/X11/fonts/100dpi/fonts.dir +lib/X11/fonts/100dpi/charI08.pcf.gz +lib/X11/fonts/100dpi/charI10.pcf.gz +lib/X11/fonts/100dpi/charI12.pcf.gz +lib/X11/fonts/100dpi/charI14.pcf.gz +lib/X11/fonts/100dpi/charI18.pcf.gz +lib/X11/fonts/100dpi/charI24.pcf.gz +lib/X11/fonts/100dpi/charR08.pcf.gz +lib/X11/fonts/100dpi/charR10.pcf.gz +lib/X11/fonts/100dpi/charR12.pcf.gz +lib/X11/fonts/100dpi/charR14.pcf.gz +lib/X11/fonts/100dpi/charR18.pcf.gz +lib/X11/fonts/100dpi/charR24.pcf.gz +lib/X11/fonts/100dpi/tech14.pcf.gz +lib/X11/fonts/100dpi/techB14.pcf.gz +lib/X11/fonts/100dpi/term14.pcf.gz +lib/X11/fonts/100dpi/termB14.pcf.gz +lib/X11/fonts/100dpi/luBIS08.pcf.gz +lib/X11/fonts/100dpi/luBIS10.pcf.gz +lib/X11/fonts/100dpi/luBIS12.pcf.gz +lib/X11/fonts/100dpi/luBIS14.pcf.gz +lib/X11/fonts/100dpi/luBIS18.pcf.gz +lib/X11/fonts/100dpi/luBIS24.pcf.gz +lib/X11/fonts/100dpi/luBS08.pcf.gz +lib/X11/fonts/100dpi/luBS10.pcf.gz +lib/X11/fonts/100dpi/luBS12.pcf.gz +lib/X11/fonts/100dpi/luBS14.pcf.gz +lib/X11/fonts/100dpi/luBS18.pcf.gz +lib/X11/fonts/100dpi/luBS24.pcf.gz +lib/X11/fonts/100dpi/luIS08.pcf.gz +lib/X11/fonts/100dpi/luIS10.pcf.gz +lib/X11/fonts/100dpi/luIS12.pcf.gz +lib/X11/fonts/100dpi/luIS14.pcf.gz +lib/X11/fonts/100dpi/luIS18.pcf.gz +lib/X11/fonts/100dpi/luIS24.pcf.gz +lib/X11/fonts/100dpi/luRS08.pcf.gz +lib/X11/fonts/100dpi/luRS10.pcf.gz +lib/X11/fonts/100dpi/luRS12.pcf.gz +lib/X11/fonts/100dpi/luRS14.pcf.gz +lib/X11/fonts/100dpi/luRS18.pcf.gz +lib/X11/fonts/100dpi/luRS24.pcf.gz +lib/X11/fonts/100dpi/lubB08.pcf.gz +lib/X11/fonts/100dpi/lubB10.pcf.gz +lib/X11/fonts/100dpi/lubB12.pcf.gz +lib/X11/fonts/100dpi/lubB14.pcf.gz +lib/X11/fonts/100dpi/lubB18.pcf.gz +lib/X11/fonts/100dpi/lubB24.pcf.gz +lib/X11/fonts/100dpi/lubBI08.pcf.gz +lib/X11/fonts/100dpi/lubBI10.pcf.gz +lib/X11/fonts/100dpi/lubBI12.pcf.gz +lib/X11/fonts/100dpi/lubBI14.pcf.gz +lib/X11/fonts/100dpi/lubBI18.pcf.gz +lib/X11/fonts/100dpi/lubBI24.pcf.gz +lib/X11/fonts/100dpi/lubI08.pcf.gz +lib/X11/fonts/100dpi/lubI10.pcf.gz +lib/X11/fonts/100dpi/lubI12.pcf.gz +lib/X11/fonts/100dpi/lubI14.pcf.gz +lib/X11/fonts/100dpi/lubI18.pcf.gz +lib/X11/fonts/100dpi/lubI24.pcf.gz +lib/X11/fonts/100dpi/lubR08.pcf.gz +lib/X11/fonts/100dpi/lubR10.pcf.gz +lib/X11/fonts/100dpi/lubR12.pcf.gz +lib/X11/fonts/100dpi/lubR14.pcf.gz +lib/X11/fonts/100dpi/lubR18.pcf.gz +lib/X11/fonts/100dpi/lubR24.pcf.gz +lib/X11/fonts/100dpi/lutBS08.pcf.gz +lib/X11/fonts/100dpi/lutBS10.pcf.gz +lib/X11/fonts/100dpi/fonts.alias +lib/X11/fonts/100dpi/lutBS12.pcf.gz +lib/X11/fonts/100dpi/lutBS14.pcf.gz +lib/X11/fonts/100dpi/lutBS18.pcf.gz +lib/X11/fonts/100dpi/lutBS24.pcf.gz +lib/X11/fonts/100dpi/lutRS08.pcf.gz +lib/X11/fonts/100dpi/lutRS10.pcf.gz +lib/X11/fonts/100dpi/lutRS12.pcf.gz +lib/X11/fonts/100dpi/lutRS14.pcf.gz +lib/X11/fonts/100dpi/lutRS18.pcf.gz +lib/X11/fonts/100dpi/lutRS24.pcf.gz +lib/X11/fonts/100dpi/luBIS19.pcf.gz +lib/X11/fonts/100dpi/luBS19.pcf.gz +lib/X11/fonts/100dpi/luIS19.pcf.gz +lib/X11/fonts/100dpi/luRS19.pcf.gz +lib/X11/fonts/100dpi/lubB19.pcf.gz +lib/X11/fonts/100dpi/lubBI19.pcf.gz +lib/X11/fonts/100dpi/lubI19.pcf.gz +lib/X11/fonts/100dpi/lubR19.pcf.gz +lib/X11/fonts/100dpi/lutBS19.pcf.gz +lib/X11/fonts/100dpi/lutRS19.pcf.gz +lib/X11/fonts/100dpi/UTI___14.pcf.gz +lib/X11/fonts/100dpi/UTI___12.pcf.gz +lib/X11/fonts/100dpi/UTI___24.pcf.gz +lib/X11/fonts/100dpi/UTI___10.pcf.gz +lib/X11/fonts/100dpi/UTI___18.pcf.gz +lib/X11/fonts/100dpi/UTRG__14.pcf.gz +lib/X11/fonts/100dpi/UTRG__12.pcf.gz +lib/X11/fonts/100dpi/UTRG__24.pcf.gz +lib/X11/fonts/100dpi/UTRG__10.pcf.gz +lib/X11/fonts/100dpi/UTRG__18.pcf.gz diff --git a/release/scripts/X11/plists/i386/Xfcyr.tgz.plist b/release/scripts/X11/plists/i386/Xfcyr.tgz.plist new file mode 100644 index 000000000000..d562c6b6eb9b --- /dev/null +++ b/release/scripts/X11/plists/i386/Xfcyr.tgz.plist @@ -0,0 +1,71 @@ +lib/X11/fonts/cyrillic/ +lib/X11/fonts/cyrillic/crox1c.pcf.gz +lib/X11/fonts/cyrillic/crox1cb.pcf.gz +lib/X11/fonts/cyrillic/crox1cbo.pcf.gz +lib/X11/fonts/cyrillic/crox1co.pcf.gz +lib/X11/fonts/cyrillic/crox1h.pcf.gz +lib/X11/fonts/cyrillic/crox1hb.pcf.gz +lib/X11/fonts/cyrillic/crox1hbo.pcf.gz +lib/X11/fonts/cyrillic/crox1ho.pcf.gz +lib/X11/fonts/cyrillic/crox1t.pcf.gz +lib/X11/fonts/cyrillic/crox1tb.pcf.gz +lib/X11/fonts/cyrillic/crox1tbo.pcf.gz +lib/X11/fonts/cyrillic/crox1to.pcf.gz +lib/X11/fonts/cyrillic/crox2c.pcf.gz +lib/X11/fonts/cyrillic/crox2cb.pcf.gz +lib/X11/fonts/cyrillic/crox2cbo.pcf.gz +lib/X11/fonts/cyrillic/crox2co.pcf.gz +lib/X11/fonts/cyrillic/crox2h.pcf.gz +lib/X11/fonts/cyrillic/crox2hb.pcf.gz +lib/X11/fonts/cyrillic/crox2hbo.pcf.gz +lib/X11/fonts/cyrillic/crox2ho.pcf.gz +lib/X11/fonts/cyrillic/crox2t.pcf.gz +lib/X11/fonts/cyrillic/crox2tb.pcf.gz +lib/X11/fonts/cyrillic/crox2tbo.pcf.gz +lib/X11/fonts/cyrillic/crox2to.pcf.gz +lib/X11/fonts/cyrillic/crox3c.pcf.gz +lib/X11/fonts/cyrillic/crox3cb.pcf.gz +lib/X11/fonts/cyrillic/crox3cbo.pcf.gz +lib/X11/fonts/cyrillic/crox3co.pcf.gz +lib/X11/fonts/cyrillic/crox3h.pcf.gz +lib/X11/fonts/cyrillic/crox3hb.pcf.gz +lib/X11/fonts/cyrillic/crox3hbo.pcf.gz +lib/X11/fonts/cyrillic/crox3ho.pcf.gz +lib/X11/fonts/cyrillic/crox3t.pcf.gz +lib/X11/fonts/cyrillic/crox3tb.pcf.gz +lib/X11/fonts/cyrillic/crox3tbo.pcf.gz +lib/X11/fonts/cyrillic/crox3to.pcf.gz +lib/X11/fonts/cyrillic/crox4h.pcf.gz +lib/X11/fonts/cyrillic/crox4hb.pcf.gz +lib/X11/fonts/cyrillic/crox4hbo.pcf.gz +lib/X11/fonts/cyrillic/crox4ho.pcf.gz +lib/X11/fonts/cyrillic/crox4t.pcf.gz +lib/X11/fonts/cyrillic/crox4tb.pcf.gz +lib/X11/fonts/cyrillic/crox4tbo.pcf.gz +lib/X11/fonts/cyrillic/crox4to.pcf.gz +lib/X11/fonts/cyrillic/crox5h.pcf.gz +lib/X11/fonts/cyrillic/crox5hb.pcf.gz +lib/X11/fonts/cyrillic/crox5hbo.pcf.gz +lib/X11/fonts/cyrillic/crox5ho.pcf.gz +lib/X11/fonts/cyrillic/crox5t.pcf.gz +lib/X11/fonts/cyrillic/crox5tb.pcf.gz +lib/X11/fonts/cyrillic/crox5tbo.pcf.gz +lib/X11/fonts/cyrillic/crox5to.pcf.gz +lib/X11/fonts/cyrillic/crox6h.pcf.gz +lib/X11/fonts/cyrillic/crox6hb.pcf.gz +lib/X11/fonts/cyrillic/crox6hbo.pcf.gz +lib/X11/fonts/cyrillic/crox6ho.pcf.gz +lib/X11/fonts/cyrillic/crox6t.pcf.gz +lib/X11/fonts/cyrillic/crox6tb.pcf.gz +lib/X11/fonts/cyrillic/crox6tbo.pcf.gz +lib/X11/fonts/cyrillic/crox6to.pcf.gz +lib/X11/fonts/cyrillic/koi10x16b.pcf.gz +lib/X11/fonts/cyrillic/koi10x20.pcf.gz +lib/X11/fonts/cyrillic/koi12x24.pcf.gz +lib/X11/fonts/cyrillic/koi6x10.pcf.gz +lib/X11/fonts/cyrillic/koi6x13.pcf.gz +lib/X11/fonts/cyrillic/koi8x13.pcf.gz +lib/X11/fonts/cyrillic/koi9x15.pcf.gz +lib/X11/fonts/cyrillic/koinil2.pcf.gz +lib/X11/fonts/cyrillic/fonts.dir +lib/X11/fonts/cyrillic/fonts.alias diff --git a/release/scripts/X11/plists/i386/Xfnon.tgz.plist b/release/scripts/X11/plists/i386/Xfnon.tgz.plist new file mode 100644 index 000000000000..7da919b6ea13 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xfnon.tgz.plist @@ -0,0 +1,11 @@ +lib/X11/fonts/misc/gb16fs.pcf.gz +lib/X11/fonts/misc/gb16st.pcf.gz +lib/X11/fonts/misc/gb24st.pcf.gz +lib/X11/fonts/misc/hanglg16.pcf.gz +lib/X11/fonts/misc/hanglm16.pcf.gz +lib/X11/fonts/misc/hanglm24.pcf.gz +lib/X11/fonts/misc/heb6x13.pcf.gz +lib/X11/fonts/misc/heb8x13.pcf.gz +lib/X11/fonts/misc/jiskan16.pcf.gz +lib/X11/fonts/misc/jiskan24.pcf.gz +lib/X11/fonts/misc/k14.pcf.gz diff --git a/release/scripts/X11/plists/i386/Xfnts.tgz.plist b/release/scripts/X11/plists/i386/Xfnts.tgz.plist new file mode 100644 index 000000000000..905dcda0b2a5 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xfnts.tgz.plist @@ -0,0 +1,270 @@ +lib/X11/fonts/75dpi/ +lib/X11/fonts/75dpi/courB08.pcf.gz +lib/X11/fonts/75dpi/courB10.pcf.gz +lib/X11/fonts/75dpi/courB12.pcf.gz +lib/X11/fonts/75dpi/courB14.pcf.gz +lib/X11/fonts/75dpi/courB18.pcf.gz +lib/X11/fonts/75dpi/courB24.pcf.gz +lib/X11/fonts/75dpi/courBO08.pcf.gz +lib/X11/fonts/75dpi/courBO10.pcf.gz +lib/X11/fonts/75dpi/courBO12.pcf.gz +lib/X11/fonts/75dpi/courBO14.pcf.gz +lib/X11/fonts/75dpi/courBO18.pcf.gz +lib/X11/fonts/75dpi/courBO24.pcf.gz +lib/X11/fonts/75dpi/courO08.pcf.gz +lib/X11/fonts/75dpi/courO10.pcf.gz +lib/X11/fonts/75dpi/courO12.pcf.gz +lib/X11/fonts/75dpi/courO14.pcf.gz +lib/X11/fonts/75dpi/courO18.pcf.gz +lib/X11/fonts/75dpi/courO24.pcf.gz +lib/X11/fonts/75dpi/courR08.pcf.gz +lib/X11/fonts/75dpi/courR10.pcf.gz +lib/X11/fonts/75dpi/courR12.pcf.gz +lib/X11/fonts/75dpi/courR14.pcf.gz +lib/X11/fonts/75dpi/courR18.pcf.gz +lib/X11/fonts/75dpi/courR24.pcf.gz +lib/X11/fonts/75dpi/helvB08.pcf.gz +lib/X11/fonts/75dpi/helvB10.pcf.gz +lib/X11/fonts/75dpi/helvB12.pcf.gz +lib/X11/fonts/75dpi/helvB14.pcf.gz +lib/X11/fonts/75dpi/helvB18.pcf.gz +lib/X11/fonts/75dpi/helvB24.pcf.gz +lib/X11/fonts/75dpi/helvBO08.pcf.gz +lib/X11/fonts/75dpi/helvBO10.pcf.gz +lib/X11/fonts/75dpi/helvBO12.pcf.gz +lib/X11/fonts/75dpi/helvBO14.pcf.gz +lib/X11/fonts/75dpi/helvBO18.pcf.gz +lib/X11/fonts/75dpi/helvBO24.pcf.gz +lib/X11/fonts/75dpi/helvO08.pcf.gz +lib/X11/fonts/75dpi/helvO10.pcf.gz +lib/X11/fonts/75dpi/helvO12.pcf.gz +lib/X11/fonts/75dpi/helvO14.pcf.gz +lib/X11/fonts/75dpi/helvO18.pcf.gz +lib/X11/fonts/75dpi/helvO24.pcf.gz +lib/X11/fonts/75dpi/helvR08.pcf.gz +lib/X11/fonts/75dpi/helvR10.pcf.gz +lib/X11/fonts/75dpi/helvR12.pcf.gz +lib/X11/fonts/75dpi/helvR14.pcf.gz +lib/X11/fonts/75dpi/helvR18.pcf.gz +lib/X11/fonts/75dpi/helvR24.pcf.gz +lib/X11/fonts/75dpi/ncenB08.pcf.gz +lib/X11/fonts/75dpi/ncenB10.pcf.gz +lib/X11/fonts/75dpi/ncenB12.pcf.gz +lib/X11/fonts/75dpi/ncenB14.pcf.gz +lib/X11/fonts/75dpi/ncenB18.pcf.gz +lib/X11/fonts/75dpi/ncenB24.pcf.gz +lib/X11/fonts/75dpi/ncenBI08.pcf.gz +lib/X11/fonts/75dpi/ncenBI10.pcf.gz +lib/X11/fonts/75dpi/ncenBI12.pcf.gz +lib/X11/fonts/75dpi/ncenBI14.pcf.gz +lib/X11/fonts/75dpi/ncenBI18.pcf.gz +lib/X11/fonts/75dpi/ncenBI24.pcf.gz +lib/X11/fonts/75dpi/ncenI08.pcf.gz +lib/X11/fonts/75dpi/ncenI10.pcf.gz +lib/X11/fonts/75dpi/ncenI12.pcf.gz +lib/X11/fonts/75dpi/ncenI14.pcf.gz +lib/X11/fonts/75dpi/ncenI18.pcf.gz +lib/X11/fonts/75dpi/ncenI24.pcf.gz +lib/X11/fonts/75dpi/ncenR08.pcf.gz +lib/X11/fonts/75dpi/ncenR10.pcf.gz +lib/X11/fonts/75dpi/ncenR12.pcf.gz +lib/X11/fonts/75dpi/ncenR14.pcf.gz +lib/X11/fonts/75dpi/ncenR18.pcf.gz +lib/X11/fonts/75dpi/ncenR24.pcf.gz +lib/X11/fonts/75dpi/symb08.pcf.gz +lib/X11/fonts/75dpi/symb10.pcf.gz +lib/X11/fonts/75dpi/symb12.pcf.gz +lib/X11/fonts/75dpi/symb14.pcf.gz +lib/X11/fonts/75dpi/symb18.pcf.gz +lib/X11/fonts/75dpi/symb24.pcf.gz +lib/X11/fonts/75dpi/timB08.pcf.gz +lib/X11/fonts/75dpi/timB10.pcf.gz +lib/X11/fonts/75dpi/timB12.pcf.gz +lib/X11/fonts/75dpi/timB14.pcf.gz +lib/X11/fonts/75dpi/timB18.pcf.gz +lib/X11/fonts/75dpi/timB24.pcf.gz +lib/X11/fonts/75dpi/timBI08.pcf.gz +lib/X11/fonts/75dpi/timBI10.pcf.gz +lib/X11/fonts/75dpi/timBI12.pcf.gz +lib/X11/fonts/75dpi/timBI14.pcf.gz +lib/X11/fonts/75dpi/timBI18.pcf.gz +lib/X11/fonts/75dpi/timBI24.pcf.gz +lib/X11/fonts/75dpi/timI08.pcf.gz +lib/X11/fonts/75dpi/timI10.pcf.gz +lib/X11/fonts/75dpi/timI12.pcf.gz +lib/X11/fonts/75dpi/timI14.pcf.gz +lib/X11/fonts/75dpi/timI18.pcf.gz +lib/X11/fonts/75dpi/timI24.pcf.gz +lib/X11/fonts/75dpi/timR08.pcf.gz +lib/X11/fonts/75dpi/timR10.pcf.gz +lib/X11/fonts/75dpi/timR12.pcf.gz +lib/X11/fonts/75dpi/timR14.pcf.gz +lib/X11/fonts/75dpi/timR18.pcf.gz +lib/X11/fonts/75dpi/timR24.pcf.gz +lib/X11/fonts/75dpi/fonts.dir +lib/X11/fonts/75dpi/charI08.pcf.gz +lib/X11/fonts/75dpi/charI10.pcf.gz +lib/X11/fonts/75dpi/charI12.pcf.gz +lib/X11/fonts/75dpi/charI14.pcf.gz +lib/X11/fonts/75dpi/charI18.pcf.gz +lib/X11/fonts/75dpi/charI24.pcf.gz +lib/X11/fonts/75dpi/charR08.pcf.gz +lib/X11/fonts/75dpi/charR10.pcf.gz +lib/X11/fonts/75dpi/charR12.pcf.gz +lib/X11/fonts/75dpi/charR14.pcf.gz +lib/X11/fonts/75dpi/charR18.pcf.gz +lib/X11/fonts/75dpi/charR24.pcf.gz +lib/X11/fonts/75dpi/tech14.pcf.gz +lib/X11/fonts/75dpi/techB14.pcf.gz +lib/X11/fonts/75dpi/term14.pcf.gz +lib/X11/fonts/75dpi/termB14.pcf.gz +lib/X11/fonts/75dpi/luBIS08.pcf.gz +lib/X11/fonts/75dpi/luBIS10.pcf.gz +lib/X11/fonts/75dpi/luBIS12.pcf.gz +lib/X11/fonts/75dpi/luBIS14.pcf.gz +lib/X11/fonts/75dpi/luBIS18.pcf.gz +lib/X11/fonts/75dpi/luBIS24.pcf.gz +lib/X11/fonts/75dpi/luBS08.pcf.gz +lib/X11/fonts/75dpi/luBS10.pcf.gz +lib/X11/fonts/75dpi/luBS12.pcf.gz +lib/X11/fonts/75dpi/luBS14.pcf.gz +lib/X11/fonts/75dpi/luBS18.pcf.gz +lib/X11/fonts/75dpi/luBS24.pcf.gz +lib/X11/fonts/75dpi/luIS08.pcf.gz +lib/X11/fonts/75dpi/luIS10.pcf.gz +lib/X11/fonts/75dpi/luIS12.pcf.gz +lib/X11/fonts/75dpi/luIS14.pcf.gz +lib/X11/fonts/75dpi/luIS18.pcf.gz +lib/X11/fonts/75dpi/luIS24.pcf.gz +lib/X11/fonts/75dpi/luRS08.pcf.gz +lib/X11/fonts/75dpi/luRS10.pcf.gz +lib/X11/fonts/75dpi/luRS12.pcf.gz +lib/X11/fonts/75dpi/luRS14.pcf.gz +lib/X11/fonts/75dpi/luRS18.pcf.gz +lib/X11/fonts/75dpi/luRS24.pcf.gz +lib/X11/fonts/75dpi/lubB08.pcf.gz +lib/X11/fonts/75dpi/lubB10.pcf.gz +lib/X11/fonts/75dpi/lubB12.pcf.gz +lib/X11/fonts/75dpi/lubB14.pcf.gz +lib/X11/fonts/75dpi/lubB18.pcf.gz +lib/X11/fonts/75dpi/lubB24.pcf.gz +lib/X11/fonts/75dpi/lubBI08.pcf.gz +lib/X11/fonts/75dpi/lubBI10.pcf.gz +lib/X11/fonts/75dpi/lubBI12.pcf.gz +lib/X11/fonts/75dpi/lubBI14.pcf.gz +lib/X11/fonts/75dpi/lubBI18.pcf.gz +lib/X11/fonts/75dpi/lubBI24.pcf.gz +lib/X11/fonts/75dpi/lubI08.pcf.gz +lib/X11/fonts/75dpi/lubI10.pcf.gz +lib/X11/fonts/75dpi/lubI12.pcf.gz +lib/X11/fonts/75dpi/lubI14.pcf.gz +lib/X11/fonts/75dpi/lubI18.pcf.gz +lib/X11/fonts/75dpi/lubI24.pcf.gz +lib/X11/fonts/75dpi/lubR08.pcf.gz +lib/X11/fonts/75dpi/lubR10.pcf.gz +lib/X11/fonts/75dpi/lubR12.pcf.gz +lib/X11/fonts/75dpi/lubR14.pcf.gz +lib/X11/fonts/75dpi/lubR18.pcf.gz +lib/X11/fonts/75dpi/lubR24.pcf.gz +lib/X11/fonts/75dpi/lutBS08.pcf.gz +lib/X11/fonts/75dpi/lutBS10.pcf.gz +lib/X11/fonts/75dpi/fonts.alias +lib/X11/fonts/75dpi/lutBS12.pcf.gz +lib/X11/fonts/75dpi/lutBS14.pcf.gz +lib/X11/fonts/75dpi/lutBS18.pcf.gz +lib/X11/fonts/75dpi/lutBS24.pcf.gz +lib/X11/fonts/75dpi/lutRS08.pcf.gz +lib/X11/fonts/75dpi/lutRS10.pcf.gz +lib/X11/fonts/75dpi/lutRS12.pcf.gz +lib/X11/fonts/75dpi/lutRS14.pcf.gz +lib/X11/fonts/75dpi/lutRS18.pcf.gz +lib/X11/fonts/75dpi/lutRS24.pcf.gz +lib/X11/fonts/75dpi/luBIS19.pcf.gz +lib/X11/fonts/75dpi/luBS19.pcf.gz +lib/X11/fonts/75dpi/luIS19.pcf.gz +lib/X11/fonts/75dpi/luRS19.pcf.gz +lib/X11/fonts/75dpi/lubB19.pcf.gz +lib/X11/fonts/75dpi/lubBI19.pcf.gz +lib/X11/fonts/75dpi/lubI19.pcf.gz +lib/X11/fonts/75dpi/lubR19.pcf.gz +lib/X11/fonts/75dpi/lutBS19.pcf.gz +lib/X11/fonts/75dpi/lutRS19.pcf.gz +lib/X11/fonts/75dpi/UTI___14.pcf.gz +lib/X11/fonts/75dpi/UTI___12.pcf.gz +lib/X11/fonts/75dpi/UTI___24.pcf.gz +lib/X11/fonts/75dpi/UTI___10.pcf.gz +lib/X11/fonts/75dpi/UTI___18.pcf.gz +lib/X11/fonts/75dpi/UTRG__14.pcf.gz +lib/X11/fonts/75dpi/UTRG__12.pcf.gz +lib/X11/fonts/75dpi/UTRG__24.pcf.gz +lib/X11/fonts/75dpi/UTRG__10.pcf.gz +lib/X11/fonts/75dpi/UTRG__18.pcf.gz +lib/X11/fonts/misc/ +lib/X11/fonts/misc/5x7.pcf.gz +lib/X11/fonts/misc/5x8.pcf.gz +lib/X11/fonts/misc/6x9.pcf.gz +lib/X11/fonts/misc/6x10.pcf.gz +lib/X11/fonts/misc/6x12.pcf.gz +lib/X11/fonts/misc/6x13.pcf.gz +lib/X11/fonts/misc/6x13B.pcf.gz +lib/X11/fonts/misc/7x13.pcf.gz +lib/X11/fonts/misc/7x13B.pcf.gz +lib/X11/fonts/misc/7x13euro.pcf.gz +lib/X11/fonts/misc/7x13euroB.pcf.gz +lib/X11/fonts/misc/8x13.pcf.gz +lib/X11/fonts/misc/8x13B.pcf.gz +lib/X11/fonts/misc/9x15.pcf.gz +lib/X11/fonts/misc/9x15B.pcf.gz +lib/X11/fonts/misc/10x20.pcf.gz +lib/X11/fonts/misc/cursor.pcf.gz +lib/X11/fonts/misc/deccurs.pcf.gz +lib/X11/fonts/misc/decsess.pcf.gz +lib/X11/fonts/misc/olcursor.pcf.gz +lib/X11/fonts/misc/olgl10.pcf.gz +lib/X11/fonts/misc/olgl12.pcf.gz +lib/X11/fonts/misc/olgl14.pcf.gz +lib/X11/fonts/misc/olgl19.pcf.gz +lib/X11/fonts/misc/nil2.pcf.gz +lib/X11/fonts/misc/clB6x10.pcf.gz +lib/X11/fonts/misc/clB6x12.pcf.gz +lib/X11/fonts/misc/clB8x10.pcf.gz +lib/X11/fonts/misc/clB8x12.pcf.gz +lib/X11/fonts/misc/clB8x13.pcf.gz +lib/X11/fonts/misc/clB8x14.pcf.gz +lib/X11/fonts/misc/clB8x16.pcf.gz +lib/X11/fonts/misc/clB8x8.pcf.gz +lib/X11/fonts/misc/clB9x15.pcf.gz +lib/X11/fonts/misc/clI6x12.pcf.gz +lib/X11/fonts/misc/clI8x8.pcf.gz +lib/X11/fonts/misc/clR4x6.pcf.gz +lib/X11/fonts/misc/clR5x10.pcf.gz +lib/X11/fonts/misc/clR5x6.pcf.gz +lib/X11/fonts/misc/clR5x8.pcf.gz +lib/X11/fonts/misc/clR6x10.pcf.gz +lib/X11/fonts/misc/clR6x12.pcf.gz +lib/X11/fonts/misc/clR6x13.pcf.gz +lib/X11/fonts/misc/clR6x6.pcf.gz +lib/X11/fonts/misc/clR6x8.pcf.gz +lib/X11/fonts/misc/clR7x10.pcf.gz +lib/X11/fonts/misc/clR7x12.pcf.gz +lib/X11/fonts/misc/clR7x14.pcf.gz +lib/X11/fonts/misc/clR7x8.pcf.gz +lib/X11/fonts/misc/clR8x10.pcf.gz +lib/X11/fonts/misc/clR8x12.pcf.gz +lib/X11/fonts/misc/clR8x13.pcf.gz +lib/X11/fonts/misc/clR8x14.pcf.gz +lib/X11/fonts/misc/clR8x16.pcf.gz +lib/X11/fonts/misc/clR8x8.pcf.gz +lib/X11/fonts/misc/clR9x15.pcf.gz +lib/X11/fonts/misc/7x14.pcf.gz +lib/X11/fonts/misc/7x14B.pcf.gz +lib/X11/fonts/misc/7x14rk.pcf.gz +lib/X11/fonts/misc/12x24.pcf.gz +lib/X11/fonts/misc/12x24rk.pcf.gz +lib/X11/fonts/misc/8x16.pcf.gz +lib/X11/fonts/misc/8x16rk.pcf.gz +lib/X11/fonts/misc/fonts.dir +lib/X11/fonts/misc/fonts.alias +lib/X11/fonts/PEX/ +lib/X11/fonts/PEX/Roman.phont +lib/X11/fonts/PEX/Roman_M.phont diff --git a/release/scripts/X11/plists/i386/Xfscl.tgz.plist b/release/scripts/X11/plists/i386/Xfscl.tgz.plist new file mode 100644 index 000000000000..7e3d4c87a592 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xfscl.tgz.plist @@ -0,0 +1,30 @@ +lib/X11/fonts/Speedo/ +lib/X11/fonts/Speedo/font0648.spd +lib/X11/fonts/Speedo/font0649.spd +lib/X11/fonts/Speedo/font0709.spd +lib/X11/fonts/Speedo/font0710.spd +lib/X11/fonts/Speedo/font0419.spd +lib/X11/fonts/Speedo/font0582.spd +lib/X11/fonts/Speedo/font0583.spd +lib/X11/fonts/Speedo/font0611.spd +lib/X11/fonts/Speedo/fonts.dir +lib/X11/fonts/Speedo/fonts.scale +lib/X11/fonts/Type1/ +lib/X11/fonts/Type1/UTRG____.pfa +lib/X11/fonts/Type1/UTB_____.pfa +lib/X11/fonts/Type1/UTBI____.pfa +lib/X11/fonts/Type1/UTI_____.pfa +lib/X11/fonts/Type1/cour.pfa +lib/X11/fonts/Type1/courb.pfa +lib/X11/fonts/Type1/courbi.pfa +lib/X11/fonts/Type1/couri.pfa +lib/X11/fonts/Type1/c0648bt_.pfb +lib/X11/fonts/Type1/c0649bt_.pfb +lib/X11/fonts/Type1/c0632bt_.pfb +lib/X11/fonts/Type1/c0633bt_.pfb +lib/X11/fonts/Type1/c0419bt_.pfb +lib/X11/fonts/Type1/c0582bt_.pfb +lib/X11/fonts/Type1/c0583bt_.pfb +lib/X11/fonts/Type1/c0611bt_.pfb +lib/X11/fonts/Type1/fonts.dir +lib/X11/fonts/Type1/fonts.scale diff --git a/release/scripts/X11/plists/i386/Xfsrv.tgz.plist b/release/scripts/X11/plists/i386/Xfsrv.tgz.plist new file mode 100644 index 000000000000..6891c27ab9eb --- /dev/null +++ b/release/scripts/X11/plists/i386/Xfsrv.tgz.plist @@ -0,0 +1,4 @@ +bin/xfs +lib/X11/fs/ +lib/X11/fs/config +man/man1/xfs.1.gz diff --git a/release/scripts/X11/plists/i386/Xhtml.tgz.plist b/release/scripts/X11/plists/i386/Xhtml.tgz.plist new file mode 100644 index 000000000000..8fa64baf3557 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xhtml.tgz.plist @@ -0,0 +1,672 @@ +lib/X11/doc/html/ +lib/X11/doc/html/FreeBSD.html +lib/X11/doc/html/FreeBSD1.html +lib/X11/doc/html/FreeBSD2.html +lib/X11/doc/html/FreeBSD3.html +lib/X11/doc/html/FreeBSD4.html +lib/X11/doc/html/FreeBSD5.html +lib/X11/doc/html/FreeBSD6.html +lib/X11/doc/html/FreeBSD7.html +lib/X11/doc/html/FreeBSD8.html +lib/X11/doc/html/FreeBSD_toc.html +lib/X11/doc/html/NetBSD.html +lib/X11/doc/html/NetBSD1.html +lib/X11/doc/html/NetBSD10.html +lib/X11/doc/html/NetBSD11.html +lib/X11/doc/html/NetBSD12.html +lib/X11/doc/html/NetBSD13.html +lib/X11/doc/html/NetBSD14.html +lib/X11/doc/html/NetBSD15.html +lib/X11/doc/html/NetBSD16.html +lib/X11/doc/html/NetBSD17.html +lib/X11/doc/html/NetBSD18.html +lib/X11/doc/html/NetBSD19.html +lib/X11/doc/html/NetBSD2.html +lib/X11/doc/html/NetBSD20.html +lib/X11/doc/html/NetBSD21.html +lib/X11/doc/html/NetBSD22.html +lib/X11/doc/html/NetBSD3.html +lib/X11/doc/html/NetBSD4.html +lib/X11/doc/html/NetBSD5.html +lib/X11/doc/html/NetBSD6.html +lib/X11/doc/html/NetBSD7.html +lib/X11/doc/html/NetBSD8.html +lib/X11/doc/html/NetBSD9.html +lib/X11/doc/html/NetBSD_toc.html +lib/X11/doc/html/OpenBSD.html +lib/X11/doc/html/OpenBSD1.html +lib/X11/doc/html/OpenBSD10.html +lib/X11/doc/html/OpenBSD11.html +lib/X11/doc/html/OpenBSD12.html +lib/X11/doc/html/OpenBSD13.html +lib/X11/doc/html/OpenBSD14.html +lib/X11/doc/html/OpenBSD15.html +lib/X11/doc/html/OpenBSD16.html +lib/X11/doc/html/OpenBSD17.html +lib/X11/doc/html/OpenBSD18.html +lib/X11/doc/html/OpenBSD19.html +lib/X11/doc/html/OpenBSD2.html +lib/X11/doc/html/OpenBSD20.html +lib/X11/doc/html/OpenBSD3.html +lib/X11/doc/html/OpenBSD4.html +lib/X11/doc/html/OpenBSD5.html +lib/X11/doc/html/OpenBSD6.html +lib/X11/doc/html/OpenBSD7.html +lib/X11/doc/html/OpenBSD8.html +lib/X11/doc/html/OpenBSD9.html +lib/X11/doc/html/OpenBSD_toc.html +lib/X11/doc/html/Linux.html +lib/X11/doc/html/Linux1.html +lib/X11/doc/html/Linux2.html +lib/X11/doc/html/Linux3.html +lib/X11/doc/html/Linux4.html +lib/X11/doc/html/Linux5.html +lib/X11/doc/html/Linux_toc.html +lib/X11/doc/html/fbdev.html +lib/X11/doc/html/fbdev1.html +lib/X11/doc/html/fbdev10.html +lib/X11/doc/html/fbdev2.html +lib/X11/doc/html/fbdev3.html +lib/X11/doc/html/fbdev4.html +lib/X11/doc/html/fbdev5.html +lib/X11/doc/html/fbdev6.html +lib/X11/doc/html/fbdev7.html +lib/X11/doc/html/fbdev8.html +lib/X11/doc/html/fbdev9.html +lib/X11/doc/html/fbdev_toc.html +lib/X11/doc/html/DGux.html +lib/X11/doc/html/DGux1.html +lib/X11/doc/html/DGux2.html +lib/X11/doc/html/DGux3.html +lib/X11/doc/html/DGux4.html +lib/X11/doc/html/DGux5.html +lib/X11/doc/html/DGux6.html +lib/X11/doc/html/DGux7.html +lib/X11/doc/html/DGux_toc.html +lib/X11/doc/html/LynxOS.html +lib/X11/doc/html/LynxOS1.html +lib/X11/doc/html/LynxOS10.html +lib/X11/doc/html/LynxOS11.html +lib/X11/doc/html/LynxOS12.html +lib/X11/doc/html/LynxOS13.html +lib/X11/doc/html/LynxOS14.html +lib/X11/doc/html/LynxOS15.html +lib/X11/doc/html/LynxOS16.html +lib/X11/doc/html/LynxOS17.html +lib/X11/doc/html/LynxOS18.html +lib/X11/doc/html/LynxOS19.html +lib/X11/doc/html/LynxOS2.html +lib/X11/doc/html/LynxOS20.html +lib/X11/doc/html/LynxOS21.html +lib/X11/doc/html/LynxOS22.html +lib/X11/doc/html/LynxOS23.html +lib/X11/doc/html/LynxOS24.html +lib/X11/doc/html/LynxOS25.html +lib/X11/doc/html/LynxOS26.html +lib/X11/doc/html/LynxOS3.html +lib/X11/doc/html/LynxOS4.html +lib/X11/doc/html/LynxOS5.html +lib/X11/doc/html/LynxOS6.html +lib/X11/doc/html/LynxOS7.html +lib/X11/doc/html/LynxOS8.html +lib/X11/doc/html/LynxOS9.html +lib/X11/doc/html/LynxOS_toc.html +lib/X11/doc/html/SCO.html +lib/X11/doc/html/SCO1.html +lib/X11/doc/html/SCO10.html +lib/X11/doc/html/SCO11.html +lib/X11/doc/html/SCO2.html +lib/X11/doc/html/SCO3.html +lib/X11/doc/html/SCO4.html +lib/X11/doc/html/SCO5.html +lib/X11/doc/html/SCO6.html +lib/X11/doc/html/SCO7.html +lib/X11/doc/html/SCO8.html +lib/X11/doc/html/SCO9.html +lib/X11/doc/html/SCO_toc.html +lib/X11/doc/html/isc.html +lib/X11/doc/html/isc1.html +lib/X11/doc/html/isc10.html +lib/X11/doc/html/isc11.html +lib/X11/doc/html/isc12.html +lib/X11/doc/html/isc13.html +lib/X11/doc/html/isc14.html +lib/X11/doc/html/isc15.html +lib/X11/doc/html/isc16.html +lib/X11/doc/html/isc17.html +lib/X11/doc/html/isc2.html +lib/X11/doc/html/isc3.html +lib/X11/doc/html/isc4.html +lib/X11/doc/html/isc5.html +lib/X11/doc/html/isc6.html +lib/X11/doc/html/isc7.html +lib/X11/doc/html/isc8.html +lib/X11/doc/html/isc9.html +lib/X11/doc/html/isc_toc.html +lib/X11/doc/html/OS2.html +lib/X11/doc/html/OS21.html +lib/X11/doc/html/OS210.html +lib/X11/doc/html/OS211.html +lib/X11/doc/html/OS212.html +lib/X11/doc/html/OS213.html +lib/X11/doc/html/OS214.html +lib/X11/doc/html/OS22.html +lib/X11/doc/html/OS23.html +lib/X11/doc/html/OS24.html +lib/X11/doc/html/OS25.html +lib/X11/doc/html/OS26.html +lib/X11/doc/html/OS27.html +lib/X11/doc/html/OS28.html +lib/X11/doc/html/OS29.html +lib/X11/doc/html/OS2Notes.html +lib/X11/doc/html/OS2Notes1.html +lib/X11/doc/html/OS2Notes2.html +lib/X11/doc/html/OS2Notes3.html +lib/X11/doc/html/OS2Notes_toc.html +lib/X11/doc/html/OS2_toc.html +lib/X11/doc/html/SOLX86.html +lib/X11/doc/html/SOLX861.html +lib/X11/doc/html/SOLX862.html +lib/X11/doc/html/SOLX863.html +lib/X11/doc/html/SOLX864.html +lib/X11/doc/html/SOLX865.html +lib/X11/doc/html/SOLX866.html +lib/X11/doc/html/SOLX867.html +lib/X11/doc/html/SOLX86_toc.html +lib/X11/doc/html/SVR4.html +lib/X11/doc/html/SVR41.html +lib/X11/doc/html/SVR410.html +lib/X11/doc/html/SVR411.html +lib/X11/doc/html/SVR42.html +lib/X11/doc/html/SVR43.html +lib/X11/doc/html/SVR44.html +lib/X11/doc/html/SVR45.html +lib/X11/doc/html/SVR46.html +lib/X11/doc/html/SVR47.html +lib/X11/doc/html/SVR48.html +lib/X11/doc/html/SVR49.html +lib/X11/doc/html/SVR4_toc.html +lib/X11/doc/html/DECtga.html +lib/X11/doc/html/DECtga1.html +lib/X11/doc/html/DECtga2.html +lib/X11/doc/html/DECtga_toc.html +lib/X11/doc/html/I128.html +lib/X11/doc/html/I1281.html +lib/X11/doc/html/I1282.html +lib/X11/doc/html/I1283.html +lib/X11/doc/html/I1284.html +lib/X11/doc/html/I1285.html +lib/X11/doc/html/I128_toc.html +lib/X11/doc/html/Mach32.html +lib/X11/doc/html/Mach321.html +lib/X11/doc/html/Mach322.html +lib/X11/doc/html/Mach323.html +lib/X11/doc/html/Mach32_toc.html +lib/X11/doc/html/Mach64.html +lib/X11/doc/html/Mach641.html +lib/X11/doc/html/Mach642.html +lib/X11/doc/html/Mach643.html +lib/X11/doc/html/Mach644.html +lib/X11/doc/html/Mach645.html +lib/X11/doc/html/Mach646.html +lib/X11/doc/html/Mach64_toc.html +lib/X11/doc/html/MGA.html +lib/X11/doc/html/MGA1.html +lib/X11/doc/html/MGA2.html +lib/X11/doc/html/MGA3.html +lib/X11/doc/html/MGA4.html +lib/X11/doc/html/MGA5.html +lib/X11/doc/html/MGA6.html +lib/X11/doc/html/MGA_toc.html +lib/X11/doc/html/NVIDIA.html +lib/X11/doc/html/NVIDIA1.html +lib/X11/doc/html/NVIDIA2.html +lib/X11/doc/html/NVIDIA3.html +lib/X11/doc/html/NVIDIA_toc.html +lib/X11/doc/html/Oak.html +lib/X11/doc/html/Oak1.html +lib/X11/doc/html/Oak2.html +lib/X11/doc/html/Oak3.html +lib/X11/doc/html/Oak4.html +lib/X11/doc/html/Oak_toc.html +lib/X11/doc/html/P9000.html +lib/X11/doc/html/P90001.html +lib/X11/doc/html/P900010.html +lib/X11/doc/html/P900011.html +lib/X11/doc/html/P900012.html +lib/X11/doc/html/P900013.html +lib/X11/doc/html/P900014.html +lib/X11/doc/html/P900015.html +lib/X11/doc/html/P90002.html +lib/X11/doc/html/P90003.html +lib/X11/doc/html/P90004.html +lib/X11/doc/html/P90005.html +lib/X11/doc/html/P90006.html +lib/X11/doc/html/P90007.html +lib/X11/doc/html/P90008.html +lib/X11/doc/html/P90009.html +lib/X11/doc/html/P9000_toc.html +lib/X11/doc/html/Video7.html +lib/X11/doc/html/Video71.html +lib/X11/doc/html/Video710.html +lib/X11/doc/html/Video72.html +lib/X11/doc/html/Video73.html +lib/X11/doc/html/Video74.html +lib/X11/doc/html/Video75.html +lib/X11/doc/html/Video76.html +lib/X11/doc/html/Video77.html +lib/X11/doc/html/Video78.html +lib/X11/doc/html/Video79.html +lib/X11/doc/html/Video7_toc.html +lib/X11/doc/html/S3.html +lib/X11/doc/html/S31.html +lib/X11/doc/html/S32.html +lib/X11/doc/html/S33.html +lib/X11/doc/html/S34.html +lib/X11/doc/html/S35.html +lib/X11/doc/html/S36.html +lib/X11/doc/html/S37.html +lib/X11/doc/html/S38.html +lib/X11/doc/html/S39.html +lib/X11/doc/html/S3V.html +lib/X11/doc/html/S3V1.html +lib/X11/doc/html/S3V10.html +lib/X11/doc/html/S3V11.html +lib/X11/doc/html/S3V12.html +lib/X11/doc/html/S3V13.html +lib/X11/doc/html/S3V14.html +lib/X11/doc/html/S3V15.html +lib/X11/doc/html/S3V2.html +lib/X11/doc/html/S3V3.html +lib/X11/doc/html/S3V4.html +lib/X11/doc/html/S3V5.html +lib/X11/doc/html/S3V6.html +lib/X11/doc/html/S3V7.html +lib/X11/doc/html/S3V8.html +lib/X11/doc/html/S3V9.html +lib/X11/doc/html/S3V_toc.html +lib/X11/doc/html/S3_toc.html +lib/X11/doc/html/SiS.html +lib/X11/doc/html/SiS1.html +lib/X11/doc/html/SiS2.html +lib/X11/doc/html/SiS3.html +lib/X11/doc/html/SiS4.html +lib/X11/doc/html/SiS5.html +lib/X11/doc/html/SiS_toc.html +lib/X11/doc/html/W32.html +lib/X11/doc/html/W321.html +lib/X11/doc/html/W322.html +lib/X11/doc/html/W323.html +lib/X11/doc/html/W324.html +lib/X11/doc/html/W325.html +lib/X11/doc/html/W326.html +lib/X11/doc/html/W32_toc.html +lib/X11/doc/html/WstDig.html +lib/X11/doc/html/WstDig1.html +lib/X11/doc/html/WstDig2.html +lib/X11/doc/html/WstDig3.html +lib/X11/doc/html/WstDig4.html +lib/X11/doc/html/WstDig5.html +lib/X11/doc/html/WstDig_toc.html +lib/X11/doc/html/apm.html +lib/X11/doc/html/apm1.html +lib/X11/doc/html/apm2.html +lib/X11/doc/html/apm3.html +lib/X11/doc/html/apm_toc.html +lib/X11/doc/html/ark.html +lib/X11/doc/html/ark1.html +lib/X11/doc/html/ark2.html +lib/X11/doc/html/ark3.html +lib/X11/doc/html/ark4.html +lib/X11/doc/html/ark5.html +lib/X11/doc/html/ark6.html +lib/X11/doc/html/ark_toc.html +lib/X11/doc/html/agx.html +lib/X11/doc/html/agx1.html +lib/X11/doc/html/agx2.html +lib/X11/doc/html/agx3.html +lib/X11/doc/html/agx4.html +lib/X11/doc/html/agx5.html +lib/X11/doc/html/agx6.html +lib/X11/doc/html/agx_toc.html +lib/X11/doc/html/ati.html +lib/X11/doc/html/ati1.html +lib/X11/doc/html/ati10.html +lib/X11/doc/html/ati11.html +lib/X11/doc/html/ati12.html +lib/X11/doc/html/ati13.html +lib/X11/doc/html/ati14.html +lib/X11/doc/html/ati15.html +lib/X11/doc/html/ati16.html +lib/X11/doc/html/ati17.html +lib/X11/doc/html/ati18.html +lib/X11/doc/html/ati2.html +lib/X11/doc/html/ati3.html +lib/X11/doc/html/ati4.html +lib/X11/doc/html/ati5.html +lib/X11/doc/html/ati6.html +lib/X11/doc/html/ati7.html +lib/X11/doc/html/ati8.html +lib/X11/doc/html/ati9.html +lib/X11/doc/html/ati_toc.html +lib/X11/doc/html/chips.html +lib/X11/doc/html/chips1.html +lib/X11/doc/html/chips2.html +lib/X11/doc/html/chips3.html +lib/X11/doc/html/chips4.html +lib/X11/doc/html/chips5.html +lib/X11/doc/html/chips6.html +lib/X11/doc/html/chips7.html +lib/X11/doc/html/chips8.html +lib/X11/doc/html/chips9.html +lib/X11/doc/html/chips_toc.html +lib/X11/doc/html/cirrus.html +lib/X11/doc/html/cirrus1.html +lib/X11/doc/html/cirrus2.html +lib/X11/doc/html/cirrus3.html +lib/X11/doc/html/cirrus4.html +lib/X11/doc/html/cirrus5.html +lib/X11/doc/html/cirrus6.html +lib/X11/doc/html/cirrus7.html +lib/X11/doc/html/cirrus8.html +lib/X11/doc/html/cirrus9.html +lib/X11/doc/html/cirrus_toc.html +lib/X11/doc/html/cyrix.html +lib/X11/doc/html/cyrix1.html +lib/X11/doc/html/cyrix2.html +lib/X11/doc/html/cyrix3.html +lib/X11/doc/html/cyrix4.html +lib/X11/doc/html/cyrix5.html +lib/X11/doc/html/cyrix_toc.html +lib/X11/doc/html/epson.html +lib/X11/doc/html/epson1.html +lib/X11/doc/html/epson2.html +lib/X11/doc/html/epson3.html +lib/X11/doc/html/epson4.html +lib/X11/doc/html/epson5.html +lib/X11/doc/html/epson6.html +lib/X11/doc/html/epson_toc.html +lib/X11/doc/html/mouse.html +lib/X11/doc/html/mouse1.html +lib/X11/doc/html/mouse10.html +lib/X11/doc/html/mouse11.html +lib/X11/doc/html/mouse12.html +lib/X11/doc/html/mouse13.html +lib/X11/doc/html/mouse14.html +lib/X11/doc/html/mouse15.html +lib/X11/doc/html/mouse16.html +lib/X11/doc/html/mouse17.html +lib/X11/doc/html/mouse18.html +lib/X11/doc/html/mouse19.html +lib/X11/doc/html/mouse2.html +lib/X11/doc/html/mouse20.html +lib/X11/doc/html/mouse21.html +lib/X11/doc/html/mouse22.html +lib/X11/doc/html/mouse23.html +lib/X11/doc/html/mouse24.html +lib/X11/doc/html/mouse25.html +lib/X11/doc/html/mouse26.html +lib/X11/doc/html/mouse27.html +lib/X11/doc/html/mouse28.html +lib/X11/doc/html/mouse29.html +lib/X11/doc/html/mouse3.html +lib/X11/doc/html/mouse30.html +lib/X11/doc/html/mouse31.html +lib/X11/doc/html/mouse32.html +lib/X11/doc/html/mouse33.html +lib/X11/doc/html/mouse4.html +lib/X11/doc/html/mouse5.html +lib/X11/doc/html/mouse6.html +lib/X11/doc/html/mouse7.html +lib/X11/doc/html/mouse8.html +lib/X11/doc/html/mouse9.html +lib/X11/doc/html/mouse_toc.html +lib/X11/doc/html/neo.html +lib/X11/doc/html/neo1.html +lib/X11/doc/html/neo2.html +lib/X11/doc/html/neo3.html +lib/X11/doc/html/neo4.html +lib/X11/doc/html/neo5.html +lib/X11/doc/html/neo6.html +lib/X11/doc/html/neo7.html +lib/X11/doc/html/neo8.html +lib/X11/doc/html/neo_toc.html +lib/X11/doc/html/rendition.html +lib/X11/doc/html/rendition1.html +lib/X11/doc/html/rendition2.html +lib/X11/doc/html/rendition3.html +lib/X11/doc/html/rendition4.html +lib/X11/doc/html/rendition5.html +lib/X11/doc/html/rendition6.html +lib/X11/doc/html/rendition7.html +lib/X11/doc/html/rendition_toc.html +lib/X11/doc/html/3DLabs.html +lib/X11/doc/html/3DLabs1.html +lib/X11/doc/html/3DLabs2.html +lib/X11/doc/html/3DLabs3.html +lib/X11/doc/html/3DLabs4.html +lib/X11/doc/html/3DLabs5.html +lib/X11/doc/html/3DLabs_toc.html +lib/X11/doc/html/trident.html +lib/X11/doc/html/trident1.html +lib/X11/doc/html/trident2.html +lib/X11/doc/html/trident3.html +lib/X11/doc/html/trident_toc.html +lib/X11/doc/html/tseng.html +lib/X11/doc/html/tseng1.html +lib/X11/doc/html/tseng10.html +lib/X11/doc/html/tseng11.html +lib/X11/doc/html/tseng12.html +lib/X11/doc/html/tseng13.html +lib/X11/doc/html/tseng14.html +lib/X11/doc/html/tseng15.html +lib/X11/doc/html/tseng16.html +lib/X11/doc/html/tseng17.html +lib/X11/doc/html/tseng18.html +lib/X11/doc/html/tseng19.html +lib/X11/doc/html/tseng2.html +lib/X11/doc/html/tseng20.html +lib/X11/doc/html/tseng21.html +lib/X11/doc/html/tseng22.html +lib/X11/doc/html/tseng23.html +lib/X11/doc/html/tseng3.html +lib/X11/doc/html/tseng4.html +lib/X11/doc/html/tseng5.html +lib/X11/doc/html/tseng6.html +lib/X11/doc/html/tseng7.html +lib/X11/doc/html/tseng8.html +lib/X11/doc/html/tseng9.html +lib/X11/doc/html/tseng_toc.html +lib/X11/doc/html/i740.html +lib/X11/doc/html/i7401.html +lib/X11/doc/html/i7402.html +lib/X11/doc/html/i7403.html +lib/X11/doc/html/i7404.html +lib/X11/doc/html/i7405.html +lib/X11/doc/html/i7406.html +lib/X11/doc/html/i7407.html +lib/X11/doc/html/i7408.html +lib/X11/doc/html/i740_toc.html +lib/X11/doc/html/i810.html +lib/X11/doc/html/i8101.html +lib/X11/doc/html/i8102.html +lib/X11/doc/html/i8103.html +lib/X11/doc/html/i8104.html +lib/X11/doc/html/i8105.html +lib/X11/doc/html/i8106.html +lib/X11/doc/html/i8107.html +lib/X11/doc/html/i8108.html +lib/X11/doc/html/i810_toc.html +lib/X11/doc/html/r128.html +lib/X11/doc/html/r1281.html +lib/X11/doc/html/r1282.html +lib/X11/doc/html/r1283.html +lib/X11/doc/html/r1284.html +lib/X11/doc/html/r1285.html +lib/X11/doc/html/r1286.html +lib/X11/doc/html/r1287.html +lib/X11/doc/html/r1288.html +lib/X11/doc/html/r128_toc.html +lib/X11/doc/html/COPYRIGHT.html +lib/X11/doc/html/COPYRIGHT1.html +lib/X11/doc/html/COPYRIGHT2.html +lib/X11/doc/html/COPYRIGHT3.html +lib/X11/doc/html/COPYRIGHT4.html +lib/X11/doc/html/COPYRIGHT5.html +lib/X11/doc/html/COPYRIGHT6.html +lib/X11/doc/html/COPYRIGHT7.html +lib/X11/doc/html/COPYRIGHT_toc.html +lib/X11/doc/html/RELNOTES.html +lib/X11/doc/html/RELNOTES1.html +lib/X11/doc/html/RELNOTES10.html +lib/X11/doc/html/RELNOTES11.html +lib/X11/doc/html/RELNOTES12.html +lib/X11/doc/html/RELNOTES13.html +lib/X11/doc/html/RELNOTES14.html +lib/X11/doc/html/RELNOTES2.html +lib/X11/doc/html/RELNOTES3.html +lib/X11/doc/html/RELNOTES4.html +lib/X11/doc/html/RELNOTES5.html +lib/X11/doc/html/RELNOTES6.html +lib/X11/doc/html/RELNOTES7.html +lib/X11/doc/html/RELNOTES8.html +lib/X11/doc/html/RELNOTES9.html +lib/X11/doc/html/RELNOTES_toc.html +lib/X11/doc/html/Config.html +lib/X11/doc/html/Config1.html +lib/X11/doc/html/Config2.html +lib/X11/doc/html/Config3.html +lib/X11/doc/html/Config4.html +lib/X11/doc/html/Config5.html +lib/X11/doc/html/Config6.html +lib/X11/doc/html/Config7.html +lib/X11/doc/html/Config_toc.html +lib/X11/doc/html/BUILD.html +lib/X11/doc/html/BUILD1.html +lib/X11/doc/html/BUILD2.html +lib/X11/doc/html/BUILD3.html +lib/X11/doc/html/BUILD4.html +lib/X11/doc/html/BUILD5.html +lib/X11/doc/html/BUILD6.html +lib/X11/doc/html/BUILD_toc.html +lib/X11/doc/html/README.html +lib/X11/doc/html/README1.html +lib/X11/doc/html/README2.html +lib/X11/doc/html/README3.html +lib/X11/doc/html/README4.html +lib/X11/doc/html/README5.html +lib/X11/doc/html/README6.html +lib/X11/doc/html/README7.html +lib/X11/doc/html/README8.html +lib/X11/doc/html/README_toc.html +lib/X11/doc/html/QuickStart.html +lib/X11/doc/html/QuickStart1.html +lib/X11/doc/html/QuickStart10.html +lib/X11/doc/html/QuickStart11.html +lib/X11/doc/html/QuickStart12.html +lib/X11/doc/html/QuickStart13.html +lib/X11/doc/html/QuickStart14.html +lib/X11/doc/html/QuickStart15.html +lib/X11/doc/html/QuickStart16.html +lib/X11/doc/html/QuickStart17.html +lib/X11/doc/html/QuickStart18.html +lib/X11/doc/html/QuickStart19.html +lib/X11/doc/html/QuickStart2.html +lib/X11/doc/html/QuickStart20.html +lib/X11/doc/html/QuickStart21.html +lib/X11/doc/html/QuickStart22.html +lib/X11/doc/html/QuickStart23.html +lib/X11/doc/html/QuickStart24.html +lib/X11/doc/html/QuickStart25.html +lib/X11/doc/html/QuickStart26.html +lib/X11/doc/html/QuickStart27.html +lib/X11/doc/html/QuickStart28.html +lib/X11/doc/html/QuickStart29.html +lib/X11/doc/html/QuickStart3.html +lib/X11/doc/html/QuickStart30.html +lib/X11/doc/html/QuickStart31.html +lib/X11/doc/html/QuickStart32.html +lib/X11/doc/html/QuickStart33.html +lib/X11/doc/html/QuickStart34.html +lib/X11/doc/html/QuickStart35.html +lib/X11/doc/html/QuickStart4.html +lib/X11/doc/html/QuickStart5.html +lib/X11/doc/html/QuickStart6.html +lib/X11/doc/html/QuickStart7.html +lib/X11/doc/html/QuickStart8.html +lib/X11/doc/html/QuickStart9.html +lib/X11/doc/html/QuickStart_toc.html +lib/X11/doc/html/DocIndex.html +lib/X11/doc/html/DocIndex1.html +lib/X11/doc/html/DocIndex_toc.html +lib/X11/doc/html/LinkKit.html +lib/X11/doc/html/LinkKit1.html +lib/X11/doc/html/LinkKit_toc.html +lib/X11/doc/html/clkprog.html +lib/X11/doc/html/clkprog1.html +lib/X11/doc/html/clkprog2.html +lib/X11/doc/html/clkprog_toc.html +lib/X11/doc/html/xinput.html +lib/X11/doc/html/xinput1.html +lib/X11/doc/html/xinput2.html +lib/X11/doc/html/xinput3.html +lib/X11/doc/html/xinput4.html +lib/X11/doc/html/xinput5.html +lib/X11/doc/html/xinput_toc.html +lib/X11/doc/html/VideoModes.html +lib/X11/doc/html/VideoModes1.html +lib/X11/doc/html/VideoModes10.html +lib/X11/doc/html/VideoModes11.html +lib/X11/doc/html/VideoModes12.html +lib/X11/doc/html/VideoModes13.html +lib/X11/doc/html/VideoModes14.html +lib/X11/doc/html/VideoModes15.html +lib/X11/doc/html/VideoModes16.html +lib/X11/doc/html/VideoModes17.html +lib/X11/doc/html/VideoModes18.html +lib/X11/doc/html/VideoModes19.html +lib/X11/doc/html/VideoModes2.html +lib/X11/doc/html/VideoModes20.html +lib/X11/doc/html/VideoModes21.html +lib/X11/doc/html/VideoModes22.html +lib/X11/doc/html/VideoModes23.html +lib/X11/doc/html/VideoModes24.html +lib/X11/doc/html/VideoModes25.html +lib/X11/doc/html/VideoModes26.html +lib/X11/doc/html/VideoModes27.html +lib/X11/doc/html/VideoModes3.html +lib/X11/doc/html/VideoModes4.html +lib/X11/doc/html/VideoModes5.html +lib/X11/doc/html/VideoModes6.html +lib/X11/doc/html/VideoModes7.html +lib/X11/doc/html/VideoModes8.html +lib/X11/doc/html/VideoModes9.html +lib/X11/doc/html/VideoModes_toc.html +lib/X11/doc/html/VGADriver.html +lib/X11/doc/html/VGADriver1.html +lib/X11/doc/html/VGADriver10.html +lib/X11/doc/html/VGADriver11.html +lib/X11/doc/html/VGADriver12.html +lib/X11/doc/html/VGADriver13.html +lib/X11/doc/html/VGADriver14.html +lib/X11/doc/html/VGADriver15.html +lib/X11/doc/html/VGADriver16.html +lib/X11/doc/html/VGADriver17.html +lib/X11/doc/html/VGADriver18.html +lib/X11/doc/html/VGADriver19.html +lib/X11/doc/html/VGADriver2.html +lib/X11/doc/html/VGADriver20.html +lib/X11/doc/html/VGADriver21.html +lib/X11/doc/html/VGADriver22.html +lib/X11/doc/html/VGADriver23.html +lib/X11/doc/html/VGADriver24.html +lib/X11/doc/html/VGADriver25.html +lib/X11/doc/html/VGADriver26.html +lib/X11/doc/html/VGADriver3.html +lib/X11/doc/html/VGADriver4.html +lib/X11/doc/html/VGADriver5.html +lib/X11/doc/html/VGADriver6.html +lib/X11/doc/html/VGADriver7.html +lib/X11/doc/html/VGADriver8.html +lib/X11/doc/html/VGADriver9.html +lib/X11/doc/html/VGADriver_toc.html diff --git a/release/scripts/X11/plists/i386/Xjdoc.tgz.plist b/release/scripts/X11/plists/i386/Xjdoc.tgz.plist new file mode 100644 index 000000000000..20ac1a5d93f9 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xjdoc.tgz.plist @@ -0,0 +1,49 @@ +lib/X11/doc/Japanese/ +lib/X11/doc/Japanese/AccelCards +lib/X11/doc/Japanese/COPYRIGHT +lib/X11/doc/Japanese/README +lib/X11/doc/Japanese/README.Config +lib/X11/doc/Japanese/BUILD +lib/X11/doc/Japanese/INSTALL +lib/X11/doc/Japanese/LinkKit +lib/X11/doc/Japanese/RELNOTES +lib/X11/doc/Japanese/README.Linux +lib/X11/doc/Japanese/README.ati +lib/X11/doc/Japanese/README.trident +lib/X11/doc/Japanese/README.tseng +lib/X11/doc/Japanese/README.WstDig +lib/X11/doc/Japanese/README.DECtga +lib/X11/doc/Japanese/README.apm +lib/X11/doc/Japanese/README.rendition +lib/X11/doc/Japanese/README.epson +lib/X11/doc/Japanese/README.chips +lib/X11/doc/Japanese/README.cirrus +lib/X11/doc/Japanese/README.Video7 +lib/X11/doc/Japanese/README.P9000 +lib/X11/doc/Japanese/README.agx +lib/X11/doc/Japanese/README.S3 +lib/X11/doc/Japanese/README.S3V +lib/X11/doc/Japanese/README.SiS +lib/X11/doc/Japanese/README.W32 +lib/X11/doc/Japanese/README.Oak +lib/X11/doc/Japanese/README.I128 +lib/X11/doc/Japanese/README.Mach32 +lib/X11/doc/Japanese/README.Mach64 +lib/X11/doc/Japanese/README.ark +lib/X11/doc/Japanese/README.MGA +lib/X11/doc/Japanese/README.NVIDIA +lib/X11/doc/Japanese/README.mouse +lib/X11/doc/Japanese/README.neo +lib/X11/doc/Japanese/README.3DLabs +lib/X11/doc/Japanese/README.cyrix +lib/X11/doc/Japanese/README.i740 +lib/X11/doc/Japanese/README.r128 +lib/X11/doc/Japanese/README.FreeBSD +lib/X11/doc/Japanese/VideoModes.doc +lib/X11/doc/Japanese/QuickStart.doc +lib/X11/doc/Japanese/README.clkprog +lib/X11/doc/Japanese/xinput +lib/X11/doc/Japanese/VGADriver.doc +lib/X11/doc/Japanese/modelines.txt +lib/X11/doc/Japanese/README98.1st +lib/X11/doc/Japanese/README98 diff --git a/release/scripts/X11/plists/i386/Xjset.tgz.plist b/release/scripts/X11/plists/i386/Xjset.tgz.plist new file mode 100644 index 000000000000..009676e1febf --- /dev/null +++ b/release/scripts/X11/plists/i386/Xjset.tgz.plist @@ -0,0 +1,76 @@ +bin/XF86Setup_jp +bin/xmseconfig +lib/X11/XF86Setup/ +lib/X11/XF86Setup/pics/ +lib/X11/XF86Setup/pics/vidcard.xbm +lib/X11/XF86Setup/pics/vidcard.msk +lib/X11/XF86Setup/pics/XFree86.xbm +lib/X11/XF86Setup/pics/XFree86.msk +lib/X11/XF86Setup/scripts/ +lib/X11/XF86Setup/scripts/mseconfig.tcl +lib/X11/XF86Setup/tcllib/ +lib/X11/XF86Setup/tcllib/button.tcl +lib/X11/XF86Setup/tcllib/combobox.tcl +lib/X11/XF86Setup/tcllib/misc.tcl +lib/X11/XF86Setup/tcllib/downarrow.xbm +lib/X11/XF86Setup/tcllib/dialog.tcl +lib/X11/XF86Setup/tcllib/entry.tcl +lib/X11/XF86Setup/tcllib/focus.tcl +lib/X11/XF86Setup/tcllib/init.tcl +lib/X11/XF86Setup/tcllib/listbox.tcl +lib/X11/XF86Setup/tcllib/menu.tcl +lib/X11/XF86Setup/tcllib/optionMenu.tcl +lib/X11/XF86Setup/tcllib/palette.tcl +lib/X11/XF86Setup/tcllib/scale.tcl +lib/X11/XF86Setup/tcllib/scrollbar.tcl +lib/X11/XF86Setup/tcllib/tclIndex +lib/X11/XF86Setup/tcllib/tearoff.tcl +lib/X11/XF86Setup/tcllib/text.tcl +lib/X11/XF86Setup/tcllib/tk.tcl +lib/X11/XF86Setup/tcllib/tkerror.tcl +lib/X11/XF86Setup/tcllib/uparrow.xbm +lib/X11/XF86Setup/tcllib/license.terms +lib/X11/XF86Setup/phase1.tcl +lib/X11/XF86Setup/phase2.tcl +lib/X11/XF86Setup/phase3.tcl +lib/X11/XF86Setup/phase4.tcl +lib/X11/XF86Setup/phase5.tcl +lib/X11/XF86Setup/setuplib.tcl +lib/X11/XF86Setup/srvflags.tcl +lib/X11/XF86Setup/carddata.tcl +lib/X11/XF86Setup/card.tcl +lib/X11/XF86Setup/done.tcl +lib/X11/XF86Setup/filelist.tcl +lib/X11/XF86Setup/keyboard.tcl +lib/X11/XF86Setup/mseproto.tcl +lib/X11/XF86Setup/mondata.tcl +lib/X11/XF86Setup/monitor.tcl +lib/X11/XF86Setup/modeselect.tcl +lib/X11/XF86Setup/mouse.tcl +lib/X11/XF86Setup/LICENSE +lib/X11/XF86Setup/texts/ +lib/X11/XF86Setup/texts/local_text.tcl +lib/X11/XF86Setup/texts/generic/ +lib/X11/XF86Setup/texts/generic/messages.tcl +lib/X11/XF86Setup/texts/generic/message_proc.tcl +lib/X11/XF86Setup/texts/generic/help_card.tcl +lib/X11/XF86Setup/texts/generic/help_done.tcl +lib/X11/XF86Setup/texts/generic/help_keyboard.tcl +lib/X11/XF86Setup/texts/generic/help_monitor.tcl +lib/X11/XF86Setup/texts/generic/help_mouse.tcl +lib/X11/XF86Setup/texts/generic/help_other.tcl +lib/X11/XF86Setup/texts/generic/help_intro.tcl +lib/X11/XF86Setup/texts/generic/help_modeselect.tcl +lib/X11/XF86Setup/texts/ja/ +lib/X11/XF86Setup/texts/ja/messages.tcl +lib/X11/XF86Setup/texts/ja/message_proc.tcl +lib/X11/XF86Setup/texts/ja/help_card.tcl +lib/X11/XF86Setup/texts/ja/help_done.tcl +lib/X11/XF86Setup/texts/ja/help_keyboard.tcl +lib/X11/XF86Setup/texts/ja/help_monitor.tcl +lib/X11/XF86Setup/texts/ja/help_mouse.tcl +lib/X11/XF86Setup/texts/ja/help_other.tcl +lib/X11/XF86Setup/texts/ja/help_intro.tcl +lib/X11/XF86Setup/texts/ja/help_modeselect.tcl +man/man1/XF86Setup.1.gz +man/man1/xmseconfig.1.gz diff --git a/release/scripts/X11/plists/i386/Xlib.tgz.plist b/release/scripts/X11/plists/i386/Xlib.tgz.plist new file mode 100644 index 000000000000..ec6d994c0258 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xlib.tgz.plist @@ -0,0 +1,390 @@ +lib/X11/ +lib/X11/XErrorDB +lib/X11/XKeysymDB +lib/X11/locale/ +lib/X11/locale/locale.alias +lib/X11/locale/locale.dir +lib/X11/locale/compose.dir +lib/X11/locale/C/ +lib/X11/locale/C/XLC_LOCALE +lib/X11/locale/iso8859-1/ +lib/X11/locale/iso8859-1/XLC_LOCALE +lib/X11/locale/iso8859-1/Compose +lib/X11/locale/iso8859-2/ +lib/X11/locale/iso8859-2/XLC_LOCALE +lib/X11/locale/iso8859-2/Compose +lib/X11/locale/iso8859-3/ +lib/X11/locale/iso8859-3/XLC_LOCALE +lib/X11/locale/iso8859-4/ +lib/X11/locale/iso8859-4/XLC_LOCALE +lib/X11/locale/iso8859-4/Compose +lib/X11/locale/iso8859-5/ +lib/X11/locale/iso8859-5/XLC_LOCALE +lib/X11/locale/iso8859-6/ +lib/X11/locale/iso8859-6/XLC_LOCALE +lib/X11/locale/iso8859-7/ +lib/X11/locale/iso8859-7/XLC_LOCALE +lib/X11/locale/iso8859-8/ +lib/X11/locale/iso8859-8/XLC_LOCALE +lib/X11/locale/iso8859-9/ +lib/X11/locale/iso8859-9/XLC_LOCALE +lib/X11/locale/iso8859-10/ +lib/X11/locale/iso8859-10/XLC_LOCALE +lib/X11/locale/iso8859-15/ +lib/X11/locale/iso8859-15/XLC_LOCALE +lib/X11/locale/iso8859-15/Compose +lib/X11/locale/ja/ +lib/X11/locale/ja/XLC_LOCALE +lib/X11/locale/ja.JIS/ +lib/X11/locale/ja.JIS/XLC_LOCALE +lib/X11/locale/ja.SJIS/ +lib/X11/locale/ja.SJIS/XLC_LOCALE +lib/X11/locale/ko/ +lib/X11/locale/ko/XLC_LOCALE +lib/X11/locale/koi8-r/ +lib/X11/locale/koi8-r/XLC_LOCALE +lib/X11/locale/zh/ +lib/X11/locale/zh/XLC_LOCALE +lib/X11/locale/zh_TW/ +lib/X11/locale/zh_TW/XLC_LOCALE +lib/X11/locale/zh_TW.Big5/ +lib/X11/locale/zh_TW.Big5/XLC_LOCALE +lib/X11/locale/th_TH.TACTIS/ +lib/X11/locale/th_TH.TACTIS/XLC_LOCALE +lib/X11/locale/en_US.utf/ +lib/X11/locale/en_US.utf/XLC_LOCALE +lib/X11/locale/tbl_data/ +lib/X11/locale/tbl_data/tab8859_1 +lib/X11/locale/tbl_data/tab8859_2 +lib/X11/locale/tbl_data/tab8859_3 +lib/X11/locale/tbl_data/tab8859_4 +lib/X11/locale/tbl_data/tab8859_5 +lib/X11/locale/tbl_data/tab8859_6 +lib/X11/locale/tbl_data/tab8859_7 +lib/X11/locale/tbl_data/tab8859_8 +lib/X11/locale/tbl_data/tab8859_9 +lib/X11/locale/tbl_data/tab8859_10 +lib/X11/locale/tbl_data/tab8859_15 +lib/X11/locale/tbl_data/jis0208 +lib/X11/locale/tbl_data/ksc5601 +lib/X11/locale/tbl_data/gb2312 +lib/X11/locale/tbl_data/jis0201 +lib/X11/locale/tbl_data/tabkoi8_r +lib/X11/proxymngr/ +lib/X11/proxymngr/pmconfig +lib/X11/rgb.txt +lib/X11/rstart/ +lib/X11/rstart/rstartd.real +lib/X11/rstart/config +lib/X11/rstart/commands/ +lib/X11/rstart/commands/x11r6/ +lib/X11/rstart/commands/x11r6/LoadMonitor +lib/X11/rstart/commands/x11r6/@List +lib/X11/rstart/commands/x11r6/Terminal +lib/X11/rstart/commands/@List +lib/X11/rstart/commands/ListContexts +lib/X11/rstart/commands/ListGenericCommands +lib/X11/rstart/commands/x11 +lib/X11/rstart/commands/x +lib/X11/rstart/contexts/ +lib/X11/rstart/contexts/@List +lib/X11/rstart/contexts/default +lib/X11/rstart/contexts/x11r6 +lib/X11/rstart/contexts/x11 +lib/X11/rstart/contexts/x +lib/X11/twm/ +lib/X11/twm/system.twmrc +lib/X11/x11perfcomp/ +lib/X11/x11perfcomp/fillblnk +lib/X11/x11perfcomp/perfboth +lib/X11/x11perfcomp/perfratio +lib/X11/xdm/ +lib/X11/xdm/chooser +lib/X11/xkb/ +lib/X11/xkb/compiled/ +lib/X11/xkb/compiled/README +lib/X11/xkb/xkbcomp +lib/X11/xkb/compat.dir +lib/X11/xkb/compat/ +lib/X11/xkb/compat/accessx +lib/X11/xkb/compat/basic +lib/X11/xkb/compat/complete +lib/X11/xkb/compat/default +lib/X11/xkb/compat/group_led +lib/X11/xkb/compat/iso9995 +lib/X11/xkb/compat/japan +lib/X11/xkb/compat/keypad +lib/X11/xkb/compat/misc +lib/X11/xkb/compat/mousekeys +lib/X11/xkb/compat/norepeat +lib/X11/xkb/compat/pc +lib/X11/xkb/compat/pc98 +lib/X11/xkb/compat/xtest +lib/X11/xkb/geometry.dir +lib/X11/xkb/geometry/ +lib/X11/xkb/geometry/amiga +lib/X11/xkb/geometry/ataritt +lib/X11/xkb/geometry/dell +lib/X11/xkb/geometry/everex +lib/X11/xkb/geometry/fujitsu +lib/X11/xkb/geometry/keytronic +lib/X11/xkb/geometry/kinesis +lib/X11/xkb/geometry/macintosh +lib/X11/xkb/geometry/microsoft +lib/X11/xkb/geometry/nec +lib/X11/xkb/geometry/northgate +lib/X11/xkb/geometry/pc +lib/X11/xkb/geometry/sony +lib/X11/xkb/geometry/sun +lib/X11/xkb/geometry/winbook +lib/X11/xkb/geometry/digital/ +lib/X11/xkb/geometry/digital/lk +lib/X11/xkb/geometry/digital/pc +lib/X11/xkb/geometry/digital/unix +lib/X11/xkb/geometry/sgi/ +lib/X11/xkb/geometry/sgi/indy +lib/X11/xkb/geometry/sgi/indigo +lib/X11/xkb/geometry/sgi/O2 +lib/X11/xkb/keycodes.dir +lib/X11/xkb/keycodes/ +lib/X11/xkb/keycodes/amiga +lib/X11/xkb/keycodes/ataritt +lib/X11/xkb/keycodes/fujitsu +lib/X11/xkb/keycodes/hp +lib/X11/xkb/keycodes/ibm +lib/X11/xkb/keycodes/macintosh +lib/X11/xkb/keycodes/sony +lib/X11/xkb/keycodes/sun +lib/X11/xkb/keycodes/xfree86 +lib/X11/xkb/keycodes/xfree98 +lib/X11/xkb/keycodes/digital/ +lib/X11/xkb/keycodes/digital/lk +lib/X11/xkb/keycodes/digital/pc +lib/X11/xkb/keycodes/sgi/ +lib/X11/xkb/keycodes/sgi/indy +lib/X11/xkb/keycodes/sgi/indigo +lib/X11/xkb/keycodes/sgi/iris +lib/X11/xkb/keymap.dir +lib/X11/xkb/keymap/ +lib/X11/xkb/keymap/amiga +lib/X11/xkb/keymap/ataritt +lib/X11/xkb/keymap/macintosh +lib/X11/xkb/keymap/sony +lib/X11/xkb/keymap/xfree86 +lib/X11/xkb/keymap/xfree98 +lib/X11/xkb/keymap/digital/ +lib/X11/xkb/keymap/digital/us +lib/X11/xkb/keymap/sgi/ +lib/X11/xkb/keymap/sgi/be +lib/X11/xkb/keymap/sgi/bg +lib/X11/xkb/keymap/sgi/ca +lib/X11/xkb/keymap/sgi/cs +lib/X11/xkb/keymap/sgi/de +lib/X11/xkb/keymap/sgi/de_CH +lib/X11/xkb/keymap/sgi/dk +lib/X11/xkb/keymap/sgi/dvorak +lib/X11/xkb/keymap/sgi/en_US +lib/X11/xkb/keymap/sgi/es +lib/X11/xkb/keymap/sgi/fi +lib/X11/xkb/keymap/sgi/fr +lib/X11/xkb/keymap/sgi/fr_CH +lib/X11/xkb/keymap/sgi/gb +lib/X11/xkb/keymap/sgi/hu +lib/X11/xkb/keymap/sgi/it +lib/X11/xkb/keymap/sgi/jp +lib/X11/xkb/keymap/sgi/no +lib/X11/xkb/keymap/sgi/pl +lib/X11/xkb/keymap/sgi/pt +lib/X11/xkb/keymap/sgi/ru +lib/X11/xkb/keymap/sgi/se +lib/X11/xkb/keymap/sgi/th +lib/X11/xkb/keymap/sgi/us +lib/X11/xkb/keymap/sun/ +lib/X11/xkb/keymap/sun/de +lib/X11/xkb/keymap/sun/se +lib/X11/xkb/keymap/sun/us +lib/X11/xkb/semantics/ +lib/X11/xkb/semantics/basic +lib/X11/xkb/semantics/complete +lib/X11/xkb/semantics/default +lib/X11/xkb/semantics/xtest +lib/X11/xkb/symbols.dir +lib/X11/xkb/symbols/ +lib/X11/xkb/symbols/amiga +lib/X11/xkb/symbols/ataritt +lib/X11/xkb/symbols/be +lib/X11/xkb/symbols/bg +lib/X11/xkb/symbols/br +lib/X11/xkb/symbols/ca +lib/X11/xkb/symbols/ca_enhanced +lib/X11/xkb/symbols/cs +lib/X11/xkb/symbols/ctrl +lib/X11/xkb/symbols/de +lib/X11/xkb/symbols/de_CH +lib/X11/xkb/symbols/dk +lib/X11/xkb/symbols/dvorak +lib/X11/xkb/symbols/en_US +lib/X11/xkb/symbols/es +lib/X11/xkb/symbols/fi +lib/X11/xkb/symbols/fr +lib/X11/xkb/symbols/fr_CH +lib/X11/xkb/symbols/gb +lib/X11/xkb/symbols/group +lib/X11/xkb/symbols/hu +lib/X11/xkb/symbols/iso9995-3 +lib/X11/xkb/symbols/it +lib/X11/xkb/symbols/jp +lib/X11/xkb/symbols/keypad +lib/X11/xkb/symbols/lock +lib/X11/xkb/symbols/no +lib/X11/xkb/symbols/pc104 +lib/X11/xkb/symbols/pl +lib/X11/xkb/symbols/pt +lib/X11/xkb/symbols/ralt +lib/X11/xkb/symbols/ru +lib/X11/xkb/symbols/se +lib/X11/xkb/symbols/th +lib/X11/xkb/symbols/us +lib/X11/xkb/symbols/us_intl +lib/X11/xkb/symbols/czsk +lib/X11/xkb/symbols/is +lib/X11/xkb/symbols/digital/ +lib/X11/xkb/symbols/digital/lk +lib/X11/xkb/symbols/digital/pc +lib/X11/xkb/symbols/digital/us +lib/X11/xkb/symbols/digital/vt +lib/X11/xkb/symbols/fujitsu/ +lib/X11/xkb/symbols/fujitsu/jp +lib/X11/xkb/symbols/fujitsu/us +lib/X11/xkb/symbols/macintosh/ +lib/X11/xkb/symbols/macintosh/us +lib/X11/xkb/symbols/nec/ +lib/X11/xkb/symbols/nec/jp +lib/X11/xkb/symbols/sgi/ +lib/X11/xkb/symbols/sgi/jp +lib/X11/xkb/symbols/sony/ +lib/X11/xkb/symbols/sony/us +lib/X11/xkb/symbols/sun/ +lib/X11/xkb/symbols/sun/se +lib/X11/xkb/symbols/sun/us +lib/X11/xkb/types.dir +lib/X11/xkb/types/ +lib/X11/xkb/types/basic +lib/X11/xkb/types/cancel +lib/X11/xkb/types/nocancel +lib/X11/xkb/types/complete +lib/X11/xkb/types/default +lib/X11/xkb/types/mousekeys +lib/X11/xkb/types/iso9995 +lib/X11/xkb/types/pc +lib/X11/xkb/rules/ +lib/X11/xkb/rules/sgi +lib/X11/xkb/rules/xfree86 +lib/X11/xkb/rules/sgi.lst +lib/X11/xkb/rules/xfree86.lst +lib/X11/xkb/rules/xfree86-it.lst +lib/X11/xsm/ +lib/X11/xsm/system.xsm +lib/X11/xserver/ +lib/X11/xserver/SecurityPolicy +lib/X11/XF86Config.eg +lib/X11/Cards +lib/X11/etc/ +lib/X11/etc/sun.termcap +lib/X11/etc/sun.terminfo +lib/X11/etc/xterm.termcap +lib/X11/etc/xterm.terminfo +lib/X11/etc/et4000clock.c +lib/X11/etc/xmodmap.std +lib/X11/etc/postinst.sh +lib/X11/etc/preinst.sh +lib/X11/XF86Config.98 +lib/X11/Cards98 +lib/X11/lbxproxy/ +lib/X11/lbxproxy/AtomControl +lib/X11/xman.help +include/X11/bitmaps/ +include/X11/bitmaps/1x1 +include/X11/bitmaps/2x2 +include/X11/bitmaps/black +include/X11/bitmaps/boxes +include/X11/bitmaps/calculator +include/X11/bitmaps/cntr_ptr +include/X11/bitmaps/cntr_ptrmsk +include/X11/bitmaps/cross_weave +include/X11/bitmaps/dimple1 +include/X11/bitmaps/dimple3 +include/X11/bitmaps/dot +include/X11/bitmaps/dropbar7 +include/X11/bitmaps/dropbar8 +include/X11/bitmaps/escherknot +include/X11/bitmaps/flagdown +include/X11/bitmaps/flagup +include/X11/bitmaps/flipped_gray +include/X11/bitmaps/gray +include/X11/bitmaps/gray1 +include/X11/bitmaps/gray3 +include/X11/bitmaps/grid2 +include/X11/bitmaps/grid4 +include/X11/bitmaps/grid8 +include/X11/bitmaps/grid16 +include/X11/bitmaps/hlines2 +include/X11/bitmaps/hlines3 +include/X11/bitmaps/icon +include/X11/bitmaps/keyboard16 +include/X11/bitmaps/left_ptr +include/X11/bitmaps/left_ptrmsk +include/X11/bitmaps/letters +include/X11/bitmaps/light_gray +include/X11/bitmaps/mailempty +include/X11/bitmaps/mailemptymsk +include/X11/bitmaps/mailfull +include/X11/bitmaps/mailfullmsk +include/X11/bitmaps/mensetmanus +include/X11/bitmaps/menu6 +include/X11/bitmaps/menu8 +include/X11/bitmaps/menu10 +include/X11/bitmaps/menu12 +include/X11/bitmaps/menu16 +include/X11/bitmaps/noletters +include/X11/bitmaps/opendot +include/X11/bitmaps/opendotMask +include/X11/bitmaps/plaid +include/X11/bitmaps/right_ptr +include/X11/bitmaps/right_ptrmsk +include/X11/bitmaps/root_weave +include/X11/bitmaps/scales +include/X11/bitmaps/sipb +include/X11/bitmaps/star +include/X11/bitmaps/starMask +include/X11/bitmaps/stipple +include/X11/bitmaps/target +include/X11/bitmaps/vlines2 +include/X11/bitmaps/terminal +include/X11/bitmaps/tie_fighter +include/X11/bitmaps/vlines3 +include/X11/bitmaps/weird_size +include/X11/bitmaps/wide_weave +include/X11/bitmaps/wingdogs +include/X11/bitmaps/woman +include/X11/bitmaps/xfd_icon +include/X11/bitmaps/xlogo11 +include/X11/bitmaps/xlogo16 +include/X11/bitmaps/xlogo32 +include/X11/bitmaps/xlogo64 +include/X11/bitmaps/xsnow +include/X11/bitmaps/Dashes +include/X11/bitmaps/Down +include/X11/bitmaps/Excl +include/X11/bitmaps/FlipHoriz +include/X11/bitmaps/FlipVert +include/X11/bitmaps/Fold +include/X11/bitmaps/Left +include/X11/bitmaps/Right +include/X11/bitmaps/RotateLeft +include/X11/bitmaps/RotateRight +include/X11/bitmaps/Stipple +include/X11/bitmaps/Term +include/X11/bitmaps/Up +include/X11/bitmaps/black6 +include/X11/bitmaps/box6 diff --git a/release/scripts/X11/plists/i386/Xlk98.tgz.plist b/release/scripts/X11/plists/i386/Xlk98.tgz.plist new file mode 100644 index 000000000000..75200aa3fb97 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xlk98.tgz.plist @@ -0,0 +1,618 @@ +lib/Server/ +lib/Server/include/ +lib/Server/include/X11/ +lib/Server/include/X11/X.h +lib/Server/include/X11/Xalloca.h +lib/Server/include/X11/Xfuncproto.h +lib/Server/include/X11/Xfuncs.h +lib/Server/include/X11/Xmd.h +lib/Server/include/X11/Xos.h +lib/Server/include/X11/Xosdefs.h +lib/Server/include/X11/Xproto.h +lib/Server/include/X11/Xprotostr.h +lib/Server/include/X11/extensions/ +lib/Server/include/X11/extensions/saver.h +lib/Server/include/X11/extensions/saverproto.h +lib/Server/include/X11/extensions/scrnsaver.h +lib/Server/include/X11/extensions/xf86vmode.h +lib/Server/include/X11/extensions/xf86vmstr.h +lib/Server/include/X11/extensions/xf86dga.h +lib/Server/include/X11/extensions/xf86dgastr.h +lib/Server/include/X11/extensions/xf86misc.h +lib/Server/include/X11/extensions/xf86mscstr.h +lib/Server/include/X11/extensions/lbxbuf.h +lib/Server/include/X11/extensions/lbxbufstr.h +lib/Server/include/X11/extensions/lbxdeltastr.h +lib/Server/include/X11/extensions/lbximage.h +lib/Server/include/X11/extensions/lbxopts.h +lib/Server/include/X11/extensions/lbxstr.h +lib/Server/include/X11/extensions/lbxzlib.h +lib/Server/include/X11/extensions/dpms.h +lib/Server/include/X11/extensions/dpmsstr.h +lib/Server/include/fontstruct.h +lib/Server/include/font.h +lib/Server/include/fsmasks.h +lib/Server/include/closure.h +lib/Server/include/colormap.h +lib/Server/include/colormapst.h +lib/Server/include/cursor.h +lib/Server/include/cursorstr.h +lib/Server/include/dix.h +lib/Server/include/dixfont.h +lib/Server/include/dixfontstr.h +lib/Server/include/dixstruct.h +lib/Server/include/extension.h +lib/Server/include/extnsionst.h +lib/Server/include/gc.h +lib/Server/include/gcstruct.h +lib/Server/include/input.h +lib/Server/include/inputstr.h +lib/Server/include/misc.h +lib/Server/include/miscstruct.h +lib/Server/include/opaque.h +lib/Server/include/os.h +lib/Server/include/pixmap.h +lib/Server/include/pixmapstr.h +lib/Server/include/property.h +lib/Server/include/resource.h +lib/Server/include/region.h +lib/Server/include/regionstr.h +lib/Server/include/screenint.h +lib/Server/include/scrnintstr.h +lib/Server/include/servermd.h +lib/Server/include/site.h +lib/Server/include/validate.h +lib/Server/include/window.h +lib/Server/include/windowstr.h +lib/Server/include/mi.h +lib/Server/include/mibstore.h +lib/Server/include/miline.h +lib/Server/include/mipointer.h +lib/Server/include/misprite.h +lib/Server/include/mispritest.h +lib/Server/include/mistruct.h +lib/Server/include/fastblt.h +lib/Server/include/mfb.h +lib/Server/include/mergerop.h +lib/Server/include/cfb.h +lib/Server/include/cfb8bit.h +lib/Server/include/cfbmap.h +lib/Server/include/cfbmskbits.h +lib/Server/include/xf86.h +lib/Server/include/cfbrrop.h +lib/Server/include/xf86Version.h +lib/Server/include/assyntax.h +lib/Server/include/xf86_OSlib.h +lib/Server/include/xf86_OSproc.h +lib/Server/include/xf86ExtInit.h +lib/Server/include/xf86Priv.h +lib/Server/include/xf86Procs.h +lib/Server/include/xf86_Option.h +lib/Server/include/xf86_Config.h +lib/Server/include/xf86DCConf.h +lib/Server/include/compiler.h +lib/Server/include/cfb16.h +lib/Server/include/cfb24.h +lib/Server/include/cfb32.h +lib/Server/include/xf86_HWlib.h +lib/Server/include/xf86_PCI.h +lib/Server/include/xf86cursor.h +lib/Server/include/xf86expblt.h +lib/Server/include/xf86local.h +lib/Server/include/xf86scrin.h +lib/Server/include/xf86xaa.h +lib/Server/config/ +lib/Server/config/cf/ +lib/Server/config/cf/Imake.rules +lib/Server/config/cf/Motif.rules +lib/Server/config/cf/Win32.rules +lib/Server/config/cf/X11.rules +lib/Server/config/cf/bsdLib.rules +lib/Server/config/cf/cde.rules +lib/Server/config/cf/gnuLib.rules +lib/Server/config/cf/hpLib.rules +lib/Server/config/cf/ibmLib.rules +lib/Server/config/cf/lnxLib.rules +lib/Server/config/cf/lnxdoc.rules +lib/Server/config/cf/necLib.rules +lib/Server/config/cf/noop.rules +lib/Server/config/cf/nto.rules +lib/Server/config/cf/oldlib.rules +lib/Server/config/cf/os2.rules +lib/Server/config/cf/os2Lib.rules +lib/Server/config/cf/osfLib.rules +lib/Server/config/cf/scoLib.rules +lib/Server/config/cf/sgiLib.rules +lib/Server/config/cf/sunLib.rules +lib/Server/config/cf/QNX.rules +lib/Server/config/cf/sv3Lib.rules +lib/Server/config/cf/sv4Lib.rules +lib/Server/config/cf/xf86.rules +lib/Server/config/cf/Imake.tmpl +lib/Server/config/cf/Library.tmpl +lib/Server/config/cf/Motif.tmpl +lib/Server/config/cf/Server.tmpl +lib/Server/config/cf/ServerLib.tmpl +lib/Server/config/cf/Threads.tmpl +lib/Server/config/cf/WinLib.tmpl +lib/Server/config/cf/X11.tmpl +lib/Server/config/cf/bsdLib.tmpl +lib/Server/config/cf/cde.tmpl +lib/Server/config/cf/hpLib.tmpl +lib/Server/config/cf/gnuLib.tmpl +lib/Server/config/cf/ibmLib.tmpl +lib/Server/config/cf/lnxLib.tmpl +lib/Server/config/cf/lnxdoc.tmpl +lib/Server/config/cf/necLib.tmpl +lib/Server/config/cf/os2Lib.tmpl +lib/Server/config/cf/osfLib.tmpl +lib/Server/config/cf/sgiLib.tmpl +lib/Server/config/cf/sunLib.tmpl +lib/Server/config/cf/sv3Lib.tmpl +lib/Server/config/cf/sv4Lib.tmpl +lib/Server/config/cf/xf86.tmpl +lib/Server/config/cf/xf86site.def +lib/Server/config/cf/site.def +lib/Server/config/cf/Imake.cf +lib/Server/config/cf/Amoeba.cf +lib/Server/config/cf/DGUX.cf +lib/Server/config/cf/FreeBSD.cf +lib/Server/config/cf/Mips.cf +lib/Server/config/cf/NetBSD.cf +lib/Server/config/cf/OpenBSD.cf +lib/Server/config/cf/Oki.cf +lib/Server/config/cf/Win32.cf +lib/Server/config/cf/apollo.cf +lib/Server/config/cf/bsd.cf +lib/Server/config/cf/bsdi.cf +lib/Server/config/cf/convex.cf +lib/Server/config/cf/cray.cf +lib/Server/config/cf/fujitsu.cf +lib/Server/config/cf/generic.cf +lib/Server/config/cf/gnu.cf +lib/Server/config/cf/hp.cf +lib/Server/config/cf/ibm.cf +lib/Server/config/cf/isc.cf +lib/Server/config/cf/linux.cf +lib/Server/config/cf/luna.cf +lib/Server/config/cf/macII.cf +lib/Server/config/cf/mach.cf +lib/Server/config/cf/minix.cf +lib/Server/config/cf/moto.cf +lib/Server/config/cf/ncr.cf +lib/Server/config/cf/nec.cf +lib/Server/config/cf/nto.cf +lib/Server/config/cf/os2.cf +lib/Server/config/cf/osf1.cf +lib/Server/config/cf/pegasus.cf +lib/Server/config/cf/sco.cf +lib/Server/config/cf/sco5.cf +lib/Server/config/cf/sequent.cf +lib/Server/config/cf/sgi.cf +lib/Server/config/cf/sony.cf +lib/Server/config/cf/sun.cf +lib/Server/config/cf/svr3.cf +lib/Server/config/cf/svr4.cf +lib/Server/config/cf/ultrix.cf +lib/Server/config/cf/usl.cf +lib/Server/config/cf/lynx.cf +lib/Server/config/cf/x386.cf +lib/Server/config/cf/QNX.cf +lib/Server/config/cf/xfree86.cf +lib/Server/config/cf/host.def +lib/Server/config/imake/ +lib/Server/config/imake/imake +lib/Server/config/makedepend/ +lib/Server/config/makedepend/makedepend +lib/Server/config/util/ +lib/Server/config/util/mkdirhier.sh +lib/Server/config/util/gccmakedep +lib/Server/lib/ +lib/Server/lib/libXau.a +lib/Server/lib/libXdmcp.a +lib/Server/lib/liblbxutil.a +lib/Server/lib/libfont.a +lib/Server/lib/libdix.a +lib/Server/lib/libxpstubs.a +lib/Server/lib/libos.a +lib/Server/lib/libmi.a +lib/Server/lib/libcbrt.a +lib/Server/lib/libprinter.a +lib/Server/lib/ddxInit.o +lib/Server/lib/libpcl.a +lib/Server/lib/libps.a +lib/Server/lib/libext.a +lib/Server/lib/libxkb.a +lib/Server/lib/libxinput.a +lib/Server/lib/libdixie.a +lib/Server/lib/libmixie.a +lib/Server/lib/libdidipex.a +lib/Server/lib/libdiswapex.a +lib/Server/lib/libdiobpex.a +lib/Server/lib/libddpex1.a +lib/Server/lib/libddpex2.a +lib/Server/lib/xaa8.o +lib/Server/lib/libddpex3.a +lib/Server/lib/libddpex4.a +lib/Server/lib/libddpexs.a +lib/Server/lib/libospex.a +lib/Server/lib/libServerGlx.a +lib/Server/lib/liblbx.a +lib/Server/lib/libdbe.a +lib/Server/lib/librecord.a +lib/Server/lib/libmfb.a +lib/Server/lib/libcfb.a +lib/Server/lib/libcfb16.a +lib/Server/lib/libcfb24.a +lib/Server/lib/libcfb32.a +lib/Server/lib/libxaa.a +lib/Server/lib/xaavga256.o +lib/Server/lib/xaa16.o +lib/Server/lib/xaa24.o +lib/Server/lib/xaa32.o +lib/Server/lib/libxf86cache.a +lib/Server/lib/libxnest.a +lib/Server/miinitext.c +lib/Server/xf86_Option.c +lib/Server/XF86_SVGA.c +lib/Server/XF86_VGA16.c +lib/Server/XF86_S3.c +lib/Server/XF86_GLINT.c +lib/Server/cvga16.sh +lib/Server/cvga256.sh +lib/Server/VGADriverDoc/ +lib/Server/VGADriverDoc/vgaHW.c +lib/Server/VGADriverDoc/VGADriver.Doc +lib/Server/VGADriverDoc/Imakefile.stub +lib/Server/VGADriverDoc/stub_driver.c +lib/Server/VGADriverDoc/stub_bank.s +lib/Server/confS3.sh +lib/Server/confS3V.sh +lib/Server/LinkKit.tmpl +lib/Server/Imakefile +lib/Server/xf86site.def +lib/Server/mkmf +lib/Server/README +lib/Server/lib98/ +lib/Server/lib98/libxf86_os.a +lib/Server/lib98/libxf86.a +lib/Server/lib98/xf86Init.o +lib/Server/lib98/xf86Init_m.o +lib/Server/lib98/libxf86_hwgen.a +lib/Server/lib98/libxf86_hwnec.a +lib/Server/lib98/libxf86_hwpwskb.a +lib/Server/lib98/libxf86_hwpwlb.a +lib/Server/lib98/libxf86_hwga968.a +lib/Server/drivers98/ +lib/Server/drivers98/libvga16.a +lib/Server/drivers98/vga16/ +lib/Server/drivers98/vga16/Imakefile +lib/Server/drivers98/vga16/generic/ +lib/Server/drivers98/vga16/generic/Imakefile +lib/Server/drivers98/vga16/generic/gen_driver.c +lib/Server/drivers98/vga16misc.o +lib/Server/drivers98/libganbwap.a +lib/Server/drivers98/libnec480.a +lib/Server/drivers98/libnkvnec.a +lib/Server/drivers98/libtrident.a +lib/Server/drivers98/libmga.a +lib/Server/drivers98/libvga256.a +lib/Server/drivers98/libwabep.a +lib/Server/drivers98/libwabs.a +lib/Server/drivers98/libwsna.a +lib/Server/drivers98/vga.h +lib/Server/drivers98/vga256.h +lib/Server/drivers98/vgaBank.h +lib/Server/drivers98/vgaFasm.h +lib/Server/drivers98/vgaPCI.h +lib/Server/drivers98/vga256/ +lib/Server/drivers98/vga256/Imakefile +lib/Server/drivers98/vga256/ganbwap/ +lib/Server/drivers98/vga256/ganbwap/cir_driver.c +lib/Server/drivers98/vga256/ganbwap/cir_driver.h +lib/Server/drivers98/vga256/ganbwap/cir_bank.s +lib/Server/drivers98/vga256/ganbwap/cir_fill.c +lib/Server/drivers98/vga256/ganbwap/cir_im.c +lib/Server/drivers98/vga256/ganbwap/cir_blt.c +lib/Server/drivers98/vga256/ganbwap/cir_bltC.c +lib/Server/drivers98/vga256/ganbwap/cir_imblt.s +lib/Server/drivers98/vga256/ganbwap/cir_textblt.s +lib/Server/drivers98/vga256/ganbwap/cir_span.s +lib/Server/drivers98/vga256/ganbwap/cir_colexp.c +lib/Server/drivers98/vga256/ganbwap/cirFillSt.c +lib/Server/drivers98/vga256/ganbwap/cir_solid.c +lib/Server/drivers98/vga256/ganbwap/cir_teblt8.c +lib/Server/drivers98/vga256/ganbwap/cirFillRct.c +lib/Server/drivers98/vga256/ganbwap/cir_cursor.c +lib/Server/drivers98/vga256/ganbwap/cir_blitter.c +lib/Server/drivers98/vga256/ganbwap/cir_blitLG.c +lib/Server/drivers98/vga256/ganbwap/cir_fillLG.c +lib/Server/drivers98/vga256/ganbwap/cir_alloc.c +lib/Server/drivers98/vga256/ganbwap/cir_blt16.c +lib/Server/drivers98/vga256/ganbwap/cir_line.c +lib/Server/drivers98/vga256/ganbwap/cir_orect.c +lib/Server/drivers98/vga256/ganbwap/cirBlitter.h +lib/Server/drivers98/vga256/ganbwap/cir_span.h +lib/Server/drivers98/vga256/ganbwap/cir_alloc.h +lib/Server/drivers98/vga256/ganbwap/cirBlitMM.h +lib/Server/drivers98/vga256/ganbwap/cir_blitLG.h +lib/Server/drivers98/vga256/ganbwap/cir_inline.h +lib/Server/drivers98/vga256/ganbwap/cirrus_acl.c +lib/Server/drivers98/vga256/ganbwap/laguna_acl.c +lib/Server/drivers98/vga256/ganbwap/Imakefile +lib/Server/drivers98/vga256/ganbwap/linearline.c +lib/Server/drivers98/vga256/ganbwap/linearline.h +lib/Server/drivers98/vga256/ganbwap/cir_pc98.c +lib/Server/drivers98/vga256/nec480/ +lib/Server/drivers98/vga256/nec480/nec480_dr.c +lib/Server/drivers98/vga256/nec480/bank.s +lib/Server/drivers98/vga256/nec480/Imakefile +lib/Server/drivers98/vga256/nkvnec/ +lib/Server/drivers98/vga256/nkvnec/cir_driver.c +lib/Server/drivers98/vga256/nkvnec/cir_driver.h +lib/Server/drivers98/vga256/nkvnec/cir_bank.s +lib/Server/drivers98/vga256/nkvnec/cir_fill.c +lib/Server/drivers98/vga256/nkvnec/cir_im.c +lib/Server/drivers98/vga256/nkvnec/cir_blt.c +lib/Server/drivers98/vga256/nkvnec/cir_bltC.c +lib/Server/drivers98/vga256/nkvnec/cir_imblt.s +lib/Server/drivers98/vga256/nkvnec/cir_textblt.s +lib/Server/drivers98/vga256/nkvnec/cir_span.s +lib/Server/drivers98/vga256/nkvnec/cir_colexp.c +lib/Server/drivers98/vga256/nkvnec/cirFillSt.c +lib/Server/drivers98/vga256/nkvnec/cir_solid.c +lib/Server/drivers98/vga256/nkvnec/cir_teblt8.c +lib/Server/drivers98/vga256/nkvnec/cirFillRct.c +lib/Server/drivers98/vga256/nkvnec/cir_cursor.c +lib/Server/drivers98/vga256/nkvnec/cir_blitter.c +lib/Server/drivers98/vga256/nkvnec/cir_blitLG.c +lib/Server/drivers98/vga256/nkvnec/cir_fillLG.c +lib/Server/drivers98/vga256/nkvnec/cir_alloc.c +lib/Server/drivers98/vga256/nkvnec/cir_blt16.c +lib/Server/drivers98/vga256/nkvnec/cir_line.c +lib/Server/drivers98/vga256/nkvnec/cir_orect.c +lib/Server/drivers98/vga256/nkvnec/cirBlitter.h +lib/Server/drivers98/vga256/nkvnec/cir_span.h +lib/Server/drivers98/vga256/nkvnec/cir_alloc.h +lib/Server/drivers98/vga256/nkvnec/cirBlitMM.h +lib/Server/drivers98/vga256/nkvnec/cir_blitLG.h +lib/Server/drivers98/vga256/nkvnec/cir_inline.h +lib/Server/drivers98/vga256/nkvnec/cirrus_acl.c +lib/Server/drivers98/vga256/nkvnec/laguna_acl.c +lib/Server/drivers98/vga256/nkvnec/Imakefile +lib/Server/drivers98/vga256/nkvnec/linearline.c +lib/Server/drivers98/vga256/nkvnec/linearline.h +lib/Server/drivers98/vga256/nkvnec/cir_pc98.c +lib/Server/drivers98/vga256/wabs/ +lib/Server/drivers98/vga256/wabs/cir_driver.c +lib/Server/drivers98/vga256/wabs/cir_driver.h +lib/Server/drivers98/vga256/wabs/cir_bank.s +lib/Server/drivers98/vga256/wabs/cir_fill.c +lib/Server/drivers98/vga256/wabs/cir_im.c +lib/Server/drivers98/vga256/wabs/cir_blt.c +lib/Server/drivers98/vga256/wabs/cir_bltC.c +lib/Server/drivers98/vga256/wabs/cir_imblt.s +lib/Server/drivers98/vga256/wabs/cir_textblt.s +lib/Server/drivers98/vga256/wabs/cir_span.s +lib/Server/drivers98/vga256/wabs/cir_colexp.c +lib/Server/drivers98/vga256/wabs/cirFillSt.c +lib/Server/drivers98/vga256/wabs/cir_solid.c +lib/Server/drivers98/vga256/wabs/cir_teblt8.c +lib/Server/drivers98/vga256/wabs/cirFillRct.c +lib/Server/drivers98/vga256/wabs/cir_cursor.c +lib/Server/drivers98/vga256/wabs/cir_blitter.c +lib/Server/drivers98/vga256/wabs/cir_blitLG.c +lib/Server/drivers98/vga256/wabs/cir_fillLG.c +lib/Server/drivers98/vga256/wabs/cir_alloc.c +lib/Server/drivers98/vga256/wabs/cir_blt16.c +lib/Server/drivers98/vga256/wabs/cir_line.c +lib/Server/drivers98/vga256/wabs/cir_orect.c +lib/Server/drivers98/vga256/wabs/cirBlitter.h +lib/Server/drivers98/vga256/wabs/cir_span.h +lib/Server/drivers98/vga256/wabs/cir_alloc.h +lib/Server/drivers98/vga256/wabs/cirBlitMM.h +lib/Server/drivers98/vga256/wabs/cir_blitLG.h +lib/Server/drivers98/vga256/wabs/cir_inline.h +lib/Server/drivers98/vga256/wabs/cirrus_acl.c +lib/Server/drivers98/vga256/wabs/laguna_acl.c +lib/Server/drivers98/vga256/wabs/Imakefile +lib/Server/drivers98/vga256/wabs/linearline.c +lib/Server/drivers98/vga256/wabs/linearline.h +lib/Server/drivers98/vga256/wabs/cir_pc98.c +lib/Server/drivers98/vga256/wabep/ +lib/Server/drivers98/vga256/wabep/cir_driver.c +lib/Server/drivers98/vga256/wabep/cir_driver.h +lib/Server/drivers98/vga256/wabep/cir_bank.s +lib/Server/drivers98/vga256/wabep/cir_fill.c +lib/Server/drivers98/vga256/wabep/cir_im.c +lib/Server/drivers98/vga256/wabep/cir_blt.c +lib/Server/drivers98/vga256/wabep/cir_bltC.c +lib/Server/drivers98/vga256/wabep/cir_imblt.s +lib/Server/drivers98/vga256/wabep/cir_textblt.s +lib/Server/drivers98/vga256/wabep/cir_span.s +lib/Server/drivers98/vga256/wabep/cir_colexp.c +lib/Server/drivers98/vga256/wabep/cirFillSt.c +lib/Server/drivers98/vga256/wabep/cir_solid.c +lib/Server/drivers98/vga256/wabep/cir_teblt8.c +lib/Server/drivers98/vga256/wabep/cirFillRct.c +lib/Server/drivers98/vga256/wabep/cir_cursor.c +lib/Server/drivers98/vga256/wabep/cir_blitter.c +lib/Server/drivers98/vga256/wabep/cir_blitLG.c +lib/Server/drivers98/vga256/wabep/cir_fillLG.c +lib/Server/drivers98/vga256/wabep/cir_alloc.c +lib/Server/drivers98/vga256/wabep/cir_blt16.c +lib/Server/drivers98/vga256/wabep/cir_line.c +lib/Server/drivers98/vga256/wabep/cir_orect.c +lib/Server/drivers98/vga256/wabep/cirBlitter.h +lib/Server/drivers98/vga256/wabep/cir_span.h +lib/Server/drivers98/vga256/wabep/cir_alloc.h +lib/Server/drivers98/vga256/wabep/cirBlitMM.h +lib/Server/drivers98/vga256/wabep/cir_blitLG.h +lib/Server/drivers98/vga256/wabep/cir_inline.h +lib/Server/drivers98/vga256/wabep/cirrus_acl.c +lib/Server/drivers98/vga256/wabep/laguna_acl.c +lib/Server/drivers98/vga256/wabep/Imakefile +lib/Server/drivers98/vga256/wabep/linearline.c +lib/Server/drivers98/vga256/wabep/linearline.h +lib/Server/drivers98/vga256/wabep/cir_pc98.c +lib/Server/drivers98/vga256/wsna/ +lib/Server/drivers98/vga256/wsna/cir_driver.c +lib/Server/drivers98/vga256/wsna/cir_driver.h +lib/Server/drivers98/vga256/wsna/cir_bank.s +lib/Server/drivers98/vga256/wsna/cir_fill.c +lib/Server/drivers98/vga256/wsna/cir_im.c +lib/Server/drivers98/vga256/wsna/cir_blt.c +lib/Server/drivers98/vga256/wsna/cir_bltC.c +lib/Server/drivers98/vga256/wsna/cir_imblt.s +lib/Server/drivers98/vga256/wsna/cir_textblt.s +lib/Server/drivers98/vga256/wsna/cir_span.s +lib/Server/drivers98/vga256/wsna/cir_colexp.c +lib/Server/drivers98/vga256/wsna/cirFillSt.c +lib/Server/drivers98/vga256/wsna/cir_solid.c +lib/Server/drivers98/vga256/wsna/cir_teblt8.c +lib/Server/drivers98/vga256/wsna/cirFillRct.c +lib/Server/drivers98/vga256/wsna/cir_cursor.c +lib/Server/drivers98/vga256/wsna/cir_blitter.c +lib/Server/drivers98/vga256/wsna/cir_blitLG.c +lib/Server/drivers98/vga256/wsna/cir_fillLG.c +lib/Server/drivers98/vga256/wsna/cir_alloc.c +lib/Server/drivers98/vga256/wsna/cir_blt16.c +lib/Server/drivers98/vga256/wsna/cir_line.c +lib/Server/drivers98/vga256/wsna/cir_orect.c +lib/Server/drivers98/vga256/wsna/cirBlitter.h +lib/Server/drivers98/vga256/wsna/cir_span.h +lib/Server/drivers98/vga256/wsna/cir_alloc.h +lib/Server/drivers98/vga256/wsna/cirBlitMM.h +lib/Server/drivers98/vga256/wsna/cir_blitLG.h +lib/Server/drivers98/vga256/wsna/cir_inline.h +lib/Server/drivers98/vga256/wsna/cirrus_acl.c +lib/Server/drivers98/vga256/wsna/laguna_acl.c +lib/Server/drivers98/vga256/wsna/Imakefile +lib/Server/drivers98/vga256/wsna/linearline.c +lib/Server/drivers98/vga256/wsna/linearline.h +lib/Server/drivers98/vga256/wsna/cir_pc98.c +lib/Server/drivers98/vga256/trident/ +lib/Server/drivers98/vga256/trident/t89_driver.c +lib/Server/drivers98/vga256/trident/t89_driver.h +lib/Server/drivers98/vga256/trident/bank.s +lib/Server/drivers98/vga256/trident/tgui_curs.c +lib/Server/drivers98/vga256/trident/tgui_accel.c +lib/Server/drivers98/vga256/trident/tgui_oldacl.c +lib/Server/drivers98/vga256/trident/tgui_drv.h +lib/Server/drivers98/vga256/trident/tgui_ger.h +lib/Server/drivers98/vga256/trident/tgui_mmio.h +lib/Server/drivers98/vga256/trident/Imakefile +lib/Server/drivers98/vga256/trident/pc98_tgui.h +lib/Server/drivers98/vga256/trident/pc98_tgui.c +lib/Server/drivers98/vga256/mga/ +lib/Server/drivers98/vga256/mga/mga.h +lib/Server/drivers98/vga256/mga/mga_bios.h +lib/Server/drivers98/vga256/mga/mga_reg.h +lib/Server/drivers98/vga256/mga/mga_driver.c +lib/Server/drivers98/vga256/mga/mga_hwcurs.c +lib/Server/drivers98/vga256/mga/mga_storm.c +lib/Server/drivers98/vga256/mga/mga_map.h +lib/Server/drivers98/vga256/mga/mga_macros.h +lib/Server/drivers98/vga256/mga/mga_dac3026.c +lib/Server/drivers98/vga256/mga/mga_dac1064.c +lib/Server/drivers98/vga256/mga/mga_dacG200.c +lib/Server/drivers98/vga256/mga/mga_xaarepl.c +lib/Server/drivers98/vga256/mga/Imakefile +lib/Server/drivers98/vga256/svga/ +lib/Server/drivers98/vga256/svga/cir_driver.c +lib/Server/drivers98/vga256/svga/cir_driver.h +lib/Server/drivers98/vga256/svga/cir_bank.s +lib/Server/drivers98/vga256/svga/cir_fill.c +lib/Server/drivers98/vga256/svga/cir_im.c +lib/Server/drivers98/vga256/svga/cir_blt.c +lib/Server/drivers98/vga256/svga/cir_bltC.c +lib/Server/drivers98/vga256/svga/cir_imblt.s +lib/Server/drivers98/vga256/svga/cir_textblt.s +lib/Server/drivers98/vga256/svga/cir_span.s +lib/Server/drivers98/vga256/svga/cir_colexp.c +lib/Server/drivers98/vga256/svga/cirFillSt.c +lib/Server/drivers98/vga256/svga/cir_solid.c +lib/Server/drivers98/vga256/svga/cir_teblt8.c +lib/Server/drivers98/vga256/svga/cirFillRct.c +lib/Server/drivers98/vga256/svga/cir_cursor.c +lib/Server/drivers98/vga256/svga/cir_blitter.c +lib/Server/drivers98/vga256/svga/cir_blitLG.c +lib/Server/drivers98/vga256/svga/cir_fillLG.c +lib/Server/drivers98/vga256/svga/cir_alloc.c +lib/Server/drivers98/vga256/svga/cir_blt16.c +lib/Server/drivers98/vga256/svga/cir_line.c +lib/Server/drivers98/vga256/svga/cir_orect.c +lib/Server/drivers98/vga256/svga/cirBlitter.h +lib/Server/drivers98/vga256/svga/cir_span.h +lib/Server/drivers98/vga256/svga/cir_alloc.h +lib/Server/drivers98/vga256/svga/cirBlitMM.h +lib/Server/drivers98/vga256/svga/cir_blitLG.h +lib/Server/drivers98/vga256/svga/cir_inline.h +lib/Server/drivers98/vga256/svga/cirrus_acl.c +lib/Server/drivers98/vga256/svga/laguna_acl.c +lib/Server/drivers98/vga256/svga/Imakefile +lib/Server/drivers98/vga256/svga/linearline.c +lib/Server/drivers98/vga256/svga/linearline.h +lib/Server/drivers98/vga256/svga/cir_pc98.c +lib/Server/drivers98/libs3nec.a +lib/Server/drivers98/s3.h +lib/Server/drivers98/regs3.h +lib/Server/drivers98/newmmio.h +lib/Server/drivers98/libs3necnewmmio.a +lib/Server/drivers98/libs3necmmio.a +lib/Server/drivers98/s3nec/ +lib/Server/drivers98/s3nec/Imakefile +lib/Server/drivers98/s3nec/newmmio/ +lib/Server/drivers98/s3nec/newmmio/Imakefile +lib/Server/drivers98/s3nec/newmmio/newmmio.c +lib/Server/drivers98/s3nec/mmio_928/ +lib/Server/drivers98/s3nec/mmio_928/Imakefile +lib/Server/drivers98/s3nec/mmio_928/mmio_928.c +lib/Server/drivers98/s3nec/s3_generic/ +lib/Server/drivers98/s3nec/s3_generic/s3_generic.c +lib/Server/drivers98/s3nec/s3_generic/Imakefile +lib/Server/drivers98/libs3pwskb.a +lib/Server/drivers98/libs3pwskbnewmmio.a +lib/Server/drivers98/libs3pwskbmmio.a +lib/Server/drivers98/s3pwskb/ +lib/Server/drivers98/s3pwskb/Imakefile +lib/Server/drivers98/s3pwskb/newmmio/ +lib/Server/drivers98/s3pwskb/newmmio/Imakefile +lib/Server/drivers98/s3pwskb/newmmio/newmmio.c +lib/Server/drivers98/s3pwskb/mmio_928/ +lib/Server/drivers98/s3pwskb/mmio_928/Imakefile +lib/Server/drivers98/s3pwskb/mmio_928/mmio_928.c +lib/Server/drivers98/s3pwskb/s3_generic/ +lib/Server/drivers98/s3pwskb/s3_generic/s3_generic.c +lib/Server/drivers98/s3pwskb/s3_generic/Imakefile +lib/Server/drivers98/libs3pwlb.a +lib/Server/drivers98/libs3pwlbnewmmio.a +lib/Server/drivers98/libs3pwlbmmio.a +lib/Server/drivers98/s3pwlb/ +lib/Server/drivers98/s3pwlb/Imakefile +lib/Server/drivers98/s3pwlb/newmmio/ +lib/Server/drivers98/s3pwlb/newmmio/Imakefile +lib/Server/drivers98/s3pwlb/newmmio/newmmio.c +lib/Server/drivers98/s3pwlb/mmio_928/ +lib/Server/drivers98/s3pwlb/mmio_928/Imakefile +lib/Server/drivers98/s3pwlb/mmio_928/mmio_928.c +lib/Server/drivers98/s3pwlb/s3_generic/ +lib/Server/drivers98/s3pwlb/s3_generic/s3_generic.c +lib/Server/drivers98/s3pwlb/s3_generic/Imakefile +lib/Server/drivers98/libs3ga968.a +lib/Server/drivers98/libs3ga968newmmio.a +lib/Server/drivers98/libs3ga968mmio.a +lib/Server/drivers98/s3ga968/ +lib/Server/drivers98/s3ga968/Imakefile +lib/Server/drivers98/s3ga968/newmmio/ +lib/Server/drivers98/s3ga968/newmmio/Imakefile +lib/Server/drivers98/s3ga968/newmmio/newmmio.c +lib/Server/drivers98/s3ga968/mmio_928/ +lib/Server/drivers98/s3ga968/mmio_928/Imakefile +lib/Server/drivers98/s3ga968/mmio_928/mmio_928.c +lib/Server/drivers98/s3ga968/s3_generic/ +lib/Server/drivers98/s3ga968/s3_generic/s3_generic.c +lib/Server/drivers98/s3ga968/s3_generic/Imakefile +lib/Server/cnec480.sh +lib/Server/ctgui.sh +lib/Server/cmga.sh diff --git a/release/scripts/X11/plists/i386/Xlkit.tgz.plist b/release/scripts/X11/plists/i386/Xlkit.tgz.plist new file mode 100644 index 000000000000..ee1b8eae894d --- /dev/null +++ b/release/scripts/X11/plists/i386/Xlkit.tgz.plist @@ -0,0 +1,854 @@ +lib/Server/ +lib/Server/include/ +lib/Server/include/X11/ +lib/Server/include/X11/X.h +lib/Server/include/X11/Xalloca.h +lib/Server/include/X11/Xfuncproto.h +lib/Server/include/X11/Xfuncs.h +lib/Server/include/X11/Xmd.h +lib/Server/include/X11/Xos.h +lib/Server/include/X11/Xosdefs.h +lib/Server/include/X11/Xproto.h +lib/Server/include/X11/Xprotostr.h +lib/Server/include/X11/extensions/ +lib/Server/include/X11/extensions/saver.h +lib/Server/include/X11/extensions/saverproto.h +lib/Server/include/X11/extensions/scrnsaver.h +lib/Server/include/X11/extensions/xf86vmode.h +lib/Server/include/X11/extensions/xf86vmstr.h +lib/Server/include/X11/extensions/xf86dga.h +lib/Server/include/X11/extensions/xf86dgastr.h +lib/Server/include/X11/extensions/xf86misc.h +lib/Server/include/X11/extensions/xf86mscstr.h +lib/Server/include/X11/extensions/lbxbuf.h +lib/Server/include/X11/extensions/lbxbufstr.h +lib/Server/include/X11/extensions/lbxdeltastr.h +lib/Server/include/X11/extensions/lbximage.h +lib/Server/include/X11/extensions/lbxopts.h +lib/Server/include/X11/extensions/lbxstr.h +lib/Server/include/X11/extensions/lbxzlib.h +lib/Server/include/X11/extensions/dpms.h +lib/Server/include/X11/extensions/dpmsstr.h +lib/Server/include/fontstruct.h +lib/Server/include/font.h +lib/Server/include/fsmasks.h +lib/Server/include/closure.h +lib/Server/include/colormap.h +lib/Server/include/colormapst.h +lib/Server/include/cursor.h +lib/Server/include/cursorstr.h +lib/Server/include/dix.h +lib/Server/include/dixfont.h +lib/Server/include/dixfontstr.h +lib/Server/include/dixstruct.h +lib/Server/include/extension.h +lib/Server/include/extnsionst.h +lib/Server/include/gc.h +lib/Server/include/gcstruct.h +lib/Server/include/input.h +lib/Server/include/inputstr.h +lib/Server/include/misc.h +lib/Server/include/miscstruct.h +lib/Server/include/opaque.h +lib/Server/include/os.h +lib/Server/include/pixmap.h +lib/Server/include/pixmapstr.h +lib/Server/include/property.h +lib/Server/include/resource.h +lib/Server/include/region.h +lib/Server/include/regionstr.h +lib/Server/include/screenint.h +lib/Server/include/scrnintstr.h +lib/Server/include/servermd.h +lib/Server/include/site.h +lib/Server/include/validate.h +lib/Server/include/window.h +lib/Server/include/windowstr.h +lib/Server/include/mi.h +lib/Server/include/mibstore.h +lib/Server/include/miline.h +lib/Server/include/mipointer.h +lib/Server/include/misprite.h +lib/Server/include/mispritest.h +lib/Server/include/mistruct.h +lib/Server/include/fastblt.h +lib/Server/include/mfb.h +lib/Server/include/mergerop.h +lib/Server/include/cfb.h +lib/Server/include/cfb8bit.h +lib/Server/include/cfbmap.h +lib/Server/include/cfbmskbits.h +lib/Server/include/xf86.h +lib/Server/include/cfbrrop.h +lib/Server/include/xf86Version.h +lib/Server/include/assyntax.h +lib/Server/include/xf86_OSlib.h +lib/Server/include/xf86_OSproc.h +lib/Server/include/xf86ExtInit.h +lib/Server/include/xf86Priv.h +lib/Server/include/xf86Procs.h +lib/Server/include/xf86_Option.h +lib/Server/include/xf86_Config.h +lib/Server/include/xf86DCConf.h +lib/Server/include/compiler.h +lib/Server/include/cfb16.h +lib/Server/include/cfb24.h +lib/Server/include/cfb32.h +lib/Server/include/xf86_HWlib.h +lib/Server/include/xf86_PCI.h +lib/Server/include/xf86cursor.h +lib/Server/include/xf86expblt.h +lib/Server/include/xf86local.h +lib/Server/include/xf86scrin.h +lib/Server/include/xf86xaa.h +lib/Server/config/ +lib/Server/config/cf/ +lib/Server/config/cf/Imake.rules +lib/Server/config/cf/Motif.rules +lib/Server/config/cf/Win32.rules +lib/Server/config/cf/X11.rules +lib/Server/config/cf/bsdLib.rules +lib/Server/config/cf/cde.rules +lib/Server/config/cf/gnuLib.rules +lib/Server/config/cf/hpLib.rules +lib/Server/config/cf/ibmLib.rules +lib/Server/config/cf/lnxLib.rules +lib/Server/config/cf/lnxdoc.rules +lib/Server/config/cf/necLib.rules +lib/Server/config/cf/noop.rules +lib/Server/config/cf/nto.rules +lib/Server/config/cf/oldlib.rules +lib/Server/config/cf/os2.rules +lib/Server/config/cf/os2Lib.rules +lib/Server/config/cf/osfLib.rules +lib/Server/config/cf/scoLib.rules +lib/Server/config/cf/sgiLib.rules +lib/Server/config/cf/sunLib.rules +lib/Server/config/cf/QNX.rules +lib/Server/config/cf/sv3Lib.rules +lib/Server/config/cf/sv4Lib.rules +lib/Server/config/cf/xf86.rules +lib/Server/config/cf/Imake.tmpl +lib/Server/config/cf/Library.tmpl +lib/Server/config/cf/Motif.tmpl +lib/Server/config/cf/Server.tmpl +lib/Server/config/cf/ServerLib.tmpl +lib/Server/config/cf/Threads.tmpl +lib/Server/config/cf/WinLib.tmpl +lib/Server/config/cf/X11.tmpl +lib/Server/config/cf/bsdLib.tmpl +lib/Server/config/cf/cde.tmpl +lib/Server/config/cf/hpLib.tmpl +lib/Server/config/cf/gnuLib.tmpl +lib/Server/config/cf/ibmLib.tmpl +lib/Server/config/cf/lnxLib.tmpl +lib/Server/config/cf/lnxdoc.tmpl +lib/Server/config/cf/necLib.tmpl +lib/Server/config/cf/os2Lib.tmpl +lib/Server/config/cf/osfLib.tmpl +lib/Server/config/cf/sgiLib.tmpl +lib/Server/config/cf/sunLib.tmpl +lib/Server/config/cf/sv3Lib.tmpl +lib/Server/config/cf/sv4Lib.tmpl +lib/Server/config/cf/xf86.tmpl +lib/Server/config/cf/xf86site.def +lib/Server/config/cf/site.def +lib/Server/config/cf/Imake.cf +lib/Server/config/cf/Amoeba.cf +lib/Server/config/cf/DGUX.cf +lib/Server/config/cf/FreeBSD.cf +lib/Server/config/cf/Mips.cf +lib/Server/config/cf/NetBSD.cf +lib/Server/config/cf/OpenBSD.cf +lib/Server/config/cf/Oki.cf +lib/Server/config/cf/Win32.cf +lib/Server/config/cf/apollo.cf +lib/Server/config/cf/bsd.cf +lib/Server/config/cf/bsdi.cf +lib/Server/config/cf/convex.cf +lib/Server/config/cf/cray.cf +lib/Server/config/cf/fujitsu.cf +lib/Server/config/cf/generic.cf +lib/Server/config/cf/gnu.cf +lib/Server/config/cf/hp.cf +lib/Server/config/cf/ibm.cf +lib/Server/config/cf/isc.cf +lib/Server/config/cf/linux.cf +lib/Server/config/cf/luna.cf +lib/Server/config/cf/macII.cf +lib/Server/config/cf/mach.cf +lib/Server/config/cf/minix.cf +lib/Server/config/cf/moto.cf +lib/Server/config/cf/ncr.cf +lib/Server/config/cf/nec.cf +lib/Server/config/cf/nto.cf +lib/Server/config/cf/os2.cf +lib/Server/config/cf/osf1.cf +lib/Server/config/cf/pegasus.cf +lib/Server/config/cf/sco.cf +lib/Server/config/cf/sco5.cf +lib/Server/config/cf/sequent.cf +lib/Server/config/cf/sgi.cf +lib/Server/config/cf/sony.cf +lib/Server/config/cf/sun.cf +lib/Server/config/cf/svr3.cf +lib/Server/config/cf/svr4.cf +lib/Server/config/cf/ultrix.cf +lib/Server/config/cf/usl.cf +lib/Server/config/cf/lynx.cf +lib/Server/config/cf/x386.cf +lib/Server/config/cf/QNX.cf +lib/Server/config/cf/xfree86.cf +lib/Server/config/cf/host.def +lib/Server/config/imake/ +lib/Server/config/imake/imake +lib/Server/config/makedepend/ +lib/Server/config/makedepend/makedepend +lib/Server/config/util/ +lib/Server/config/util/mkdirhier.sh +lib/Server/config/util/gccmakedep +lib/Server/lib/ +lib/Server/lib/libXau.a +lib/Server/lib/libXdmcp.a +lib/Server/lib/liblbxutil.a +lib/Server/lib/libfont.a +lib/Server/lib/libdix.a +lib/Server/lib/libxpstubs.a +lib/Server/lib/libos.a +lib/Server/lib/libmi.a +lib/Server/lib/libcbrt.a +lib/Server/lib/libprinter.a +lib/Server/lib/ddxInit.o +lib/Server/lib/libpcl.a +lib/Server/lib/libps.a +lib/Server/lib/libext.a +lib/Server/lib/libxkb.a +lib/Server/lib/libxinput.a +lib/Server/lib/libdixie.a +lib/Server/lib/libmixie.a +lib/Server/lib/libdidipex.a +lib/Server/lib/libdiswapex.a +lib/Server/lib/libdiobpex.a +lib/Server/lib/libddpex1.a +lib/Server/lib/libddpex2.a +lib/Server/lib/xaa8.o +lib/Server/lib/libddpex3.a +lib/Server/lib/libddpex4.a +lib/Server/lib/libddpexs.a +lib/Server/lib/libospex.a +lib/Server/lib/libServerGlx.a +lib/Server/lib/liblbx.a +lib/Server/lib/libdbe.a +lib/Server/lib/librecord.a +lib/Server/lib/libmfb.a +lib/Server/lib/libcfb.a +lib/Server/lib/libcfb16.a +lib/Server/lib/libcfb24.a +lib/Server/lib/libcfb32.a +lib/Server/lib/libxaa.a +lib/Server/lib/xaavga256.o +lib/Server/lib/xaa16.o +lib/Server/lib/xaa24.o +lib/Server/lib/xaa32.o +lib/Server/lib/libxf86cache.a +lib/Server/lib/libxnest.a +lib/Server/miinitext.c +lib/Server/lib86/ +lib/Server/lib86/libxf86_os.a +lib/Server/lib86/libxf86.a +lib/Server/lib86/xf86Init.o +lib/Server/lib86/xf86Init_m.o +lib/Server/lib86/libxf86_hw.a +lib/Server/xf86_Option.c +lib/Server/XF86_SVGA.c +lib/Server/XF86_VGA16.c +lib/Server/XF86_Mono.c +lib/Server/XF86_S3.c +lib/Server/XF86_8514.c +lib/Server/XF86_Mach8.c +lib/Server/XF86_Mach32.c +lib/Server/XF86_Mach64.c +lib/Server/XF86_P9000.c +lib/Server/XF86_AGX.c +lib/Server/XF86_W32.c +lib/Server/XF86_I128.c +lib/Server/XF86_GLINT.c +lib/Server/XF86_TGA.c +lib/Server/drivers/ +lib/Server/drivers/IBMRGB.h +lib/Server/drivers/Ti302X.h +lib/Server/drivers/libvga2.a +lib/Server/drivers/vga2misc.o +lib/Server/drivers/vga2/ +lib/Server/drivers/vga2/Imakefile +lib/Server/drivers/vga2/et4000/ +lib/Server/drivers/vga2/et4000/Imakefile +lib/Server/drivers/vga2/et3000/ +lib/Server/drivers/vga2/et3000/Imakefile +lib/Server/drivers/vga2/pvga1/ +lib/Server/drivers/vga2/pvga1/Imakefile +lib/Server/drivers/vga2/gvga/ +lib/Server/drivers/vga2/gvga/Imakefile +lib/Server/drivers/vga2/ati/ +lib/Server/drivers/vga2/ati/Imakefile +lib/Server/drivers/vga2/sis/ +lib/Server/drivers/vga2/sis/Imakefile +lib/Server/drivers/vga2/tvga8900/ +lib/Server/drivers/vga2/tvga8900/Imakefile +lib/Server/drivers/vga2/cirrus/ +lib/Server/drivers/vga2/cirrus/Imakefile +lib/Server/drivers/vga2/ncr77c22/ +lib/Server/drivers/vga2/ncr77c22/Imakefile +lib/Server/drivers/vga2/oak/ +lib/Server/drivers/vga2/oak/Imakefile +lib/Server/drivers/vga2/cl64xx/ +lib/Server/drivers/vga2/cl64xx/Imakefile +lib/Server/drivers/vga2/generic/ +lib/Server/drivers/vga2/generic/Imakefile +lib/Server/drivers/vga2/generic/gen_driver.c +lib/Server/drivers/libmono.a +lib/Server/drivers/mono.h +lib/Server/drivers/mono/ +lib/Server/drivers/mono/Imakefile +lib/Server/drivers/mono/hgc1280/ +lib/Server/drivers/mono/hgc1280/Imakefile +lib/Server/drivers/mono/hgc1280/hgc1280HW.h +lib/Server/drivers/mono/hgc1280/hgc1280driv.c +lib/Server/drivers/mono/hgc1280/HGC1280.info +lib/Server/drivers/mono/sigma/ +lib/Server/drivers/mono/sigma/Imakefile +lib/Server/drivers/mono/sigma/sigmaHW.h +lib/Server/drivers/mono/sigma/sigmadriv.c +lib/Server/drivers/mono/apollo/ +lib/Server/drivers/mono/apollo/Imakefile +lib/Server/drivers/mono/apollo/apolloHW.h +lib/Server/drivers/mono/apollo/apollodriv.c +lib/Server/drivers/mono/apollo/apolloBlt.c +lib/Server/drivers/mono/hercules/ +lib/Server/drivers/mono/hercules/Imakefile +lib/Server/drivers/mono/hercules/hercules.c +lib/Server/drivers/libvga16.a +lib/Server/drivers/vga16/ +lib/Server/drivers/vga16/Imakefile +lib/Server/drivers/vga16/et4000/ +lib/Server/drivers/vga16/et4000/Imakefile +lib/Server/drivers/vga16/et3000/ +lib/Server/drivers/vga16/et3000/Imakefile +lib/Server/drivers/vga16/ncr77c22/ +lib/Server/drivers/vga16/ncr77c22/Imakefile +lib/Server/drivers/vga16/ati/ +lib/Server/drivers/vga16/ati/Imakefile +lib/Server/drivers/vga16/sis/ +lib/Server/drivers/vga16/sis/Imakefile +lib/Server/drivers/vga16/tvga8900/ +lib/Server/drivers/vga16/tvga8900/Imakefile +lib/Server/drivers/vga16/oak/ +lib/Server/drivers/vga16/oak/Imakefile +lib/Server/drivers/vga16/cl64xx/ +lib/Server/drivers/vga16/cl64xx/Imakefile +lib/Server/drivers/vga16/generic/ +lib/Server/drivers/vga16/generic/Imakefile +lib/Server/drivers/vga16misc.o +lib/Server/drivers/libvga256.a +lib/Server/drivers/vga.h +lib/Server/drivers/vga256.h +lib/Server/drivers/vgaBank.h +lib/Server/drivers/vgaFasm.h +lib/Server/drivers/vgaPCI.h +lib/Server/drivers/vga256/ +lib/Server/drivers/vga256/Imakefile +lib/Server/drivers/vga256/nv/ +lib/Server/drivers/vga256/nv/Imakefile +lib/Server/drivers/vga256/nv/nv1accel.c +lib/Server/drivers/vga256/nv/nv1cursor.c +lib/Server/drivers/vga256/nv/nv1driver.c +lib/Server/drivers/vga256/nv/nv1ref.h +lib/Server/drivers/vga256/nv/nv1setup.c +lib/Server/drivers/vga256/nv/nv_driver.c +lib/Server/drivers/vga256/nv/nvreg.h +lib/Server/drivers/vga256/nv/nvvga.h +lib/Server/drivers/vga256/nv/riva_hw.c +lib/Server/drivers/vga256/nv/riva_hw.h +lib/Server/drivers/vga256/nv/riva_tbl.h +lib/Server/drivers/vga256/nv/riva_xaa.c +lib/Server/drivers/vga256/nv/nvcursor.h +lib/Server/drivers/vga256/nv/nvuser.h +lib/Server/drivers/vga256/nv/README.RIVA +lib/Server/drivers/vga256/et4000/ +lib/Server/drivers/vga256/et4000/et4_driver.c +lib/Server/drivers/vga256/et4000/et4_accel.c +lib/Server/drivers/vga256/et4000/tseng_acl.c +lib/Server/drivers/vga256/et4000/tseng_acl.h +lib/Server/drivers/vga256/et4000/tseng_inline.h +lib/Server/drivers/vga256/et4000/tseng_colexp.c +lib/Server/drivers/vga256/et4000/tseng_colexp.h +lib/Server/drivers/vga256/et4000/tseng_ramdac.c +lib/Server/drivers/vga256/et4000/tseng_clock.c +lib/Server/drivers/vga256/et4000/tseng_cursor.c +lib/Server/drivers/vga256/et4000/tseng_cursor.h +lib/Server/drivers/vga256/et4000/tseng.h +lib/Server/drivers/vga256/et4000/bank.s +lib/Server/drivers/vga256/et4000/tseng_dpms.c +lib/Server/drivers/vga256/et4000/Imakefile +lib/Server/drivers/vga256/et3000/ +lib/Server/drivers/vga256/et3000/et3_driver.c +lib/Server/drivers/vga256/et3000/bank.s +lib/Server/drivers/vga256/et3000/Imakefile +lib/Server/drivers/vga256/pvga1/ +lib/Server/drivers/vga256/pvga1/paradise.h +lib/Server/drivers/vga256/pvga1/pvg_driver.c +lib/Server/drivers/vga256/pvga1/bank.s +lib/Server/drivers/vga256/pvga1/pvgablt.c +lib/Server/drivers/vga256/pvga1/pvgasolid.c +lib/Server/drivers/vga256/pvga1/pvgaBitBlt.c +lib/Server/drivers/vga256/pvga1/pvgapntwin.c +lib/Server/drivers/vga256/pvga1/Imakefile +lib/Server/drivers/vga256/gvga/ +lib/Server/drivers/vga256/gvga/gvg_driver.c +lib/Server/drivers/vga256/gvga/bank.s +lib/Server/drivers/vga256/gvga/Imakefile +lib/Server/drivers/vga256/r128/ +lib/Server/drivers/vga256/r128/Imakefile +lib/Server/drivers/vga256/r128/r128.h +lib/Server/drivers/vga256/r128/r128_accel.c +lib/Server/drivers/vga256/r128/r128_cursor.c +lib/Server/drivers/vga256/r128/r128_driver.c +lib/Server/drivers/vga256/r128/r128_reg.h +lib/Server/drivers/vga256/ati/ +lib/Server/drivers/vga256/ati/Imakefile +lib/Server/drivers/vga256/ati/ati.c +lib/Server/drivers/vga256/ati/ati.h +lib/Server/drivers/vga256/ati/atiadapter.c +lib/Server/drivers/vga256/ati/atiadapter.h +lib/Server/drivers/vga256/ati/atiadjust.c +lib/Server/drivers/vga256/ati/atiadjust.h +lib/Server/drivers/vga256/ati/atibank.c +lib/Server/drivers/vga256/ati/atibank.h +lib/Server/drivers/vga256/ati/atibanks.s +lib/Server/drivers/vga256/ati/atibus.c +lib/Server/drivers/vga256/ati/atibus.h +lib/Server/drivers/vga256/ati/atichip.c +lib/Server/drivers/vga256/ati/atichip.h +lib/Server/drivers/vga256/ati/aticlock.c +lib/Server/drivers/vga256/ati/aticlock.h +lib/Server/drivers/vga256/ati/aticmap.c +lib/Server/drivers/vga256/ati/aticmap.h +lib/Server/drivers/vga256/ati/aticonsole.c +lib/Server/drivers/vga256/ati/aticonsole.h +lib/Server/drivers/vga256/ati/aticrtc.c +lib/Server/drivers/vga256/ati/aticrtc.h +lib/Server/drivers/vga256/ati/atidac.c +lib/Server/drivers/vga256/ati/atidac.h +lib/Server/drivers/vga256/ati/atidepth.h +lib/Server/drivers/vga256/ati/atidsp.c +lib/Server/drivers/vga256/ati/atidsp.h +lib/Server/drivers/vga256/ati/atifbinit.c +lib/Server/drivers/vga256/ati/atifbinit.h +lib/Server/drivers/vga256/ati/atigetmode.c +lib/Server/drivers/vga256/ati/atigetmode.h +lib/Server/drivers/vga256/ati/atiident.c +lib/Server/drivers/vga256/ati/atiident.h +lib/Server/drivers/vga256/ati/atiio.c +lib/Server/drivers/vga256/ati/atiio.h +lib/Server/drivers/vga256/ati/atimach64.c +lib/Server/drivers/vga256/ati/atimach64.h +lib/Server/drivers/vga256/ati/atimono.h +lib/Server/drivers/vga256/ati/atiprint.c +lib/Server/drivers/vga256/ati/atiprint.h +lib/Server/drivers/vga256/ati/atiprobe.c +lib/Server/drivers/vga256/ati/atiprobe.h +lib/Server/drivers/vga256/ati/atiproto.h +lib/Server/drivers/vga256/ati/atiregs.h +lib/Server/drivers/vga256/ati/atireset.c +lib/Server/drivers/vga256/ati/atireset.h +lib/Server/drivers/vga256/ati/atiscrinit.c +lib/Server/drivers/vga256/ati/atiscrinit.h +lib/Server/drivers/vga256/ati/atiutil.c +lib/Server/drivers/vga256/ati/atiutil.h +lib/Server/drivers/vga256/ati/ativalid.c +lib/Server/drivers/vga256/ati/ativalid.h +lib/Server/drivers/vga256/ati/ativersion.h +lib/Server/drivers/vga256/ati/ativga.c +lib/Server/drivers/vga256/ati/ativga.h +lib/Server/drivers/vga256/ati/atividmem.c +lib/Server/drivers/vga256/ati/atividmem.h +lib/Server/drivers/vga256/ati/atiwonder.c +lib/Server/drivers/vga256/ati/atiwonder.h +lib/Server/drivers/vga256/sis/ +lib/Server/drivers/vga256/sis/sis86c201.c +lib/Server/drivers/vga256/sis/sis_bank.s +lib/Server/drivers/vga256/sis/sis_curs.c +lib/Server/drivers/vga256/sis/Imakefile +lib/Server/drivers/vga256/sis/sis_accel.c +lib/Server/drivers/vga256/sis/sis_accel2.c +lib/Server/drivers/vga256/sis/sis_blt16.c +lib/Server/drivers/vga256/sis/sis_blitter.c +lib/Server/drivers/vga256/sis/sis_BitBlt.c +lib/Server/drivers/vga256/sis/sis_solid.c +lib/Server/drivers/vga256/sis/sis_Blitter.h +lib/Server/drivers/vga256/sis/sis_Blitter2.h +lib/Server/drivers/vga256/sis/sis_driver.h +lib/Server/drivers/vga256/sis/sis_pntwin.c +lib/Server/drivers/vga256/sis/sis_FillRct.c +lib/Server/drivers/vga256/sis/sis_FillSt.c +lib/Server/drivers/vga256/sis/sis_colexp.c +lib/Server/drivers/vga256/sis/sis_teblt8.c +lib/Server/drivers/vga256/sis/sis_textblt.s +lib/Server/drivers/vga256/tvga8900/ +lib/Server/drivers/vga256/tvga8900/t89_driver.c +lib/Server/drivers/vga256/tvga8900/t89_driver.h +lib/Server/drivers/vga256/tvga8900/bank.s +lib/Server/drivers/vga256/tvga8900/tgui_curs.c +lib/Server/drivers/vga256/tvga8900/tgui_drv.h +lib/Server/drivers/vga256/tvga8900/tgui_ger.h +lib/Server/drivers/vga256/tvga8900/tgui_mmio.h +lib/Server/drivers/vga256/tvga8900/tgui_accel.c +lib/Server/drivers/vga256/tvga8900/tgui_oldacl.c +lib/Server/drivers/vga256/tvga8900/Imakefile +lib/Server/drivers/vga256/cirrus/ +lib/Server/drivers/vga256/cirrus/cir_driver.c +lib/Server/drivers/vga256/cirrus/cir_driver.h +lib/Server/drivers/vga256/cirrus/cir_bank.s +lib/Server/drivers/vga256/cirrus/cir_fill.c +lib/Server/drivers/vga256/cirrus/cir_im.c +lib/Server/drivers/vga256/cirrus/cir_blt.c +lib/Server/drivers/vga256/cirrus/cir_bltC.c +lib/Server/drivers/vga256/cirrus/cir_imblt.s +lib/Server/drivers/vga256/cirrus/cir_textblt.s +lib/Server/drivers/vga256/cirrus/cir_span.s +lib/Server/drivers/vga256/cirrus/cir_colexp.c +lib/Server/drivers/vga256/cirrus/cirFillSt.c +lib/Server/drivers/vga256/cirrus/cir_solid.c +lib/Server/drivers/vga256/cirrus/cir_teblt8.c +lib/Server/drivers/vga256/cirrus/cirFillRct.c +lib/Server/drivers/vga256/cirrus/cir_cursor.c +lib/Server/drivers/vga256/cirrus/cir_blitter.c +lib/Server/drivers/vga256/cirrus/cir_blitLG.c +lib/Server/drivers/vga256/cirrus/cir_fillLG.c +lib/Server/drivers/vga256/cirrus/cir_alloc.c +lib/Server/drivers/vga256/cirrus/cir_blt16.c +lib/Server/drivers/vga256/cirrus/cir_line.c +lib/Server/drivers/vga256/cirrus/cir_orect.c +lib/Server/drivers/vga256/cirrus/cirBlitter.h +lib/Server/drivers/vga256/cirrus/cir_span.h +lib/Server/drivers/vga256/cirrus/cir_alloc.h +lib/Server/drivers/vga256/cirrus/cirBlitMM.h +lib/Server/drivers/vga256/cirrus/cir_blitLG.h +lib/Server/drivers/vga256/cirrus/cir_inline.h +lib/Server/drivers/vga256/cirrus/cirrus_acl.c +lib/Server/drivers/vga256/cirrus/laguna_acl.c +lib/Server/drivers/vga256/cirrus/Imakefile +lib/Server/drivers/vga256/cirrus/linearline.c +lib/Server/drivers/vga256/cirrus/linearline.h +lib/Server/drivers/vga256/ncr77c22/ +lib/Server/drivers/vga256/ncr77c22/ncr_driver.c +lib/Server/drivers/vga256/ncr77c22/ncr_bank.s +lib/Server/drivers/vga256/ncr77c22/Imakefile +lib/Server/drivers/vga256/compaq/ +lib/Server/drivers/vga256/compaq/cpq_driver.c +lib/Server/drivers/vga256/compaq/cpq_bank.s +lib/Server/drivers/vga256/compaq/Imakefile +lib/Server/drivers/vga256/mga/ +lib/Server/drivers/vga256/mga/mga.h +lib/Server/drivers/vga256/mga/mga_bios.h +lib/Server/drivers/vga256/mga/mga_reg.h +lib/Server/drivers/vga256/mga/mga_driver.c +lib/Server/drivers/vga256/mga/mga_hwcurs.c +lib/Server/drivers/vga256/mga/mga_storm.c +lib/Server/drivers/vga256/mga/mga_map.h +lib/Server/drivers/vga256/mga/mga_macros.h +lib/Server/drivers/vga256/mga/mga_dac3026.c +lib/Server/drivers/vga256/mga/mga_dac1064.c +lib/Server/drivers/vga256/mga/mga_dacG200.c +lib/Server/drivers/vga256/mga/mga_xaarepl.c +lib/Server/drivers/vga256/mga/Imakefile +lib/Server/drivers/vga256/oak/ +lib/Server/drivers/vga256/oak/oak_driver.c +lib/Server/drivers/vga256/oak/oak_driver.h +lib/Server/drivers/vga256/oak/oak_bank.s +lib/Server/drivers/vga256/oak/oti87_fill.c +lib/Server/drivers/vga256/oak/oti87_sol.c +lib/Server/drivers/vga256/oak/oti87_bltC.c +lib/Server/drivers/vga256/oak/oak_colexp.s +lib/Server/drivers/vga256/oak/Imakefile +lib/Server/drivers/vga256/al2101/ +lib/Server/drivers/vga256/al2101/al_driver.c +lib/Server/drivers/vga256/al2101/al_bank.s +lib/Server/drivers/vga256/al2101/Imakefile +lib/Server/drivers/vga256/ali/ +lib/Server/drivers/vga256/ali/ali_driver.c +lib/Server/drivers/vga256/ali/ali_bank.s +lib/Server/drivers/vga256/ali/Imakefile +lib/Server/drivers/vga256/cl64xx/ +lib/Server/drivers/vga256/cl64xx/cl_driver.c +lib/Server/drivers/vga256/cl64xx/cl_bank.s +lib/Server/drivers/vga256/cl64xx/Imakefile +lib/Server/drivers/vga256/video7/ +lib/Server/drivers/vga256/video7/v7_driver.c +lib/Server/drivers/vga256/video7/v7_bank.s +lib/Server/drivers/vga256/video7/Imakefile +lib/Server/drivers/vga256/ark/ +lib/Server/drivers/vga256/ark/ark_driver.c +lib/Server/drivers/vga256/ark/ark_driver.h +lib/Server/drivers/vga256/ark/ark_bank.s +lib/Server/drivers/vga256/ark/ark_cop.h +lib/Server/drivers/vga256/ark/ark_cursor.c +lib/Server/drivers/vga256/ark/ark_cursor.h +lib/Server/drivers/vga256/ark/ark_bitblt.c +lib/Server/drivers/vga256/ark/ark_blt16.c +lib/Server/drivers/vga256/ark/ark_accel.c +lib/Server/drivers/vga256/ark/Imakefile +lib/Server/drivers/vga256/mx/ +lib/Server/drivers/vga256/mx/mx_driver.c +lib/Server/drivers/vga256/mx/mx_bank.s +lib/Server/drivers/vga256/mx/Imakefile +lib/Server/drivers/vga256/realtek/ +lib/Server/drivers/vga256/realtek/rt_driver.c +lib/Server/drivers/vga256/realtek/rt_bank.s +lib/Server/drivers/vga256/realtek/Imakefile +lib/Server/drivers/vga256/s3v/ +lib/Server/drivers/vga256/s3v/s3v_driver.c +lib/Server/drivers/vga256/s3v/s3v_accel.c +lib/Server/drivers/vga256/s3v/s3v_misc.c +lib/Server/drivers/vga256/s3v/s3v_cursor.c +lib/Server/drivers/vga256/s3v/regs3v.h +lib/Server/drivers/vga256/s3v/newmmio.h +lib/Server/drivers/vga256/s3v/s3v_driver.h +lib/Server/drivers/vga256/s3v/s3v_rop.h +lib/Server/drivers/vga256/s3v/Imakefile +lib/Server/drivers/vga256/apm/ +lib/Server/drivers/vga256/apm/apm_driver.c +lib/Server/drivers/vga256/apm/apm_accel.c +lib/Server/drivers/vga256/apm/apm_bank.s +lib/Server/drivers/vga256/apm/apm_cursor.c +lib/Server/drivers/vga256/apm/apm.h +lib/Server/drivers/vga256/apm/Imakefile +lib/Server/drivers/vga256/s3_svga/ +lib/Server/drivers/vga256/s3_svga/newmmio.h +lib/Server/drivers/vga256/s3_svga/s3.h +lib/Server/drivers/vga256/s3_svga/s3Bt485.h +lib/Server/drivers/vga256/s3_svga/s3ELSA.h +lib/Server/drivers/vga256/s3_svga/s3reg.h +lib/Server/drivers/vga256/s3_svga/IBMRGBCurs.c +lib/Server/drivers/vga256/s3_svga/Ti3026Curs.c +lib/Server/drivers/vga256/s3_svga/s3BtCursor.c +lib/Server/drivers/vga256/s3_svga/s3ELSA.c +lib/Server/drivers/vga256/s3_svga/s3TiCursor.c +lib/Server/drivers/vga256/s3_svga/s3accel.c +lib/Server/drivers/vga256/s3_svga/s3cursor.c +lib/Server/drivers/vga256/s3_svga/s3driver.c +lib/Server/drivers/vga256/s3_svga/s3fbinit.c +lib/Server/drivers/vga256/s3_svga/s3init.c +lib/Server/drivers/vga256/s3_svga/s3misc.c +lib/Server/drivers/vga256/s3_svga/s3probe.c +lib/Server/drivers/vga256/s3_svga/s3ramdacs.c +lib/Server/drivers/vga256/s3_svga/s3save.c +lib/Server/drivers/vga256/s3_svga/s3bank.s +lib/Server/drivers/vga256/s3_svga/Imakefile +lib/Server/drivers/vga256/s3sav/ +lib/Server/drivers/vga256/s3sav/Imakefile +lib/Server/drivers/vga256/s3sav/lrmi.c +lib/Server/drivers/vga256/s3sav/lrmi.h +lib/Server/drivers/vga256/s3sav/newmmio.h +lib/Server/drivers/vga256/s3sav/regs3sav.h +lib/Server/drivers/vga256/s3sav/s3bitblt.c +lib/Server/drivers/vga256/s3sav/s3bitmap.c +lib/Server/drivers/vga256/s3sav/s3sav_accel.c +lib/Server/drivers/vga256/s3sav/s3sav_cursor.c +lib/Server/drivers/vga256/s3sav/s3sav_driver.c +lib/Server/drivers/vga256/s3sav/s3sav_driver.h +lib/Server/drivers/vga256/s3sav/s3sav_misc.c +lib/Server/drivers/vga256/s3sav/s3sav_rop.h +lib/Server/drivers/vga256/s3sav/s3sav_vbe.c +lib/Server/drivers/vga256/s3sav/vbe.h +lib/Server/drivers/vga256/neo/ +lib/Server/drivers/vga256/neo/neo.h +lib/Server/drivers/vga256/neo/neo_macros.h +lib/Server/drivers/vga256/neo/neo_reg.h +lib/Server/drivers/vga256/neo/neo_driver.c +lib/Server/drivers/vga256/neo/neo_cursor.c +lib/Server/drivers/vga256/neo/neo_bank.s +lib/Server/drivers/vga256/neo/neo_2070.c +lib/Server/drivers/vga256/neo/neo_2090.c +lib/Server/drivers/vga256/neo/neo_2097.c +lib/Server/drivers/vga256/neo/neo_2200.c +lib/Server/drivers/vga256/neo/Imakefile +lib/Server/drivers/vga256/chips/ +lib/Server/drivers/vga256/chips/ct_driver.c +lib/Server/drivers/vga256/chips/ct_bank.s +lib/Server/drivers/vga256/chips/ct_BitBlt.c +lib/Server/drivers/vga256/chips/ct_FillRct.c +lib/Server/drivers/vga256/chips/ct_cursor.c +lib/Server/drivers/vga256/chips/ct_blt16.c +lib/Server/drivers/vga256/chips/ct_blitter.c +lib/Server/drivers/vga256/chips/ct_line.c +lib/Server/drivers/vga256/chips/ct_lline.c +lib/Server/drivers/vga256/chips/ct_solid.c +lib/Server/drivers/vga256/chips/ct_FillSt.c +lib/Server/drivers/vga256/chips/ct_alloc.c +lib/Server/drivers/vga256/chips/ct_pci.c +lib/Server/drivers/vga256/chips/Imakefile +lib/Server/drivers/vga256/chips/ct_BltHiQV.h +lib/Server/drivers/vga256/chips/ct_BlitMM.h +lib/Server/drivers/vga256/chips/ct_Blitter.h +lib/Server/drivers/vga256/chips/ct_driver.h +lib/Server/drivers/vga256/chips/ct_lline.h +lib/Server/drivers/vga256/chips/ct_teblt8.c +lib/Server/drivers/vga256/chips/ct_textblt.s +lib/Server/drivers/vga256/chips/ct_colexp.c +lib/Server/drivers/vga256/chips/ct_accel.c +lib/Server/drivers/vga256/cyrix/ +lib/Server/drivers/vga256/cyrix/cyrix.h +lib/Server/drivers/vga256/cyrix/cyrix_accel.c +lib/Server/drivers/vga256/cyrix/cyrix_cmap.c +lib/Server/drivers/vga256/cyrix/cyrix_cursor.c +lib/Server/drivers/vga256/cyrix/cyrix_driver.c +lib/Server/drivers/vga256/cyrix/cyrix_bank.s +lib/Server/drivers/vga256/cyrix/cyrix_asm.s +lib/Server/drivers/vga256/cyrix/gxrender.c +lib/Server/drivers/vga256/cyrix/Imakefile +lib/Server/drivers/vga256/rendition/ +lib/Server/drivers/vga256/rendition/Imakefile +lib/Server/drivers/vga256/rendition/cscode.h +lib/Server/drivers/vga256/rendition/hwcursor.c +lib/Server/drivers/vga256/rendition/hwcursor.h +lib/Server/drivers/vga256/rendition/rendition_driver.c +lib/Server/drivers/vga256/rendition/v1kregs.h +lib/Server/drivers/vga256/rendition/v1krisc.c +lib/Server/drivers/vga256/rendition/v1krisc.h +lib/Server/drivers/vga256/rendition/v2kregs.h +lib/Server/drivers/vga256/rendition/vboard.c +lib/Server/drivers/vga256/rendition/vboard.h +lib/Server/drivers/vga256/rendition/vgafont-std.data +lib/Server/drivers/vga256/rendition/vgafont-vrx.data +lib/Server/drivers/vga256/rendition/vgapalette.data +lib/Server/drivers/vga256/rendition/vloaduc.c +lib/Server/drivers/vga256/rendition/vloaduc.h +lib/Server/drivers/vga256/rendition/vmodes.c +lib/Server/drivers/vga256/rendition/vmodes.h +lib/Server/drivers/vga256/rendition/vos.h +lib/Server/drivers/vga256/rendition/vramdac.c +lib/Server/drivers/vga256/rendition/vramdac.h +lib/Server/drivers/vga256/rendition/vtest.c +lib/Server/drivers/vga256/rendition/vtypes.h +lib/Server/drivers/vga256/rendition/vvga.c +lib/Server/drivers/vga256/rendition/vvga.h +lib/Server/drivers/vga256/p9x00/ +lib/Server/drivers/vga256/p9x00/p9x00Driver.c +lib/Server/drivers/vga256/p9x00/p9x00Driver.h +lib/Server/drivers/vga256/p9x00/p9x00Access.c +lib/Server/drivers/vga256/p9x00/p9x00Access.h +lib/Server/drivers/vga256/p9x00/p9x00Probe.c +lib/Server/drivers/vga256/p9x00/p9x00Probe.h +lib/Server/drivers/vga256/p9x00/p9x00Regs.h +lib/Server/drivers/vga256/p9x00/p9x00VGA.c +lib/Server/drivers/vga256/p9x00/p9x00VGA.h +lib/Server/drivers/vga256/p9x00/p9x00VGARegs.h +lib/Server/drivers/vga256/p9x00/p9x00ICD2061A.c +lib/Server/drivers/vga256/p9x00/p9x00ICD2061A.h +lib/Server/drivers/vga256/p9x00/p9x00Includes.h +lib/Server/drivers/vga256/p9x00/p9x00DAC.c +lib/Server/drivers/vga256/p9x00/p9x00DAC.h +lib/Server/drivers/vga256/p9x00/p9x00XAA.c +lib/Server/drivers/vga256/p9x00/p9x00XAA.h +lib/Server/drivers/vga256/p9x00/Imakefile +lib/Server/drivers/vga256/spc8110/ +lib/Server/drivers/vga256/spc8110/spc_driver.c +lib/Server/drivers/vga256/spc8110/spc_driver.h +lib/Server/drivers/vga256/spc8110/spc_accel.c +lib/Server/drivers/vga256/spc8110/spc_cursor.c +lib/Server/drivers/vga256/spc8110/spc_bank.s +lib/Server/drivers/vga256/spc8110/Imakefile +lib/Server/drivers/vga256/i740/ +lib/Server/drivers/vga256/i740/Imakefile +lib/Server/drivers/vga256/i740/i740.h +lib/Server/drivers/vga256/i740/i740_accel.c +lib/Server/drivers/vga256/i740/i740_cmap.c +lib/Server/drivers/vga256/i740/i740_cursor.c +lib/Server/drivers/vga256/i740/i740_driver.c +lib/Server/drivers/vga256/i740/i740_macros.h +lib/Server/drivers/vga256/i740/i740_reg.h +lib/Server/drivers/vga256/i810/ +lib/Server/drivers/vga256/i810/Imakefile +lib/Server/drivers/vga256/i810/i810.h +lib/Server/drivers/vga256/i810/i810_accel.c +lib/Server/drivers/vga256/i810/i810_cmap.c +lib/Server/drivers/vga256/i810/i810_cursor.c +lib/Server/drivers/vga256/i810/i810_driver.c +lib/Server/drivers/vga256/i810/i810_reg.h +lib/Server/drivers/vga256/tdfx/ +lib/Server/drivers/vga256/tdfx/vb.h +lib/Server/drivers/vga256/tdfx/vbdefs.h +lib/Server/drivers/vga256/tdfx/vb_driver.c +lib/Server/drivers/vga256/tdfx/vb_hwcurs.c +lib/Server/drivers/vga256/tdfx/vb_vgahw.c +lib/Server/drivers/vga256/tdfx/vb_accel.c +lib/Server/drivers/vga256/tdfx/Imakefile +lib/Server/drivers/vga256/smi/ +lib/Server/drivers/vga256/smi/smi_driver.c +lib/Server/drivers/vga256/smi/smi_accel.c +lib/Server/drivers/vga256/smi/smi_misc.c +lib/Server/drivers/vga256/smi/smi_cursor.c +lib/Server/drivers/vga256/smi/regsmi.h +lib/Server/drivers/vga256/smi/mmio.h +lib/Server/drivers/vga256/smi/smi_driver.h +lib/Server/drivers/vga256/smi/smi_rop.h +lib/Server/drivers/vga256/smi/Imakefile +lib/Server/drivers/vga256/generic/ +lib/Server/drivers/vga256/generic/gen_driver.c +lib/Server/drivers/vga256/generic/Imakefile +lib/Server/drivers/libs3.a +lib/Server/drivers/newmmio.h +lib/Server/drivers/regs3.h +lib/Server/drivers/s3.h +lib/Server/drivers/libs3newmmio.a +lib/Server/drivers/libs3mmio.a +lib/Server/drivers/s3/ +lib/Server/drivers/s3/Imakefile +lib/Server/drivers/s3/newmmio/ +lib/Server/drivers/s3/newmmio/Imakefile +lib/Server/drivers/s3/newmmio/newmmio.c +lib/Server/drivers/s3/mmio_928/ +lib/Server/drivers/s3/mmio_928/Imakefile +lib/Server/drivers/s3/mmio_928/mmio_928.c +lib/Server/drivers/s3/s3_generic/ +lib/Server/drivers/s3/s3_generic/s3_generic.c +lib/Server/drivers/s3/s3_generic/Imakefile +lib/Server/drivers/libs3v.a +lib/Server/drivers/s3v.h +lib/Server/drivers/regs3v.h +lib/Server/drivers/s3_virge/ +lib/Server/drivers/s3_virge/Imakefile +lib/Server/drivers/s3_virge/s3_virge/ +lib/Server/drivers/s3_virge/s3_virge/s3_virge.c +lib/Server/drivers/s3_virge/s3_virge/Imakefile +lib/Server/drivers/lib8514.a +lib/Server/drivers/libmach8.a +lib/Server/drivers/libmach32.a +lib/Server/drivers/libmach64.a +lib/Server/drivers/libp9000.a +lib/Server/drivers/libagx.a +lib/Server/drivers/libw32cfb.a +lib/Server/drivers/libw32asm.a +lib/Server/drivers/libw32.a +lib/Server/drivers/libi128.a +lib/Server/drivers/libglint.a +lib/Server/confvga2.sh +lib/Server/confmono.sh +lib/Server/cvga16.sh +lib/Server/cvga256.sh +lib/Server/VGADriverDoc/ +lib/Server/VGADriverDoc/vgaHW.c +lib/Server/VGADriverDoc/VGADriver.Doc +lib/Server/VGADriverDoc/Imakefile.stub +lib/Server/VGADriverDoc/stub_driver.c +lib/Server/VGADriverDoc/stub_bank.s +lib/Server/confS3.sh +lib/Server/confS3V.sh +lib/Server/confw32.sh +lib/Server/LinkKit.tmpl +lib/Server/Imakefile +lib/Server/xf86site.def +lib/Server/mkmf +lib/Server/README +lib/Server/cmga.sh diff --git a/release/scripts/X11/plists/i386/Xman.tgz.plist b/release/scripts/X11/plists/i386/Xman.tgz.plist new file mode 100644 index 000000000000..79c1114ea052 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xman.tgz.plist @@ -0,0 +1,1090 @@ +man/ +man/man1/ +man/man1/imake.1.gz +man/man1/lndir.1.gz +man/man1/makedepend.1.gz +man/man1/xmkmf.1.gz +man/man1/makestrs.1.gz +man/man1/makeg.1.gz +man/man1/bmtoa.1.gz +man/man1/mkdirhier.1.gz +man/man1/appres.1.gz +man/man1/bdftopcf.1.gz +man/man1/bitmap.1.gz +man/man1/atobm.1.gz +man/man1/proxymngr.1.gz +man/man1/beforelight.1.gz +man/man1/editres.1.gz +man/man1/fsinfo.1.gz +man/man1/fslsfonts.1.gz +man/man1/fstobdf.1.gz +man/man1/iceauth.1.gz +man/man1/mkfontdir.1.gz +man/man1/oclock.1.gz +man/man1/showrgb.1.gz +man/man1/rstart.1.gz +man/man1/rstartd.1.gz +man/man1/smproxy.1.gz +man/man1/twm.1.gz +man/man1/x11perf.1.gz +man/man1/xauth.1.gz +man/man1/x11perfcomp.1.gz +man/man1/xcutsel.1.gz +man/man1/xclipboard.1.gz +man/man1/xclock.1.gz +man/man1/xcmsdb.1.gz +man/man1/xconsole.1.gz +man/man1/xdm.1.gz +man/man1/sessreg.1.gz +man/man1/xdpyinfo.1.gz +man/man1/dga.1.gz +man/man1/xfd.1.gz +man/man1/xfwp.1.gz +man/man1/xfindproxy.1.gz +man/man1/xhost.1.gz +man/man1/xieperf.1.gz +man/man1/xinit.1.gz +man/man1/startx.1.gz +man/man1/setxkbmap.1.gz +man/man1/xkbcomp.1.gz +man/man1/xkbevd.1.gz +man/man1/xkbprint.1.gz +man/man1/xkill.1.gz +man/man1/xlogo.1.gz +man/man1/xlsatoms.1.gz +man/man1/xlsfonts.1.gz +man/man1/xlsclients.1.gz +man/man1/xmag.1.gz +man/man1/xmh.1.gz +man/man1/xmodmap.1.gz +man/man1/xprop.1.gz +man/man1/xrdb.1.gz +man/man1/xrefresh.1.gz +man/man1/xrx.1.gz +man/man1/xset.1.gz +man/man1/xsetroot.1.gz +man/man1/xsm.1.gz +man/man1/xstdcmap.1.gz +man/man1/xsetmode.1.gz +man/man1/xterm.1.gz +man/man1/xsetpointer.1.gz +man/man1/resize.1.gz +man/man1/xvidtune.1.gz +man/man1/xwd.1.gz +man/man1/xwininfo.1.gz +man/man1/xwud.1.gz +man/man1/Xserver.1.gz +man/man1/XFree86.1.gz +man/man1/XF86_Mono.1.gz +man/man1/XF86_SVGA.1.gz +man/man1/XF86_VGA16.1.gz +man/man1/XF86_S3.1.gz +man/man1/XF86_Accel.1.gz +man/man1/XF86_Mach32.1.gz +man/man1/XF86_Mach64.1.gz +man/man1/XF86_P9000.1.gz +man/man1/XF86_Mach8.1.gz +man/man1/XF86_8514.1.gz +man/man1/XF86_AGX.1.gz +man/man1/XF86_W32.1.gz +man/man1/XF86_I128.1.gz +man/man1/reconfig.1.gz +man/man1/xf86config.1.gz +man/man1/kbd_mode.1.gz +man/man1/Xvfb.1.gz +man/man1/SuperProbe.1.gz +man/man1/xf98config.1.gz +man/man1/Xnest.1.gz +man/man1/lbxproxy.1.gz +man/man1/xon.1.gz +man/man1/ico.1.gz +man/man1/listres.1.gz +man/man1/showfont.1.gz +man/man1/viewres.1.gz +man/man1/xbiff.1.gz +man/man1/xcalc.1.gz +man/man1/xditview.1.gz +man/man1/xedit.1.gz +man/man1/xev.1.gz +man/man1/xeyes.1.gz +man/man1/xfontsel.1.gz +man/man1/xgc.1.gz +man/man1/xload.1.gz +man/man1/xman.1.gz +man/man1/xmessage.1.gz +man/man5/ +man/man5/XF86Config.5.gz +man/man3/ +man/man3/XF86DGA.3.gz +man/man3/XF86Misc.3.gz +man/man3/XF86MiscQueryExtension.3.gz +man/man3/XF86VidMode.3.gz +man/man3/XF86DGAQueryExtension.3.gz +man/man3/XF86DGAQueryVersion.3.gz +man/man3/XF86DGAQueryDirectVideo.3.gz +man/man3/XF86DGAGetVideo.3.gz +man/man3/XF86DGADirectVideo.3.gz +man/man3/XF86DGASetVidPage.3.gz +man/man3/XF86DGASetViewPort.3.gz +man/man3/XF86DGAViewPortChanged.3.gz +man/man3/XF86DGAInstallColormap.3.gz +man/man3/XF86DGAForkApp.3.gz +man/man3/XF86MiscQueryVersion.3.gz +man/man3/XF86MiscGetSaver.3.gz +man/man3/XF86MiscSetSaver.3.gz +man/man3/XF86MiscGetMouseSettings.3.gz +man/man3/XF86MiscSetMouseSettings.3.gz +man/man3/XF86MiscGetKbdSettings.3.gz +man/man3/XF86MiscSetKbdSettings.3.gz +man/man3/XF86VidModeQueryExtension.3.gz +man/man3/XF86VidModeQueryVersion.3.gz +man/man3/XF86VidModeGetModeLine.3.gz +man/man3/XF86VidModeGetAllModeLines.3.gz +man/man3/XF86VidModeModModeLine.3.gz +man/man3/XF86VidModeSwitchMode.3.gz +man/man3/XF86VidModeLockModeSwitch.3.gz +man/man3/X.3.gz +man/man3/XF86VidModeGetMonitor.3.gz +man/man3/BlackPixel.3.gz +man/man3/XConsortium.3.gz +man/man3/XStandards.3.gz +man/man3/Xsecurity.3.gz +man/man3/AllPlanes.3.gz +man/man3/WhitePixel.3.gz +man/man3/ConnectionNumber.3.gz +man/man3/DefaultColormap.3.gz +man/man3/DefaultDepth.3.gz +man/man3/XListDepths.3.gz +man/man3/DefaultGC.3.gz +man/man3/DefaultRootWindow.3.gz +man/man3/DefaultScreenOfDisplay.3.gz +man/man3/DefaultScreen.3.gz +man/man3/DefaultVisual.3.gz +man/man3/DisplayCells.3.gz +man/man3/DisplayPlanes.3.gz +man/man3/DisplayString.3.gz +man/man3/XMaxRequestSize.3.gz +man/man3/XExtendedMaxRequestSize.3.gz +man/man3/LastKnownRequestProcessed.3.gz +man/man3/NextRequest.3.gz +man/man3/ProtocolVersion.3.gz +man/man3/ProtocolRevision.3.gz +man/man3/QLength.3.gz +man/man3/RootWindow.3.gz +man/man3/ScreenCount.3.gz +man/man3/ScreenOfDisplay.3.gz +man/man3/ServerVendor.3.gz +man/man3/VendorRelease.3.gz +man/man3/WhitePixelOfScreen.3.gz +man/man3/BlackPixelOfScreen.3.gz +man/man3/CellsOfScreen.3.gz +man/man3/BitmapPad.3.gz +man/man3/DefaultColormapOfScreen.3.gz +man/man3/DefaultDepthOfScreen.3.gz +man/man3/DefaultGCOfScreen.3.gz +man/man3/DefaultVisualOfScreen.3.gz +man/man3/DoesBackingStore.3.gz +man/man3/DoesSaveUnders.3.gz +man/man3/DisplayOfScreen.3.gz +man/man3/XScreenNumberOfScreen.3.gz +man/man3/EventMaskOfScreen.3.gz +man/man3/HeightOfScreen.3.gz +man/man3/HeightMMOfScreen.3.gz +man/man3/MaxCmapsOfScreen.3.gz +man/man3/MinCmapsOfScreen.3.gz +man/man3/PlanesOfScreen.3.gz +man/man3/RootWindowOfScreen.3.gz +man/man3/BitmapUnit.3.gz +man/man3/WidthOfScreen.3.gz +man/man3/WidthMMOfScreen.3.gz +man/man3/DisplayOfCCC.3.gz +man/man3/VisualOfCCC.3.gz +man/man3/ScreenNumberOfCCC.3.gz +man/man3/ScreenWhitePointOfCCC.3.gz +man/man3/ClientWhitePointOfCCC.3.gz +man/man3/BitmapBitOrder.3.gz +man/man3/ImageByteOrder.3.gz +man/man3/DisplayHeight.3.gz +man/man3/DisplayHeightMM.3.gz +man/man3/DisplayWidth.3.gz +man/man3/DisplayWidthMM.3.gz +man/man3/XListPixmapFormats.3.gz +man/man3/XPixmapFormatValues.3.gz +man/man3/IsPFKey.3.gz +man/man3/IsCursorKey.3.gz +man/man3/IsFunctionKey.3.gz +man/man3/IsKeypadKey.3.gz +man/man3/IsMiscFunctionKey.3.gz +man/man3/IsModiferKey.3.gz +man/man3/IsPrivateKeypadKey.3.gz +man/man3/XSetClassHint.3.gz +man/man3/XAllocClassHint.3.gz +man/man3/XGetClassHint.3.gz +man/man3/XClassHint.3.gz +man/man3/XSetIconSizes.3.gz +man/man3/XAllocIconSize.3.gz +man/man3/XGetIconSizes.3.gz +man/man3/XIconSize.3.gz +man/man3/XSetRGBColormaps.3.gz +man/man3/XAllocStandardColormap.3.gz +man/man3/XGetRGBColormaps.3.gz +man/man3/XStandardColormap.3.gz +man/man3/XSizeHints.3.gz +man/man3/XAllocSizeHints.3.gz +man/man3/XSetWMNormalHints.3.gz +man/man3/XGetWMNormalHints.3.gz +man/man3/XSetWMSizeHints.3.gz +man/man3/XGetWMSizeHints.3.gz +man/man3/XWMHints.3.gz +man/man3/XAllocWMHints.3.gz +man/man3/XSetWMHints.3.gz +man/man3/XGetWMHints.3.gz +man/man3/XEvent.3.gz +man/man3/XAddHost.3.gz +man/man3/XAddHosts.3.gz +man/man3/XListHosts.3.gz +man/man3/XRemoveHost.3.gz +man/man3/XRemoveHosts.3.gz +man/man3/XSetAccessControl.3.gz +man/man3/XEnableAccessControl.3.gz +man/man3/XDisableAccessControl.3.gz +man/man3/XHostAddress.3.gz +man/man3/XAnyEvent.3.gz +man/man3/XAllocColor.3.gz +man/man3/XAllocNamedColor.3.gz +man/man3/XAllocColorCells.3.gz +man/man3/XAllocColorPlanes.3.gz +man/man3/XFreeColors.3.gz +man/man3/XAllowEvents.3.gz +man/man3/XKeyEvent.3.gz +man/man3/XButtonEvent.3.gz +man/man3/XMotionEvent.3.gz +man/man3/XGetKeyboardControl.3.gz +man/man3/XChangeKeyboardControl.3.gz +man/man3/XAutoRepeatOn.3.gz +man/man3/XAutoRepeatOff.3.gz +man/man3/XBell.3.gz +man/man3/XQueryKeymap.3.gz +man/man3/XKeyboardControl.3.gz +man/man3/XGetKeyboardMapping.3.gz +man/man3/XChangeKeyboardMapping.3.gz +man/man3/XDisplayKeycodes.3.gz +man/man3/XSetModifierMapping.3.gz +man/man3/XGetModifierMapping.3.gz +man/man3/XNewModifiermap.3.gz +man/man3/XInsertModifiermapEntry.3.gz +man/man3/XDeleteModifiermapEntry.3.gz +man/man3/XFreeModifierMap.3.gz +man/man3/XModifierKeymap.3.gz +man/man3/XGetPointerControl.3.gz +man/man3/XClientMessageEvent.3.gz +man/man3/XAddToSaveSet.3.gz +man/man3/XChangePointerControl.3.gz +man/man3/XChangeSaveSet.3.gz +man/man3/XRemoveFromSaveSet.3.gz +man/man3/XSetWindowBackground.3.gz +man/man3/XChangeWindowAttributes.3.gz +man/man3/XSetWindowBackgroundPixmap.3.gz +man/man3/XSetWindowBorder.3.gz +man/man3/XSetWindowBorderPixmap.3.gz +man/man3/XSetWindowColormap.3.gz +man/man3/XClearWindow.3.gz +man/man3/XCreateWindowEvent.3.gz +man/man3/XCirculateEvent.3.gz +man/man3/XClearArea.3.gz +man/man3/XCirculateRequestEvent.3.gz +man/man3/XMoveWindow.3.gz +man/man3/XNoOp.3.gz +man/man3/XColormapEvent.3.gz +man/man3/XConfigureEvent.3.gz +man/man3/XConfigureWindow.3.gz +man/man3/XConfigureRequestEvent.3.gz +man/man3/XResizeWindow.3.gz +man/man3/XMoveResizeWindow.3.gz +man/man3/XSetWindowBorderWidth.3.gz +man/man3/XWindowChanges.3.gz +man/man3/XColor.3.gz +man/man3/XCopyArea.3.gz +man/man3/XCopyPlane.3.gz +man/man3/XFreeColormap.3.gz +man/man3/XCreateColormap.3.gz +man/man3/XCopyColormapAndFree.3.gz +man/man3/XCreateFontCursor.3.gz +man/man3/XCreatePixmapCursor.3.gz +man/man3/XFreeFontSet.3.gz +man/man3/XCreateGlyphCursor.3.gz +man/man3/XCreateFontSet.3.gz +man/man3/XArc.3.gz +man/man3/XCreateGC.3.gz +man/man3/XCopyGC.3.gz +man/man3/XChangeGC.3.gz +man/man3/XGetGCValues.3.gz +man/man3/XFreeGC.3.gz +man/man3/XGContextFromGC.3.gz +man/man3/XGCValues.3.gz +man/man3/XCreateIC.3.gz +man/man3/XDestroyIC.3.gz +man/man3/XIMOfIC.3.gz +man/man3/XGetPixel.3.gz +man/man3/XInitImage.3.gz +man/man3/XCreateImage.3.gz +man/man3/XPutPixel.3.gz +man/man3/XSubImage.3.gz +man/man3/XAddPixel.3.gz +man/man3/XDestroyImage.3.gz +man/man3/XCreateOC.3.gz +man/man3/XDestroyOC.3.gz +man/man3/XSetOCValues.3.gz +man/man3/XGetOCValues.3.gz +man/man3/XOMOfOC.3.gz +man/man3/XSetRegion.3.gz +man/man3/XCreatePixmap.3.gz +man/man3/XFreePixmap.3.gz +man/man3/XCreateRegion.3.gz +man/man3/XDestroyRegion.3.gz +man/man3/XDrawArc.3.gz +man/man3/XCreateWindow.3.gz +man/man3/XCreateSimpleWindow.3.gz +man/man3/XSetWindowAttributes.3.gz +man/man3/XDefineCursor.3.gz +man/man3/XCrossingEvent.3.gz +man/man3/XUndefineCursor.3.gz +man/man3/XDestroyWindowEvent.3.gz +man/man3/XDrawArcs.3.gz +man/man3/XDestroyWindow.3.gz +man/man3/XDestroySubwindows.3.gz +man/man3/XDrawLines.3.gz +man/man3/XDrawImageString.3.gz +man/man3/XDrawImageString16.3.gz +man/man3/XDrawLine.3.gz +man/man3/XDrawSegments.3.gz +man/man3/XSegment.3.gz +man/man3/XPoint.3.gz +man/man3/XDrawPoint.3.gz +man/man3/XDrawPoints.3.gz +man/man3/XRectangle.3.gz +man/man3/XDrawRectangle.3.gz +man/man3/XDrawRectangles.3.gz +man/man3/XDrawString.3.gz +man/man3/XDrawString16.3.gz +man/man3/XDrawText.3.gz +man/man3/XDrawText16.3.gz +man/man3/XTextItem.3.gz +man/man3/XTextItem16.3.gz +man/man3/XFillArc.3.gz +man/man3/XEmptyRegion.3.gz +man/man3/XEqualRegion.3.gz +man/man3/XPointInRegion.3.gz +man/man3/XRectInRegion.3.gz +man/man3/XErrorEvent.3.gz +man/man3/XrmEnumerateDatabase.3.gz +man/man3/XExtentsOfFontSet.3.gz +man/man3/XExposeEvent.3.gz +man/man3/XFilterEvent.3.gz +man/man3/XFocusChangeEvent.3.gz +man/man3/XFillPolygon.3.gz +man/man3/XFontSetExtents.3.gz +man/man3/XFillRectangle.3.gz +man/man3/XFillRectangles.3.gz +man/man3/XFillArcs.3.gz +man/man3/XSync.3.gz +man/man3/XFlush.3.gz +man/man3/XEventsQueued.3.gz +man/man3/XPending.3.gz +man/man3/XFree.3.gz +man/man3/XFontsOfFontSet.3.gz +man/man3/XBaseFontNameListOfFontSet.3.gz +man/man3/XLocaleOfFontSet.3.gz +man/man3/XContextDependentDrawing.3.gz +man/man3/XContextualDrawing.3.gz +man/man3/XDirectionalDependentDrawing.3.gz +man/man3/XNoExposeEvent.3.gz +man/man3/XGraphicsExposeEvent.3.gz +man/man3/XrmPutFileDatabase.3.gz +man/man3/XGravityEvent.3.gz +man/man3/XrmGetFileDatabase.3.gz +man/man3/XrmGetStringDatabase.3.gz +man/man3/XrmLocaleOfDatabase.3.gz +man/man3/XrmGetDatabase.3.gz +man/man3/XrmSetDatabase.3.gz +man/man3/XrmDestroyDatabase.3.gz +man/man3/XVisualInfo.3.gz +man/man3/XrmGetResource.3.gz +man/man3/XrmQGetResource.3.gz +man/man3/XrmQGetSearchList.3.gz +man/man3/XrmQGetSearchResource.3.gz +man/man3/XGetVisualInfo.3.gz +man/man3/XMatchVisualInfo.3.gz +man/man3/XVisualIDFromVisual.3.gz +man/man3/XGetGeometry.3.gz +man/man3/XGetWindowAttributes.3.gz +man/man3/XWindowAttributes.3.gz +man/man3/XListProperties.3.gz +man/man3/XGetWindowProperty.3.gz +man/man3/XChangeProperty.3.gz +man/man3/XRotateWindowProperties.3.gz +man/man3/XDeleteProperty.3.gz +man/man3/XUngrabKey.3.gz +man/man3/XGrabButton.3.gz +man/man3/XUngrabButton.3.gz +man/man3/XGrabKey.3.gz +man/man3/XGrabKeyboard.3.gz +man/man3/XUngrabKeyboard.3.gz +man/man3/XGrabPointer.3.gz +man/man3/XUngrabPointer.3.gz +man/man3/XChangeActivePointerGrab.3.gz +man/man3/XGrabServer.3.gz +man/man3/XUngrabServer.3.gz +man/man3/XCheckIfEvent.3.gz +man/man3/XIconifyWindow.3.gz +man/man3/XWithdrawWindow.3.gz +man/man3/XReconfigureWMWindow.3.gz +man/man3/XIfEvent.3.gz +man/man3/XPeekIfEvent.3.gz +man/man3/XrmValue.3.gz +man/man3/XrmInitialize.3.gz +man/man3/XrmParseCommand.3.gz +man/man3/XrmOptionKind.3.gz +man/man3/XrmOptionDescRec.3.gz +man/man3/XInstallColormap.3.gz +man/man3/XUninstallColormap.3.gz +man/man3/XListInstalledColormaps.3.gz +man/man3/XRemoveConnectionWatch.3.gz +man/man3/XAddConnectionWatch.3.gz +man/man3/XProcessInternalConnection.3.gz +man/man3/XInternalConnectionNumbers.3.gz +man/man3/XUnionRegion.3.gz +man/man3/XIntersectRegion.3.gz +man/man3/XUnionRectWithRegion.3.gz +man/man3/XSubtractRegion.3.gz +man/man3/XXorRegion.3.gz +man/man3/XOffsetRegion.3.gz +man/man3/XShrinkRegion.3.gz +man/man3/XInternAtom.3.gz +man/man3/XInternAtoms.3.gz +man/man3/XGetAtomName.3.gz +man/man3/XGetAtomNames.3.gz +man/man3/XKeymapEvent.3.gz +man/man3/XListFonts.3.gz +man/man3/XFreeFontNames.3.gz +man/man3/XListFontsWithInfo.3.gz +man/man3/XFreeFontInfo.3.gz +man/man3/XLoadFont.3.gz +man/man3/XQueryFont.3.gz +man/man3/XLoadQueryFont.3.gz +man/man3/XFreeFont.3.gz +man/man3/XGetFontProperty.3.gz +man/man3/XUnloadFont.3.gz +man/man3/XCharStruct.3.gz +man/man3/XFontProp.3.gz +man/man3/XChar2b.3.gz +man/man3/XFontStruct.3.gz +man/man3/XLookupKeysym.3.gz +man/man3/XRefreshKeyboardMapping.3.gz +man/man3/XLookupString.3.gz +man/man3/XRebindKeySym.3.gz +man/man3/XrmCombineFileDatabase.3.gz +man/man3/XrmMergeDatabases.3.gz +man/man3/XrmCombineDatabase.3.gz +man/man3/XMapEvent.3.gz +man/man3/XMappingEvent.3.gz +man/man3/XMapRaised.3.gz +man/man3/XMapRequestEvent.3.gz +man/man3/XMapWindow.3.gz +man/man3/XMapSubwindows.3.gz +man/man3/XPeekEvent.3.gz +man/man3/XNextEvent.3.gz +man/man3/XWindowEvent.3.gz +man/man3/XCheckWindowEvent.3.gz +man/man3/XMaskEvent.3.gz +man/man3/XCheckMaskEvent.3.gz +man/man3/XCheckTypedEvent.3.gz +man/man3/XCheckTypedWindowEvent.3.gz +man/man3/XCloseIM.3.gz +man/man3/XOpenDisplay.3.gz +man/man3/XCloseDisplay.3.gz +man/man3/XOpenIM.3.gz +man/man3/XSetIMValues.3.gz +man/man3/XGetIMValues.3.gz +man/man3/XDisplayOfIM.3.gz +man/man3/XLocaleOfIM.3.gz +man/man3/XRegisterIMInstantiateCallback.3.gz +man/man3/XUnregisterIMInstantiateCallback.3.gz +man/man3/XOpenOM.3.gz +man/man3/XCloseOM.3.gz +man/man3/XSetOMValues.3.gz +man/man3/XGetOMValues.3.gz +man/man3/XDisplayOfOM.3.gz +man/man3/XLocaleOfOM.3.gz +man/man3/XWMGeometry.3.gz +man/man3/XPropertyEvent.3.gz +man/man3/XParseGeometry.3.gz +man/man3/XClipBox.3.gz +man/man3/XGetImage.3.gz +man/man3/XPolygonRegion.3.gz +man/man3/XPutBackEvent.3.gz +man/man3/XPutImage.3.gz +man/man3/XGetSubImage.3.gz +man/man3/XQueryBestTile.3.gz +man/man3/XrmPutResource.3.gz +man/man3/XrmQPutResource.3.gz +man/man3/XrmPutStringResource.3.gz +man/man3/XrmQPutStringResource.3.gz +man/man3/XrmPutLineResource.3.gz +man/man3/XQueryBestSize.3.gz +man/man3/XQueryBestStipple.3.gz +man/man3/XQueryColor.3.gz +man/man3/XQueryColors.3.gz +man/man3/XLookupColor.3.gz +man/man3/XParseColor.3.gz +man/man3/XQueryPointer.3.gz +man/man3/XCreateBitmapFromData.3.gz +man/man3/XQueryTree.3.gz +man/man3/XRaiseWindow.3.gz +man/man3/XReparentEvent.3.gz +man/man3/XScreenResourceString.3.gz +man/man3/XResourceManagerString.3.gz +man/man3/XLowerWindow.3.gz +man/man3/XResizeRequestEvent.3.gz +man/man3/XCirculateSubwindows.3.gz +man/man3/XCirculateSubwindowsUp.3.gz +man/man3/XCirculateSubwindowsDown.3.gz +man/man3/XRestackWindows.3.gz +man/man3/XReadBitmapFile.3.gz +man/man3/XReadBitmapFileData.3.gz +man/man3/XWriteBitmapFile.3.gz +man/man3/XCreatePixmapFromBitmapData.3.gz +man/man3/XFreeCursor.3.gz +man/man3/XRecolorCursor.3.gz +man/man3/XQueryBestCursor.3.gz +man/man3/XFindContext.3.gz +man/man3/XReparentWindow.3.gz +man/man3/XSaveContext.3.gz +man/man3/XSelectionClearEvent.3.gz +man/man3/XDeleteContext.3.gz +man/man3/XUniqueContext.3.gz +man/man3/XUnsetICFocus.3.gz +man/man3/XSelectionEvent.3.gz +man/man3/XSetICFocus.3.gz +man/man3/XDisplayName.3.gz +man/man3/XSetICValues.3.gz +man/man3/XGetICValues.3.gz +man/man3/XSelectInput.3.gz +man/man3/XTextPropertyToStringList.3.gz +man/man3/XStringListToTextProperty.3.gz +man/man3/XFreeStringList.3.gz +man/man3/XTextProperty.3.gz +man/man3/XSetArcMode.3.gz +man/man3/XSelectionRequestEvent.3.gz +man/man3/XSetSubwindowMode.3.gz +man/man3/XSetGraphicsExposure.3.gz +man/man3/XSetClipMask.3.gz +man/man3/XSetClipOrigin.3.gz +man/man3/XSetClipRectangles.3.gz +man/man3/XKillClient.3.gz +man/man3/XSetCloseDownMode.3.gz +man/man3/XSetCommand.3.gz +man/man3/XGetCommand.3.gz +man/man3/XGetErrorText.3.gz +man/man3/XSetErrorHandler.3.gz +man/man3/XSetIOErrorHandler.3.gz +man/man3/XGetErrorDatabaseText.3.gz +man/man3/XTimeCoord.3.gz +man/man3/XSendEvent.3.gz +man/man3/XDisplayMotionBufferSize.3.gz +man/man3/XGetMotionEvents.3.gz +man/man3/XSetDashes.3.gz +man/man3/XSetFillStyle.3.gz +man/man3/XSetFillRule.3.gz +man/man3/XSetFont.3.gz +man/man3/XSetFontPath.3.gz +man/man3/XGetFontPath.3.gz +man/man3/XFreeFontPath.3.gz +man/man3/XGetInputFocus.3.gz +man/man3/XSetInputFocus.3.gz +man/man3/XGetPointerMapping.3.gz +man/man3/XSetLineAttributes.3.gz +man/man3/XSetPointerMapping.3.gz +man/man3/XSetFunction.3.gz +man/man3/XSetScreenSaver.3.gz +man/man3/XForceScreenSaver.3.gz +man/man3/XActivateScreenSaver.3.gz +man/man3/XResetScreenSaver.3.gz +man/man3/XGetScreenSaver.3.gz +man/man3/XGetSelectionOwner.3.gz +man/man3/XSetSelectionOwner.3.gz +man/man3/XConvertSelection.3.gz +man/man3/XSetState.3.gz +man/man3/XSetPlanemask.3.gz +man/man3/XSetForeground.3.gz +man/man3/XSetBackground.3.gz +man/man3/XSetTransientForHint.3.gz +man/man3/XGetTransientForHint.3.gz +man/man3/XSetStipple.3.gz +man/man3/XSetTextProperty.3.gz +man/man3/XGetTextProperty.3.gz +man/man3/XSetTile.3.gz +man/man3/XSetTSOrigin.3.gz +man/man3/XGetWMIconName.3.gz +man/man3/XSetWMClientMachine.3.gz +man/man3/XGetWMClientMachine.3.gz +man/man3/XSetWMColormapWindows.3.gz +man/man3/XGetWMColormapWindows.3.gz +man/man3/XSetWMIconName.3.gz +man/man3/XSetIconName.3.gz +man/man3/XGetIconName.3.gz +man/man3/XGetWMName.3.gz +man/man3/XSetWMName.3.gz +man/man3/XStoreName.3.gz +man/man3/XFetchName.3.gz +man/man3/XStoreBuffer.3.gz +man/man3/XSetWMProperties.3.gz +man/man3/XmbSetWMProperties.3.gz +man/man3/XSetWMProtocols.3.gz +man/man3/XGetWMProtocols.3.gz +man/man3/XStoreBytes.3.gz +man/man3/XFetchBytes.3.gz +man/man3/XFetchBuffer.3.gz +man/man3/XRotateBuffers.3.gz +man/man3/XStoreColors.3.gz +man/man3/XStoreColor.3.gz +man/man3/XStoreNamedColor.3.gz +man/man3/XKeysymToKeycode.3.gz +man/man3/XStringToKeysym.3.gz +man/man3/XKeysymToString.3.gz +man/man3/XKeycodeToKeysym.3.gz +man/man3/XConvertCase.3.gz +man/man3/XDefaultString.3.gz +man/man3/XSupportsLocale.3.gz +man/man3/XSetLocaleModifiers.3.gz +man/man3/XSynchronize.3.gz +man/man3/XSetAfterFunction.3.gz +man/man3/XwcFreeStringList.3.gz +man/man3/XmbTextListToTextProperty.3.gz +man/man3/XwcTextListToTextProperty.3.gz +man/man3/XmbTextPropertyToTextList.3.gz +man/man3/XwcTextPropertyToTextList.3.gz +man/man3/XTextExtents.3.gz +man/man3/XTextExtents16.3.gz +man/man3/XQueryTextExtents.3.gz +man/man3/XQueryTextExtents16.3.gz +man/man3/XVaCreateNestedList.3.gz +man/man3/XTextWidth.3.gz +man/man3/XTextWidth16.3.gz +man/man3/XInitThreads.3.gz +man/man3/XLockDisplay.3.gz +man/man3/XUnlockDisplay.3.gz +man/man3/XrmStringToQuark.3.gz +man/man3/XTranslateCoordinates.3.gz +man/man3/XrmUniqueQuark.3.gz +man/man3/XrmPermStringToQuark.3.gz +man/man3/XrmQuarkToString.3.gz +man/man3/XrmStringToQuarkList.3.gz +man/man3/XrmStringToBindingQuarkList.3.gz +man/man3/XUnmapEvent.3.gz +man/man3/XUnmapWindow.3.gz +man/man3/XUnmapSubwindows.3.gz +man/man3/XcmsSetCCCOfColormap.3.gz +man/man3/XVisibilityNotifyEvent.3.gz +man/man3/XWarpPointer.3.gz +man/man3/XcmsCCCOfColormap.3.gz +man/man3/XcmsRGB.3.gz +man/man3/XcmsAllocColor.3.gz +man/man3/XcmsAllocNamedColor.3.gz +man/man3/XcmsConvertColors.3.gz +man/man3/XcmsColor.3.gz +man/man3/XcmsRGBi.3.gz +man/man3/XcmsCIEXYZ.3.gz +man/man3/XcmsCIEuvY.3.gz +man/man3/XcmsCIExyY.3.gz +man/man3/XcmsCIELab.3.gz +man/man3/XcmsCIELuv.3.gz +man/man3/XcmsTekHVC.3.gz +man/man3/XcmsPad.3.gz +man/man3/XcmsFreeCCC.3.gz +man/man3/XcmsCreateCCC.3.gz +man/man3/XwcResetIC.3.gz +man/man3/XcmsQueryBlue.3.gz +man/man3/XcmsDefaultCCC.3.gz +man/man3/XcmsQueryBlack.3.gz +man/man3/XcmsCIELabQueryMaxC.3.gz +man/man3/XcmsCIELabQueryMaxL.3.gz +man/man3/XcmsCIELabQueryMaxLC.3.gz +man/man3/XcmsCIELabQueryMinL.3.gz +man/man3/XcmsCIELuvQueryMaxC.3.gz +man/man3/XcmsCIELuvQueryMaxL.3.gz +man/man3/XcmsCIELuvQueryMaxLC.3.gz +man/man3/XcmsCIELuvQueryMinL.3.gz +man/man3/XcmsQueryGreen.3.gz +man/man3/XcmsQueryRed.3.gz +man/man3/XcmsQueryWhite.3.gz +man/man3/XmbDrawString.3.gz +man/man3/XcmsQueryColor.3.gz +man/man3/XcmsQueryColors.3.gz +man/man3/XcmsLookupColor.3.gz +man/man3/XcmsStoreColor.3.gz +man/man3/XcmsStoreColors.3.gz +man/man3/XcmsSetWhitePoint.3.gz +man/man3/XcmsSetWhiteAdjustProc.3.gz +man/man3/XwcDrawImageString.3.gz +man/man3/XcmsTekHVCQueryMaxC.3.gz +man/man3/XcmsTekHVCQueryMaxV.3.gz +man/man3/XcmsTekHVCQueryMaxVC.3.gz +man/man3/XcmsTekHVCQueryMaxVSamples.3.gz +man/man3/XcmsTekHVCQueryMinV.3.gz +man/man3/XmbDrawImageString.3.gz +man/man3/XwcDrawString.3.gz +man/man3/XmbDrawText.3.gz +man/man3/XwcDrawText.3.gz +man/man3/XmbResetIC.3.gz +man/man3/XmbLookupString.3.gz +man/man3/XwcLookupString.3.gz +man/man3/XwcTextExtents.3.gz +man/man3/XmbTextEscapement.3.gz +man/man3/XwcTextEscapement.3.gz +man/man3/XmbTextExtents.3.gz +man/man3/XtAddCallbacks.3.gz +man/man3/XmbTextPerCharExtents.3.gz +man/man3/XwcTextPerCharExtents.3.gz +man/man3/XtAddCallback.3.gz +man/man3/XtRemoveCallback.3.gz +man/man3/XtRemoveCallbacks.3.gz +man/man3/XtRemoveAllCallbacks.3.gz +man/man3/XtAddRawEventHandler.3.gz +man/man3/XtAddEventHandler.3.gz +man/man3/XtRemoveEventHandler.3.gz +man/man3/XtRemoveRawEventHandler.3.gz +man/man3/XtInsertEventHandler.3.gz +man/man3/XtInsertRawEventHandler.3.gz +man/man3/XtRemoveGrab.3.gz +man/man3/XtAddExposureToRegion.3.gz +man/man3/XtAddGrab.3.gz +man/man3/XtAddConverter.3.gz +man/man3/XtAppAddActions.3.gz +man/man3/XtAddActions.3.gz +man/man3/XtAppAddConverter.3.gz +man/man3/XtAppAddInput.3.gz +man/man3/XtRemoveInput.3.gz +man/man3/XtAppAddTimeOut.3.gz +man/man3/XtRemoveTimeOut.3.gz +man/man3/XtAppAddTimeout.3.gz +man/man3/XtAppWarning.3.gz +man/man3/XtAppAddWorkProc.3.gz +man/man3/XtRemoveWorkProc.3.gz +man/man3/XtAppCreateShell.3.gz +man/man3/XtVaAppCreateShell.3.gz +man/man3/XtAppError.3.gz +man/man3/XtAppSetErrorHandler.3.gz +man/man3/XtAppSetWarningHandler.3.gz +man/man3/XtAppErrorMsg.3.gz +man/man3/XtAppSetErrorMsgHandler.3.gz +man/man3/XtAppSetWarningMsgHandler.3.gz +man/man3/XtAppWarningMsg.3.gz +man/man3/XtAppGetErrorDatabase.3.gz +man/man3/XtAppGetErrorDatabaseText.3.gz +man/man3/XtAppPending.3.gz +man/man3/XtAppGetSelectionTimeout.3.gz +man/man3/XtAppSetSelectionTimeout.3.gz +man/man3/XtAppNextEvent.3.gz +man/man3/XtAppPeekEvent.3.gz +man/man3/XtAppProcessEvent.3.gz +man/man3/XtDispatchEvent.3.gz +man/man3/XtAppMainLoop.3.gz +man/man3/XtPending.3.gz +man/man3/XtNextEvent.3.gz +man/man3/XtPeekEvent.3.gz +man/man3/XtProcessEvent.3.gz +man/man3/XtMainLoop.3.gz +man/man3/XtHasCallbacks.3.gz +man/man3/XtBuildEventMask.3.gz +man/man3/XtCallAcceptFocus.3.gz +man/man3/XtCallCallbacks.3.gz +man/man3/XtCallCallbackList.3.gz +man/man3/XtFree.3.gz +man/man3/XtClass.3.gz +man/man3/XtSuperclass.3.gz +man/man3/XtIsSubclass.3.gz +man/man3/XtCheckSubclass.3.gz +man/man3/XtIsObject.3.gz +man/man3/XtIsRectObj.3.gz +man/man3/XtIsWidget.3.gz +man/man3/XtIsComposite.3.gz +man/man3/XtIsConstraint.3.gz +man/man3/XtIsShell.3.gz +man/man3/XtIsOverrideShell.3.gz +man/man3/XtIsWMShell.3.gz +man/man3/XtIsVendorShell.3.gz +man/man3/XtIsTransientShell.3.gz +man/man3/XtIsTopLevelShell.3.gz +man/man3/XtIsApplicationShell.3.gz +man/man3/XtMoveWidget.3.gz +man/man3/XtConfigureWidget.3.gz +man/man3/XtResizeWidget.3.gz +man/man3/XtConvert.3.gz +man/man3/XtDirectConvert.3.gz +man/man3/XtConvertAndStore.3.gz +man/man3/XtCallConverter.3.gz +man/man3/XtToolkitInitialize.3.gz +man/man3/XtVaCreateWidget.3.gz +man/man3/XtCreateApplicationContext.3.gz +man/man3/XtDestroyApplicationContext.3.gz +man/man3/XtWidgetToApplicationContext.3.gz +man/man3/XtCreateWidget.3.gz +man/man3/XtCreatePopupShell.3.gz +man/man3/XtVaCreatePopupShell.3.gz +man/man3/XtCreateManagedWidget.3.gz +man/man3/XtVaCreateManagedWidget.3.gz +man/man3/XtDestroyWidget.3.gz +man/man3/XtDisplay.3.gz +man/man3/XtCreateWindow.3.gz +man/man3/XtDisplayOfObject.3.gz +man/man3/XtScreen.3.gz +man/man3/XtScreenOfObject.3.gz +man/man3/XtWindow.3.gz +man/man3/XtWindowOfObject.3.gz +man/man3/XtOpenDisplay.3.gz +man/man3/XtDisplayInitialize.3.gz +man/man3/XtCloseDisplay.3.gz +man/man3/XtDatabase.3.gz +man/man3/XtScreenDatabase.3.gz +man/man3/XtGetGC.3.gz +man/man3/XtReleaseGC.3.gz +man/man3/XtMalloc.3.gz +man/man3/XtGetResourceList.3.gz +man/man3/XtGetConstraintResourceList.3.gz +man/man3/XtGetSubresources.3.gz +man/man3/XtGetSelectionValue.3.gz +man/man3/XtGetSelectionValues.3.gz +man/man3/XtVaGetSubresources.3.gz +man/man3/XtMakeResizeRequest.3.gz +man/man3/XtGetApplicationResources.3.gz +man/man3/XtVaGetApplicationResources.3.gz +man/man3/XtMakeGeometryRequest.3.gz +man/man3/XtCalloc.3.gz +man/man3/XtRealloc.3.gz +man/man3/XtNew.3.gz +man/man3/XtNewString.3.gz +man/man3/XtManageChild.3.gz +man/man3/XtManageChildren.3.gz +man/man3/XtUnmanageChildren.3.gz +man/man3/XtUnmanageChild.3.gz +man/man3/XtIsManaged.3.gz +man/man3/XtChangeManagedSet.3.gz +man/man3/XtOffsetOf.3.gz +man/man3/XtMapWidget.3.gz +man/man3/XtSetMappedWhenManaged.3.gz +man/man3/XtUnmapWidget.3.gz +man/man3/XtOffset.3.gz +man/man3/XtNameToWidget.3.gz +man/man3/XtWindowToWidget.3.gz +man/man3/XtNumber.3.gz +man/man3/XtDisownSelection.3.gz +man/man3/XtOwnSelection.3.gz +man/man3/XtOwnSelectionIncremental.3.gz +man/man3/XtInstallAccelerators.3.gz +man/man3/XtParseAcceleratorTable.3.gz +man/man3/XtInstallAllAccelerators.3.gz +man/man3/XtAugmentTranslations.3.gz +man/man3/XtParseTranslationTable.3.gz +man/man3/XtOverrideTranslations.3.gz +man/man3/XtUninstallTranslations.3.gz +man/man3/XtPopdown.3.gz +man/man3/XtCallbackPopdown.3.gz +man/man3/MenuPopdown.3.gz +man/man3/XtPopup.3.gz +man/man3/XtPopupSpringLoaded.3.gz +man/man3/XtCallbackNone.3.gz +man/man3/XtCallbackNonexclusive.3.gz +man/man3/XtCallbackExclusive.3.gz +man/man3/MenuPopup.3.gz +man/man3/XtIsRealized.3.gz +man/man3/XtQueryGeometry.3.gz +man/man3/XtRealizeWidget.3.gz +man/man3/XtUnrealizeWidget.3.gz +man/man3/XtSetArg.3.gz +man/man3/XtMergeArgLists.3.gz +man/man3/XtTranslateKeycode.3.gz +man/man3/XtSetKeyboardFocus.3.gz +man/man3/XtSetKeyTranslator.3.gz +man/man3/XtRegisterCaseConverter.3.gz +man/man3/XtConvertCase.3.gz +man/man3/XtIsSensitive.3.gz +man/man3/XtSetSensitive.3.gz +man/man3/XtVaSetValues.3.gz +man/man3/XtSetValues.3.gz +man/man3/XtSetSubvalues.3.gz +man/man3/XtGetValues.3.gz +man/man3/XtVaGetValues.3.gz +man/man3/XtGetSubvalues.3.gz +man/man3/XtKeysymToKeycodeList.3.gz +man/man3/XtStringConversionWarning.3.gz +man/man3/XtTranslateCoords.3.gz +man/man3/XtDisplayStringConversionWarning.3.gz +man/man3/XtGetKeysymTable.3.gz +man/man3/XtSetTypeConverter.3.gz +man/man3/XtAppSetTypeConverter.3.gz +man/man3/XtRemoveActionHook.3.gz +man/man3/XtAppAddActionHook.3.gz +man/man3/XtGetMultiClickTime.3.gz +man/man3/XtGetActionList.3.gz +man/man3/XtCallActionProc.3.gz +man/man3/XtRegisterGrabAction.3.gz +man/man3/XtSetMultiClickTime.3.gz +man/man3/XtNoticeSignal.3.gz +man/man3/XtGetActionKeysym.3.gz +man/man3/XtSetEventDispatcher.3.gz +man/man3/XtInsertEventTypeHandler.3.gz +man/man3/XtRemoveEventTypeHandler.3.gz +man/man3/XtRegisterExtensionSelector.3.gz +man/man3/XtDispatchEventToWidget.3.gz +man/man3/XtAppAddSignal.3.gz +man/man3/XtGetKeyboardFocusWidget.3.gz +man/man3/XtLastEventProcessed.3.gz +man/man3/XtLastTimestampProcessed.3.gz +man/man3/XtRemoveSignal.3.gz +man/man3/XtAddInput.3.gz +man/man3/XtAddTimeOut.3.gz +man/man3/XtAddTimeout.3.gz +man/man3/XtParent.3.gz +man/man3/XtAppAddBlockHook.3.gz +man/man3/XtRemoveBlockHook.3.gz +man/man3/XtName.3.gz +man/man3/XtAppSetFallbackResources.3.gz +man/man3/XtGetClassExtension.3.gz +man/man3/XtVaCreateArgsList.3.gz +man/man3/XtVaAppInitialize.3.gz +man/man3/XtCreateApplicationShell.3.gz +man/man3/XtSetLanguageProc.3.gz +man/man3/XtAppInitialize.3.gz +man/man3/XtInitialize.3.gz +man/man3/XtSessionReturnToken.3.gz +man/man3/XtInitializeWidgetClass.3.gz +man/man3/XtDisplayToApplicationContext.3.gz +man/man3/XtSessionGetToken.3.gz +man/man3/XtWarning.3.gz +man/man3/XtErrorMsg.3.gz +man/man3/XtSetErrorMsgHandler.3.gz +man/man3/XtSetWarningMsgHandler.3.gz +man/man3/XtWarningMsg.3.gz +man/man3/XtError.3.gz +man/man3/XtSetErrorHandler.3.gz +man/man3/XtSetWarningHandler.3.gz +man/man3/XtUngrabKey.3.gz +man/man3/XtGetErrorDatabase.3.gz +man/man3/XtGetErrorDatabaseText.3.gz +man/man3/XtAllocateGC.3.gz +man/man3/XtFindFile.3.gz +man/man3/XtAppReleaseCacheRefs.3.gz +man/man3/XtResolvePathname.3.gz +man/man3/XtSetWMColormapWindows.3.gz +man/man3/XtGetSelectionTimeout.3.gz +man/man3/XtGetSelectionValueIncremental.3.gz +man/man3/XtGetSelectionValuesIncremental.3.gz +man/man3/XtSetSelectionTimeout.3.gz +man/man3/XtGetSelectionRequest.3.gz +man/man3/XtSendSelectionRequest.3.gz +man/man3/XtSetSelectionParameters.3.gz +man/man3/XtGetSelectionParameters.3.gz +man/man3/XtCreateSelectionRequest.3.gz +man/man3/XtCancelSelectionRequest.3.gz +man/man3/XtReservePropertyAtom.3.gz +man/man3/XtReleasePropertyAtom.3.gz +man/man3/XtGrabKey.3.gz +man/man3/XtGrabKeyboard.3.gz +man/man3/XtUngrabKeyboard.3.gz +man/man3/XtGrabButton.3.gz +man/man3/XtUngrabButton.3.gz +man/man3/XtGrabPointer.3.gz +man/man3/XtUngrabPointer.3.gz +man/man3/XtUnregisterDrawable.3.gz +man/man3/XtGetApplicationNameAndClass.3.gz +man/man3/XtRegisterDrawable.3.gz +man/man3/XtAppUnlock.3.gz +man/man3/XtHooksOfDisplay.3.gz +man/man3/XtGetDisplays.3.gz +man/man3/XtAppSetExitFlag.3.gz +man/man3/XtToolkitThreadInitialize.3.gz +man/man3/XtAppGetExitFlag.3.gz +man/man3/XtAppLock.3.gz +man/man3/XtProcessLock.3.gz +man/man3/XtProcessUnlock.3.gz +man/man3/XShapeOffsetShape.3.gz +man/man3/XtOpenApplication.3.gz +man/man3/XtVaOpenApplication.3.gz +man/man3/XShapeQueryVersion.3.gz +man/man3/XShapeQueryExtension.3.gz +man/man3/XShapeCombineRegion.3.gz +man/man3/XShapeCombineRectangles.3.gz +man/man3/XShapeCombineMask.3.gz +man/man3/XShapeCombineShape.3.gz +man/man3/XShapeQueryExtents.3.gz +man/man3/XShapeSelectInput.3.gz +man/man3/XShapeInputSelected.3.gz +man/man3/XShapeGetRectangles.3.gz +man/man3/XmbufGetVersion.3.gz +man/man3/XmbufQueryExtension.3.gz +man/man3/XmbufCreateBuffers.3.gz +man/man3/XmbufDestroyBuffers.3.gz +man/man3/XmbufDisplayBuffers.3.gz +man/man3/XmbufGetWindowAttributes.3.gz +man/man3/XmbufChangeWindowAttributes.3.gz +man/man3/XmbufGetBufferAttributes.3.gz +man/man3/XmbufChangeBufferAttributes.3.gz +man/man3/XmbufGetScreenInfo.3.gz +man/man3/DBE.3.gz +man/man3/XmbufCreateStereoWindow.3.gz +man/man3/XdbeBeginIdiom.3.gz +man/man3/XdbeAllocateBackBufferName.3.gz +man/man3/XdbeEndIdiom.3.gz +man/man3/XdbeFreeVisualInfo.3.gz +man/man3/XdbeDeallocateBackBufferName.3.gz +man/man3/XdbeQueryExtension.3.gz +man/man3/XdbeSwapBuffers.3.gz +man/man3/XdbeGetVisualInfo.3.gz +man/man3/XdbeGetBackBufferAttributes.3.gz +man/man3/XDeviceTimeCoord.3.gz +man/man3/XAllowDeviceEvents.3.gz +man/man3/XGetDeviceControl.3.gz +man/man3/XChangeDeviceControl.3.gz +man/man3/XGetFeedbackControl.3.gz +man/man3/XChangeFeedbackControl.3.gz +man/man3/XGetDeviceKeyMapping.3.gz +man/man3/XChangeDeviceKeyMapping.3.gz +man/man3/XChangeKeyboardDevice.3.gz +man/man3/XGetDeviceModifierMapping.3.gz +man/man3/XSetDeviceModifierMapping.3.gz +man/man3/XGetDeviceDontPropagateList.3.gz +man/man3/XChangeDeviceDontPropagateList.3.gz +man/man3/XChangePointerDevice.3.gz +man/man3/XDeviceBell.3.gz +man/man3/XUngrabDeviceButton.3.gz +man/man3/XGetDeviceMotionEvents.3.gz +man/man3/Xau.3.gz +man/man3/XGetExtensionVersion.3.gz +man/man3/XGrabDeviceButton.3.gz +man/man3/XGrabDevice.3.gz +man/man3/XGrabDeviceKey.3.gz +man/man3/XUngrabDeviceKey.3.gz +man/man3/XUngrabDevice.3.gz +man/man3/XOpenDevice.3.gz +man/man3/XListInputDevices.3.gz +man/man3/XFreeDeviceList.3.gz +man/man3/XCloseDevice.3.gz +man/man3/XQueryDeviceState.3.gz +man/man3/XGetDeviceButtonMapping.3.gz +man/man3/XSendExtensionEvent.3.gz +man/man3/XauFileName.3.gz +man/man3/XSetDeviceButtonMapping.3.gz +man/man3/XSetDeviceFocus.3.gz +man/man3/XGetDeviceFocus.3.gz +man/man3/XSetDeviceMode.3.gz +man/man3/XSelectExtensionEvent.3.gz +man/man3/XGetSelectedExtensionEvents.3.gz +man/man3/XSetDeviceValuators.3.gz +man/man3/XauReadAuth.3.gz +man/man3/XauLockAuth.3.gz +man/man3/XauUnlockAuth.3.gz +man/man3/XauWriteAuth.3.gz +man/man3/XauDisposeAuth.3.gz +man/man3/XauGetAuthByAddr.3.gz +man/man3/XauGetBestAuthByAddr.3.gz diff --git a/release/scripts/X11/plists/i386/Xnest.tgz.plist b/release/scripts/X11/plists/i386/Xnest.tgz.plist new file mode 100644 index 000000000000..eff754d76af6 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xnest.tgz.plist @@ -0,0 +1 @@ +bin/Xnest diff --git a/release/scripts/X11/plists/i386/Xprog.tgz.plist b/release/scripts/X11/plists/i386/Xprog.tgz.plist new file mode 100644 index 000000000000..62d3d4d5f1ea --- /dev/null +++ b/release/scripts/X11/plists/i386/Xprog.tgz.plist @@ -0,0 +1,349 @@ +lib/ +lib/libXau.a +lib/libXdmcp.a +lib/libX11.a +lib/liboldX.a +lib/libICE.a +lib/libSM.a +lib/libXext.a +lib/libXt.a +lib/libXss.a +lib/libXxf86misc.a +lib/libXxf86vm.a +lib/libXxf86dga.a +lib/libXmu.a +lib/libXaw.a +lib/libXIE.a +lib/libXi.a +lib/libXtst.a +lib/libFS.a +lib/libPEX5.a +lib/libxkbfile.a +lib/libxkbui.a +lib/libXp.a +lib/libXdpms.a +include/ +include/X11/ +include/X11/DECkeysym.h +include/X11/HPkeysym.h +include/X11/Sunkeysym.h +include/X11/X.h +include/X11/XWDFile.h +include/X11/Xalloca.h +include/X11/Xatom.h +include/X11/Xfuncproto.h +include/X11/Xfuncs.h +include/X11/Xmd.h +include/X11/Xos.h +include/X11/Xos_r.h +include/X11/Xosdefs.h +include/X11/Xpoll.h +include/X11/Xproto.h +include/X11/Xprotostr.h +include/X11/Xthreads.h +include/X11/ap_keysym.h +include/X11/keysym.h +include/X11/keysymdef.h +include/X11/extensions/ +include/X11/extensions/Xext.h +include/X11/extensions/multibuf.h +include/X11/extensions/shape.h +include/X11/extensions/XShm.h +include/X11/extensions/MITMisc.h +include/X11/extensions/XI.h +include/X11/extensions/XInput.h +include/X11/extensions/XIproto.h +include/X11/extensions/XTest.h +include/X11/extensions/xtestext1.h +include/X11/extensions/XIE.h +include/X11/extensions/XIEproto.h +include/X11/extensions/XIEprotost.h +include/X11/extensions/sync.h +include/X11/extensions/XKB.h +include/X11/extensions/XKBgeom.h +include/X11/extensions/XKBproto.h +include/X11/extensions/XKBstr.h +include/X11/extensions/XKBsrv.h +include/X11/extensions/Xdbe.h +include/X11/extensions/Xdbeproto.h +include/X11/extensions/Xag.h +include/X11/extensions/Xagstr.h +include/X11/extensions/Xagsrv.h +include/X11/extensions/record.h +include/X11/extensions/recordstr.h +include/X11/extensions/lbxbuf.h +include/X11/extensions/lbxbufstr.h +include/X11/extensions/lbxdeltastr.h +include/X11/extensions/lbximage.h +include/X11/extensions/lbxopts.h +include/X11/extensions/lbxstr.h +include/X11/extensions/lbxzlib.h +include/X11/extensions/security.h +include/X11/extensions/securstr.h +include/X11/extensions/Print.h +include/X11/extensions/Printstr.h +include/X11/extensions/saver.h +include/X11/extensions/saverproto.h +include/X11/extensions/scrnsaver.h +include/X11/extensions/xf86vmode.h +include/X11/extensions/xf86vmstr.h +include/X11/extensions/xf86dga.h +include/X11/extensions/xf86dgastr.h +include/X11/extensions/xf86misc.h +include/X11/extensions/xf86mscstr.h +include/X11/extensions/dpms.h +include/X11/extensions/dpmsstr.h +include/X11/extensions/XIElib.h +include/X11/extensions/XKBfile.h +include/X11/extensions/XKM.h +include/X11/extensions/XKMformat.h +include/X11/extensions/XKBrules.h +include/X11/extensions/XKBconfig.h +include/X11/extensions/XKBbells.h +include/X11/extensions/XKBui.h +include/X11/fonts/ +include/X11/fonts/FS.h +include/X11/fonts/FSproto.h +include/X11/fonts/fsmasks.h +include/X11/fonts/FSlib.h +include/X11/Xauth.h +include/X11/Xdmcp.h +include/X11/Xlib.h +include/X11/ICE/ +include/X11/ICE/ICE.h +include/X11/ICE/ICEconn.h +include/X11/ICE/ICEproto.h +include/X11/ICE/ICElib.h +include/X11/ICE/ICEmsg.h +include/X11/ICE/ICEutil.h +include/X11/Xresource.h +include/X11/Xutil.h +include/X11/cursorfont.h +include/X11/Xlibint.h +include/X11/Xcms.h +include/X11/Xlocale.h +include/X11/XKBlib.h +include/X11/X10.h +include/X11/SM/ +include/X11/SM/SM.h +include/X11/SM/SMproto.h +include/X11/SM/SMlib.h +include/X11/Composite.h +include/X11/CompositeP.h +include/X11/Constraint.h +include/X11/ConstrainP.h +include/X11/Core.h +include/X11/CoreP.h +include/X11/Intrinsic.h +include/X11/IntrinsicP.h +include/X11/Object.h +include/X11/ObjectP.h +include/X11/RectObj.h +include/X11/RectObjP.h +include/X11/Shell.h +include/X11/ShellP.h +include/X11/StringDefs.h +include/X11/Vendor.h +include/X11/VendorP.h +include/X11/Xmu/ +include/X11/Xmu/Xmu.h +include/X11/Xmu/Atoms.h +include/X11/Xmu/CharSet.h +include/X11/Xmu/CloseHook.h +include/X11/Xmu/Converters.h +include/X11/Xmu/CurUtil.h +include/X11/Xmu/CvtCache.h +include/X11/Xmu/DisplayQue.h +include/X11/Xmu/Drawing.h +include/X11/Xmu/Editres.h +include/X11/Xmu/EditresP.h +include/X11/Xmu/Error.h +include/X11/Xmu/ExtAgent.h +include/X11/Xmu/Initer.h +include/X11/Xmu/Misc.h +include/X11/Xmu/StdSel.h +include/X11/Xmu/StdCmap.h +include/X11/Xmu/SysUtil.h +include/X11/Xmu/WidgetNode.h +include/X11/Xmu/WinUtil.h +include/X11/Xmu/Xct.h +include/X11/Xaw/ +include/X11/Xaw/AllWidgets.h +include/X11/Xaw/AsciiSink.h +include/X11/Xaw/AsciiSinkP.h +include/X11/Xaw/AsciiSrc.h +include/X11/Xaw/AsciiSrcP.h +include/X11/Xaw/AsciiText.h +include/X11/Xaw/AsciiTextP.h +include/X11/Xaw/Box.h +include/X11/Xaw/BoxP.h +include/X11/Xaw/Cardinals.h +include/X11/Xaw/Command.h +include/X11/Xaw/CommandP.h +include/X11/Xaw/Dialog.h +include/X11/Xaw/DialogP.h +include/X11/Xaw/Form.h +include/X11/Xaw/FormP.h +include/X11/Xaw/Grip.h +include/X11/Xaw/GripP.h +include/X11/Xaw/Label.h +include/X11/Xaw/LabelP.h +include/X11/Xaw/List.h +include/X11/Xaw/ListP.h +include/X11/Xaw/MenuButton.h +include/X11/Xaw/MenuButtoP.h +include/X11/Xaw/MultiSrc.h +include/X11/Xaw/MultiSrcP.h +include/X11/Xaw/MultiSink.h +include/X11/Xaw/MultiSinkP.h +include/X11/Xaw/Paned.h +include/X11/Xaw/PanedP.h +include/X11/Xaw/Panner.h +include/X11/Xaw/PannerP.h +include/X11/Xaw/Porthole.h +include/X11/Xaw/PortholeP.h +include/X11/Xaw/Repeater.h +include/X11/Xaw/RepeaterP.h +include/X11/Xaw/Reports.h +include/X11/Xaw/Scrollbar.h +include/X11/Xaw/ScrollbarP.h +include/X11/Xaw/Simple.h +include/X11/Xaw/SimpleP.h +include/X11/Xaw/SimpleMenu.h +include/X11/Xaw/SimpleMenP.h +include/X11/Xaw/Sme.h +include/X11/Xaw/SmeP.h +include/X11/Xaw/SmeBSB.h +include/X11/Xaw/SmeBSBP.h +include/X11/Xaw/SmeLine.h +include/X11/Xaw/SmeLineP.h +include/X11/Xaw/StripChart.h +include/X11/Xaw/StripCharP.h +include/X11/Xaw/Template.c +include/X11/Xaw/Template.h +include/X11/Xaw/TemplateP.h +include/X11/Xaw/Text.h +include/X11/Xaw/TextP.h +include/X11/Xaw/TextSink.h +include/X11/Xaw/TextSinkP.h +include/X11/Xaw/TextSrc.h +include/X11/Xaw/TextSrcP.h +include/X11/Xaw/Toggle.h +include/X11/Xaw/ToggleP.h +include/X11/Xaw/Tree.h +include/X11/Xaw/TreeP.h +include/X11/Xaw/VendorEP.h +include/X11/Xaw/Viewport.h +include/X11/Xaw/ViewportP.h +include/X11/Xaw/XawImP.h +include/X11/Xaw/XawInit.h +include/X11/PEX5/ +include/X11/PEX5/PEXlib.h +include/X11/PEX5/PEXlibint.h +include/X11/PEX5/PEX.h +include/X11/PEX5/PEXproto.h +include/X11/PEX5/PEXprotost.h +include/X11/PM/ +include/X11/PM/PM.h +include/X11/PM/PMproto.h +include/bitmaps/ +include/bitmaps/ldblarrow +include/bitmaps/rdblarrow +lib/X11/config/ +lib/X11/config/Imake.rules +lib/X11/config/Motif.rules +lib/X11/config/Win32.rules +lib/X11/config/X11.rules +lib/X11/config/bsdLib.rules +lib/X11/config/cde.rules +lib/X11/config/gnuLib.rules +lib/X11/config/hpLib.rules +lib/X11/config/ibmLib.rules +lib/X11/config/lnxLib.rules +lib/X11/config/lnxdoc.rules +lib/X11/config/necLib.rules +lib/X11/config/noop.rules +lib/X11/config/nto.rules +lib/X11/config/oldlib.rules +lib/X11/config/os2.rules +lib/X11/config/os2Lib.rules +lib/X11/config/osfLib.rules +lib/X11/config/scoLib.rules +lib/X11/config/sgiLib.rules +lib/X11/config/sunLib.rules +lib/X11/config/QNX.rules +lib/X11/config/sv3Lib.rules +lib/X11/config/sv4Lib.rules +lib/X11/config/xf86.rules +lib/X11/config/Imake.tmpl +lib/X11/config/Library.tmpl +lib/X11/config/Motif.tmpl +lib/X11/config/Server.tmpl +lib/X11/config/ServerLib.tmpl +lib/X11/config/Threads.tmpl +lib/X11/config/WinLib.tmpl +lib/X11/config/X11.tmpl +lib/X11/config/bsdLib.tmpl +lib/X11/config/cde.tmpl +lib/X11/config/hpLib.tmpl +lib/X11/config/gnuLib.tmpl +lib/X11/config/ibmLib.tmpl +lib/X11/config/lnxLib.tmpl +lib/X11/config/lnxdoc.tmpl +lib/X11/config/necLib.tmpl +lib/X11/config/os2Lib.tmpl +lib/X11/config/osfLib.tmpl +lib/X11/config/sgiLib.tmpl +lib/X11/config/sunLib.tmpl +lib/X11/config/sv3Lib.tmpl +lib/X11/config/sv4Lib.tmpl +lib/X11/config/xf86.tmpl +lib/X11/config/xf86site.def +lib/X11/config/site.def +lib/X11/config/Imake.cf +lib/X11/config/Amoeba.cf +lib/X11/config/DGUX.cf +lib/X11/config/FreeBSD.cf +lib/X11/config/Mips.cf +lib/X11/config/NetBSD.cf +lib/X11/config/OpenBSD.cf +lib/X11/config/Oki.cf +lib/X11/config/Win32.cf +lib/X11/config/apollo.cf +lib/X11/config/bsd.cf +lib/X11/config/bsdi.cf +lib/X11/config/convex.cf +lib/X11/config/cray.cf +lib/X11/config/fujitsu.cf +lib/X11/config/generic.cf +lib/X11/config/gnu.cf +lib/X11/config/hp.cf +lib/X11/config/ibm.cf +lib/X11/config/isc.cf +lib/X11/config/linux.cf +lib/X11/config/luna.cf +lib/X11/config/macII.cf +lib/X11/config/mach.cf +lib/X11/config/minix.cf +lib/X11/config/moto.cf +lib/X11/config/ncr.cf +lib/X11/config/nec.cf +lib/X11/config/nto.cf +lib/X11/config/os2.cf +lib/X11/config/osf1.cf +lib/X11/config/pegasus.cf +lib/X11/config/sco.cf +lib/X11/config/sco5.cf +lib/X11/config/sequent.cf +lib/X11/config/sgi.cf +lib/X11/config/sony.cf +lib/X11/config/sun.cf +lib/X11/config/svr3.cf +lib/X11/config/svr4.cf +lib/X11/config/ultrix.cf +lib/X11/config/usl.cf +lib/X11/config/lynx.cf +lib/X11/config/x386.cf +lib/X11/config/QNX.cf +lib/X11/config/xfree86.cf +lib/X11/config/host.def diff --git a/release/scripts/X11/plists/i386/Xprt.tgz.plist b/release/scripts/X11/plists/i386/Xprt.tgz.plist new file mode 100644 index 000000000000..0646e79271d4 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xprt.tgz.plist @@ -0,0 +1 @@ +bin/Xprt diff --git a/release/scripts/X11/plists/i386/Xps.tgz.plist b/release/scripts/X11/plists/i386/Xps.tgz.plist new file mode 100644 index 000000000000..bf55d1333dd1 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xps.tgz.plist @@ -0,0 +1,57 @@ +lib/X11/doc/PostScript/ +lib/X11/doc/PostScript/FreeBSD.ps +lib/X11/doc/PostScript/NetBSD.ps +lib/X11/doc/PostScript/OpenBSD.ps +lib/X11/doc/PostScript/Linux.ps +lib/X11/doc/PostScript/fbdev.ps +lib/X11/doc/PostScript/DGux.ps +lib/X11/doc/PostScript/LynxOS.ps +lib/X11/doc/PostScript/SCO.ps +lib/X11/doc/PostScript/isc.ps +lib/X11/doc/PostScript/OS2.ps +lib/X11/doc/PostScript/OS2Notes.ps +lib/X11/doc/PostScript/SOLX86.ps +lib/X11/doc/PostScript/SVR4.ps +lib/X11/doc/PostScript/DECtga.ps +lib/X11/doc/PostScript/I128.ps +lib/X11/doc/PostScript/Mach32.ps +lib/X11/doc/PostScript/Mach64.ps +lib/X11/doc/PostScript/MGA.ps +lib/X11/doc/PostScript/NVIDIA.ps +lib/X11/doc/PostScript/Oak.ps +lib/X11/doc/PostScript/P9000.ps +lib/X11/doc/PostScript/Video7.ps +lib/X11/doc/PostScript/S3.ps +lib/X11/doc/PostScript/S3V.ps +lib/X11/doc/PostScript/SiS.ps +lib/X11/doc/PostScript/W32.ps +lib/X11/doc/PostScript/WstDig.ps +lib/X11/doc/PostScript/apm.ps +lib/X11/doc/PostScript/ark.ps +lib/X11/doc/PostScript/agx.ps +lib/X11/doc/PostScript/ati.ps +lib/X11/doc/PostScript/chips.ps +lib/X11/doc/PostScript/cirrus.ps +lib/X11/doc/PostScript/cyrix.ps +lib/X11/doc/PostScript/epson.ps +lib/X11/doc/PostScript/mouse.ps +lib/X11/doc/PostScript/neo.ps +lib/X11/doc/PostScript/rendition.ps +lib/X11/doc/PostScript/3DLabs.ps +lib/X11/doc/PostScript/trident.ps +lib/X11/doc/PostScript/tseng.ps +lib/X11/doc/PostScript/i740.ps +lib/X11/doc/PostScript/i810.ps +lib/X11/doc/PostScript/r128.ps +lib/X11/doc/PostScript/COPYRIGHT.ps +lib/X11/doc/PostScript/RELNOTES.ps +lib/X11/doc/PostScript/Config.ps +lib/X11/doc/PostScript/BUILD.ps +lib/X11/doc/PostScript/README.ps +lib/X11/doc/PostScript/QuickStart.ps +lib/X11/doc/PostScript/DocIndex.ps +lib/X11/doc/PostScript/LinkKit.ps +lib/X11/doc/PostScript/clkprog.ps +lib/X11/doc/PostScript/xinput.ps +lib/X11/doc/PostScript/VideoModes.ps +lib/X11/doc/PostScript/VGADriver.ps diff --git a/release/scripts/X11/plists/i386/Xset.tgz.plist b/release/scripts/X11/plists/i386/Xset.tgz.plist new file mode 100644 index 000000000000..ec4fd7e2d142 --- /dev/null +++ b/release/scripts/X11/plists/i386/Xset.tgz.plist @@ -0,0 +1,76 @@ +bin/XF86Setup +bin/xmseconfig +lib/X11/XF86Setup/ +lib/X11/XF86Setup/phase1.tcl +lib/X11/XF86Setup/phase2.tcl +lib/X11/XF86Setup/phase3.tcl +lib/X11/XF86Setup/phase4.tcl +lib/X11/XF86Setup/phase5.tcl +lib/X11/XF86Setup/setuplib.tcl +lib/X11/XF86Setup/srvflags.tcl +lib/X11/XF86Setup/carddata.tcl +lib/X11/XF86Setup/card.tcl +lib/X11/XF86Setup/done.tcl +lib/X11/XF86Setup/filelist.tcl +lib/X11/XF86Setup/keyboard.tcl +lib/X11/XF86Setup/mseproto.tcl +lib/X11/XF86Setup/mondata.tcl +lib/X11/XF86Setup/monitor.tcl +lib/X11/XF86Setup/modeselect.tcl +lib/X11/XF86Setup/mouse.tcl +lib/X11/XF86Setup/LICENSE +lib/X11/XF86Setup/tcllib/ +lib/X11/XF86Setup/tcllib/button.tcl +lib/X11/XF86Setup/tcllib/combobox.tcl +lib/X11/XF86Setup/tcllib/misc.tcl +lib/X11/XF86Setup/tcllib/downarrow.xbm +lib/X11/XF86Setup/tcllib/dialog.tcl +lib/X11/XF86Setup/tcllib/entry.tcl +lib/X11/XF86Setup/tcllib/focus.tcl +lib/X11/XF86Setup/tcllib/init.tcl +lib/X11/XF86Setup/tcllib/listbox.tcl +lib/X11/XF86Setup/tcllib/menu.tcl +lib/X11/XF86Setup/tcllib/optionMenu.tcl +lib/X11/XF86Setup/tcllib/palette.tcl +lib/X11/XF86Setup/tcllib/scale.tcl +lib/X11/XF86Setup/tcllib/scrollbar.tcl +lib/X11/XF86Setup/tcllib/tclIndex +lib/X11/XF86Setup/tcllib/tearoff.tcl +lib/X11/XF86Setup/tcllib/text.tcl +lib/X11/XF86Setup/tcllib/tk.tcl +lib/X11/XF86Setup/tcllib/tkerror.tcl +lib/X11/XF86Setup/tcllib/uparrow.xbm +lib/X11/XF86Setup/tcllib/license.terms +lib/X11/XF86Setup/pics/ +lib/X11/XF86Setup/pics/vidcard.xbm +lib/X11/XF86Setup/pics/vidcard.msk +lib/X11/XF86Setup/pics/XFree86.xbm +lib/X11/XF86Setup/pics/XFree86.msk +lib/X11/XF86Setup/scripts/ +lib/X11/XF86Setup/scripts/mseconfig.tcl +lib/X11/XF86Setup/texts/ +lib/X11/XF86Setup/texts/local_text.tcl +lib/X11/XF86Setup/texts/generic/ +lib/X11/XF86Setup/texts/generic/messages.tcl +lib/X11/XF86Setup/texts/generic/message_proc.tcl +lib/X11/XF86Setup/texts/generic/help_card.tcl +lib/X11/XF86Setup/texts/generic/help_done.tcl +lib/X11/XF86Setup/texts/generic/help_keyboard.tcl +lib/X11/XF86Setup/texts/generic/help_monitor.tcl +lib/X11/XF86Setup/texts/generic/help_mouse.tcl +lib/X11/XF86Setup/texts/generic/help_other.tcl +lib/X11/XF86Setup/texts/generic/help_intro.tcl +lib/X11/XF86Setup/texts/generic/help_modeselect.tcl +lib/X11/XF86Setup/texts/ja/ +lib/X11/XF86Setup/texts/ja/messages.tcl +lib/X11/XF86Setup/texts/ja/message_proc.tcl +lib/X11/XF86Setup/texts/ja/help_card.tcl +lib/X11/XF86Setup/texts/ja/help_done.tcl +lib/X11/XF86Setup/texts/ja/help_keyboard.tcl +lib/X11/XF86Setup/texts/ja/help_monitor.tcl +lib/X11/XF86Setup/texts/ja/help_mouse.tcl +lib/X11/XF86Setup/texts/ja/help_other.tcl +lib/X11/XF86Setup/texts/ja/help_intro.tcl +lib/X11/XF86Setup/texts/ja/help_modeselect.tcl +man/man1/XF86Setup.1.gz +man/man1/xmseconfig.1.gz diff --git a/release/scripts/X11/plists/i386/Xvfb.tgz.plist b/release/scripts/X11/plists/i386/Xvfb.tgz.plist new file mode 100644 index 000000000000..e2d161bbca7f --- /dev/null +++ b/release/scripts/X11/plists/i386/Xvfb.tgz.plist @@ -0,0 +1 @@ +bin/Xvfb diff --git a/release/scripts/base-install.sh b/release/scripts/base-install.sh new file mode 100755 index 000000000000..6b32b033a842 --- /dev/null +++ b/release/scripts/base-install.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi + +echo "You are about to extract the base distribution into ${DESTDIR:-/} - are you SURE" +echo -n "you want to do this over your installed system (y/n)? " +read ans +if [ "$ans" = "y" ]; then + cat bin.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +fi diff --git a/release/scripts/bin-install.sh b/release/scripts/bin-install.sh new file mode 100755 index 000000000000..6b32b033a842 --- /dev/null +++ b/release/scripts/bin-install.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi + +echo "You are about to extract the base distribution into ${DESTDIR:-/} - are you SURE" +echo -n "you want to do this over your installed system (y/n)? " +read ans +if [ "$ans" = "y" ]; then + cat bin.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +fi diff --git a/release/scripts/catpages-install.sh b/release/scripts/catpages-install.sh new file mode 100755 index 000000000000..e2806d4192f3 --- /dev/null +++ b/release/scripts/catpages-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat catpages.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/catpages-make.sh b/release/scripts/catpages-make.sh new file mode 100755 index 000000000000..f09cd3d39f03 --- /dev/null +++ b/release/scripts/catpages-make.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Create the catpages dist - must follow manpages dist script, for obvious +# reasons. +if [ -d ${RD}/trees/manpages/usr/share/man ]; then + su -m man -c 'catman ${RD}/trees/manpages/usr/share/man' > /dev/null 2>&1; + ( cd ${RD}/trees/manpages/usr/share/man; + find cat* whatis | cpio -dumpl ${RD}/trees/catpages/usr/share/man ) && + rm -rf ${RD}/trees/manpages/usr/share/man/cat*; +fi diff --git a/release/scripts/commerce-install.sh b/release/scripts/commerce-install.sh new file mode 100755 index 000000000000..37912e3ae740 --- /dev/null +++ b/release/scripts/commerce-install.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +echo "Extracting commerce tarball into ${DESTDIR}/usr/local" +tar --unlink -xpzf commerce.tgz -C ${DESTDIR}/usr/local +exit 0 diff --git a/release/scripts/compat1x-install.sh b/release/scripts/compat1x-install.sh new file mode 100755 index 000000000000..18dbcabbec31 --- /dev/null +++ b/release/scripts/compat1x-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat compat1x.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/compat20-install.sh b/release/scripts/compat20-install.sh new file mode 100755 index 000000000000..ba85baa2a620 --- /dev/null +++ b/release/scripts/compat20-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat compat20.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/compat21-install.sh b/release/scripts/compat21-install.sh new file mode 100755 index 000000000000..8fcd15df0460 --- /dev/null +++ b/release/scripts/compat21-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat compat21.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/compat22-install.sh b/release/scripts/compat22-install.sh new file mode 100755 index 000000000000..c0d09d214d21 --- /dev/null +++ b/release/scripts/compat22-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat compat22.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/compat3x-install.sh b/release/scripts/compat3x-install.sh new file mode 100755 index 000000000000..9d79d0109ff9 --- /dev/null +++ b/release/scripts/compat3x-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat compat3x.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/crypto-install.sh b/release/scripts/crypto-install.sh new file mode 100755 index 000000000000..d915431c8d18 --- /dev/null +++ b/release/scripts/crypto-install.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +_DEST=${DESTDIR:-/} +echo "You are about to extract the CRYPTO distribution into ${_DEST} - are you SURE" +echo "you want to do this over your installed system? If not, hit ^C now," +echo -n "otherwise hit return to continue. " +read junk +cat crypto.?? | tar --unlink -xpzf - -C ${_DEST} +cat krb4.?? | tar --unlink -xpzf - -C ${_DEST} +cat krb5.?? | tar --unlink -xpzf - -C ${_DEST} +echo -n "Do you want to install the CRYPTO sources (y/n)? " +read ans +if [ "$ans" = "y" ]; then + cat scrypto.?? | tar --unlink -xpzf - -C ${_DEST}/usr/src + cat ssecure.?? | tar --unlink -xpzf - -C ${_DEST}/usr/src + cat skrb4.?? | tar --unlink -xpzf - -C ${_DEST}/usr/src + cat skrb5.?? | tar --unlink -xpzf - -C ${_DEST}/usr/src +fi +exit 0 diff --git a/release/scripts/dict-install.sh b/release/scripts/dict-install.sh new file mode 100755 index 000000000000..eeb6c9930b78 --- /dev/null +++ b/release/scripts/dict-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat dict.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/dict-make.sh b/release/scripts/dict-make.sh new file mode 100755 index 000000000000..d519342f9bcc --- /dev/null +++ b/release/scripts/dict-make.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# $FreeBSD$ + +# Move the dict stuff out to its own dist +if [ -d ${RD}/trees/bin/usr/share/dict ]; then + tar -cf - -C ${RD}/trees/bin/usr/share/dict . | + tar -xpf - -C ${RD}/trees/dict/usr/share/dict && + rm -rf ${RD}/trees/bin/usr/share/dict; +fi + +for i in airport birthtoken flowers inter.phone na.phone zipcodes; do + if [ -f ${RD}/trees/bin/usr/share/misc/$i ]; then + mv ${RD}/trees/bin/usr/share/misc/$i \ + ${RD}/trees/dict/usr/share/misc; + fi; +done diff --git a/release/scripts/doFS.sh b/release/scripts/doFS.sh new file mode 100644 index 000000000000..dd7213a9e896 --- /dev/null +++ b/release/scripts/doFS.sh @@ -0,0 +1,73 @@ +#!/bin/sh +# +# $FreeBSD$ +# +set -e + +export BLOCKSIZE=512 + +if [ "$1" = "-s" ]; then + do_size="yes"; shift +else + do_size="" +fi + +FSIMG=$1; shift +RD=$1 ; shift +MNT=$1 ; shift +FSSIZE=$1 ; shift +FSPROTO=$1 ; shift +FSINODE=$1 ; shift +FSLABEL=$1 ; shift + +deadlock=20 + +while true +do + rm -f ${FSIMG} + + if [ "x${MDDEVICE}" != "x" ] ; then + umount /dev/${MDDEVICE} 2>/dev/null || true + umount ${MNT} 2>/dev/null || true + mdconfig -d -u ${MDDEVICE} 2>/dev/null || true + fi + + dd of=${FSIMG} if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null + # this suppresses the `invalid primary partition table: no magic' + awk 'BEGIN {printf "%c%c", 85, 170}' |\ + dd of=${FSIMG} obs=1 seek=510 conv=notrunc 2>/dev/null + + MDDEVICE=`mdconfig -a -t vnode -f ${FSIMG}` + if [ ! -c /dev/${MDDEVICE} ] ; then + if [ -f /dev/MAKEDEV ] ; then + ( cd /dev && sh MAKEDEV ${MDDEVICE} ) + else + echo "No /dev/$MDDEVICE and no MAKEDEV" 1>&2 + exit 1 + fi + fi + disklabel -Brw /dev/${MDDEVICE} ${FSLABEL} + newfs -i ${FSINODE} -T ${FSLABEL} -o space -m 0 /dev/${MDDEVICE}c + + mount /dev/${MDDEVICE}c ${MNT} + + if [ -d ${FSPROTO} ]; then + (set -e && cd ${FSPROTO} && find . -print | cpio -dump ${MNT}) + else + cp -p ${FSPROTO} ${MNT} + fi + + df -ki ${MNT} + + set `df -ki ${MNT} | tail -1` + + umount ${MNT} + mdconfig -d -u ${MDDEVICE} 2>/dev/null || true + + echo "*** Filesystem is ${FSSIZE} K, $4 left" + echo "*** ${FSINODE} bytes/inode, $7 left" + if [ "${do_size}" ]; then + echo ${FSSIZE} > ${FSIMG}.size + fi + break; +done diff --git a/release/scripts/doc-install.sh b/release/scripts/doc-install.sh new file mode 100755 index 000000000000..aae982f67c0a --- /dev/null +++ b/release/scripts/doc-install.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +echo "You are about to extract the doc distribution into ${DESTDIR:-/} - are you SURE" +echo -n "you want to do this over your installed system (y/n)? " +read ans +if [ "$ans" = "y" ]; then + cat doc.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +fi diff --git a/release/scripts/doc-make.sh b/release/scripts/doc-make.sh new file mode 100755 index 000000000000..a2f43b6159b8 --- /dev/null +++ b/release/scripts/doc-make.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Create the doc dist. +if [ -d ${RD}/trees/bin/usr/share/doc ]; then + ( cd ${RD}/trees/bin/usr/share/doc; + find . | cpio -dumpl ${RD}/trees/doc/usr/share/doc ) && + rm -rf ${RD}/trees/bin/usr/share/doc +fi diff --git a/release/scripts/dokern.sh b/release/scripts/dokern.sh new file mode 100755 index 000000000000..47296bdc7aae --- /dev/null +++ b/release/scripts/dokern.sh @@ -0,0 +1,161 @@ +#!/bin/sh + +# $FreeBSD$ + +if [ $# -lt 1 ]; then + FDSIZE=NORMAL +else + FDSIZE=$1 +fi + +ARCH="`uname -m`" + +# First check for the standard x86 PC class. +if [ "${ARCH}" = "i386" ]; then + +if [ "${FDSIZE}" = "SMALL" ]; then + +sed -e '/ pci$/d' \ + -e '/ adv/d' \ + -e '/ ahc/d' \ + -e '/ amd/d' \ + -e '/ isp/d' \ + -e '/ ncr/d' \ + -e '/ sym/d' \ + -e '/ de/d' \ + -e '/ fxp/d' \ + -e '/ tx/d' \ + -e '/ vx/d' \ + -e '/ wx/d' \ + -e '/ dc/d' \ + -e '/ pcn/d' \ + -e '/ rl/d' \ + -e '/ sf/d' \ + -e '/ sis/d' \ + -e '/ ste/d' \ + -e '/ tl/d' \ + -e '/ vr/d' \ + -e '/ wb/d' \ + -e '/ xl/d' \ + -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +else + +sed -e '/pty/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSVMSG/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/ncr/d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/wds/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ulpt/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' + +fi + +echo "options NETGRAPH" +echo "options NETGRAPH_ETHER" +echo "options NETGRAPH_PPPOE" +echo "options NETGRAPH_SOCKET" + +# Otherwise maybe it's an alpha, and it has big binaries. +elif [ "${ARCH}" = "alpha" ]; then + +sed -e '/pty/d' \ + -e '/DEC_3000_300/d' \ + -e '/DEC_3000_500/d' \ + -e '/pass/d' \ + -e '/ apm/d' \ + -e '/pmtimer/d' \ + -e '/ sl /d' \ + -e '/ppp/d' \ + -e '/gif/d' \ + -e '/faith/d' \ + -e '/gzip/d' \ + -e '/random/d' \ + -e '/NOBLOCKRANDOM/d' \ + -e '/splash/d' \ + -e '/PROCFS/d' \ + -e '/KTRACE/d' \ + -e '/SYSV/d' \ + -e '/P1003_1B/d' \ + -e '/_KPOSIX_PRIORITY_SCHEDULING/d' \ + -e '/SOFTUPDATES/d' \ + -e '/MFS/d' \ + -e '/NFS_ROOT/d' \ + -e '/MSDOSFS/d' \ + -e '/ncr/d' \ + -e '/ le /d' \ + -e '/pcm/d' \ + -e '/atapist/d' \ + -e '/lpt/d' \ + -e '/ppi/d' \ + -e '/vpo/d' \ + -e '/uhci/d' \ + -e '/ohci/d' \ + -e '/usb/d' \ + -e '/ugen/d' \ + -e '/uhid/d' \ + -e '/ukbd/d' \ + -e '/ulpt/d' \ + -e '/umass/d' \ + -e '/ums/d' \ + -e '/urio/d' \ + -e '/uscanner/d' \ + -e '/aue/d' \ + -e '/cue/d' \ + -e '/kue/d' \ + -e '/maxusers/d' \ + -e 's/ident.*GENERIC/ident BOOTMFS/g' +fi + +# reset maxusers to something lower +echo "maxusers 5" + +echo "options NFS_NOSERVER" +echo "options SCSI_NO_OP_STRINGS" +echo "options SCSI_NO_SENSE_STRINGS" diff --git a/release/scripts/driver-copy2.pl b/release/scripts/driver-copy2.pl new file mode 100644 index 000000000000..541e3e093f32 --- /dev/null +++ b/release/scripts/driver-copy2.pl @@ -0,0 +1,78 @@ +#!/usr/bin/perl +# +# Copyright (c) 2000 "HOSOKAWA, Tatsumi" <hosokawa@FreeBSD.org> +# 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 (<CONFIG>) { + 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 = <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; + } + 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 --git a/release/scripts/driver-remove.pl b/release/scripts/driver-remove.pl new file mode 100644 index 000000000000..2ff5a8886d65 --- /dev/null +++ b/release/scripts/driver-remove.pl @@ -0,0 +1,58 @@ +#!/usr/bin/perl +# +# Copyright (c) 2000 "HOSOKAWA, Tatsumi" <hosokawa@FreeBSD.org> +# 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 (<CONFIG>) { + 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 (<BOOTMFS>) { + 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 --git a/release/scripts/games-install.sh b/release/scripts/games-install.sh new file mode 100755 index 000000000000..6602d1c0bbf4 --- /dev/null +++ b/release/scripts/games-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat games.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/games-make.sh b/release/scripts/games-make.sh new file mode 100755 index 000000000000..06716d5923f6 --- /dev/null +++ b/release/scripts/games-make.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# $FreeBSD$ + +# Move all the games out to their own dist +if [ -d ${RD}/trees/bin/usr/games ]; then + tar -cf - -C ${RD}/trees/bin/usr/games . | + tar -xpf - -C ${RD}/trees/games/usr/games && + rm -rf ${RD}/trees/bin/usr/games; +fi + +if [ -d ${RD}/trees/bin/usr/share/games ]; then + tar -cf - -C ${RD}/trees/bin/usr/share/games . | + tar -xpf - -C ${RD}/trees/games/usr/share/games && + rm -rf ${RD}/trees/bin/usr/share/games; +fi + +if [ -d ${RD}/trees/bin/var/games ]; then + tar -cf - -C ${RD}/trees/bin/var/games . | + tar -xpf - -C ${RD}/trees/games/var/games && + rm -rf ${RD}/trees/bin/var/games; +fi + +if [ -d ${RD}/trees/manpages/usr/share/man/man6 ]; then + mkdir -p ${RD}/trees/games/usr/share/man/man6 + tar -cf - -C ${RD}/trees/manpages/usr/share/man/man6 . | + tar -xpf - -C ${RD}/trees/games/usr/share/man/man6 && + rm -rf ${RD}/trees/manpages/usr/share/man/man6 +fi + +if [ -d ${RD}/trees/catpages/usr/share/man/cat6 ]; then + mkdir -p ${RD}/trees/games/usr/share/man/cat6 + tar -cf - -C ${RD}/trees/catpages/usr/share/man/cat6 . | + tar -xpf - -C ${RD}/trees/games/usr/share/man/cat6 && + rm -rf ${RD}/trees/catpages/usr/share/man/cat6 +fi diff --git a/release/scripts/info-install.sh b/release/scripts/info-install.sh new file mode 100755 index 000000000000..2ae15dfdd4e2 --- /dev/null +++ b/release/scripts/info-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat info.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/info-make.sh b/release/scripts/info-make.sh new file mode 100755 index 000000000000..2db364676c55 --- /dev/null +++ b/release/scripts/info-make.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# $FreeBSD$ + +# Move the info files out to their own dist +if [ -d ${RD}/trees/bin/usr/share/info ]; then + tar -cf - -C ${RD}/trees/bin/usr/share/info . | + tar -xpf - -C ${RD}/trees/info/usr/share/info && + rm -rf ${RD}/trees/bin/usr/share/info; +fi diff --git a/release/scripts/info.sh b/release/scripts/info.sh new file mode 100644 index 000000000000..b1c8c5356ccf --- /dev/null +++ b/release/scripts/info.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# $ANA: info.sh,v 1.3 1996/06/04 16:25:30 wollman Exp $ +ls $1.[a-z][a-z] | wc | awk '{ print "Pieces = ",$1 }' +for FILE in $1.[a-z][a-z]; do + PIECE=`echo $FILE | cut -d . -f 2` + echo -n "cksum.$PIECE = " + cksum $FILE | awk ' { print $1,$2 } ' +done diff --git a/release/scripts/manpages-install.sh b/release/scripts/manpages-install.sh new file mode 100755 index 000000000000..d4293151ea89 --- /dev/null +++ b/release/scripts/manpages-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat manpages.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +exit 0 diff --git a/release/scripts/manpages-make.sh b/release/scripts/manpages-make.sh new file mode 100755 index 000000000000..5f73f71b86a4 --- /dev/null +++ b/release/scripts/manpages-make.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# Move all the manpages out to their own dist, using the bin dist as a +# starting point. +if [ -d ${RD}/trees/bin/usr/share/man ]; then + ( cd ${RD}/trees/bin/usr/share/man; + find . | cpio -dumpl ${RD}/trees/manpages/usr/share/man > /dev/null 2>&1) && + rm -rf ${RD}/trees/bin/usr/share/man; +fi diff --git a/release/scripts/ports-install.sh b/release/scripts/ports-install.sh new file mode 100755 index 000000000000..810bab0ee251 --- /dev/null +++ b/release/scripts/ports-install.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +echo "Extracting ports tarball into ${DESTDIR}/usr" +cat ports.tgz | tar --unlink -xpzf - -C ${DESTDIR}/usr +exit 0 diff --git a/release/scripts/print-cdrom-packages.sh b/release/scripts/print-cdrom-packages.sh new file mode 100755 index 000000000000..aa04add37878 --- /dev/null +++ b/release/scripts/print-cdrom-packages.sh @@ -0,0 +1,142 @@ +#!/bin/sh +# +# Author: Jordan Hubbard +# Date: Mon Jul 10 01:18:20 2000 +# Version: $FreeBSD$ +# +# MAINTAINER: jkh +# +# This script prints out the list of "minimum required packages" for +# a given CDROM number, that numer currently referring to the 4 CD +# "official set" published by BSDi. If there is no minimum package +# set for the given CDROM, or none is known, the script will exit +# with a error code of 1. At some point, this script should be extended +# to at least cope with other official CD distributions, like non-US ones. +# +# usage: print-cdrom-packages.sh cdrom-number +# +# example: ./print-cdrom-packages.sh 1 +# will print the minimal package set for the first cdrom (what's generally +# referred to as the installation boot CD). +# +# This information is codified in script form so that some definitive +# reference for the package set info exists rather than having it +# be left up to everybody's best guess. It's currently hard-coded directly +# into the script but may, at some point, switch to a more sophisticated +# data-extraction technique from the ports collection. For now, add your +# packages to the appropriate CDROM_SET_<n> variable as /usr/ports/<your-entry> +# so that the package name and dependency list for each can be at least be +# obtained in an automated fashion. + +# usage: extract-names cd# +extract-names() +{ + _FOO=`eval echo \\${CDROM_SET_$1}` + if [ "${_FOO}" ]; then + TMPNAME="/tmp/_extract_names$$" + rm -f ${TMPNAME} + for i in ${_FOO}; do + ( cd /usr/ports/$i && make package-name package-depends ) >> ${TMPNAME}; + done + if [ -s "${TMPNAME}" ]; then + sort ${TMPNAME} | uniq + fi + else + exit 1 + fi +} + + +## Start of set for CDROM #1 +# This is the set required by sysinstall. +CDROM_SET_1="" +if [ "X`uname -m`" = "Xalpha" ]; then +CDROM_SET_1="${CDROM_SET_1} emulators/osf1_base" +else +CDROM_SET_1="${CDROM_SET_1} emulators/linux_base" +fi +CDROM_SET_1="${CDROM_SET_1} x11/XFree86-4" +CDROM_SET_1="${CDROM_SET_1} x11/XFree86-4-clients" +CDROM_SET_1="${CDROM_SET_1} x11/XFree86-4-documents" +CDROM_SET_1="${CDROM_SET_1} x11/XFree86-4-libraries" +CDROM_SET_1="${CDROM_SET_1} x11/XFree86-4-manuals" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-font100dpi" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-font75dpi" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-fontCyrillic" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-fontDefaultBitmaps" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-fontEncodings" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-fontLatin2" +CDROM_SET_1="${CDROM_SET_1} x11-fonts/XFree86-4-fontScalable" +CDROM_SET_1="${CDROM_SET_1} x11-servers/XFree86-4-FontServer" +CDROM_SET_1="${CDROM_SET_1} x11-servers/XFree86-4-NestServer" +CDROM_SET_1="${CDROM_SET_1} x11-servers/XFree86-4-PrintServer" +CDROM_SET_1="${CDROM_SET_1} x11-servers/XFree86-4-Server" +CDROM_SET_1="${CDROM_SET_1} x11-servers/XFree86-4-VirtualFramebufferServer" +CDROM_SET_1="${CDROM_SET_1} x11/kde2" +CDROM_SET_1="${CDROM_SET_1} x11/gnome" +CDROM_SET_1="${CDROM_SET_1} x11-wm/afterstep" +CDROM_SET_1="${CDROM_SET_1} x11-wm/enlightenment" +CDROM_SET_1="${CDROM_SET_1} x11-wm/fvwm2" +CDROM_SET_1="${CDROM_SET_1} net/pcnfsd" + +# This is the set of "people really want these" packages. Please add to +# this list. +CDROM_SET_1="${CDROM_SET_1} net/cvsup-bin" +if [ "X`uname -m`" = "Xi386" ]; then +CDROM_SET_1="${CDROM_SET_1} shells/ksh93" +fi +CDROM_SET_1="${CDROM_SET_1} shells/bash2" +CDROM_SET_1="${CDROM_SET_1} shells/pdksh" +CDROM_SET_1="${CDROM_SET_1} shells/zsh" +CDROM_SET_1="${CDROM_SET_1} editors/vim5" +CDROM_SET_1="${CDROM_SET_1} editors/emacs20" +CDROM_SET_1="${CDROM_SET_1} www/netscape-wrapper" +CDROM_SET_1="${CDROM_SET_1} www/netscape-remote" +CDROM_SET_1="${CDROM_SET_1} www/netscape47-communicator" +CDROM_SET_1="${CDROM_SET_1} www/lynx" +CDROM_SET_1="${CDROM_SET_1} print/acroread" +CDROM_SET_1="${CDROM_SET_1} print/xpdf" +CDROM_SET_1="${CDROM_SET_1} print/gv" +CDROM_SET_1="${CDROM_SET_1} print/ghostview" +CDROM_SET_1="${CDROM_SET_1} print/a2ps-letter" +CDROM_SET_1="${CDROM_SET_1} print/apsfilter" +CDROM_SET_1="${CDROM_SET_1} print/ghostscript6-nox11" +CDROM_SET_1="${CDROM_SET_1} print/psutils-letter" +CDROM_SET_1="${CDROM_SET_1} graphics/xv" +CDROM_SET_1="${CDROM_SET_1} mail/fetchmail" +CDROM_SET_1="${CDROM_SET_1} mail/mutt" +CDROM_SET_1="${CDROM_SET_1} mail/pine" +CDROM_SET_1="${CDROM_SET_1} mail/xfmail" +CDROM_SET_1="${CDROM_SET_1} news/tin" +CDROM_SET_1="${CDROM_SET_1} news/slrn" +CDROM_SET_1="${CDROM_SET_1} ftp/ncftp" +CDROM_SET_1="${CDROM_SET_1} irc/xchat" +CDROM_SET_1="${CDROM_SET_1} emulators/mtools" +CDROM_SET_1="${CDROM_SET_1} misc/screen" +CDROM_SET_1="${CDROM_SET_1} x11/rxvt" +CDROM_SET_1="${CDROM_SET_1} astro/xearth" + +# VERY common build dependancies +CDROM_SET_1="${CDROM_SET_1} devel/gmake" +CDROM_SET_1="${CDROM_SET_1} archivers/bzip2" +CDROM_SET_1="${CDROM_SET_1} archivers/unzip" +CDROM_SET_1="${CDROM_SET_1} graphics/png" + +## End of set for CDROM #1 + +## Start of set for CDROM #2 +## End of set for CDROM #2 + +## Start of set for CDROM #3 +## End of set for CDROM #3 + +## Start of set for CDROM #4 +## End of set for CDROM #4 + +# Start of actual script. +if [ $# -lt 1 ]; then + echo "usage: $0 cdrom-number" + exit 2 +fi +extract-names $1 +exit 0 diff --git a/release/scripts/proflibs-install.sh b/release/scripts/proflibs-install.sh new file mode 100755 index 000000000000..fa67ec78c626 --- /dev/null +++ b/release/scripts/proflibs-install.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +cat proflibs.?? | tar --unlink -xpzf - -C ${DESTDIR:-/} +cd ${DESTDIR:-/}usr/lib +if [ -f libdescrypt_p.a ] +then + ln -f -s libdescrypt_p.a libcrypt_p.a +fi +exit 0 diff --git a/release/scripts/proflibs-make.sh b/release/scripts/proflibs-make.sh new file mode 100755 index 000000000000..7a60eb31e183 --- /dev/null +++ b/release/scripts/proflibs-make.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Move the profiled libraries out to their own dist +for i in ${RD}/trees/bin/usr/lib/*_p.a; do + if [ -f $i ]; then + mv $i ${RD}/trees/proflibs/usr/lib; + fi; +done diff --git a/release/scripts/src-install.sh b/release/scripts/src-install.sh new file mode 100755 index 000000000000..91e83f4f0eeb --- /dev/null +++ b/release/scripts/src-install.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +if [ $# -lt 1 ]; then + echo "You must specify which components of src to extract" + echo "possible subcomponents are:" + echo + echo "base bin contrib etc games gnu include lib libexec" + echo "release sbin share sys tools ubin usbin" + echo + echo "You may also specify all to extract all subcomponents." + exit 1 +fi + +if [ "$1" = "all" ]; then + dists="base bin contrib etc games gnu include lib libexec release sbin share sys tools ubin usbin" +else + dists="$*" +fi + +echo "Extracting sources into ${DESTDIR}/usr/src..." +for i in $dists; do + echo " Extracting source component: $i" + cat s${i}.?? | tar --unlink -xpzf - -C ${DESTDIR}/usr/src +done +echo "Done extracting sources." +exit 0 diff --git a/release/scripts/tar.sh b/release/scripts/tar.sh new file mode 100644 index 000000000000..9783e029bd03 --- /dev/null +++ b/release/scripts/tar.sh @@ -0,0 +1,120 @@ +#!/bin/sh -p +# +# Simple replacement for tar(1), using cpio(1). +# +# Copyright (c) 1996 Joerg Wunsch +# 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 DEVELOPERS ``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 DEVELOPERS 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. +# + +# +# For use on the fixit floppy. External programs required: +# cpio(1), find(1), test(1) +# + +# +# $FreeBSD$ +# + +archive=${TAPE:-/dev/rsa0} +blocksize="20" +device="" +mode="none" +verbose="" + +usage() +{ + echo "usage: tar -{c|t|x} [-v] [-b blocksize] [-f archive] [files...]" 1>&2 + exit 64 # EX_USAGE +} + +# +# Prepend a hyphen to the first arg if necessary, so the traditional form +# ``tar xvf /dev/foobar'' will work, too. More kludgy legacy forms are not +# supported however. +# + +if [ $# -lt 1 ] ; then + usage +fi + +case "$1" in + -*) break + ;; + *) tmp="$1" + shift + set -- -$tmp "$@" + ;; +esac + +while getopts "ctxvb:f:" option +do + case $option in + [ctx]) + if [ $mode = "none" ] ; then + mode=$option + else + usage + fi + ;; + v) + verbose="-v" + ;; + b) + blocksize="${OPTARG}" + ;; + f) + archive="${OPTARG## }" + ;; + *) + usage + ;; + esac +done + +shift $(($OPTIND - 1)) + +if [ "X${archive}" != "X-" ] ; then + device="-F ${archive}" +# else: use stdin or stdout, which is the default for cpio +fi + +case $mode in + none) + usage + ;; + t) + exec cpio -it $verbose $device --block-size="$blocksize" "$@" + ;; + x) + exec cpio -idmu $verbose $device --block-size="$blocksize" "$@" + ;; + c) + if [ $# -eq 0 ] ; then + # use current dir -- slightly bogus + set -- "." + fi + find "$@" -print |\ + cpio -o -H ustar $verbose $device --block-size="$blocksize" + exit $? + ;; +esac diff --git a/release/scripts/xperimnt-install.sh b/release/scripts/xperimnt-install.sh new file mode 100755 index 000000000000..2c55654ea280 --- /dev/null +++ b/release/scripts/xperimnt-install.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# +if [ "`id -u`" != "0" ]; then + echo "Sorry, this must be done as root." + exit 1 +fi +echo "Extracting xperimnt tarball into ${DESTDIR}/usr/local" +tar --unlink -xpzf xperimnt.tgz -C ${DESTDIR}/usr/local +exit 0 diff --git a/release/texts/ABOUT.TXT b/release/texts/ABOUT.TXT new file mode 100644 index 000000000000..70053d0cd1e3 --- /dev/null +++ b/release/texts/ABOUT.TXT @@ -0,0 +1,215 @@ +o About FreeBSD: + +What is FreeBSD? FreeBSD is an operating system based on 4.4 BSD Lite +for Intel, AMD, Cyrix or NexGen "x86" based PC hardware and Compaq +(formerly DEC) Alpha computers. It works with a very wide variety of PC +peripherals and configurations and can be used for everything from +software development to Internet Service Provision. + +This release of FreeBSD contains everything you need to run such a +system, including full source code for everything. With the source +distribution installed you can literally recompile the entire system +from scratch with one command, making it ideal for students, +researchers or folks who simply want to see how it all works. + +A large collection of 3rd party ported software (the "ports +collection") is also provided to make it easier for you to obtain and +install all your favorite traditional UNIX utilities for FreeBSD. +Over 4500 ports, from editors to programming languages to graphical +applications, make FreeBSD a powerful and comprehensive operating +environment that extends far beyond what's provided by many commercial +versions of UNIX. + +For more documentation on this system it is recommended that you +purchase The Complete FreeBSD, available from local bookstores +and from the FreeBSD Mall (http://www.freebsdmall.com), as well +as the 4.4BSD Document Set from O'Reilly Associates and the USENIX +Association, ISBN 1-56592-082-1. We have no connection with O'Reilly, +we're just satisfied customers! + +If you're new to FreeBSD then you should also read EVERYTHING listed +in the Documentation menu on the boot floppy. It may seem like a lot +to read, but you should at least acquaint yourself with the types of +information available should you later get stuck. Once the system is +installed, you can also revisit this menu and use a WEB browser to +read the installed FAQ (Frequently Asked Questions) and Handbook HTML +documentation sets for FreeBSD. You can also use the browser to visit +other WEB sites on the net (such as http://www.freebsd.org) if you +have an Internet connection. + +NOTE: If you read no other documentation before installing a given +version of FreeBSD, you should at least by all means *READ THE ERRATA* +for that release so that you don't stumble over problems which have +already been found and fixed. The ERRATA.TXT file accompanying your +release (it should be right next to this file) is obviously already +out of date by definition, but other copies are kept updated on the +net and should be consulted as the "current errata" for your release +(this is also what your ERRATA.TXT file says, by the way). These +other copies of the errata are located at: + + 1. http://www.freebsd.org/releases/ + + 2. ftp://ftp.freebsd.org/pub/FreeBSD/releases/<your-release>/ERRATA.TXT + (and any sites which keep up-to-date mirrors of this location). + + +DISCLAIMER: While FreeBSD does its best to safeguard against +accidental loss of data, it's still more than possible to WIPE OUT +YOUR ENTIRE DISK with this installation! Please do not proceed to the +final FreeBSD installation menu unless you've adequately backed up any +important data first! We really mean it! + + +o E-mail addresses and tech support info: + +For general questions, please send email to : + + freebsd-questions@FreeBSD.org + +Please also have patience if your questions are not answered right +away - this mailing list is staffed purely by volunteers and they also +have real life schedules to contend with. Questions which are asked +intelligently (e.g. not "My system doesn't work! What's wrong!?") +also stand a far greater chance of being answered. If your question +does not contain enough information to allow the responder to generate +a meaningful answer, they generally won't. + +Bug reports submitted with the send-pr command are also logged and +tracked in our bugs database, and you'll be kept informed of any +changes in status during the life of the bug (or feature request). + +Technical comments on this release should be sent (in English!) to: + + freebsd-hackers@FreeBSD.org + +Bug reports should be sent using the `send-pr' command or the Web page +at http://www.freebsd.org/send-pr.html. If you cannot use either of +these two methods, you may also send mail to: + + freebsd-bugs@FreeBSD.org + + +PLEASE ALSO BE SURE TO INDICATE WHICH VERSION OF FREEBSD YOU'RE +RUNNING IN ANY BUG REPORTS OR QUESTIONS! + +Sorry for the caps, but you'd be amazed at how many times people +forget this and there are many different release versions of FreeBSD +out there now. It's imperative that we know what you're running so +that we tell if you're suffering from a bug which has already been +fixed. + + +o WWW Resources: + +Our WEB site, http://www.freebsd.org, is also a very good source for +updated information and provides a number of advanced documentation +searching facilities. If you wish to use Netscape as your browser, +several versions may be found in the ports collection under +/usr/ports/www if you've installed the ports collection on your +machine (always a good idea). + +Several other non-commercial browsers are also available in +/usr/ports/www and may be compiled and installed in the same fashion. +Many are also available as pre-compiled packages - see the Packages +entry in the Configuration menu for more details. + +The Handbook and FAQ are also available as on-line documents in +/usr/share/doc and can be read using the ``file:/usr/share/doc'' +syntax in any HTML capable browser. + + +o Distributions: + +A typical FreeBSD distribution directory looks like this: + +ABOUT.TXT bin compat3x games proflibs +HARDWARE.TXT compat1x info src tools +INSTALL.TXT compat20 dict manpages packages +README.TXT compat21 des doc +RELNOTES.TXT compat22 floppies ports +XF86336 + +If you want to do a CDROM, FTP or NFS installation from this +distribution directory, all you need to do is make a pair of 1.44MB +floppies from the floppies/kern.flp and floppies/mfsroot.flp image +files (see floppies/README.TXT for instructions on how to do this), +boot it and follow the instructions. + +If you're trying to do some other type of installation, or are just +curious about how the distribution is organized in general, what +follows is a more thorough description of each item in more detail: + +The *.TXT files obviously contain documentation (ABOUT.TXT being what +you're reading now). + +The XF86336 directory contains the XFree86 project's 3.3.6 release and +consists of a series of gzip'd tar files which contain each component +of the XFree86 distribution. + +The bin, dict, des, doc, games, info, manpages, proflibs, and src +directories contain the primary distribution components of FreeBSD +itself and are split into smaller files for easy packing onto floppies +(should that be necessary). + +The compat1x, compat20, compat21, compat22, and compat3x directories +contain distributions for compatibility with older releases and are +distributed as single gzip'd tar files - they can be installed during +release time or later by running their `install.sh' scripts. + +A typical distribution (we'll use the info distribution as an example) +looks like this: + +CHECKSUM.MD5 info.ab info.ad info.inf install.sh +info.aa info.ac info.ae info.mtree + +The CHECKSUM.MD5 file contains MD5 signatures for each file, should +data corruption be suspected, and is purely for reference - it is not +used by the actual installation and does not need to be copied with +the rest of the distribution files. The info.a* files are split, +gzip'd tar files, the contents of which can be viewed by doing: + + cat info.a* | tar tvzf - + +During installation, they are automatically concatenated and extracted +by the installation procedure. + +The info.inf file is also necessary since it is read by the installation +program in order to figure out how many pieces to look for when fetching and +concatenating the distribution. When putting distributions onto floppies, +the .inf file MUST occupy the first floppy of each distribution set! + +The info.mtree file is another non-essential file which is provided +for user reference. It contains the MD5 signatures of the *unpacked* +distribution files and can be later used with the mtree(1) program +to verify the installation permissions and checksums against any possible +modifications to the file. When used with the bin distribution, this can +be an excellent way of detecting trojan horse attacks on your system. + +Finally, the install.sh file is for use by those who want to install the +distribution after installation time. To install the info distribution from +CDROM after a system was installed, for example, you'd do: + + cd /cdrom/info + sh install.sh + +And that's all there is to it! Each distribution contains its own +install.sh file for this. + + +The floppies subdirectory contains the floppy installation images and +the floppies/README.TXT file should be read for further information +on them. + +The packages and ports directories contain the FreeBSD packages and +ports collections. Packages may be installed from the packages directory +by running the sysinstall utility with the argument ``configPackages'' +or by feeding the individual filenames to the pkg_add(1) command. + +The ports collection may be installed like any other distribution +and requires about 50MB unpacked. More information on the ports collection +may be obtained from http://www.freebsd.org/ports or locally from +file:/usr/share/doc/handbook if you've installed the doc distribution. + +Last of all, the tools directory contains various DOS tools for +discovering disk geometries, installing boot managers and the like. +It is purely optional and provided only for user convenience. diff --git a/release/texts/ERRATA.TXT b/release/texts/ERRATA.TXT new file mode 100644 index 000000000000..72f00966c357 --- /dev/null +++ b/release/texts/ERRATA.TXT @@ -0,0 +1,30 @@ +If you read no other documentation before installing this +version of FreeBSD, you should at least by all means *READ +THE ERRATA* for this release so that you don't stumble over +problems which have already been found and fixed. This ERRATA.TXT +file is obviously already out of date by definition, but other +copies are kept updated on the net and should be consulted as +the "current errata" for your release. These other copies of +the errata are located at: + + 1. http://www.freebsd.org/releases/ + + 2. ftp://ftp.freebsd.org/pub/FreeBSD/releases/<your-release>/ERRATA.TXT + (and any sites which keep up-to-date mirrors of this location). + +Any changes to this file are also automatically emailed to: + + freebsd-current@freebsd.org + +For all CERT security advisories, see: + + ftp://ftp.freebsd.org/pub/FreeBSD/CERT/ + +For the latest security incident information. + +---- Security Advisories: + +Current active security advisories: None + +---- System Update Information: + diff --git a/release/texts/FLOPPIES.TXT b/release/texts/FLOPPIES.TXT new file mode 100644 index 000000000000..4a60e5cc2a4a --- /dev/null +++ b/release/texts/FLOPPIES.TXT @@ -0,0 +1,57 @@ +For a normal CDROM or network installation, all you need to copy onto +actual floppies from this directory are the kern.flp and mfsroot.flp +images (for 1.44MB floppies). + +Get two blank, freshly formatted floppies and image copy kern.flp +onto one and mfsroot.flp onto the other. These images are NOT DOS +files! You cannot simply copy them to a DOS or UFS floppy as +regular files, you need to "image" copy them to the floppy with +fdimage.exe under DOS (see the tools/ directory on your CDROM or +FreeBSD FTP mirror) or the `dd' command in UNIX. + +For example: + +To create the kern floppy image from DOS, you'd do something like +this: + +C> fdimage kern.flp a: + +Assuming that you'd copied fdimage.exe and kern.flp into a directory +somewhere. You would do the same for mfsroot.flp, of course. + +If you're creating the boot floppy from a UNIX machine, you may find +that one of the following: + + dd if=floppies/kern.flp of=/dev/fd0 + dd if=floppies/kern.flp of=/dev/rfd0 + dd if=floppies/kern.flp of=/dev/floppy + +work well, depending on your hardware and operating system environment +(different versions of UNIX have totally different names for the +floppy drive - neat, huh? :-). + +If you're on an ALPHA machine which can network-boot its floppy images +or you have a 2.88MB or LS-120 floppy capable of taking a 2.88MB image +on an x86 machine, you may still wish to use the older (but now +twice as large) boot.flp image which we also provide. That contains +the contents of kern.flp and mfsroot.flp on a single floppy, +essentially. This file should also be used as the boot file for those +mastering "El Torito" bootable CD images. See the mkisofs(1) command +for more information. + +Going to two installation boot floppies is a step we definitely +would have rather avoided but we simply no longer could due to +general code bloat and FreeBSD's many new device drivers in GENERIC. + +One positive side-effect of this new organizational scheme, however, +is that it also allows one to easily make one's own kern or MFS +floppies should a need to customize some aspect of the installation +process or use a custom kernel for an otherwise unsupported piece of +hardware arise. As long as the kernel is compiled with +``options MFS'' and ``options MFS_ROOT'', it will properly look for +and boot an mfsroot.flp image in memory when run (see how the +/boot/loader.rc file in kern.flp does its thing). The mfsroot.flp +image is also just a gzip'd filesystem image which is used as root, +something which can be made rather easily using mdconfig(8). +If none of that makes any sense to you then don't worry about it - +just use the kern.flp and mfsroot.flp images as described above. diff --git a/release/texts/HARDWARE.TXT b/release/texts/HARDWARE.TXT new file mode 100644 index 000000000000..b9faa8522ae8 --- /dev/null +++ b/release/texts/HARDWARE.TXT @@ -0,0 +1,1029 @@ +Table of Contents +----------------- +0. Document Conventions +1. Default Configuration (GENERIC kernel) +2. Using UserConfig to change FreeBSD kernel settings +3. LINT - other possible configurations +4. Supported Hardware + +See TROUBLE.TXT for Q&A on known hardware problems. + +========================================================================= + +0. Document Conventions +-- -------------------- + +We have `underlined' text which represents user input with `-' symbols +throughout this document to differentiate it from the machine output. + +1. Default (GENERIC) Configuration +-- ------------------------------- + +The following table contains a list of all of the devices that are +present in the GENERIC kernel. This is the essential part of the +operating system that is placed in your root partition during the +installation process. A compressed version of the GENERIC kernel is +also used on the installation floppy diskette and DOS boot image. + +The table describes the various parameters used by the driver to +communicate with the hardware in your system. There are four +parameters in the table, though not all are used by each and every +device: + + Port The starting I/O port used by the device, shown in hexadecimal. + + IOMem The lowest (or starting) memory address used by the device, + also shown in hexadecimal. + + IRQ The interrupt the device uses to alert the driver to an event, + given in decimal. + + DRQ The DMA (direct memory access) channel the device uses to move + data to and from main memory, also given in decimal. + +If an entry in the table has `n/a' for a value then it means that the +parameter in question does not apply to that device. A value of `dyn' +means that the correct value should be determined automatically by the +kernel when the system boots and that you don't need to worry about +it. + +If an entry is marked with an *, it means that support is currently +not available for it but should be back as soon as someone converts +the driver to work within the new 4.0 framework. + +FreeBSD GENERIC kernel: + + Port IRQ DRQ IOMem Description + ---- --- --- ----- --------------------------------- +fdc0 3f0 6 2 n/a Floppy disk controller +ata0 170 14 n/a n/a ATA/ATAPI controller +ata1 170 15 n/a n/a ATA/ATAPI controller +atadisk0 n/a n/a n/a n/a ATA disk drives +atapicd0 n/a n/a n/a n/a ATAPI CDROM drives +atapifd0 n/a n/a n/a n/a ATAPI floppy drives +atapist0 n/a n/a n/a n/a ATAPI tape drives + +adv0 n/a n/a n/a n/a AdvanSys Narrow SCSI controllers +adw0 n/a n/a n/a n/a AdvanSys Wide SCSI controllers +amd0 n/a n/a n/a n/a AMD 53C974 (Tekram DC390(T)) +ncr0 n/a n/a n/a n/a NCR PCI SCSI controller +bt0 330 dyn dyn dyn Buslogic SCSI controller +aha0 330 dyn 5 dyn Adaptec 154x/1535 SCSI controller +ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller +ahc0 dyn dyn dyn dyn Adaptec 274x/284x/294x SCSI controller +aic0 340 11 dyn dyn Adaptec 152x/AIC-6360/AIC-6260 SCSI + controller +isp0 dyn dyn dyn dyn QLogic 10X0, 1240 Ultra SCSI, 1080/1280 + Ultra2 SCSI, 12160 Ultra3 SCSI, 2X00 + Fibre Channel SCSI controller +dpt0 dyn dyn n/a n/a DPT RAID SCSI controllers +amr0 dyn dyn n/a n/a AMI MegaRAID controllers +mlx0 dyn dyn n/a dyn Mylex DAC960 RAID controllers +twe0 dyn dyn n/a n/a 3ware Escalade RAID controllers +asr0 dyn dyn dyn dyn DPT SmartRaid V, VI, and + Adaptec SCSI RAID +mly0 dyn dyn dyn dyn Mylex AcceleRAID/eXtremeRAID +aac dyn dyn dyn dyn Adaptec FSA family PCI SCSI RAID +ncv dyn dyn n/a n/a NCR 53C500 based PC-Card SCSI +nsp dyn dyn n/a dyn Workbit Ninja SCSI-3 based PC-Card SCSI +stg dyn dyn n/a n/a TMC 18C30/50 based ISA/PC-Card SCSI + +wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36 + +psm0 60 12 n/a n/a PS/2 Mouse + +mcd0 300 10 n/a n/a Mitsumi CD-ROM +matcd0 230 n/a n/a n/a Matsushita/Panasonic CD-ROM +scd0 230 n/a n/a n/a Sony CD-ROM + +sio0 3f8 4 n/a n/a Serial Port 0 (COM1) +sio1 2f8 3 n/a n/a Serial Port 1 (COM2) + +ppc0 dyn 7 n/a n/a Printer ports + +dc0 n/a n/a n/a n/a DEC/Intel 21143 cards and workalikes +de0 n/a n/a n/a n/a DEC DC21x40 PCI based cards + (including 21140 100bT cards) +ed0 280 10 dyn d8000 WD & SMC 80xx; Novell NE1000 & + NE2000; 3Com 3C503; HP PC Lan+ +ep0 300 10 dyn dyn 3Com 3C509, 3C529, 3C556, 3C562D, + 3C563D, 3C572, 3C574X, 3C579, 3C589 +ex0 dyn dyn dyn n/a Intel EtherExpress Pro/10 cards +fe0 300 dyn n/a n/a Allied-Telesyn AT1700, RE2000 and + Fujitsu FMV-180 series cards. +fxp0 dyn dyn n/a dyn Intel EtherExpress Pro/100B and + Intel PRO/100+ Management Adapter +ie0 300 10 dyn d0000 AT&T StarLAN 10 and EN100; + 3Com 3C507; NI5210; + Intel EtherExpress (8/16,16[TP]) cards +le0 300 5 dyn d0000 Digital Equipment EtherWorks + 2 and EtherWorks 3 +lnc0 280 10 n/a dyn Lance/PCnet cards + (Isolan, Novell NE2100, NE32-VL, + some PCnet-PCI cards) +pcn0 dyn dyn n/a dyn AMD PCnet/FAST, PCnet/FAST+, + PCnet/FAST III, PCnet/PRO, PCnet/Home, + and HomePNA cards +rl0 dyn dyn n/a dyn RealTek 8129/8139 fast ethernet +sf0 dyn dyn n/a dyn Adaptec AIC-6915 fast ethernet +sis0 dyn dyn n/a dyn SiS 900/SiS 7016 fast ethernet +sn0 0x300 10 n/a n/a SMC 91xx ethernet +ste0 dyn dyn n/a dyn Sundance ST201 fast ethernet +tl0 dyn dyn n/a dyn TI TNET100 'ThunderLAN' cards. +tx0 dyn dyn n/a dyn SMC 9432 'Epic' fast ethernet +wb0 dyn dyn n/a dyn Winbond W89C840F PCI based cards. +vr0 dyn dyn n/a dyn VIA VT3043/VT86C100A PCI based cards. +vx0 dyn dyn n/a dyn 3Com 3c59x ((Fast) Etherlink III) +xe0 dyn dyn n/a dyn Xircom CreditCard adapters(16bit) +xl0 dyn dyn n/a dyn 3Com 3c900, 3c905, 3c905B, 3c905C, + 3c980, 3cSOHO100 ((Fast) Etherlink XL) +cs0 0x300 dyn n/a n/a Crystal Semiconductor CS89x0-based + cards. +--- End of table --- + + +If the hardware in your computer is not set to the same settings as +those shown in the table and the item in conflict is not marked 'dyn', +you will have to either reconfigure your hardware or use UserConfig +to reconfigure the kernel to match the way your hardware is currently set +(see the next section). + +If the settings do not match, the kernel may be unable to locate +or reliably access the devices in your system. + + +2. Using UserConfig to change FreeBSD kernel settings +-- -------------------------------------------------- + +The FreeBSD kernel on the install floppy contains drivers for every +piece of hardware that could conceivably be used to install the rest +of the system with. Unfortunately, PC hardware being what it is, some +of these devices can be difficult to detect accurately, and for some, +the process of detecting another can cause irreversible confusion. + +To make this process easier, FreeBSD provides UserConfig. With this +tool the user can configure and disable device drivers before +the kernel is loaded, avoiding potential conflicts, and eliminating +the need to reconfigure hardware to suit the default driver settings. + +Once FreeBSD is installed, it will remember the changes made using +UserConfig, so that they only need be made once. + +It is important to disable drivers that are not relevant to a system +in order to minimize the possibility of interference, which can cause +problems that are difficult to track down. + +UserConfig features a command line interface for users with serial +consoles or a need to type commands, and a full screen 'visual' +interface, which provides point-and-shoot configuration functionality. + +Here is a sample UserConfig screen shot in 'visual' mode: + +---Active Drivers---------------------------10 Conflicts------Dev---IRQ--Port-- + Storage : (Collapsed) + Network : + NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters CONF ed0 5 0x280 + NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters CONF ed1 5 0x300 + Communications : (Collapsed) + Input : (Collapsed) + Multimedia : +---Inactive Drivers-------------------------------------------Dev-------------- + Storage : + Network : (Collapsed) + Communications : + Input : + Multimedia : + + +---Parameters-for-device-ed0--------------------------------------------------- + Port address : 0x280 Memory address : 0xd8000 + IRQ number : 5 Memory size : 0x2000 + Flags : 0x0000 +------------------------------------------------------------------------------- + IO Port address (Hexadecimal, 0x1-0x2000) + [TAB] Change fields [Q] Save device parameters + + + The screen is divided into four sections : + + - Active Drivers. Listed here are the device drivers that are currently + enabled, and their basic parameters. + - Inactive Drivers. These drivers are present, but are disabled. + - Parameter edit field. This area is used for editing driver parameters. + - Help area. Keystroke help is displayed here. + +One of the Active and Inactive lists is always in use, and the current +entry in the list will be shown with a highlight bar. If there are +more entries in a list than can be shown, it will scroll. The bar can +be moved up and down using the cursor keys, and moved between lists +with the TAB key. + +Drivers in the Active list may be marked "CONF". This indicates that +one or more of their parameters conflicts with another device, and +indicates a potential for problems. The total number of conflicts is +displayed at the top of the screen. + +As a general rule, conflicts should be avoided, either by disabling +conflicting devices that are not present in the system, or by altering +their configuration so that they match the installed hardware. + +In the list areas, drivers are grouped by their basic function. +Groups can be 'Collapsed' to simplify the display (this is the default +state for all groups). If a group is collapsed, it will be shown with +'(Collapsed)' in the list, as above. To Expand a Collapsed group, +position the highlight bar over the group heading and press Enter. To +Collapse it again, repeat the process. + +When a device driver in the Active list is highlighted, its full +parameters are displayed in the Parameter edit area. Note that not +all drivers use all possible parameters, and some hardware supported +by drivers may not use all the parameters the driver supports. + +To disable a driver, go to the Active list, Expand the group it is in, +highlight the driver and press Del. The driver will move to its group +in the Inactive list. (If the group is collapsed or off the screen, +you may not see the driver in its new location.) + +To enable a driver, go to the Inactive list, Expand the group it is +in, highlight the driver and press Enter. The highlight will move to +the Active list, and the driver you have just enabled will be +highlighted, ready to be configured. + +To configure a driver, go to the Active list, Expand the group it is +in, highlight the driver and press Enter. The cursor will move to the +Parameter edit area, and the device's parameters may be edited. + +While editing parameters, the TAB and cursor keys can be used to move +between fields. Most numeric values (except IRQ) are entered in +hexadecimal, as indicated by the '0x' at the beginning of the field. +The allowable values for a given field are show in the Key Help area +when the field is active. + +To finish configuring a driver, press 'Q'. + +Note that PCI, Microchannel and EISA devices can be probed reliably, +therefore they are not shown in the table above nor can their settings +be changed using UserConfig. + + +3. LINT - other possible configurations +-- ------------------------------------ + +The following drivers are not in the GENERIC kernel but remain +available to those who do not mind compiling a custom kernel (see +section 6 of FreeBSD.FAQ). The LINT configuration file +(/sys/i386/conf/LINT) also contains prototype entries for just about +every device supported by FreeBSD and is a good general reference. + +The device names and a short description of each are listed below. The port +numbers, etc, are not meaningful here since you will need to compile a +custom kernel to gain access to these devices anyway and can thus +adjust the addresses to match the hardware in your computer in the process. +The LINT file contains prototype entries for all of the below which you +can easily cut-and-paste into your own file (or simply copy LINT and edit +it to taste): + +ata: Alternate high-performance driver for IDE controllers +ctx: Cortex-I frame grabber +cx: Cronyx/Sigma multiport sync/async +cy: Cyclades high-speed serial driver +el: 3Com 3C501 +fea: DEC DEFEA EISA FDDI adapter +fpa: DEC DEFPA PCI FDDI adapter +gp: National Instruments AT-GPIB and AT-GPIB/TNT board +gsc: Genius GS-4500 hand scanner +gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX +gusxvi: Gravis Ultrasound 16-bit PCM +hea: Efficient ENI-155p ATM PCI adapter +hfa: FORE PCA-200E ATM PCI adapter +ifpi: isdn4bsd AVM Fritz!card PCI driver +ifpnp: isdn4bsd AVM Fritz!card PnP driver +ihfc: isdn4bsd Cologne Chip HFC ISA driver +isic: isdn4bsd Siemens/Infineon ISDN chipset driver (ISAC+HSCX/IPAC) +iwic: isdn4bsd Winbond W6692 PCI ISDN chip driver +joy: Joystick +labpc: National Instrument's Lab-PC and Lab-PC+ +meteor: Matrox Meteor frame-grabber card +bktr: Brooktree Bt848 / Bt 878 based frame-grabber cards. +mpu: Roland MPU-401 stand-alone card +mse: Microsoft, Logitech, ATI bus mouse ports +mss: Microsoft Sound System +opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum +pas: ProAudioSpectrum PCM and MIDI +pca: PCM audio ("/dev/audio") through your PC speaker +pcm: PCM audio on most modern PCI/ISA audio codecs +psm: PS/2 mouse port +rc: RISCom/8 multiport card +sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum +sbmidi: SoundBlaster 16 MIDI interface +sbxvi: SoundBlaster 16 +si: Specialix SI/XIO/SX (old and enhanced ISA, PCI, EISA) serial +sym: Alternate high-performance driver for NCR/LSI Logic SCSI controllers +spigot: Creative Labs Video Spigot video-acquisition board +uart: Stand-alone 6850 UART for MIDI +wds: Western Digital WD7000 IDE + +--- end of list --- + + +4. Supported Hardware +-- ------------------ + +FreeBSD currently runs on a wide variety of ISA, VLB, EISA, +Microchannel and PCI bus based PC's, ranging from 386sx to Pentium +class machines (though the 386sx is not recommended). Support for +generic IDE or ESDI drive configurations, various SCSI controller, +network and serial cards is also provided. + +What follows is a list of all peripherals currently known to work with +FreeBSD. Other configurations may also work, we have simply not as yet +received confirmation of this. + + +4.1. Disk Controllers +---- ---------------- + +IDE +ATA controllers: + Acerlabs Aladdin + AMD 756 + CMD 646 + CMD 648 ATA66 + CMD 649 ATA100 + Cypress 82C693 + Cyrex 5530 + HighPoint HPT366 + HighPoint HPT370 + Intel PIIX + Intel PIIX3 + Intel PIIX4 + Intel ICH + Intel ICH2 + Promise ATA100 OEM chip (pdc20265) + Promise Fasttrak-33 + Promise Fasttrak-66 + Promise Fasttrak-100 + Promise Ultra-33 + Promise Ultra-66 + Promise Ultra-100 + ServerWorks ROSB4 ATA33 + SiS 5591 + VIA 82C586 + VIA 82C686 + +WD1003 (any generic MFM/RLL - obsolete) +WD1007 (any generic ESDI - obsolete) +* Note: now that the wd driver has been replaced by the ata driver framework, +which does not have bad144 support, the true MFM/RLL/ESDI drives/adapters +have become obsolete. + +Adaptec 1535 ISA SCSI controllers +Adaptec 154x series ISA SCSI controllers +Adaptec 174x series EISA SCSI controller in standard and enhanced mode. +Adaptec 274X/284X/2920C/294x/2950/19160/29160/3940/3950/39160 + Narrow/Wide/Twin series EISA/VLB/PCI SCSI controllers. +Adaptec AIC7850, AIC7860, AIC7880, AIC789x, on-board SCSI controllers. +Adaptec 1510 series ISA SCSI controllers (not for bootable devices) +Adaptec 152x series ISA SCSI controllers +Adaptec AIC-6260 and AIC-6360 based boards, which includes the AHA-152x +and SoundBlaster SCSI cards. + +Adaptec 2100S, 2400A, 3200S, and 3400S SCSI RAID controllers. + +Adaptec FSA family RAID controllers: + Adaptec AAC-2622 + Adaptec AAC-364 + Adaptec AAC-3642 + Dell PERC 2/QC + Dell PERC 2/Si + Dell PERC 3/Di + Dell PERC 3/QC + Dell PERC 3/Si + HP NetRAID-4M + +AdvanSys SCSI controllers (all models). + +BusLogic MultiMaster controllers: + +[ Please note that BusLogic/Mylex "Flashpoint" adapters are NOT yet supported ] + +BusLogic MultiMaster "W" Series Host Adapters: + BT-948, BT-958, BT-958D +BusLogic MultiMaster "C" Series Host Adapters: + BT-946C, BT-956C, BT-956CD, BT-445C, BT-747C, BT-757C, BT-757CD, BT-545C, + BT-540CF +BusLogic MultiMaster "S" Series Host Adapters: + BT-445S, BT-747S, BT-747D, BT-757S, BT-757D, BT-545S, BT-542D, BT-742A, + BT-542B +BusLogic MultiMaster "A" Series Host Adapters: + BT-742A, BT-542B + +AMI FastDisk controllers that are true BusLogic MultiMaster clones are also +supported. + +DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and +SmartRAID IV SCSI/RAID controllers. + +DPT SmartRAID V and VI SCSI RAID controllers: + PM1554, PM2554, PM2654, PM2865, PM2754, PM3755, PM3757 + +AMI MegaRAID Express and Enterprise family RAID controllers: + MegaRAID Series 418 + MegaRAID Enterprise 1200 (Series 428) + MegaRAID Enterprise 1300 (Series 434) + MegaRAID Enterprise 1400 (Series 438) + MegaRAID Enterprise 1500 (Series 467) + MegaRAID Enterprise 1600 (Series 471) + MegaRAID Elite 1500 (Series 467) + MegaRAID Elite 1600 (Series 493) + MegaRAID Express 100 (Series 466WS) + MegaRAID Express 200 (Series 466) + MegaRAID Express 300 (Series 490) + MegaRAID Express 500 (Series 475) + Dell PERC + Dell PERC 2/SC + Dell PERC 2/DC + HP NetRAID-1si + HP NetRAID-3si + HP Embedded NetRAID +Booting from these controllers is supported. + +Mylex DAC960 and DAC1100 RAID controllers with 2.x, 3.x, 4.x and 5.x +firmware: + DAC960P + DAC960PD + DAC960PDU + DAC960PL + DAC960PJ + DAC960PG + AcceleRAID 150 + AcceleRAID 250 + eXtremeRAID 1100 +This list includes controllers sold by Digital/Compaq in Alpha systems +in the StorageWorks family, eg. KZPSC, KZPAC. EISA adaptes are not +supported. + +Mylex PCI to SCSI RAID controllers with 6.x firmware: + AcceleRAID 160 + AcceleRAID 170 + AcceleRAID 352 + eXtremeRAID 2000 + eXtremeRAID 3000 +Compatible Mylex controllers not listed should work, but have not been +verified. + +3ware Escalade ATA RAID controllers. All members of the 5000 and +6000 series are supported. + +Qlogic Controllers: + Qlogic 1020, 1040 SCSI and Ultra SCSI Host Adaptes + Qlogic 1240 dual Ultra SCSI controllers + Qlogic 1080 Ultra2 LVD and 1280 Dual Ultra2 LVD Controllers + Qlogic 12160 Ultra3 LVD Controllers + Qlogic 2100 and Qlogic 2200 Fibre Channel SCSI Controllers + +LSI/SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C825, 53C825a, +53C860, 53C875, 53C875a, 53C876, 53C885, 53C895, 53C895a, 53C896, +53C1010-33, 53C1010-66, 53C1000, 53C1000R PCI SCSI controllers, +either embedded on mainboard, or on add-on boards: + ASUS SC-200, SC-896 + Data Technology DTC3130 (all variants) + DawiControl DC2976UW + Diamond FirePort (all) + NCR cards (all) + Symbios cards (all) + Tekram DC390W, 390U, 390F, 390U2B, 390U2W, 390U3D and 390U3W + Tyan S1365 + +NCR 53C500 based PC-Card SCSI host adapters: + IO DATA PCSC-DV + KME KXLC002(TAXAN ICD-400PN, etc.), KXLC004 + Macnica Miracle SCSI-II mPS110 + Media Intelligent MSC-110, MSC-200 + NEC PC-9801N-J03R + New Media Corporation BASICS SCSI + Qlogic Fast SCSI + RATOC REX-9530, REX-5572 (as SCSI only) + +TMC 18C30, 18C50 based ISA/PC-Card SCSI host adapters: + Future Domain SCSI2GO + IBM SCSI PCMCIA Card + ICM PSC-2401 SCSI + Melco IFC-SC + RATOC REX-5536, REX-5536AM, REX-5536M, REX-9836A + +DTC 3290 EISA SCSI controller in 1542 emulation mode. + +Tekram DC390 and DC390T controllers (maybe other cards based on the +AMD 53c974 as well). + +Workbit Ninja SCSI-3 based PC-Card SCSI host adapters: + Alpha-Data AD-PCS201 + IO DATA CBSC16 + +With all supported SCSI controllers, full support is provided for +SCSI-I & SCSI-II peripherals, including hard disks, optical disks, +tape drives (including DAT and 8mm Exabyte), medium changers, processor +target devices and CDROM drives. WORM devices that support CDROM commands +are supported for read-only access by the CDROM driver. WORM/CD-R/CD-RW +writing support is provided by cdrecord, which is in the ports tree. + +The following CD-ROM type systems are supported at this time: +(cd) SCSI interface (also includes SoundBlaster SCSI) +(matcd) Matsushita/Panasonic (Creative SoundBlaster) proprietary + interface (562/563 models) +(scd) Sony proprietary interface (all models) +(acd) ATAPI IDE interface + +Unmaintained drivers, they might or might not work for your hardware: + +(mcd) Mitsumi proprietary CD-ROM interface (all models) + +4.2. Network cards +---- ------------- + +Adaptec Duralink PCI fast ethernet adapters based on the Adaptec +AIC-6915 fast ethernet controller chip, including the following: + ANA-62011 64-bit single port 10/100baseTX adapter + ANA-62022 64-bit dual port 10/100baseTX adapter + ANA-62044 64-bit quad port 10/100baseTX adapter + ANA-69011 32-bit single port 10/100baseTX adapter + ANA-62020 64-bit single port 100baseFX adapter + +Allied-Telesyn AT1700 and RE2000 cards + +Alteon Networks PCI gigabit ethernet NICs based on the Tigon 1 and Tigon 2 +chipsets, including the following: + 3Com 3c985-SX (Tigon 1 and 2) + Alteon AceNIC (Tigon 1 and 2) + Alteon AceNIC 1000baseT (Tigon 2) + DEC/Compaq EtherWORKS 1000 + Farallon PN9000SX + NEC Gigabit Ethernet + Netgear GA620 (Tigon 2) + Netgear GA620T (Tigon 2, 1000baseT) + Silicon Graphics Gigabit Ethernet + +AMD PCnet/PCI (79c970 & 53c974 or 79c974) +AMD PCnet/FAST, PCnet/FAST+, PCnet/FAST III, PCnet/PRO, HomePCI, and HomePNA. + +SMC Elite 16 WD8013 ethernet interface, and most other WD8003E, +WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT +based clones. SMC Elite Ultra is also supported. + +RealTek 8129/8139 fast ethernet NICs including the following: + Accton "Cheetah" EN1207D (MPX 5030/5038; RealTek 8139 clone) + Allied Telesyn AT2550 + Allied Telesyn AT2500TX + Genius GF100TXR (RTL8139) + KTX-9130TX 10/100 Fast Ethernet + NDC Communications NE100TX-E + Netronix Inc. EA-1210 NetEther 10/100 + OvisLink LEF-8129TX + OvisLink LEF-8139TX + SMC EZ Card 10/100 PCI 1211-TX + +Lite-On 82c168/82c169 PNIC fast ethernet NICs including the following: + Kingston KNE110TX + LinkSys EtherFast LNE100TX + Matrox FastNIC 10/100 + NetGear FA310-TX Rev. D1 + +Macronix 98713, 98713A, 98715, 98715A and 98725 fast ethernet NICs + Accton EN1217 (98715A) + Adico AE310TX (98715A) + CNet Pro120A (98713 or 98713A) + CNet Pro120B (98715) + NDC Communications SFA100A (98713A) + SVEC PN102TX (98713) + +Macronix/Lite-On PNIC II LC82C115 fast ethernet NICs including the following: + LinkSys EtherFast LNE100TX Version 2 + +Winbond W89C840F fast ethernet NICs including the following: + Trendware TE100-PCIE + +VIA Technologies VT3043 "Rhine I" and VT86C100A "Rhine II" fast ethernet +NICs including the following: + AOpen/Acer ALN-320 + D-Link DFE-530TX + Hawking Technologies PN102TX + +Silicon Integrated Systems SiS 900 and SiS 7016 PCI fast ethernet NICs + +National Semiconductor DP83815 fast ethernet NICs including the following: + NetGear FA311-TX + NetGear FA312-TX + +Sundance Technologies ST201 PCI fast ethernet NICs including +the following: + D-Link DFE-550TX + +SysKonnect SK-984x PCI gigabit ethernet cards including the following: + SK-9841 1000baseLX single mode fiber, single port + SK-9842 1000baseSX multimode fiber, single port + SK-9843 1000baseLX single mode fiber, dual port + SK-9844 1000baseSX multimode fiber, dual port + SK-9821 1000baseT copper, single port + SK-9822 1000baseT copper, dual port + +Texas Instruments ThunderLAN PCI NICs, including the following: + Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100 Dual-Port + Compaq Netelligent 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, 10/100 TX UTP + Compaq NetFlex 3P, 3P Integrated, 3P w/ BNC + Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX UTP + Racore 8165 10/100baseTX + Racore 8148 10baseT/100baseTX/100baseFX multi-personality + +ADMtek Inc. AL981-based PCI fast ethernet NICs + +ADMtek Inc. AN985-based PCI fast ethernet NICs including the following: + LinkSys EtherFast LNE100TX v4.0/4.1 + +ADMtek Inc. AN986-based USB ethernet NICs including the following: + Billionton USB100 + D-Link DSB-650TX + LinkSys USB100TX + Melco Inc. LUA-TX + SMC 2202USB + +CATC USB-EL1210A-based USB ethernet NICs including the following: + Belkin F5U011 + Belkin F5U111 + CATC Netmate + CATC Netmate II + +Kawasaki LSI KL5KUSB101B-based USB ethernet NICs including +the following: + 3Com 3c19250 + ADS Technologies USB-10BT + ATen UC10T + Corega USB-T + D-Link DSB-650 + Entrega NET-USB-E45 + LinkSys USB10T + Netgear EA101 + Peracom USB Ethernet Adapter + SMC 2102USB + SMC 2104USB + +ASIX Electronics AX88140A PCI NICs, including the following: + Alfa Inc. GFC2204 + CNet Pro110B + +DEC EtherWORKS III NICs (DE203, DE204, and DE205) +DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422) +DEC DC21040, DC21041, or DC21140 based NICs (SMC Etherpower 8432T, DE245, etc) +DEC FDDI (DEFPA/DEFEA) NICs + +Davicom DM9100 and DM9102 PCI fast ethernet NICs, including the +following: + Jaton Corporation XPressNet + +Efficient ENI-155p ATM PCI + +FORE PCA-200E ATM PCI + +Fujitsu MB86960A/MB86965A, including the following: + CONTEC C-NET(PC)C Ethernet + Eiger Labs EPX-10BT + Fujitsu FMV-J182, FMV-J182A, MBH10302, MBH10303 Ethernet PCMCIA + Fujitsu Towa LA501 Ethernet + HITACHI HT-4840-11 + NextCom J Link NC5310 + RATOC REX-5588, REX-9822, REX-4886, REX-R280 + TDK LAK-CD021, LAK-CD021A, LAK-CD021BX + +HP PC Lan+ cards (model numbers: 27247B and 27252A). + +Intel EtherExpress (not recommended due to driver instability) +Intel EtherExpress Pro/10 +Intel EtherExpress Pro/100B PCI Fast Ethernet +Intel PRO/100+ Management Adapter +Intel Gigabit Ethernet (PRO/1000) + +Isolan AT 4141-0 (16 bit) +Isolink 4110 (8 bit) + +Novell NE1000, NE2000, and NE2100 ethernet interface. +PCI network cards emulating the NE2000: RealTek 8029, NetVin 5000, +Winbond W89C940, Surecom NE-34, VIA VT86C926, etc. + +3Com 3C501 cards + +3Com 3C503 Etherlink II + +3Com 3C507 Etherlink 16/TP + +3Com 3C509, 3C529, 3C556, 3C562D, 3C563D, 3C572, 3C574X, 3C579, +3C589/589B/589C/589D/589E/XE589ET/574TX/574B (PC-card/PCMCIA), +3C590/592/595/900/905/905B/905C PCI, +3C556-556B MiniPCI, +3C575TX/575B/XFE575BT/575C/656/656B/656C Cardbus, +and EISA (Fast) Etherlink III / (Fast) Etherlink XL + +3Com 3c980/3c980B/3c980C Fast Etherlink XL server adapter + +3Com 3cSOHO100-TX OfficeConnect adapter + +3Com 3c450-TX HomeConnect adapter + +NE2000 compatible PC-Card (PCMCIA) Ethernet/FastEthernet cards, +including the following: + AR-P500 Ethernet card + Accton EN2212/EN2216/UE2216(OEM) + Allied Telesis CentreCOM LA100-PCM_V2 + AmbiCom 10BaseT card + BayNetworks NETGEAR FA410TXC Fast Ethernet + CNet BC40 adapter + COREGA Ether PCC-T/EtherII PCC-T/FEther PCC-TXF/PCC-TXD + Compex Net-A adapter + CyQ've ELA-010 + D-Link DE-650/660 + Danpex EN-6200P2 + ELECOM Laneed LD-CDL/TX + IO DATA PCLA/TE, PCET/TX, PCET/TX-R + IBM Creditcard Ethernet I/II + IC-CARD Ethernet/IC-CARD+ Ethernet + Linksys EC2T/PCMPC100,EtherFast 10/100 PC Card (PCMPC100 V2) + Melco LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX + NDC Ethernet Instant-Link + National Semiconductor InfoMover NE4100 + Network Everywhere Ethernet 10BaseT PC Card + Planex FNW-3600-T + Socket LP-E + Surecom EtherPerfect EP-427 + TDK LAK-CD031,Grey Cell GCS2000 Ethernet Card + Telecom Device SuperSocket RE450T + +Megahertz X-Jack Ethernet PC-Card CC-10BT + +Xircom X3201 (Cardbus) based Ethernet cards, +including the following: + IBM EtherJet Cardbus Adapter + Intel PRO/100 Mobile Cardbus (versions that uses the X3201 chipset) + Xircom Cardbus Realport + Xircom Cardbus Ethernet 10/100 + Xircom Cardbus Ethernet II 10/100 + +Xircom CreditCard adapters(16bit) and workalikes + Accton EN2226/Fast EtherCard (16-bit verison) + Compaq Netelligent 10/100 PC Card + Intel EtherExpress PRO/100 Mobile Adapter (16-bit verison) + Xircom 10/100 Network PC Card adapter. + Xircom Realport card + modem(Ethernet part) + Xircom CreditCard Ethernet 10/100 + Xircom CreditCard 10Base-T "CreditCard Ethernet Adaptor IIps" (PS-CE2-10) + Xircom CreditCard Ethernet 10/100 + modem (Ethernet part) + +National Semiconductor DP8393X (SONIC) Ethernet cards + NEC PC-9801-83, -84, -103, and -104 + NEC PC-9801N-25 and -J02R + + +4.3. USB +---- --- + +A range of USB peripherals are supported. Owing to the generic nature +of most USB devices, with some exceptions any device of a given class +will be supported even if not explicitly listed here. + +USB keyboards. + +USB mice. + +USB printers and USB to parallel printer conversion cables. + +USB hubs. + +USB ethernet controllers. + + +USB Host Controllers: + ALi Aladdin-V. + AMD-756. + CMD Tech 670 & 673. + Intel 82371SB (PIIX3). + Intel 82371AB and EB chipsets (PIIX4). + NEC uPD 9210. + OPTi 82C861 (FireLink). + SiS 5571. + VIA 83C572 USB. + and any other UHCI or OHCI compliant motherboard chipset (no exceptions + known). + + +PCI plug-in USB host controllers: + ADS Electronics PCI plug-in card (2 ports). + Entrega PCI plug-in card (4 ports). + + +Specific devices reported to be working (see above for USB ethernet devices +supported): + +Floppy drives/Hard disks/CDROMs/Zip drives/etc: + Iomega USB Zip 100Mb (primitive support still). + Matshita CF-VFDU03 floppy drive. + Microtech USB-SCSI-HD 50 USB to SCSI cable. + Panasonic floppy drive. + Y-E Data floppy drive (720/1.44/2.88Mb). + +Hubs: + Andromeda hub. + MacAlly self powered hub (4 ports). + NEC hub. + +Keyboards: + Apple iMac keyboard. + BTC BTC7935 keyboard with PS/2 mouse port. + Cherry G81-3504 keyboard. + Logitech M2452 keyboard. + MacAlly iKey keyboard. + Microsoft keyboard. + +Mice: + Agiler Mouse 29UO. + Apple iMac Mouse. + Belkin Mouse. + Chic mouse. + Cypress mouse. + Genius Niche mouse. + Kensington Mouse-in-a-Box. + Logitech wheel mouse (3 buttons). + Logitech PS/2 / USB mouse (3 buttons). + MacAlly mouse (3 buttons). + Microsoft IntelliMouse (3 buttons). + Trust Ami Mouse (3 buttons). + +Printer Adapters: + ATen parallel printer adapter. + Belkin F5U002 parallel printer adapter. + Entrega USB-to-parallel printer adapter. + +Modems: + 3Com 5605 + Metricom Ricochet GS USB wireless modem + +Scanners (through SANE): + Perfection 636U + HP ScanJet 4100C, 5200C, 6300C + +Miscalleneous: + ActiveWire I/O Board. + +4.4. ISDN (European DSS1 [Q.921/Q.931] protocol) +---- ------------------------------------------- + +Asuscom ISDNlink 128K PnP + +AVM A1 +AVM Fritz!Card classic +AVM Fritz!Card PCI + +Creatix ISDN-S0/8 +Creatix ISDN-S0/16 +Creatix ISDN-S0 PnP + +Dr.Neuhaus Niccy 1008 +Dr.Neuhaus Niccy 1016 +Dr.Neuhaus Niccy GO@ (ISA PnP) + +ELSA QuickStep 1000pro ISA +ELSA MicroLink ISDN/PCI (same as ELSA QuickStep 1000pro PCI) +ELSA PCC-16 + +Sagem Cybermod (ISA PnP) + +Sedlbauer Win Speed + +Siemens I-Surf 2.0 + +Teles S0/8 +Teles S0/16 +Teles S0/16.3 (the "c" Versions - like 16.3c - are unsupported !) +Teles S0/16.3 PnP + + +4.5. Misc +---- ---- + +AST 4 port serial card using shared IRQ. + +ARNET 8 port serial card using shared IRQ. +ARNET (now Digiboard) Sync 570/i high-speed serial. + +Boca BB1004 4-Port serial card (Modems NOT supported) +Boca IOAT66 6-Port serial card (Modems supported) +Boca BB1008 8-Port serial card (Modems NOT supported) +Boca BB2016 16-Port serial card (Modems supported) + +Comtrol Rocketport card. + +Cyclades Cyclom-y Serial Board. + +STB 4 port card using shared IRQ. + +SDL Communications Riscom/8 Serial Board. +SDL Communications RISCom/N2 and N2pci high-speed sync serial boards. + +Specialix SI/XIO/SX multiport serial cards, with both the older +SIHOST2.x and the new "enhanced" (transputer based, aka JET) host cards. +ISA, EISA and PCI are supported. + +Stallion multiport serial boards: EasyIO, EasyConnection 8/32 & 8/64, +ONboard 4/16 and Brumby. + +HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R drives. + +Bus mice + +PS/2 mice + +Standard PC Joystick + +X-10 power controllers + +GPIB and Transputer drivers. + +Genius and Mustek hand scanners. + +Lucent Technologies WaveLAN/IEEE 802.11 PCMCIA and ISA standard speed +(2Mbps) and turbo speed (6Mbps) wireless network adapters and workalikes +3COM 3crwe737A AirConnect Wireless LAN PC Card +Cabletron RoamAbout 802.11 DS +Compaq WL100 +Corega KK Wireless LAN PCC-11, PCCA-11 +Laneed Wireless card +ELECOM Air@Hawk/LD-WL11/PCC +Farallon Skyline 11Mbps Wireless +ICOM SL-1100 +IO Data WN-B11/PCM +Melco Airconnect WLI-PCM-L11 +NCR WaveLAN/IEEE 802.11 +NEC Wireless Card CMZ-RT-WP, PC-WL/11C, PK-WL001 +PLANEX GeoWave/GW-NS110 +TDK LAK-CD011WL +Note: the ISA versions of these adapters are actually PCMCIA cards +combined with an ISA to PCMCIA bridge card, so both kinds of devices +work with the same driver. + +Aironet 4500/4800 series 802.11 wireless adapters. The PCMCIA, +PCI and ISA adapters are all supported. +Cisco Systems Aironet 340 Series (includes 340, 341, and 342 models) +11Mbps 802.11 wireless NIC + +Webgear Aviator 2.4GHz wireless adapters + +Toshiba Mobile HDD MEHDD20A (Type II) + +Panasonic Flash ATA BN-040ABP3 + +Hewlett Packard M820e (CD-writer) + +FAX-Modem/PC-Card +Melco IGM-PCM56K/IGM-PCM56KH +Nokia Card Phone 2.0 (gsm900/dcs1800 HSCSD terminal) + +PHS Data Commuincation Card/PC-Card +NTT DoCoMo P-in Comp@ct +Panasonic KX-PH405 +SII MC-P200 + + +4.6. Microchannel +---- ------------ + +Experimental support for Microchannel systems is new in FreeBSD 4.0 + +Drivers with support for Microchannel peripherals are: + +aha: Adaptec AHA-1640 SCSI controller +bt: Buslogic BT-640A and Storage Dimensions SDC3211 SCSI controllers +ep: 3Com 3C529 network adapter + + +4.7. Multimedia +---- ---------- + +Soundcards supported by newpcm: + +Advance Asound 100, 110 and Logic ALS120 +Crystal Semiconductor CS461x/462x/428x +ENSONIQ AudioPCI ES1370/1371 +ESS ES1868, ES1869, ES1879 and ES1888 +ESS Maestro-1, Maestro-2, and Maestro-2E +ESS Maestro-3/Allegro +ForteMedia fm801 +Gravis UltraSound MAX/PnP +MSS/WSS Compatible DSPs +NeoMagic 256AV/ZX +OPTi 931/82C931 +SoundBlaster, Soundblaster Pro, Soundblaster AWE-32, Soundblaster AWE-64 +Trident 4DWave DX/NX +VIA Technologies VT82C686A +Yamaha DS1 and DS1e + +Matrox Meteor Video frame grabber +Creative Labs Video Spigot frame grabber +Cortex1 frame grabber +Various Frame grabbers based on Brooktree Bt848 and Bt878 chip. diff --git a/release/texts/LAYOUT.TXT b/release/texts/LAYOUT.TXT new file mode 100644 index 000000000000..c97298e6bdd3 --- /dev/null +++ b/release/texts/LAYOUT.TXT @@ -0,0 +1,101 @@ +=================== +Distribution format +=================== + +A typical FreeBSD distribution directory looks something like this: + +ABOUT.TXT bin compat3x games proflibs +HARDWARE.TXT compat1x info src tools +INSTALL.TXT compat20 dict manpages packages +README.TXT compat21 crypto doc +RELNOTES.TXT compat22 floppies ports +XF86336 + +If you want to do a CDROM, FTP or NFS installation from this +distribution directory, all you need to do is make the 1.44MB boot +floppies from the floppies directory (see floppies/README.TXT for +instructions on how to do this), boot them and follow the instructions. +The rest of the data needed during the installation will be obtained +automatically based on your selections. If you've never installed +FreeBSD before, you also want to read the INSTALL.TXT file for +instructions. + +If you're trying to do some other type of installation or are merely +curious about how a distribution is organized, what follows is a more +thorough description of each item in more detail: + +1. The *.TXT files obviously contain documentation (this file is + LAYOUT.TXT) and should be read before starting an installation. + +2. The XF86336 directory contains the XFree86 project's 3.3.6 release and + consists of a series of gzip'd tar files which contain each component + of the XFree86 distribution. + +3. The bin, dict, crypto, doc, games, info, manpages, proflibs, and src + directories contain the primary distribution components of FreeBSD + itself and are split into smaller files for easy packing onto floppies + (should that be necessary). + +4. The compat1x, compat20, compat21, compat22, and compat3x directories + contain distributions for compatibility with older releases and are + distributed as single gzip'd tar files - they can be installed during + release time or later by running their `install.sh' scripts. + +5. The floppies subdirectory also contains the floppy installation images + and the floppies/README.TXT file should be read for further + information on using them. + +6. The packages and ports directories contain the FreeBSD packages and + ports collections. Packages may be installed from the packages + directory by running the command: ``sysinstall configPackages'' + or by feeding individual filenames in packages/ to the pkg_add(1) + command. + + The ports collection may be installed like any other distribution + and requires about 100MB unpacked. More information on the ports + collection may be obtained from http://www.freebsd.org/ports or + locally from ``file:/usr/share/doc/handbook'' if you've installed + the doc distribution. + +7. Last of all, the tools directory contains various DOS tools for + discovering disk geometries, installing boot managers and the like. + It is purely optional and provided only for user convenience. + +A typical distribution (we'll use the info distribution as an example) +looks like this internally: + +CHECKSUM.MD5 info.ab info.ad info.inf install.sh +info.aa info.ac info.ae info.mtree + +The CHECKSUM.MD5 file contains MD5 signatures for each file, should +data corruption be suspected, and is purely for reference. It is not +used by the actual installation and does not need to be copied with +the rest of the distribution files. The info.a* files are split, +gzip'd tar files, the contents of which can be viewed by doing: + + cat info.a* | tar tvzf - + +During installation, they are automatically concatenated and extracted +by the installation procedure. + +The info.inf file is also necessary since it is read by the installation +program in order to figure out how many pieces to look for when fetching and +concatenating the distribution. When putting distributions onto floppies, +the .inf file MUST occupy the first floppy of each distribution set! + +The info.mtree file is another non-essential file which is provided +for user reference. It contains the MD5 signatures of the *unpacked* +distribution files and can be later used with the mtree(1) program +to verify the installation permissions and checksums against any possible +modifications to the file. When used with the bin distribution, this can +be an excellent way of detecting trojan horse attacks on your system. + +Finally, the install.sh file is for use by those who want to install the +distribution after installation time. To install the info distribution from +CDROM after a system was installed, for example, you'd do: + + cd /cdrom/info + sh install.sh + +And that's all there is to it! Each distribution contains its own +install.sh file for this. diff --git a/release/texts/README.TXT b/release/texts/README.TXT new file mode 100644 index 000000000000..7f4fefc6e5a9 --- /dev/null +++ b/release/texts/README.TXT @@ -0,0 +1,105 @@ + ----------------------------------------- + FreeBSD 5.0 --- SNAPSHOT Version , , + ----------------------------------------- /( )` + \ \___ / | +This is a binary snapshot of 5.0-current, the /- _ `-/ ' +(HEAD) branch which is currently moving towards (/\/ \ \ /\ +the release of 5.0. / / | ` \ + O O ) / | + `-^--'`< ' + (_.) _ ) / + `.___/` / + `-----' / +Feedback or offers to help with anything <----. __ / __ \ +you see in this release are most welcome <----|====O)))==) \) /==== +and should be sent to one of the approp- <----' `--' `.__,' \ +riate mailing lists - please see the | | +ABOUT.TXT file for more information. \ / /\ + ______( (_ / \______/ + ,' ,-----' | + `--{__________) + +TARGET AUDIENCE: +---------------- +This release is aimed primarily at early-adopters and the various +other folks who want to get involved with the ongoing development +of FreeBSD and are willing to deal with a few bumps in the road. +We do our best to ensure that each snapshot works as advertised, +but tracking -current is a process which frequently has its off +days. + +If you're both technically proficient and know exactly what you're +getting into here (e.g. you've been following -current) then this +snapshot is probably for you. If you're more interested in doing +business with FreeBSD than in playing with the cutting edge of +technology, however, then 3.x or 4.x is almost certainly your best +bet. + + +Most information here is also available from the Documentation menu +during installation. + + ERRATA.TXT Read this file! It will tell you where to look for the + latest information on problems which have been found and + fixed since this release was created (and may bite you). + + README.TXT This file + + ABOUT.TXT All about FreeBSD, including contact information + + RELNOTES.TXT Release Notes - what's new & different in this release + + LAYOUT.TXT Information about the layout of the release directory. + If you are installing from floppies, it is especially + important that you read this section! + + HARDWARE.TXT Information about the configuration of the GENERIC kernel + and supported hardware. New installers should read this + file. + + INSTALL.TXT Installation instructions - new installers should read this. + + UPGRADE.TXT Upgrading an existing FreeBSD installation + + TROUBLE.TXT General troubleshooting information + + +o It is, again, very important to check the ERRATA.TXT file for any + late-breaking issues with this release. If you don't read the ERRATA, + you will probably fall right into the same problems that have already + been reported (and fixed as noted in the ERRATA). + + +If you're a developer/hobbiest and not interested in QA'd releases +so much as simply keeping up to date on the latest FreeBSD technology, +you can also install one of our "snapshot" releases. + +For the most up-to-date software along the RELENG_3 branch +(also known as 3.5-stable), please install your snapshots from: + + ftp://releng3.freebsd.org/pub/FreeBSD/ + +For the most up-to-date software along the RELENG_4 branch +(also known as 4.0-stable), now proceeding towards the release +of FreeBSD 4.1, please install your snapshots from: + + ftp://releng4.freebsd.org/pub/FreeBSD/ + +For the latest 5.0-current (HEAD branch) snapshot releases, +please install from: + + ftp://current.freebsd.org/pub/FreeBSD + +If you plan to run either -Stable or -Current you MUST be +subscribed to the appropriate mailing list, either +freebsd-stable or freebsd-current. For information on +subscribing to either list (or both), send an e-mail to +majordomo@freebsd.org with the following in the body, not +the subject, of the letter as appropriate: + +subscribe freebsd-stable +subscribe freebsd-current +end + +We hope you enjoy using FreeBSD as much as we enjoyed +creating it! diff --git a/release/texts/TROUBLE.TXT b/release/texts/TROUBLE.TXT new file mode 100644 index 000000000000..312c6c33741f --- /dev/null +++ b/release/texts/TROUBLE.TXT @@ -0,0 +1,383 @@ +=============== +Troubleshooting +=============== + + Table of Contents: + + Repairing an Existing FreeBSD Installation + + Common Installation Problems, Q&A + + Common Hardware Problems, Q&A + +Repairing an Existing FreeBSD Installation +------------------------------------------ + +FreeBSD releases 2.2.1 and later feature a "Fixit" option in the top +menu of the boot floppy. To use it, you will also need either a +fixit.flp image floppy, generated in the same fashion as the boot +floppy, or the 2nd CDROM from Walnut Creek CDROM's FreeBSD +distribution. + +To invoke fixit, simply boot the kern.flp floppy, choose the "Fixit" +item and insert the fixit floppy or CDROM when asked. You will then +be placed into a shell with a wide variety of commands available (in +the /stand and /mnt2/stand directories) for checking, repairing and +examining file systems and their contents. Some UNIX administration +experience *is* required to use the fixit option! + +Common Installation Problems, Q&A +--------------------------------- + +Q: I go to boot from the hard disk for the first time after installing + FreeBSD, the kernel loads and probes my hardware, but stops with + messages like: + + changing root device to wd1s1a + panic: cannot mount root + + What is wrong? What can I do? + +Q: What is this 'bios_drive:interface(unit,partition)kernel_name' thing + that is displayed with the boot help? + +A: There is a longstanding problem in the case where the boot disk is + not the first disk in the system. The BIOS uses a different numbering + scheme to FreeBSD, and working out which numbers correspond to which + is difficult to get right. + + In the case where the boot disk is not the first disk in the system, + FreeBSD can need some help finding it. There are two common situations + here, and in both of these cases, you need to tell FreeBSD where the + root filesystem is. You do this by specifying the BIOS disk number, + the disk type and the FreeBSD disk number for that type. + + The first situation is where you have two IDE disks, each configured as + the master on their respective IDE busses, and wish to boot FreeBSD from + the second disk. The BIOS sees these as disk 0 and disk 1, while + FreeBSD sees them as wd0 and wd2. + + FreeBSD is on BIOS disk 1, of type 'wd' and the FreeBSD disk number + is 2, so you would say: + + 1:wd(2,a)kernel + + Note that if you have a slave on the primary bus, the above is not + necessary (and is effectively wrong). + + The second situation involves booting from a SCSI disk when you have + one or more IDE disks in the system. In this case, the FreeBSD disk + number is lower than the BIOS disk number. If you have two IDE disks + as well as the SCSI disk, the SCSI disk is BIOS disk 2, type 'da' and + FreeBSD disk number 0, so you would say: + + 2:da(0,a)kernel + + To tell FreeBSD that you want to boot from BIOS disk 2, which is + the first SCSI disk in the system. If you only had one IDE disk, + you would use '1:' instead. + + Once you have determined the correct values to use, you can put the + command exactly as you would have typed it in the /boot.config file + using a standard text editor. + Unless instructed otherwise, FreeBSD will use the contents of this + file as the default response to the 'boot:' prompt. + +Q: I go to boot from the hard disk for the first time after installing + FreeBSD, but the Boot Manager prompt just prints `F?' at the boot menu + each time but the boot won't go any further. + +A: The hard disk geometry was set incorrectly in the Partition editor when + you installed FreeBSD. Go back into the partition editor and specify + the actual geometry of your hard disk. You must reinstall FreeBSD + again from the beginning with the correct geometry. + + If you are failing entirely in figuring out the correct geometry for + your machine, here's a tip: Install a small DOS partition at the + beginning of the disk and install FreeBSD after that. The install + program will see the DOS partition and try to infer the correct + geometry from it, which usually works. + + The following tip is no longer recommended, but is left here + for reference: + + If you are setting up a truly dedicated FreeBSD server or work- + station where you don't care for (future) compatibility with DOS, + Linux or another operating system, you've also got the option to use + the entire disk (`A' in the partition editor), selecting the + non-standard option where FreeBSD occupies the entire disk from + the very first to the very last sector. This will leave all geometry + considerations aside, but is somewhat limiting unless you're never + going to run anything other than FreeBSD on a disk. + + +Known Hardware Problems, Q & A +------------------------------ + +Q: mcd0 keeps thinking that it has found a device and this stops my Intel + EtherExpress card from working. + +A: Use the UserConfig utility (see HARDWARE.TXT) and disable the probing of + the mcd0 and mcd1 devices. Generally speaking, you should only leave + the devices that you will be using enabled in your kernel. + + +Q: FreeBSD claims to support the 3Com PCMCIA card, but my card isn't + recognized when it's plugged into my laptop. + +A: There are a couple of possible problems. First of all, FreeBSD does + not support multi-function cards, so if you have a combo + ethernet/modem card (such as the 3C562), it won't work. The + default driver for the 3C589 card was written just like all of the + other drivers in FreeBSD, and depend on the card's own configuration + data stored in NVRAM to work. You must correctly configure FreeBSD's + driver to match the IRQ, port, and IOMEM stored in NVRAM. + Unfortunately, the only program capable of reading them is the + 3COM supplied DOS program. This program must be run on a absolutely + clean system (no other drivers must be running), and the program will + whine about CARD-Services not being found, but it will continue. + This is necessary to read the NVRAM values. You want to know the + IRQ, port, and IOMEM values (the latter is called the CIS tuple by + 3COM). The first two can be set in the program, the third is + un-settable, and can only be read. Once you have these values, set + them in UserConfig and your card will be recognized. + + +Q: FreeBSD finds my PCMCIA network card, but no packets appear to + be sent even though it claims to be working. + +A: Many PCMCIA cards have the ability to use either the 10-Base2 (BNC) + or 10-BaseT connectors for connecting to the network. The driver is + unable to 'auto-select' the correct connector, so you must tell it + which connector to use. In order to switch between the two + connectors, the link flags must be set. Depending on the model of + the card, '-link0 link1' or 'link0 -link1' will choose the correct + network connector. You can set these in sysinstall by using the + 'Extra options to ifconfig:' field in the network setup screen. + + +Q: The system finds my ed network card, but I keep getting device + timeout errors. + +A: Your card is probably on a different IRQ from what is specified in the + kernel configuration. The ed driver does not use the `soft' configuration + by default (values entered using EZSETUP in DOS), but it will use the + software configuration if you specify `?' in the IRQ field of your kernel + config file. + + Either move the jumper on the card to a hard configuration setting + (altering the kernel settings if necessary), or specify the IRQ as + `-1' in UserConfig or `?' in your kernel config file. This will + tell the kernel to use the soft configuration. + + Another possibility is that your card is at IRQ 9, which is shared + by IRQ 2 and frequently a cause of problems (especially when you + have a VGA card using IRQ 2! :). You should not use IRQ 2 or 9 if at + all possible. + + +Q: I have a Matsushita/Panasonic drive but it isn't recognized by the + system. + +A: Make certain that the I/O port that the matcd driver is set to is + correct for the host interface card you have. (Some SoundBlaster DOS + drivers report a hardware I/O port address for the CD-ROM interface + that is 0x10 lower than it really is.) + + If you are unable to determine the settings for the card by examining + the board or documentation, you can use UserConfig to change the 'port' + address (I/O port) to -1 and start the system. This setting causes the + driver to look at a number of I/O ports that various manufacturers + use for their Matsushita/Panasonic/Creative CD-ROM interfaces. + Once the driver locates the address, you should run UserConfig again + and specify the correct address. Leaving the 'port' parameter set to -1 + increases the amount of time that it takes the system to boot, and + this could interfere with other devices. + + The double-speed Matsushita CR-562 and CR-563 are the only drives + that are supported. + + +Q: I booted the install floppy on my IBM ThinkPad (tm) laptop, and the + keyboard is all messed up. + +A: Older IBM laptops use a non-standard keyboard controller, so you must + tell the keyboard driver (atkbd0) to go into a special mode which works + on the ThinkPads. Change the atkbd0 'Flags' to 0x4 in UserConfig and + it should work fine. (Look in the Input Menu for 'Keyboard'.) + + +Q: When I try to boot the install floppy, I see the following message + and nothing seems to be happening. I cannot enter anything from + the keyboard either. + + Keyboard: no + +A: Due to lack of space, full support for old XT/AT (84-key) keyboards + is no longer available in the bootblocks. Some notebook computers may + also have this type of keyboard. If you are still using this kind of + hardware, you will see the above message appears when you boot from + the CD-ROM or an install floppy. + + As soon as you see this message, hit the space bar, and you will see + the prompt: + + >> FreeBSD/i386 BOOT + Default: x:xx(x,x)/boot/loader + boot: + + Then enter `-Dh', and things should proceed normally. + + +Q: I have a Matsushita/Panasonic CR-522, a Matsushita/Panasonic CR-523 or + a TEAC CD55a drive, but it is not recognized even when the correct I/O + port is set. + +A: These CD-ROM drives are currently not supported by FreeBSD. The command + sets for these drives are not compatible with the double-speed CR-562 + and CR-563 drives. + + The single-speed CR-522 and CR-523 drives can be identified by their + use of a CD-caddy. + + +Q: I'm trying to install from a tape drive but all I get is something like: + sa0(aha0:1:0) NOT READY csi 40,0,0,0 + on the screen. Help! + +A: There's a limitation in the current sysinstall that the tape MUST + be in the drive while sysinstall is started or it won't be detected. + Try again with the tape in the drive the whole time. + + +Q: I've installed FreeBSD onto my system, but it hangs when booting from + the hard drive with the message: ``Changing root to /dev/da0a''. + +A: This problem may occur in a system with a 3com 3c509 Ethernet adaptor. + The ep0 device driver appears to be sensitive to probes for other + devices that also use address 0x300. Boot your FreeBSD system by power + cycling the machine (turn off and on). At the ``Boot:'' prompt specify + the ``-c''. This will invoke UserConfig (see Section 1. above). Use + the ``disable'' command to disable the device probes for all devices + at address 0x300 except the ep0 driver. On exit, your machine should + successfully boot FreeBSD. + + +Q: My system can not find my Intel EtherExpress 16 card. + +A: You must set your Intel EtherExpress 16 card to be memory mapped at + address 0xD0000, and set the amount of mapped memory to 32K using + the Intel supplied softset.exe program. + + +Q: When installing on an EISA HP Netserver, my on-board AIC-7xxx + SCSI controller isn't detected. + +A: This is a known problem, and will hopefully be fixed in the future. + In order to get your system installed at all, boot with the -c + option into UserConfig, but _don't_ use the pretty visual mode but + the plain old CLI mode. Type + + eisa 12 + quit + + there at the prompt. (Instead of `quit', you might also type + `visual', and continue the rest of the configuration session in + visual mode.) While it's recommended to compile a custom kernel, + dset(8) now also understands to save this value. + + Refer to the FAQ topic 3.16 for an explanation of the problem, and + for how to continue. Remember that you can find the FAQ on your + local system in /usr/share/doc/FAQ, provided you have installed the + `doc' distribution. + + +Q: I have a Panasonic AL-N1 or Rios Chandler Pentium machine and I find + that the system hangs before ever getting into the installation + now. + +A: Your machine doesn't like the new i586_copyout and i586_copyin code + for some reason. To disable this, boot the installation boot floppy + and when it comes to the very first menu (the choice to drop into + kernel UserConfig mode or not) choose the command-line interface + ("expert mode") version and type the following at it: + + flags npx0 1 + + Then proceed normally to boot. This will be saved into your kernel, + so you only need to do it once. + + +Q: I have this CMD640 IDE controller that is said to be broken. + +A: Yes, it is. FreeBSD does not support this controller except through + the legacy 'wdc' driver. + + +Q: On a Compaq Aero notebook, I get the message "No floppy devices found! + Please check ..." when trying to install from floppy. + +A: With Compaq being always a little different from other systems, they + do not announce their floppy drive in the CMOS RAM of an Aero notebook. + Therefore, the floppy disk driver assumes there is no drive configured. + Go to the UserConfig screen, and set the Flags value of the fdc0 device + to 0x1. This pretends the existence of the first floppy drive (as a + 1.44 MB drive) to the driver without asking the CMOS at all. + + +Q: When I go to boot my Intel AL440LX ("Atlanta") -based system from the + hard disk the first time, it stops with a "Read Error" message. + +A: There appears to be a bug in the BIOS on at least some of these boards, + this bug results in the FreeBSD bootloader thinking that it is booting + from a floppy disk. + This is only a problem if you are not using the BootEasy boot manager. + Slice the disk in 'compatible' mode and install BootEasy during the + FreeBSD installation to avoid the bug, or upgrade the BIOS (see Intel's + website for details). + +Q: When installing on an Dell Poweredge XE, Dell proprietary RAID controller + DSA (Dell SCSI Array) isn't recognized. + +A: Configure DSA to use AHA-1540 emulation using EISA configuration utility. + After that FreeBSD detects DSA as Adaptec AHA-1540 SCSI controller, with + irq 11 and port 340. Under emulation mode system will use DSA RAID disks, + but you cannot use DSA specific features such as watching RAID health. + + +Q: My Ethernet adapter is detected as an AMD PCnet-FAST (or similar) but + it doesn't work. (Eg. onboard Ethernet on IBM Netfinity 5xxx or 7xxx) + +A: The 'lnc' driver is currently faulty, and will often not work correctly + with the PCnet-FAST and PCnet-FAST+. You need to install a different + Ethernet adapter. + + +Q: I have an IBM EtherJet PCI card, it is detected by the 'fxp' driver + correctly, but the lights on the card don't come on and it doesn't + connect to the network. + +A: We don't understand why this happens. Neither do IBM (we asked them). + The card is a standard Intel EtherExpress Pro/100 with an IBM label + on it, and these cards normally work just fine. You may see these + symptoms only in some IBM Netfinity servers. The only solution is to + install a different Ethernet adapter. + + +Q: When I configure the network during installation on an IBM Netfinity + 3500, the system freezes. + +A: There is a problem with the onboard Ethernet in the Netfinity 3500 + which we have not been able to identify at this time. It may be + related to the SMP features of the system being misconfigured. You + will have to install another Ethernet adapter and avoid attempting + to configure the onboard adapter at any time. + +Q: When I install onto a drive managed by a Mylex PCI RAID controller, + the system fails to boot (eg. with a "read error" message). + +A: There is a bug in the Mylex driver which results in it ignoring + the '8GB' geometry mode setting in the BIOS. Use the 2GB mode + instead. + +[ Please send hardware tips for this Q&A section to jkh@freebsd.org ] diff --git a/release/texts/UPGRADE.TXT b/release/texts/UPGRADE.TXT new file mode 100644 index 000000000000..5c8f445f9208 --- /dev/null +++ b/release/texts/UPGRADE.TXT @@ -0,0 +1,179 @@ ++===================== Upgrading FreeBSD ==========================+ +| | +| 0.0 Preface | +| 0.1 DISCLAIMER | +| 0.2 IMPORTANT NOTES | +| | +| 1.0 Introduction | +| 1.1 Upgrade Overview | +| | +| 2.0 Procedure | +| 2.1 Backup | +| 2.2 Mount Filesystems | +| 2.3 Select Distributions | +| 2.4 After Installation | +| | +| 3.0 Alternative Upgrade Techniques | +| | ++=====================================================================+ + +0.1 DISCLAIMER +--- ---------- + +While the FreeBSD upgrade procedure does its best to safeguard against +accidental loss of data, it is still more than possible to WIPE OUT YOUR +ENTIRE DISK with this installation! Please do not accept the final +confirmation request unless you have adequately backed up any important +data files. + +0.2 IMPORTANT NOTES +--- --------------- + +These notes assume that you are using the version of sysinstall supplied +with the version of FreeBSD to which you intend to upgrade. Using a +mismatched version of sysinstall is almost guaranteed to cause problems +and has been known to leave systems in an unusable state. The most +commonly made mistake in this regard is the use of an old copy of +/stand/sysinstall from an existing installation to upgrade to a newer +version of FreeBSD. This is NOT recommended. You should instead boot +from the installation media to do an upgrade. + +Furthermore, if you are upgrading from FreeBSD 2.2.5 or earlier, see +section 2.4 for important details regarding changes to the /etc/fstab +file required during the upgrade procedure. + +1.0 Introduction +--- ------------ + +The upgrade procedure replaces distributions selected by the user +with those corresponding to the new FreeBSD release. It preserves +standard system configuration data, as well as user data, installed +packages and other software. + +Administrators contemplating an upgrade are encouraged to study this +document in its entirety before commencing an upgrade. Failure to do so +may result in a failed upgrade or loss of data. + +1.1 Upgrade Overview +--- ---------------- +Upgrading of a distribution is performed by extracting the new version of +the component over the top of the previous version. Files belonging to +the old distribution are not deleted. + +System configuration is preserved by retaining and restoring the +previous version of the following files: + + Xaccel.ini, adduser.conf, aliases, aliases.db, amd.map, crontab, + csh.cshrc, csh.login, csh.logout, daily, disktab, dm.conf, exports, + fbtab, fstab, ftpusers, gettytab, gnats, group, hosts, hosts.equiv, + hosts.lpd, inetd.conf, kerberosIV, localtime, login.access, + mail.rc, make.conf, manpath.config, master.passwd, mib.txt, modems, + monthly, motd, namedb, networks, nsswitch.conf, passwd, phones, + ppp, printcap, profile, protocols, pwd.db, rc, rc.firewall, + rc.i386, rc.local, rc.network, rc.conf, remote, resolv.conf, rmt, + security, sendmail.cf, services, shells, skeykeys, spwd.db, + supfile, syslog.conf, termcap, ttys, uucp, weekly + +The versions of these files which correspond to the new version are +moved to /etc/upgrade/. The system administrator may peruse these new +versions and merge components as desired. Note that many of these files +are interdependent, and the best merge procedure is to copy all +site-specific data from the current files into the new. + +During the upgrade procedure, the administrator is prompted for a +location into which all files from /etc/ are saved. In the event that +local modifications have been made to other files, they may be +subsequently retrieved from this location. + +2.0 Procedure +--- --------- + +This section details the upgrade procedure. Particular attention is +given to items which substantially differ from a normal installation. + +2.1 Backup +--- ------ + +User data and system configuration should be backed up before +upgrading. While the upgrade procedure does its best to prevent +accidental mistakes, it is possible to partially or completely destroy +data and configuration information. + +2.2 Mount Filesystems +--- ----------------- + +The disklabel editor is entered with the nominated disk's filesystem +devices listed. Prior to commencing the upgrade, the administrator +should make a note of the device names and corresponding mountpoints. +These mountpoints should be entered here. DO NOT set the 'newfs flag' +for any filesystems, as this will cause data loss. + +2.3 Select Distributions +--- -------------------- + +When selecting distributions, there are no constraints on which must be +selected. As a general rule, the 'bin' distribution should be selected +for an update, and the 'man' distribution if manpages are already +installed. Other distributions may be selected beyond those originally +installed if the administrator wishes to add additional functionality. + +2.4 After Installation +--- ------------------ + +Once the installation procedure has completed, the administrator is +prompted to examine the new configuration files. At this point, checks +should be made to ensure that the system configuration is valid. In +particular, the /etc/rc.conf and /etc/fstab files should be checked. + +Read the following, but DO NOT update /etc/fstab as described below +until the new system has booted correctly. The upgrade procedure +replaces the previous FreeBSD kernel with a GENERIC kernel, and a custom +kernel may need to be generated to suit the local system configuration. + +IMPORTANT NOTE: +============== +FreeBSD 2.2.6 introduced a change in the naming of the device from +which the root filesystem is mounted. This change affects all systems, +however user intervention is only required for systems undergoing an +upgrade installation from a version prior to FreeBSD 2.2.6. + +Previously, the root filesystem was always mounted from the +compatibility slice, while other partitions on the same disk were +mounted from their true slice. This might, for example, have resulted +in an /etc/fstab file like: + +# Device Mountpoint FStype Options Dump Pass# +/dev/wd0s2b none swap sw 0 0 +/dev/wd0a / ufs rw 1 1 +/dev/wd0s2f /local0 ufs rw 1 1 +/dev/wd0s2e /usr ufs rw 1 1 + +For FreeBSD 2.2.6 and later, this format changes so that the device for +'/' is consistent with others. Also, the driver for the ATA-drives has +changed from wd(4) to ad(4), so the new file could look something like: + +# Device Mountpoint FStype Options Dump Pass# +/dev/ad0s2b none swap sw 0 0 +/dev/ad0s2a / ufs rw 1 1 +/dev/ad0s2f /local0 ufs rw 1 1 +/dev/ad0s2e /usr ufs rw 1 1 + + +If /etc/fstab is not updated manually in this case, the system will +issue a warning message whenever / is mounted (normally at startup) +indicating the change that must be made. In addition, trouble may be +experienced if the root filesystem is not correctly unmounted, whereby +the root filesystem will not be marked clean at the next reboot. + +This change should be made as soon as the upgraded system has been +successfully rebooted. + +3.0 Alternative Upgrade Techniques +--- ------------------------------ + +Those interested in an upgrade method that allows more flexibility and +sophistication should take a look at the "The Cutting Edge" chapter in the +Handbook (http://www.FreeBSD.org/docs/en/books/handbook/cutting-edge.html) +which describes how to upgrade FreeBSD from the source code. This method +requires reliable network connectivity, extra disk space and spare time, +but has advantages for networks and other more complex installations. diff --git a/release/texts/alpha/HARDWARE.TXT b/release/texts/alpha/HARDWARE.TXT new file mode 100644 index 000000000000..2253a29934ef --- /dev/null +++ b/release/texts/alpha/HARDWARE.TXT @@ -0,0 +1,1898 @@ + FreeBSD/alpha Hardware Information + ================================== + +This file is maintained by Wilko Bulte <wilko@freebsd.org> + +Additions, corrections and constructive criticism are invited. In +particular information on system quirks is more than welcome. + + +Overview +-------- + +This document tries to provide a starting point for those who want to start +running FreeBSD on an Alpha-based machine. It is aimed at providing +background information on the various hardware designs. It is not a +replacement for the systems manuals. + +The information is structured as follows: + +- general hardware requirements to run FreeBSD on Alpha. +- system specific information for each of the systems/boards supported + by FreeBSD/alpha. +- information on expansion boards for FreeBSD/alpha, including things + that differ from what is in the generic supported hardware list. + +Note: you will see references to DEC, Digital Equipment Corporation and +Compaq used more or less interchangeably. Now that Compaq has acquired Digital +Equipment it would be more correct to refer to Compaq-only. + + +In general, what do you need to run FreeBSD/alpha? +-------------------------------------------------- + +Obviously you will need an Alpha machine that FreeBSD/alpha knows about. +Alpha machines are NOT like PCs. There are considerable differences +between the various chip sets and mainboard designs. This means that a kernel +needs to know the intimate details of a particular machine before it can run +on it. Throwing some odd GENERIC kernel at unknown hardware is almost +guaranteed to fail miserably. + +For a machine even to be considered for FreeBSD use please make sure it has +the SRM console firmware installed. Or at least make sure that SRM console +firmware is available for this particular machine type. If FreeBSD does not +currently support your machine type, there is a good chance that this will +change at some point in time, assuming SRM is available. + +Machines with the ARC or AlphaBIOS console firmware were intended for +WindowsNT. Some of them have SRM firmware available in the system ROMs +which you only have to select (via an ARC or AlphaBIOS menu). In other cases +you will have to re-flash the ROMs with SRM code. Check on +http://ftp.digital.com/pub/DEC/Alpha/firmware to see what is available +for your particular system. In any case: no SRM -> no FreeBSD (or NetBSD, +OpenBSD, Tru64 Unix or OpenVMS for that matter). With the demise of +WindowsNT/alpha a lot of former NT boxes are sold on the second hand +market. They have little or no trade-in value when they are NT-only from the +console perspective. So, be suspicious if the price appears too good. + +Known non-SRM machines are: + Digital XL series + Digital XLT series + Samsung PC164UX + Samsung 164B + +To complicate things a bit further: Digital used to have so called +'white-box' Alpha machines destined as NT-only and 'blue-box' Alpha machines +destined for OpenVMS and Digital Unix. These names are based on the color +of the cabinets, 'FrostWhite' and 'TopGunBlue' respectively. +Although you could put the SRM console on the whitebox, OpenVMS and Digital +Unix will refuse to boot on them. FreeBSD in post-4.0R will run on both the +white and the blue-box variants. Before someone asks: the white ones had a +rather different (read: cheaper) price tag. + +As part of the SRM you will get the so called OSF/1 PAL code (OSF/1 being the +initial name of Digital's Unix offering on Alpha). The PAL code can be thought +of as a software abstraction layer between the hardware and the operating +system. It uses normal CPU instruction plus a handful of privileged +instructions specific for PAL use. PAL is not microcode by the way. +The ARC firmware contains a different PAL code, geared towards WinNT and in +no way suitable for use by FreeBSD (or more generic: Unix or OpenVMS). +Before someone asks: Linux/alpha brings its own PAL code, allowing it to +boot on ARC & AlphaBIOS. There are various reasons why this is not a +very good idea in the eyes of the *BSD folks. I don't want to go into +details here. + +There is another pitfall ahead: you will need a disk adapter that the SRM +console recognizes in order to be able to boot from your disk. What is +acceptable to SRM as a boot adapter is unfortunately system and SRM version +dependent. For older PCI based machines this means you will need either +a NCR/Symbios 53C810 based adapter, or a Qlogic 1020/1040 based adapter. +Some machines come with a SCSI chip embedded on the mainboard. Newer machine +designs and SRM versions will be able to work with later SCSI chips/adapters. +Check out the machine specific info below. Please note that the rest +of this discussion only refers to Symbios chips, this is meant to include +the older chips that still have NCR stamped on them. Symbios bought the NCR +designs. + +The problem might bite those who have machines that started their lives as +WinNT boxes. The ARC or AlphaBIOS knows about *other* adapter types that it +can boot from than the SRM. For example you can boot from an Adaptec 2940UW +with ARC but (generally) not with SRM. Some newer machine types have introduced +Adaptec boot support. Please consult the machine specific section for details. + +Some adapters that cannot be booted from work fine for data-only disks. +The differences between SRM and ARC could also get you pre-packaged +IDE CDROMs and hard drives in some (former NT) systems. +SRM versions exist (depends on the machine type) that can boot +from IDE disks and CDROMs. Check the machine specific section for details. + +FreeBSD/alpha 4.0 and later can be booted from the distribution CDROM. +Earlier versions needed booting from a 2-floppy set. + +If you don't have/want a local disk drive you can boot via the Ethernet. +This assumes a Ethernet adapter/chip that is recognized by the SRM. +Generally speaking this boils down to either a 21040 or 21142 or 21143 +based Ethernet interface. Older machines / SRM versions may not recognize +the 21142 / 21143 Fast Ethernet chips, you are limited to using 10Mbit +Ethernet for net booting those machines. Non-DEC cards based on said chips will +generally (but are not guaranteed to) work. Note that Intel took over the +21x4x chips when it bought Digital Semiconductor. So you might see an Intel +logo on them these days. Recent machine designs have SRM support for +Intel 8255x Ethernet chips. + +Alpha machines can be run with SRM on a graphics console or on +a serial console. ARC can be run on a serial consoles if need be. VT100 +emulation with 8 bit controls should at least allow you to switch from +ARC to SRM mode without having to install a graphics card first. + +If you want to run your Alpha without a monitor/graphics card +just don't connect a keyboard/mouse to the machine. Instead hook +up a serial terminal[emulator] to serial port #1. The SRM will +talk 9600N81 to you. This can be really practical for debugging purposes. +Beware: some/most (?) SRMs will also present you with a console prompt at +serial port #2. The booting kernel, however, will display the boot messages +on serial port #1 and will also put the console there. This can be extremely +confusing. + +Most PCI based Alphas can use ordinary PC-type VGA cards. The SRM contains +enough smarts to make that work. It does not, however, mean that each and +every PCI VGA card out on the street will work in an Alpha machine. Things +like S3 Trio64, Mach64, and Matrox Millennium generally work. Old ET4000 +based ISA cards have also worked for me. But ask around first before buying. +Please note that TGA cards are not supported as FreeBSD console display cards. + +Most PCI devices from the PC-world will also work in FreeBSD/alpha PCI-based +machines. Check the /sys/alpha/conf/GENERIC file for the latest word on +this. Be careful to check the appropriate machine type's discussion +in case you want to use PCI cards that have PCI bridge chips on them. +In some cases you might encounter problems with PCI cards not handling +PCI parity correctly. This can lead to panics. PCI parity checking can be +disabled using the following SRM command: SET PCI_PARITY OFF. This is not +a FreeBSD problem, all operating systems running on Alpha hardware will +need this workaround. + +If your system (also) contains EISA expansion slots you will need to run +the EISA Configuration Utility (ECU) after you have installed EISA cards +or have upgraded your console firmware. + +Parallel ports that can be found on most Alpha machines are supported. + +For Alpha CPUs you will find multiple generations. The original Alpha +design is the 21064. It was produced in a chip process called MOS4, +chips made in this process are nicknamed EV4. Newer CPUs are 21164, 21264 +etc. You will see designations like EV4S, EV45, EV5, EV56, EV6, EV67. +The EVs with double digit numbers are slightly improved versions. For example +EV45 has an improved FPU and 16 kByte on-chip separate I & D caches compared +to the EV4 on which it is based. Rule of thumb: the higher the digit +immediately following 'EV' the more desirable (read: faster / more modern). + +For memory you want at least 32 Mbytes. I have had FreeBSD/alpha run on a +16 Mbyte system but you will not like that. Kernel build times halved when +going to 32 Mbytes. Note that the SRM steals 2Mbyte from the total system +memory (and keeps it). For more serious use >= 64Mbyte is recommended. + +While on the subject of memory: pay close attention to the type of memory +your machine uses. There are very different memory configurations and +requirements for the various machines. + +Final word: I expect the above to sound a bit daunting to the first-time +Alpha user. Don't be daunted too much. And do feel free to ask questions. + + +System specific information +--------------------------- + +Below is an overview of the hardware that FreeBSD/alpha runs on. +This list will definitely grow, a look in /sys/alpha/conf/GENERIC +can be enlightening. Alpha machines are often best known by their project +code name. When known these are listed below in (). + +* +* AXPpci33 ("NoName") +* +The NoName is a baby-AT mainboard based on the 21066 LCA (Low Cost Alpha) +processor. It was originally designed for OEM-use. The LCA chip includes +almost all of the logic to drive a PCI bus and the memory subsystem. +All of this makes for a low-priced design. + +Due to the limited memory interface the system is not particularly +fast in case of cache misses. As long as you stay inside the on-chip cache +the CPU is comparable to a 21064 (first generation Alpha). These boards +should be very cheap to obtain these days (even here in the Netherlands +they were sold new for US$ 25). + +Features: +- 21066 Alpha CPU at 166 MHz or 21066A CPU at 233MHz + (21068 CPUs are also possible, but are even slower. Never seen/used one) +- memory bus: 64 bits +- on-board Bcache / L2 cache: 0, 256k or 1 Mbyte (uses DIL chips) +- PS/2 mouse & keyboard port OR 5pin DIN keyboard (2 mainboard models) +- memory: PS/2 style 72 pin 36 bit Fast Page Mode SIMMs, + 70ns or better, + installed in pairs of 2, + 4 SIMM sockets + uses ECC +- 512kB Flash ROM for the console code. +- 2x 16550A serial ports, 1x parallel port, floppy interface +- 1x embedded IDE interface +- expansion: 3 32 bit PCI slots (1 shared with ISA) + 5 ISA slots (1 shared with PCI) +- embedded Fast SCSI using a Symbios 53C810 chip + +SRM: +NoNames can either have SRM *or* ARC console firmware in their Flash ROM. +The Flash ROM is not big enough to hold both ARC and SRM at the same time +and allow software selection of alternate console code. But you need +SRM-only anyway. + +Cache: +Cache for the NoNames are 15 or 20 ns DIL chips. For a 256 kByte cache you +want to check your junked 486 mainboard. Chips for a 1 Mbyte cache are a rarer +breed unfortunately. Getting at least a 256kByte cache is recommended +performance wise. Cache-less they are really slow. + +Power: +The NoName mainboard has a PC/AT-standard power connector. It also has +a power connector for 3.3 Volts. No need to rush out to get +a new power supply. The 3.3 Volts is only needed in case you run 3.3 Volts +PCI expansion boards. + +IDE: +The IDE interface is supported by FreeBSD and requires a line in the +kernel configuration file as follows: + + device ata0 at isa? port IO_WD1 irq 14 + +The SRM console unfortunately cannot boot from IDE disks. + +Memory: +Make sure you use true 36 bit SIMMs, and only FPM (Fast Page Mode). EDO RAM +or SIMMs with fake parity *will not work* (the board uses the 4 extra bits +for ECC!). 33 bit FPM SIMMs will for the same reason not work either. + +Keyboard/mouse: +Given the choice, get the PS/2-variant mainboard. Apart from giving you a +mouse port as bonus it is directly supported by Tru64 Unix in case you ever +want/need to run it. The "DIN-plug"-variant should work OK for FreeBSD. + +The OEM manual is recommended reading. +See ftp://ftp.digital.com/pub/DEC/axppci/design_guide.ps + +The kernel configuration file for a NoName kernel must contain: + options DEC_AXPPCI_33 + cpu EV4 + + +* +* Universal Desktop Box (UDB or "Multia") +* + +Note: Multia can be either Intel or Alpha CPU based. We assume Alpha based + ones here for obvious reasons. + +Multia is a small desktop box intended as a sort of personal workstation. +They come in a considerable number of variations, check closely what you +get. + +Features: +- 21066 Alpha CPU at 166 MHz or 21066A CPU at 233MHz +- memory bus: 64 bits +- on-board Bcache / L2 cache: COAST-like 256 kByte cache module + 233MHz models have 512kByte of cache + 166MHz models have soldered-on 256kB caches +- PS/2 mouse & keyboard port +- memory: PS/2 style 72 pin 36 bit Fast Page Mode SIMMs, + 70ns or better, + installed in pairs of 2, + 4 SIMM sockets + uses ECC +- 2x 16550A serial ports, 1x parallel port, floppy interface +- Intel 82378ZB PCI to ISA bridge +- 1x embedded 21040 based 10Mbit Ethernet, AUI or 10base2 connector +- expansion: 1 32 bit PCI slot, 2 PCMCIA slots +- on-board Crystal CS4231 or AD1848 sound chip +- embedded Fast SCSI using a Symbios 53C810 chip on the PCI riser card + +SRM/ARC: +Multia has enough Flash ROM to store both SRM and ARC code at the same time +and allow software selection of one of them. + +Expansion: +Multia has only one 32 bit PCI slot for expansion, and it is only +suitable for a small form factor PCI card too. In sacrificing the PCI slot +space you can mount a 3.5" hard disk drive. Mounting stuff may have come +with your Multia. Adding a 3.5" disk is not a recommended upgrade due to +the limited power rating of the power supply and the extremely marginal +cooling of the system box. Don't! + +Multia also has 2 PCMCIA expansion slots. These are currently unsupported. + +CPU: +The CPU might or might not be socketed, check before considering CPU upgrade +hacks. The low-end Multias have a soldered-in CPU. + +Graphics: +It comes with a TGA based graphics on-board. Which is not suitable for +console use with FreeBSD. Which means you will have to run it using a +serial console. Note that the boot of the installation disk will appear +to work fine using the TGA console, but then switches to using the +serial port. This is even mentioned during by installer (but never read +by the human doing the install..). Your keyboard appears dead from that point +on. + +Serial: +Multia has 2 serial ports but routes both of them to the outside world +on a single 25 pin sub-D connector. The Multia FAQ explains how to +build your own Y-cable to allow both ports to be used. + +Floppy: +Although the Multia SRM supports booting from floppy this is problematic. +Typical errors look like "*** Soft Error - Error #10 - FDC: Data overrun or +underrun". This is not a FreeBSD problem, it is a SRM problem. The best +available workaround to install FreeBSD is to boot from a SCSI CDROM. + +Sound: +Works fine using pcm driver and a line in the kernel configuration file as +follows for the Crystal CS4231 chip: + + device pcm0 at isa? port 0x530 irq 9 drq 3 flags 0x15 + +I have not yet been successful in getting my Multia with the AD1848 to +play any sound. + +While verifying playback I was reminded of the lack of CPU power of the 166MHz +CPU: MP3 only plays acceptable using 22kHz down-sampling. + +Hot: +Multias are somewhat notorious for dying of heat strokes. The very compact +box does not really allow cooling air access very well. Please use the +Multia on its vertical stand, don't put it horizontally ('pizza style'). +Replacing the fan with something which pushes around more air is +recommended. Beware of PCI cards with high power consumption. +If your system has died you might want to check on the Multia-Heat-Death +pages at the NetBSD web-site http://www.netbsd.org + +IDE: +The Intel 82378ZB PCI to ISA bridge enables the use of an IDE disk. This +requires a line in the kernel configuration file as follows: + + device ata0 at isa? port IO_WD1 irq 14 + +The IDE connector pin spacing is thought for 2.5" laptop disks. A 3.5" +IDE disk would not fit in the case anyway. At least not without sacrificing +your only PCI slot. + +The SRM console does not know how to boot from IDE disks unfortunately. + +SCSI: +In case you want to change the internal hard drive: the internal flat cable +running from the PCI riser board to the 2.5" (!!) hard drive has a finer pitch +than the standard SCSI flat cables. Otherwise it would not fit on the 2.5" +drives. There are also riser cards that have a standard-pitch SCSI cable +attached to it, which will fit an ordinary SCSI disk. + +Again, I recommend against trying to cram a replacement hard disk inside. Use +the external SCSI connector and put your disk in an external enclosure. +Multias run hot enough as-is. In most cases you will have the external high +density 50pin SCSI connector but some Multia models came without disk and +may lack the connector. Something to check before buying one. + +The kernel configuration file for a Multia kernel must contain: + options DEC_AXPPCI_33 + cpu EV4 + +More info: +Recommended reading on Multia can be found at + http://www.netbsd.org/Ports/alpha/multiafaq.html + http://www.brouhaha.com/~eric/computers/udb.html + +* +* Personal Workstation ("Miata") +* + +The Miata is a small tower machine intended to be put under a desk. There +are multiple Miata variants. The original Miata is the MX5 model. Because +it suffers from a number of hardware design flaws a redesign was performed, +yielding the MiataGL. Unfortunately the boxes are quite indistinguishable. +An easy check is to see if the back of the machine sports two +USB connectors. If yes, it is a MiataGL. + +System designations look like "Personal Workstation 433a". Personal +Workstation, being a bit of a mouthful, is often abbreviated to PWS. +This means it has a 433 MHz CPU, and started life as a WinNT workstation +(the trailing 'a'). Systems designated from day 1 to run Tru64 +Unix or OpenVMS will sport '433au'. WinNT-Miatas are likely +to come pre-configured with an IDE CDROM drive. So, in general systems +are named like PWS[433,500,600]a[u]. + +There was also a Miata model with a special CPU cooling system by Kryotech. +That one has a different enclosure. + +Features: + +- 21164A EV56 Alpha CPU, at 433, 500 or 600MHz +- 21174 Core Logic ("Pyxis") chip set +- on-board Bcache / L3 cache: 0, 2 or 4 Mbytes (uses a cache module) +- memory bus: 128 bits wide, ECC protected +- memory: Miata uses unbuffered SDRAMs, + installed in pairs of 2, + 6 DIMM sockets + 1.5 Gbytes max +- on-board Fast Ethernet based on: + - MX5 uses a 21142 or 21143 Ethernet chip dependent on the version of the + PCI riser card + - MiataGL has a 21143 chip + - the bulkhead can be 10/100 UTP, or 10 UTP/BNC +- 2x on-board [E]IDE based on: + - MX5: CMD646 + - MiataGL: Cypress 82C693 +- 1x Ultra-Wide SCSI Qlogic 1040 [MiataGL only] +- expansion: 2 64-bit PCI slots + 3 32-bit PCI slots (behind a DEC PCI-PCI bridge chip) + 3 ISA slots (physically shared with the 32 bit PCI slots, via + an Intel 82378IB PCI to ISA bridge chip) +- 2x 16550A serial port +- 1x parallel port +- PS/2 keyboard & mouse port +- USB interface [MiataGL only] +- embedded sound based on an ESS1888 chip + +CPU mainboard and PCI 'riser' board: +The Miata logic is divided into two printed circuit boards. +The lower board in the bottom of the machine has the PCI +and ISA slots and things like the sound chip etc. The top board +has the CPU, the Pyxis chip, memory etc. Note that MX5 and the MiataGL use +a different PCI riser board. This means that you cannot just upgrade to +a MiataGL CPU board (with the newer Pyxis chip) but that you will also need +a different riser board. Apparently an MX5 riser with a MiataGL CPU board +will work but it is definitely not a supported or tested configuration. +Everything else (cabinet, wiring etc etc) is identical for MX5 and MiataGL. + +DMA bug: +MX5 has problems with DMA via the 2 64-bit PCI slots when this DMA +crosses a page boundary. The 32 bit slots don't have this problem because the +PCI-PCI bridge chip does not allow the offending transfers. The SRM code +knows about the problem and refuses to start the system if there is a PCI +card in one of the 64bit slots that it does not know about. Cards that are +'known good' to the SRM are allowed to be used in the 64bit slots. + +If you want to fool the SRM you can type "set pci_device_override" at +the SRM prompt. Just don't complain if your data mysteriously gets mangled. + +The complete command is: + + set pci_device_override <vendor_id><device_id> + e.g. set pci_device_override 88c15333 + +A more radical approach is to use: + + set pci_device_override -1 + +This disables PCI ID checking altogether, so that you can stick in any +random PCI card without its ID getting checked. For this to work you need +a sufficiently new SRM in your Miata. Again: do this on your own +risk. + +The kernel reports it when it sees a buggy Pyxis chip: +Sep 16 18:39:43 miata /kernel: cia0: Pyxis, pass 1 +Sep 16 18:39:43 miata /kernel: cia0: extended capabilities: 1<BWEN> +Sep 16 18:39:43 miata /kernel: cia0: WARNING: Pyxis pass 1 DMA bug; no +bets... + +A MiataGL probes as: +Jan 3 12:22:32 miata /kernel: cia0: Pyxis, pass 1 +Jan 3 12:22:32 miata /kernel: cia0: extended capabilities: 1<BWEN> +Jan 3 12:22:32 miata /kernel: pcib0: <2117x PCI host bus adapter> on cia0 + +MiataGL does not have the DMA problems of the MX5. PCI cards that make +the MX5 SRM choke when installed in the 64bit slots are accepted without +problems by the MiataGL SRM. + +The latest mainboard revisions of MX5 contain a hardware workaround for the +bug. The SRM does not know about the ECO and will complain about unknown cards +as before. So does the FreeBSD kernel by the way. + +EIDE: +The Miata SRM can boot from IDE CDROM drives. Hard disk boot is known to work +for both MiataGL and MX5 disks, so you can root FreeBSD from an IDE disk. Speeds +on MX5 are around 14 Mbytes/sec assuming a suitable drive. The CMD646 chip will +support up to WDMA2 mode as the silicon is too buggy for use with UDMA. + +PCI-PCI bridge: +The MiataGL has a faster PCI-PCI bridge chip on the PCI riser card than +some of the MX5 riser card versions. Some of the MX5 risers have the *same* +chip as the MiataGL. All in all there is a lot of variation. + +Not all VGA cards will work behind the PCI-PCI bridge. This manifests itself +as no video at all. Workaround is to put the VGA card 'before' the bridge, +in one of the 64 bit PCI slots. + +Sound: +Both MX5 and MiataGL have an on-board sound chip, an ESS1888. It emulates +a SoundBlaster and can be enabled by putting + + device pcm0 + device sbc0 + +in your kernel configuration file. + +Cache: +in case your Miata has the optional cache board installed make sure +it is firmly seated. A slightly loose cache has been observed to cause +weird crashes (not surprising obviously, but maybe not so obvious when +troubleshooting). The cache module is identical between MX5 and MiataGL. + +Installing a 2Mb cache module achieves, apart from a 10-15% speed increase +(based on buildworld elapsed time), a *decrease* for PCI DMA read bandwidth +from 64bit PCI cards. A benchmark on a 64-bit Myrinet card resulted in +a decrease from 149 Mbytes/sec to 115 Mbytes/sec. Something to keep in +mind when doing really high speed things with 64 bit PCI adapters. + +Keyboard: +If you experience SRM errors like "ERROR: scancode 0xa3 not supported +on PCXAL" after halting FreeBSD you should update your SRM firmware +to V7.2-1 or later. This SRM version is first available on the Firmware +Update CD V5.7, or on http://www.compaq.com The problem is fixed on both +Miata MX5 and Miata GL. + +USB: +Supported by FreeBSD 4.1 and later. + +Power: +Disconnect the power cord before dismantling the machine, the soft-power +switch keeps part of the logic powered even when the machine is switched +off. + +The kernel configuration file for a Miata kernel must contain: + options DEC_ST550 + cpu EV5 + +* +* DEC3000 family (the "Bird" machines) +* + +The DEC3000 series were among the first Alpha machines ever produced. They +are based on an I/O bus called the Turbo Channel (TC) bus. These +machines are built like tanks (watch your back). + +DEC3000 can be subdivided in DEC3000/500-class and DEC3000/300-class. +The DEC3000/500-class is the early high-end workstation/server Alpha family. +Servers use serial consoles, workstations have graphics tubes. +DEC3000/300-class is the lower-cost workstation class. + +DEC3000/500-class are quite fast (considering their age) thanks to the +good memory design. DEC3000/300 is crippled compared to DEC3000/500 because +of its much narrower memory bus. + +They are called 'Birds' because their internal DEC code names were bird +names: + + DEC3000/400 Sandpiper 133MHz CPU, desktop + DEC3000/500 Flamingo 150MHz CPU, floor standing + DEC3000/500X Hot Pink 200MHz CPU, floor standing + DEC3000/600 Sandpiper+ 175MHz CPU, desktop + DEC3000/700, Sandpiper45 225MHz CPU, floor standing + DEC3000/800, Flamingo Ultra 200MHz CPU, floor standing + DEC3000/900, Flamingo45 275MHz CPU, floor standing + + DEC3000/300 Pelican 150MHz CPU, desktop, 2 TC slots + DEC3000/300X Pelican+ 175MHz CPU, desktop, 2 TC slots + DEC3000/300LX Pelican+ 125MHz CPU, desktop, 2 TC slots + DEC3000/300L 100MHz CPU, desktop, no TC slots + + +Features: +- 21064 CPU (100 to 200 MHz) + 21064A CPU (225 to 275 MHz) +- memory bus: 256 bit, with ECC [DEC3000/500-class] + 64 bit, with ECC [DEC3000/300-class] +- memory: - proprietary 100pin SIMMs + installed in sets of 8 [DEC3000/500-class] + - PS/2 style 72pin 36 bit FPM SIMMs, 70ns or better + used in pairs of 2 [DEC3000/300-class] +- Bcache / L2 cache: varying sizes, 512 kB to 2 Mbyte +- built-in 10Mbit Ethernet based on a Lance 7990 chip, AUI and UTP +- one or two SCSI buses based on a NCR53C94 or a NCR53CF94-2 chip +- 2 serial ports based on Zilog 8530 (one usable as a serial console) +- embedded ISDN interface +- on-board 8 bit sound +- 8 bit graphics on-board [some models] or via a TC card [some other models] + +SCSI: +Currently DEC3000 machines can only be used diskless on FreeBSD/alpha. The +reason for this is that the SCSI drivers needed for the TC SCSI adapters +were not brought into CAM that the recent FreeBSD versions use. TC option +cards for single (PMAZ-A) or dual fast SCSI (PMAZC-AA) are also available. +And currently have no drivers on FreeBSD either. + +DEC3000/300 has 5Mbytes/sec SCSI on-board. This bus is used for both internal +and external devices. DEC3000/500 has 2 SCSI buses. One is for internal +devices only, the other one is for external devices only. + +Floppy devices found in the DEC3000s are attached to the SCSI bus (via a +bridge card). This makes it possible to boot from them using the same device +names as ordinary SCSI hard-disks (>>> BOOT DKA300 for example). + +Expansion: +The 3000/300 series has a half-speed TurboChannel compared to the other +3000 machines. Some TC expansion cards have troubles with the half-speed +bus. Caveat emptor. + +ISDN interface: +ISDN does not work on FreeBSD. + +Memory: +DEC3000/300-class uses standard 36 bit, 72 pin Fast Page Mode SIMMs. +EDO SIMMs, 32 or 33 bit SIMMs all will not work in Pelicans. +For 32Mbyte SIMMs to work on the DEC3000/300-class the presence detect +bits/pins of the SIMM must correspond to what the machine expects. If they +don't, the SIMM is 'seen' as a 8 Mbyte SIMM. 8 Mbyte and 32 Mbyte SIMMs can +be mixed, as long as the pairs themselves are identical. + +When you find yourself in need of fixing 32Mbyte SIMMs that lack correct +presence bits the following info might be of use: + +There are four presence detection bits on PS/2 SIMMs. Two of +the bits indicate the access time. The other two indicate the memory size. + +At one end of the SIMM there are two rows of four solder pads. One +row is connected to Vss (GND) and the other is connected to pins +67 (PRD1), 68 (PRD2), 69 (PRD3), 70 (PRD4). + +If you bridge a pair of pads with a small resistor or a drop of +solder you ground that particular bit. + + PRD1 PRD2 mem. size + ----------------------------- + GND GND 4 or 64 Mbyte + Open GND 2 or 32 Mbyte + GND Open 1 or 16 Mbyte + Open Open 8 Mbyte + + PRD3 PRD4 access time + ------------------------------ + GND GND 50 or 100 nsec + Open GND 80 nsec + GND Open 70 nsec + Open Open 60 nsec + +DEC3000/500-class can use 2, 4, 8, 16 and 32 Mbyte 100pin SIMMs. +Note that the maximum memory size varies from system to system, +desktop machines have sacrificed box size for less memory SIMM sockets. +Given enough sockets and enough SIMMs you can get to 512 Mbytes maximum. +This is one of the main differences between floor standing and desktop +machines, the latter have far less SIMM sockets. + +Sound: +The sound hardware is not supported on any of the Birds. + +Graphics: +The is no X-Windows version available for the TC machines. +DEC3000/300 needs a serial console. DEC3000/500-class might +work with a graphical console. I ran mine with a serial console so I cannot +verify this. + +Birds can be obtained from surplus sales etc. As they are not PCI +based they are no longer actively maintained. TC expansion boards can +be difficult to obtain these days and support for them is not too good +unless you write/debug the code yourself. Programming information for TC +boards is hard to find. Birds are recommended only if a. you can get them +cheap and b. if you prepared to work on the code to support them better. + +For the DEC3000/[4-9]00 series machines the kernel config file must +contain: + options DEC_3000_500 + cpu EV4 + +For the DEC3000/300 ("Pelican") machines the kernel config file must +contain: + options DEC_3000_300 + cpu EV4 + +* +*Evaluation Board 64plus ("EB64+"), Aspen Alpine +* + +In its attempts to popularize the Alpha CPU DEC produced a number of so +called Evaluation Boards. The EB64+ family boards have the following feature +set: + +- 21064 or 21064A CPU, 150 to 275MHz +- memory bus: 128 bit +- memory: PS/2 style 72 pin 33 bit Fast Page Mode SIMMs, + 70ns or better, + installed in sets of 4 + 8 SIMM sockets + uses parity +- Bcache / L2 cache: 512 kByte, 1 Mbyte or 2 Mbytes +- 21072 ("APECS") chip set +- Intel 82378ZB PCI to ISA bridge chip ('Saturn') +- dual 16550A serial ports +- Symbios 53C810 Fast-SCSI +- embedded 10 Mbit Ethernet +- 2 PCI slots +- 3 ISA slots + +Aspen Alpine: +Aspen Alpine is slightly different, but is close enough to the EB64+ to +run an EB64+ SRM EPROM (mine did..). The Aspen Alpine does not have +an embedded Ethernet, has 3 instead of 2 PCI slots. It comes with 2 Mbytes +of cache already soldered onto the mainboard. It has jumpers to select +the use of 60, 70 or 80ns SIMM speeds. + +Memory: +36 bits SIMMs work fine, 3 bits simply remain unused. + +SRM: +The SRM console code is housed in an UV-erasable EPROM. No easy flash SRM +upgrades for the EB64+ The latest SRM version available for EB64+ is quite +ancient anyway. + +SCSI: +The EB64+ SRM can boot both 53C810 and Qlogic1040 SCSI adapters. Pitfall for +the Qlogic is that the firmware that is down-loaded by the SRM onto the +Qlogic chip is very old. There are no updates for the EB64+ SRM available. +So you are stuck with old Qlogic bits too. I have had quite some problems +when I wanted to use Ultra-SCSI drives on the Alpine with Qlogic. The +FreeBSD/alpha kernel can be compiled to include a much newer Qlogic firmware +revision. This is not the default because it adds hundreds of kBytes worth +of bloat to the kernel. In FreeBSD 4.1 and later the isp firmware is contained +in a kernel loadable module. All of this might mean that you need to use a +non-Qlogic adapter to boot from. + +For the EB64+ class machines the kernel config file must contain: + options DEC_EB64PLUS + cpu EV4 + +* +* Evaluation Board 164 ("EB164, PC164, PC164LX, PC164SX") family +* + +EB164 is a newer design evaluation board, based on the 21164A CPU. This +design has been used to 'spin off' multiple variations, some of which are +used by OEM manufacturers/assembly shops. Samsung did its own PC164LX +which has only 32 bit PCI, whereas the Digital variant has 64 bit PCI. + +Features: +- 21164A, multiple speed variants [EB164, PC164, PC164LX] + 21164PC [only on PC164SX] +- 21174 (Alcor) chip set +- Bcache / L3 cache: EB164 uses special cache-SIMMs +- memory bus: 128 bit / 256 bit +- memory: PS/2 style SIMMs in sets of 4 or 8, + 36 bit, Fast Page Mode, uses ECC, [EB164 and PC164] + SDRAM DIMMs in sets of 2, uses ECC [PC164SX and PC164LX] +- dual 16550A serial ports +- PS/2 style keyboard & mouse +- floppy controller +- parallel port +- 32 bits PCI +- 64 bits PCI [some models] +- ISA slots via an Intel 82378ZB PCI to ISA bridge chip + +Memory: +Using 8 SIMMs for a 256bit wide memory can yield interesting speedups over +a 4 SIMM/128bit wide memory. Obviously all 8 SIMMs must be of the same type +to make this work. The system must be explicitly setup to use the +8 SIMM memory arrangement. You must have 8 SIMMs, 4 SIMMs distributed +over 2 banks does not work. + +SCSI: +The SRM can boot from Qlogic 10xx boards or the Symbios 53C810[A]. + +Newer Symbios 810 revisions like the Symbios 810AE are not recognized by +the SRM on PC164. PC164 SRM does not appear to recognize a Symbios 53C895 +based host adapter (tested with a Tekram DC-390U2W). On the other hand +some no-name Symbios 53C985 board has been reported to work. + +Cards like the Tekram DC-390F (Symbios875 based) have been confirmed to +work fine on the PC164. Unfortunately this seems to be dependent on the +actual version of the chip/board. + +Symbios 53C825[a] will also work as boot adapter. Diamond FirePort, although +based on Symbios chips, is not bootable by the PC164SX SRM. +PC164SX is reported to boot fine with Symbios825, Symbios875 and Symbios876 +based cards. In addition, Adaptec 2940U and 2940UW are reported to work for +booting (verified on SRM V5.7-1). Adaptec 2930U2 and 2940U2[W] do not work. + +In summary: this family of machines is 'blessed' with a challenging +compatibility as far as SCSI adapters go. + +SRM quirks: +PC164 the SRM sometimes seems to loose its variable settings. +"For PC164, current superstition says that, to avoid losing settings, +you want to first downgrade to SRM 4.x and then upgrade to a 5.x" +One sample error that was observed was: "ERROR: ISA table corrupt!". +A sequence of a downgrade to SRM4.9, an 'isacfg -init' and an 'init' +made the problem go away. Some PC164 owners report they have never seen +the problem. + +On PC164SX the AlphaBIOS allows you a selection to select 'SRM' to +be used as console on the next power up. This selection does not appear to +have any effect. In other words, you will get to the AlphaBIOS regardless +of what you select. The fix is to reflash the console ROM with the SRM +code for PC164SX. This will overwrite the AlphaBIOS and will get you the +SRM console you desire. The SRM code can be found on the Compaq Web site. + +IDE: +PC164 can boot from IDE disks assuming your SRM version is recent enough. + +Power: +EB164 needs a power supply that supplies 3.3 Volts. PC164 does not implement +the PS_ON signal that ATX power supplies need to switch on. A simple switch +pulling this signal to ground fixes this problem. + +For the EB164 class machines the kernel config file must contain: + options DEC_EB164 + cpu EV5 + + +* +* AlphaStation 200 ("Mustang") and 400 ("Avanti") series +* + +The Digital AlphaStation 200 and 400 series systems are early PCI based +workstations for the lower end. The 200 and 250 series is a desktop box, the +400 series is a desk-side mini-tower. + +Features: +- 21064 or 21064A CPU at speeds of 166 to 333 MHz +- DECchip 21071-AA (core logic chip-set) consisting of: + Cache/memory controller (one 21071-CA chip) + PCI interface (one 21071-DA chip) + Data path (two 21071-BA chips) +- Bcache / L2 cache: 512 Kbytes (200 and 400 series) + 2048KBytes (250 series) +- memory bus: 64 bit +- memory: 8 to 384 MBytes of RAM, + 70 ns or better Fast Page DRAM, + in three pairs (200 and 400 series) + in two quads, so banks of four. (250 series) + uses parity +- PS/2 keyboard and mouse port +- two 16550 serial ports +- parallel port +- floppy disk interface +- 32 bit PCI expansion slots (3 for 400 series, 2 for 200 & 250 series) +- ISA expansion slots (4 for 400 series, 2 for 200 & 250 series) + (some ISA/PCI slots are physically shared) +- embedded 21040-based Ethernet (200 & 250 series) +- embedded Symbios 53c810 Fast SCSI-2 chip +- Intel 82378IB ("Saturn") PCI-ISA bridge chip +- graphics is embedded TGA or PCI VGA (model dependent) +- 16 bit sound (on 200 & 250 series) + +Memory: +the system uses parity memory SIMMs, but it does not need 36 bit wide SIMMs. +33 bit wide SIMMs are sufficient, 36 bit SIMMs are acceptable too. EDO or 32 +bit SIMMs will not work. 4, 8, 16, 32 and 64 Mbyte SIMMs are supported. + +Sound: +The AS200 & AS250 sound hardware is reported to work OK assuming you have +the following line in your kernel config file: + + device pcm0 at isa? port 0x530 irq 9 drq 0 flags 0x10011 + +SCSI: +AlphaStation 200 & 250 series has an automatic SCSI terminator. This means that +as soon as you plug a cable onto the external SCSI connector the internal +terminator of the system is disabled. It also means that you should not +leave unterminated cables plugged into the machine. + +AlphaStation 400 series have an SRM variable that controls termination. In +case you have external SCSI devices connected you must set this SRM +variable using: "set control_scsi_term external". If only internal SCSI devices +are present use: "set control_scsi_term internal" + +For the AlphaStation-[24][05]00 machines the kernel config file must contain: + options DEC_2100_A50 + cpu EV4 + + +* +* AlphaStation 500 and 600 ("Alcor" & "Maverick" for EV5, "Bret" for EV56) +* +AS500 and 600 were the high-end EV5 / PCI based workstations. EV6 based +machines have in the meantime taken their place as front runners. AS500 is +a desktop in a dark blue case (TopGun blue), AS600 is a sturdy desk-side box. +AS600 has a nice LCD panel to observe the early stages of SRM startup. + +Features: +- 21164 EV5 CPU at 266, 300, 333, 366, 400, 433, 466, or 500 MHz (AS500) + at 266, 300 or 333 MHz (AS600) +- 21171 or 21172 (Alcor) core logic chip-set +- cache: 2 or 4 Mb L3 / Bcache (AS600 at 266 MHz) + 4 Mb L3 / Bcache (AS600 at 300 MHz) + 2 or 8 Mb L3 / Bcache (8 Mb on 500 MHz version only) + 2 to 16 Mb L3 / Bcache (AS600; 3 cache-SIMM slots) +- memory bus: 256 bits, uses ECC +- memory: AS500: industry standard 8 byte wide DIMMs + 8 DIMM slots + installed in sets of 4, + maximum memory is 1 Gb (512 Mb max on 333 MHz CPUs) + uses ECC + AS600: industry standard 36 bit Fast Page Mode SIMMs + 32 SIMM slots, + installed in sets of 8, + maximum memory is 1 Gb + uses ECC +- Qlogic 1020 based wide SCSI bus (1 bus/chip for AS500, 2 for AS600) +- 21040 based 10 Mbit Ethernet adapter with both Thinwire and UTP connectors +- expansion: AS500: 3 32-bit PCI slots + 1 64-bit PCI slot + AS600: 2 32-bit PCI slot + 3 64-bit PCI slots + 1 PCI/EISA physically shared slot + 3 EISA slots + 1 PCI and 1 EISA slot are occupied by default +- 21050 PCI-to-PCI bridge chip +- Intel 82375EB PCI-EISA bridge (AS600 only) +- 2 16550A serial ports +- 1 parallel port +- 16 bit audio Windows Sound System, + in dedicated slot (AS500) + in EISA slot (AS600, this is an ISA card) +- PS/2 keyboard and mouse port + +SCSI: +Early machines had Fast SCSI interfaces, later ones are Ultra SCSI capable. +AS500 shares its single SCSI bus with internal and external devices. For a +Fast SCSI bus you are limited to 1.8 meters bus length external to the box. ++++ This is what some DEC docs suggest. Did they ever go Ultra? + +AS600 has one Qlogic chip dedicated to the internal devices whereas the +other one is dedicated to external SCSI devices. + +Memory: +In AS500 DIMMs are installed in sets of 4, in 'physically interleaved' +layout. So, a bank of 4 DIMMs is *not* 4 adjacent DIMMs! + +In AS600 the memory SIMMs are placed onto two memory daughter cards. SIMMs +are installed in sets of 8. Both memory daughter cards must be populated +identical. + +PCI: +AS600 has a peculiarity for its PCI slots. AS600 (or rather the PCI +expansion card containing the SCSI adapters) does not allow I/O port +mapping, therefore all devices behind it must use memory mapping. +If you have problems getting the SCSI adapters to work, add the following +option to /boot/loader.rc: + + set isp_mem_map=0xff + +This may need to be typed at the boot loader prompt before booting the +installation kernel. + +For the AlphaStation-[56]00 machines the kernel config file must contain: + options DEC_KN20AA + cpu EV5 + +* +* AlphaServer 1000 ("Mikasa"), 1000A ("Noritake") and 800 +* +The AlphaServer 1000 and 800 range of machines is aimed as departmental servers. +They come in quite some variations in packaging and mainboard/cpu. Generally +speaking there are 21064 (EV4) CPU based machines and 21164 (EV5) based +ones. The CPU is on a daughter card, and the type of CPU (EV4 or EV5) must +match the mainboard in use. AlphaServer 800 is a much smaller mini tower +case, it lacks the StorageWorks SCSI hot-plug chassis. The main difference +between AS1000 and AS1000A is that AS1000A has 7 PCI slots whereas AS1000 +only has 3 PCI slots and has EISA slots instead. AS800 with an EV5/400 MHz +CPU was later re-branded as a DIGITAL Server 3300[R], AS800 with an EV5/500 MHz +CPU was later re-branded as a DIGITAL Server 3305[R]. + +Features: +- 21064 EV4[5] CPU at 200, 233 or 266 MHz + 21164 EV5[6] CPU at 300, 333 or 400 MHz (or 500 MHz for AS800 only) +- cache: +- memory bus: 128 bit with ECC +- memory: + AS1000[A]-systems: + Use 72pin 36 bit Fast Page Mode SIMMs, 70ns or better + 16 or 20 SIMM slots + max memory is 1 Gb + uses ECC + AS800: + Uses SDRAM DIMMs. +- embedded VGA (on some mainboard models) +- expansion: + 3 PCI, 2 EISA, 1 64-bit PCI/EISA combo (AS800) + 7 PCI, 2 EISA (AS1000A) + 2 PCI, 1 EISA/PCI, 7 EISA (AS1000) +- embedded SCSI based on Symbios 810 [AS1000] or Qlogic 1020 [AS1000A] + +Box: +AS1000 based machines come in multiple boxes. Floor standing, rack-mount, +with or without StorageWorks SCSI chassis etc. The electronics are the +same. + +Memory: + AS1000-systems: + All EV4 based machines use standard PS/2 style 36 bit 72pin SIMMs in sets + of 5. The fifth SIMM is used for ECC. + All EV5 based machines use standard PS/2 style 36 bit 72pin SIMMs in sets + of 4. The ECC is done based on the 4 extra bits per SIMM (4 bits out of 36). + The EV5 mainboards have 16 SIMM slots, the EV4 mainboards have 20 slots. + + AS800: + Uses DIMMs in sets of 4. DIMM installation must start in slots marked + bank 0. A bank is four physically adjacent slots. The biggest size DIMMs + must be installed in bank 0 in case 2 banks of different DIMM sizes are + used. Max memory size is 2Gb. + +Console: +The AS1000/800 are somewhat stubborn when it comes to serial +consoles. They need >>> SET CONSOLE SERIAL before they go for +a serial console. Pulling the keyboard from the machine is not sufficient, +like it is on most other Alpha models. Going back to a graphical console +needs >>> SET CONSOLE GRAPHICS at the serial console. + +SCSI: +For AS800 you want to check if your Ultra-Wide SCSI is indeed in Ultra mode. +This can be done using the EEROMCFG.EXE utility that is on the Firmware +Upgrade CDROM. + +For the AlphaServer1000/1000A/800 machines the kernel config file must contain: + options DEC_1000A + cpu EV4 # depends on the CPU model installed + cpu EV5 # depends on the CPU model installed + +* +* DS10/VS10/XP900 ("Webbrick") / XP1000 ("Monet") / DS10L ("Slate") +* +Webbrick and Monet are high performance workstations/servers based on the +EV6 CPU and the Tsunami chipset. Tsunami is also used in much higher-end +systems and as such has plenty of performance to offer. DS10, VS10 and XP900 +are different names for essentially the same system. The difference are the +software and options that are supported. DS10L is a DS10 based machine in a 1U +high rackmount enclosure. DS10L is intended for ISPs and for HPTC clusters +(e.g. Beowulf). + +Monet has, by 1999 standards, *stunning* (the words of a satisfied +user) memory and I/O system bandwidth. + +** Webbrick / Slate + +Features: +- 21264 EV6 CPU at 466 MHz +- L2 / Bcache: 2MB, ECC protected +- memory bus: 128 bit via crossbar, 1.3GB/sec to memory +- memory: industry standard 200 pin 83 MHz buffered ECC SDRAM DIMMs + 4 DIMM slots (2 for DS10L) + installed in pairs of 2 + max memory is 2 Gb (1Gb for DS10L) +- 21271 Core Logic chipset ("Tsunami") +- 2 on-board 21143 Fast Ethernet controllers +- AcerLabs M5237 (Aladdin-V) USB controller +- AcerLabs M1533 PCI-ISA bridge +- AcerLabs Aladdin ATA-33 controller +- embedded dual EIDE +- expansion: 3 64-bit PCI slots + 1 32-bit PCI slots + DS10L has a single 64bit PCI slot +- 2x 16550A serial ports +- 1x parallel port +- 2x USB +- PS/2 keyboard & mouse port + +Power: +The system has a smart power controller. This means that parts of the system +remain powered when it is switched off (like an ATX-style PC power supply). +Before servicing the machine remove the power cord. + +Case: +Webbrick is shipped in a desktop-style case similar to the older 21164 +"Maverick" workstations but which offers much better access to +components. If you intend to build a farm you can rackmount them in a 19" +rack, they are 3U high. Slate is 1U high but has only one PCI slot. + +Memory: +DS10 has 4 DIMM slots. DIMMs are installed as pairs. Please note that +DIMM pairs are not installed in adjacent DIMM sockets but rather physically +interleaved. DIMM sizes of 32, 64, 128, 256 and 512 Mbytes are supported. + +When 2 pairs of identical-sized DIMMs are installed DS10 will use memory +interleaving for higher performance. DS10L, which has only 2 DIMM slots cannot +do interleaving. + +EIDE: +The base model comes with a FUJITSU 9.5GB ATA disk as its boot device. +FreeBSD/alpha works just fine using EIDE disks on Webbrick. DS10 has 2 IDE +interfaces on the mainboard. + +Expansion: +On the PCI bus 32 and 64 bit cards are supported, in 3.3V and 5V variants. + +USB: +Is supported in FreeBSD 4.1 and later. + +The kernel config file must contain: + options DEC_ST6600 + cpu EV5 + +Contrary to expectation there is no 'cpu EV6' defined for inclusion in the +kernel config file. The 'cpu EV5' is mandatory to keep config(8) happy. + +** Monet + +Features: +- 21264 EV6 at 500 MHz + 21264 EV67 at 500 or 667 MHz (XP1000G, codenamed Brisbane) + CPU is mounted on a daughter-card which is field-upgradable +- L2 / Bcache: 4MB, ECC protected +- memory bus: 256 bit +- memory: 128 or 256 Mbytes 100 MHz (PC100) 168 pin JEDEC standard, + registered ECC SDRAM DIMMs +- 21271 Core Logic chip-set ("Tsunami") +- 1 on-board 21143 Ethernet controller +- Cypress 82C693 USB controller +- Cypress 82C693 PCI-ISA bridge +- Cypress 82C693 controller +- expansion: 2 independent PCI buses, driven by high-speed I/O + channels called 'hoses': + hose 0: (the upper 3 slots) + 2 64-bit PCI slots + 1 32-bit PCI slot + hose 1: (the bottom 2 slots) + 2 32-bit PCI slots (behind a 21154 PCI-PCI bridge) + 2 of the 64-bit PCI slots are for full-length cards + all of the 32-bit PCI slots are for short cards + 1 of the 32-bit PCI slots is physically shared with an ISA slot + all PCI slots run at 33MHz +- 1x Ultra-Wide SCSI port based on a Qlogic 1040 chip +- 2x 16550A serial port +- 1x parallel port +- PS/2 keyboard & mouse port +- embedded 16-bit ESS ES1888 sound chip +- 2x USB +- graphics options: ELSA Gloria Synergy or DEC/Compaq PowerStorm 3D + accelerator cards + +Case: +Monet is housed in a mini-tower like enclosure quite similar to the Miata +box. + +SCSI: +The on-board Qlogic UW-SCSI chip supports up to 4 internal devices. There is +no external connector for the on-board SCSI. + +Memory: +For 500 MHz CPUs 83 MHz DIMMs will do. Compaq specifies PC100 DIMMs for +all CPU speeds. DIMMs are installed in sets of 4, starting with the +DIMM slots marked '0'. Memory capacity is max 4 Gb. +DIMMs are installed 'physically interleaved', note the markings of the +slots. Memory bandwidth of Monet is twice that of Webbrick. The DIMMs live +on the CPU daughter-card. Note that the system uses ECC RAM so you need DIMMs +with 72 bits (not the PC-class 64 bit DIMMs) + +EIDE: +Is usable / bootable for system disk so FreeBSD can be rooted on an EIDE +disk. Although the Cypress chip has potential for 2 EIDE channels Monet uses +only one of them. + +USB: +If you experience problems trying to use the USB interface please check if +the SRM variable "usb_enable" is set to "on". You can change this by +performing: "set usb_enable on" at the SRM >>> prompt. + +Expansion caveats: +- Don't try to use Symbios-chip based SCSI adapters in the PCI slots +connected to hose 1. There is a not-yet-found FreeBSD bug that prevents this +from working correctly. +- Not all VGA cards will work behind the PCI-PCI bridge (so in slots 4 & 5). +Only cards that implement VGA-legacy addressing correctly will work. Workaround +is to put the VGA card 'before' the bridge. + +Sound: +The sound chip is not currently supported with FreeBSD. There is work in +progress in this area. + +The kernel config file must contain: + options DEC_ST6600 + cpu EV5 + +Contrary to expectation there is no 'cpu EV6' defined for inclusion in the +kernel config file. The 'cpu EV5' is mandatory to keep config(8) happy. + +** DS20/DS20E ("Goldrush"): + +Features: +- 21264 EV6 CPU at 500 or 670 MHz +- dual CPU capable machine +- L2 / Bcache: 4 Mbytes per CPU +- memory bus: dual 256 bit wide with crossbar switch +- memory: SDRAM DIMMs + installed in sets of 4 + uses ECC + 16 DIMM slots + max. 4Gb +- 21271 Core Logic chip-set ("Tsunami") +- embedded Adaptec ? Wide Ultra SCSI +- expansion: 2 independent PCI buses, driven by high-speed I/O + channels called 'hoses' + 6 64-bit PCI slots (3 per hose) + 1 ISA slot + +Console: +DS20 needs >>> SET CONSOLE SERIAL before it goes for a serial console. +Pulling the keyboard from the machine is not sufficient. Going back to a +graphical console needs >>> SET CONSOLE GRAPHICS at the serial console. +Confusing is the fact that you will get SRM console output on the graphics +console with the console set to serial, but when FreeBSD boots it honors +the CONSOLE variable setting and all the boot messages as well as the +login prompt will go to the serial port. + +Case: +DS20 is housed in a fat cube-like enclosure. The enclosure also +contains a StorageWorks SCSI hot-swap shelf for a maximum of 7 3.5" SCSI +devices. DS20E is a sleeker case, without the StorageWorks shelf. + +Embedded SCSI: +The embedded Adaptec SCSI chip on DS20 is disabled and is therefore +not usable under FreeBSD. + +CPU: +DS20 can have 2 CPUs installed. FreeBSD/alpha is not currently SMP-capable +and will only use the primary CPU. + +Memory: +If you are using banks of DIMMs of different sizes the biggest DIMMs should +be installed in the DIMM slots marked '0' on the mainboard. The DIMM slots +should be filled 'in order' so after bank 0 install in bank 1 and so on. + +Expansion: +Don't try to use Symbios-chip based SCSI adapters in the PCI slots +connected to hose 1. There is a not-yet-found FreeBSD bug that prevents this +from working correctly. DS20 ships by default with a Symbios on hose 1 so you +have to move this card before you can install/boot FreeBSD on it. + +The kernel config file must contain: + options DEC_ST6600 + cpu EV5 + +Contrary to expectation there is no 'cpu EV6' defined for inclusion in the +kernel config file. The 'cpu EV5' is mandatory to keep config(8) happy. + +** AlphaPC 264DP / UP2000 + +Features: +- 21264 EV6 CPU at 670 MHz +- dual CPU capable +- L2 / Bcache: 4 Mbytes per CPU +- memory bus: 256 bit +- memory: SDRAM DIMMs + installed in sets of 4 + uses ECC + 16 DIMM slots + max. 4Gb +- 21272 Core Logic chip-set ("Tsunami") +- embedded Adaptec AIC7890/91 Wide Ultra SCSI +- 2x embedded IDE based on Cypress 82C693 chips +- embedded USB via Cypress 82C693 +- expansion: 2 independent PCI buses driven by high-speed I/O + channels called 'hoses' + 6 64-bit PCI slots (3 per hose) + 1 ISA slot + +Memory: +A maximum of 2Gb memory is supported by FreeBSD. + +CPU: +DP264 can have 2 CPUs installed. FreeBSD/alpha is not currently SMP-capable +and will only use the primary CPU. + +Embedded SCSI: +The on-board Adaptec is not bootable but works with FreeBSD 4.0 and later +as a datadisk-only SCSI bus. + +Embedded IDE: +Busmaster DMA is supported on the first IDE interface only. + +The kernel config file must contain: + options DEC_ST6600 + cpu EV5 + +Contrary to expectation there is no 'cpu EV6' defined for inclusion in the +kernel config file. The 'cpu EV5' is mandatory to keep config(8) happy. + +* +* AlphaServer 2000 ("DemiSable"), 2100 ("Sable"), 2100A ("Lynx") +* + +The AlphaServer 2[01]00 machines are aimed as departmental servers. +This is medium iron, not a hobbyist system. These are multi-CPU machines, +up to 2 CPUs (AS2000) or 4 CPUs (2100[A]) can be installed. +Both floor-standing and 19" rackmount boxes exist. Rackmount variations have +different numbers of I/O expansion slots, different max number of CPUs and +different maximum memory size. Some of the boxes come with an integral +StorageWorks shelf to house hot-swap SCSI disks. There was an upgrade program +available to convert your Sable machine into a Lynx by swapping the +I/O backplane (the C-bus backplane remains). CPU upgrades were available +as well. + +Features: +- 21064 EV4[5] CPU[s] at 200, 233, 275 MHz +- 21164 EV5[6] CPU[s]s at 250, 300, 375, 400 MHz +- cache: varies in size with the CPU model; 1, 4 or 8Mbyte per CPU +- embedded floppy controller driving a 2.88 Mbytes drive +- embedded 10Mbit 21040 Ethernet [AS2100 only] +- 2 serial ports +- 1 parallel port +- PS/2 style keyboard & mouse port + +NOTE: Lynx support is currently flagged as experimental due to lack of + testing / test hardware. + +CPU: +The CPUs spec-ed as 200 MHz are in reality running at 190 MHz. Maximum +number of CPUs is 4. All CPUs must be of the same type/speed. + +Currently FreeBSD only uses one CPU in a multiprocessor machine. + +Memory: +The machines use dedicated memory boards. These boards live on a 128 bit +C-bus shared with the CPU boards. DemiSable supports up to 1Gb, Sable up +to 2Gb. One of the memory bus slots can either hold a CPU or a memory card. +A 4 CPU machine can have a maximum of 2 memory boards. + +Some memory board modules house SIMMs. These are called SIMM carriers. +There are also memory modules that have soldered-on memory chips +instead of SIMMs. These are called 'flat memory modules'. + +SIMM boards are used in sets of eight 72-pin 36 bit FPM memory of 70ns +or faster. SIMM types supported are 1Mb x36 bit (4 Mbyte) and 4Mb x36 +bit (16 Mbyte). Each memory board can house 4 banks of SIMMs. SIMM +sizes can not be mixed on a single memory board. The first memory +module must be filled with SIMMs before starting to fill the next +memory module. Note that the spacing between the slots is not that +big, so make sure your SIMMs fit physically (before buying them..) + +Console: +Both Lynx and Sable are somewhat stubborn when it comes to serial +consoles. They need >>> SET CONSOLE SERIAL before they go for +a serial console. Pulling the keyboard from the machine is not sufficient, +like it is on most other Alpha models. Going back to a graphical console +needs >>> SET CONSOLE GRAPHICS at the serial console. On Lynx keep the +VGA card in one of the primary PCI slots. + +The machines are equipped with a small OCP (Operator Control Panel) LCD +screen. On this screen the self-test messages are displayed during system +initialization. You can put your own little text there by using the SRM: +>>> SET OCP_TEXT "FreeBSD" + +The SRM >>> SHOW FRU command produces an overview of your configuration +with module serial numbers, hardware revisions and error log counts. + +Embedded SCSI: +Both Sable, DemiSable and Lynx have Symbios 810 based Fast SCSI on-board. +Check if it is set to Fast SCSI speed by >>> SHOW PKA0_FAST. If set to +1 it is negotiating for Fast speeds. >>> SET PKA0_FAST 1 enables Fast +speeds. + +Internal disk storage: +AS2100[A] come equipped with a StorageWorks 7 slot SCSI cage. A second cage +can be added inside the cabinet. AS2000 has a single 7 slot SCSI cage, +which cannot be expanded with an additional one. Note that the slot +locations in these cages map differently to SCSI IDs compared to the +standard StorageWorks shelves. Slot IDs from top to bottom +are 0, 4, 1, 5, 2, 6, 3 when using a single bus configuration. The cage +can also be set to provide two independent SCSI buses. This is used for +embedded RAID controllers like the KZPSC (Mylex DAC960). Slot ID assignments +for split bus are, from top to bottom: 0A, 0B, 1A, 1B, 2A, 2B, 3A, 3B. +Where A and B signify a SCSI bus. In a single bus configuration the +terminator module on the back of the SCSI cage is on the TOP. The jumper +module is on the BOTTOM. For split bus operation these two modules are +reversed. The terminator can be distinguished from the jumper by noting the +chips on the terminator. The jumper does not have any active components on +it. + +Expansion: +DemiSable has 7 EISA slots and 3 PCI slots. Sable has 8 EISA and 3 PCI +slots. Lynx, being newer, has 8 PCI and 3 EISA slots. The Lynx PCI slots +are grouped in sets of 4. The 4 PCI slots closest to the CPU/memory +slots are the primary slots, so logically before the PCI bridge chip. +Note that contrary to expectation the primary PCI slots are the highest +numbered ones (PCI4 - PCI7). + +Make sure you run the EISA Configuration Utility (from floppy) when +adding/change expansion cards in EISA slots or after upgrading your +console firmware. This is done by inserting the ECU floppy and typing +RUNECU at the SRM >>> prompt. + + NOTE: EISA slots are currently unsupported, but the Compaq Qvision + EISA VGA adapter is treated as an ISA device. It therefore + works OK as a console. + +A special Extended I/O module for use on the C-bus was planned-for. +Whether they ever saw daylight is unknown. In any case FreeBSD has never +been verified with an ExtIO module. + +Power: +The machines can be equipped with redundant power supplies. Note that +the enclosure is equipped with interlock switches that switch off power +when the enclosure is opened. The system's cooling fans are speed +controlled. When the machine has more than 2 CPUs and more than 1 memory +board dual power supplies are mandatory. + +The kernel config file must contain: + options DEC_2100_A500 + cpu EV4 + cpu EV5 + +* +* AlphaServer 4100 ("Rawhide") +* + +The AlphaServer 4100 machine is aimed as an enterprise server. +Expect a 30" high pedestal cabinet or alternatively the same system box in a +19" rack. This is medium iron, not a hobbyist system. +These are multi-CPU machines, up to 4 CPUs can be in a single +machine. Basic disk storage is housed in one or two StorageWorks shelves +at the bottom of the pedestal. The Rawhides intended for the NT market are +designated DIGITAL Server 7300 (5/400 CPU), DIGITAL Server 7305 (5/533 CPU). +A trailing R on the part-number means a rackmount variant. + +Features: +- 21164 EV5 CPUs at 266, 300 MHz + 21164A EV56 CPUs at 400, 466, 533, 600 and 666 Mhz +- cache: 4 Mbytes per CPU (EV5 300 MHz was also available cache-less) + 8 Mbytes (EV5 600Mhz only) +- memory bus: 128 bit with ECC +- embedded floppy controller +- 2 serial ports +- 1 parallel port +- PS/2 style keyboard & mouse port + +CPU: +Rawhide is a multiprocessor machine. Currently FreeBSD only uses one CPU. + +Memory: +Rawhide uses a maximum of 8 RAM modules. These modules are used in pairs +and supply 72 bits to the bus (this includes ECC bits). Memory can be EDO +RAM or synchronous DRAM. A fully populated Rawhide has 4 pairs of memory +modules. Given the choice use SDRAM for best performance. The highest +capacity memory board must be in memory slot 0. A mix of memory board sizes +is allowed. A mix of EDO and SDRAM is also reported as working (assuming you +don't try to mix EDO and SDRAM in one module pair). + +Embedded SCSI: +Rawhide has an embedded Symbios 810 Fast SCSI bus. + +Expansion: +Rawhides are available with a 8 64-bit PCI / 3 EISA slot expansion backplanes +(called 'Saddle' modules). There are 2 separate PCI buses, PCI0 and PCI1. +PCI0 has 1 dedicated PCI slot and (shared) 3 PCI/EISA slots. PCI0 also has a +PCI/EISA bridge that drives things like the serial and parallel ports, +keyboard/mouse etc. PCI1 has 4 PCI slots and an Symbios 810 SCSI chip. VGA +console cards must be installed in a slot connected to PCI0. + +The current implementation has problems in handling PCI bridges. There is +currently a limited fix in place which allows for single level, single device +PCI bridges. The fix allows for the Digital supplied Qlogic SCSI card which +sits behind a 21054 PCI bridge chip. + + NOTE: EISA slots are currently unsupported, but the Compaq Qvision + EISA VGA adapter is treated as an ISA device. It therefore + works OK as a console. + +Power: +The system employs an I2C based power controller system. If you want to be +sure all power is removed from the system pull the mains cables from the +system. + +The kernel config file must contain: + options DEC_KN300 + cpu EV5 + +* +* AlphaServer 1200 ("Tincup") and AlphaStation 1200 ("DaVinci") +* + +The AlphaServer 1200 machine is the successor to the AlphaServer 1000A. +It uses the same enclosure the 1000A uses, but the logic is based on the +AlphaServer 4000 design. These are multi-CPU machines, up to 2 CPUs can +be in a single machine. Basic disk storage is housed in a StorageWorks shelves +The AS1200 intended for the NT market are designated DIGITAL Server 5300 +(5/400 CPU) and DIGITAL Server 5305 (5/533 CPU). + +Features: +- 21164A EV56 CPUs at 400 or 533 Mhz +- cache: 4 Mbytes per CPU +- memory bus: 128 bit with ECC + DIMM memory on two memory daughter boards +- embedded floppy controller +- 2 serial ports +- 1 parallel port +- PS/2 style keyboard & mouse port + +CPU: +AS1200 is a multiprocessor-capable machine. Currently FreeBSD only uses one CPU. + +Memory: +AS1200 uses 2 memory daughter cards. On each of these cards are 8 DIMM slots. +DIMMs must be installed in pairs. The maximum memory size is 4 Gbytes. +Slots must be filled in order and slot 0 must contain the largest size +DIMM if different sized DIMMs are used. AS1200 employs fixed starting +addresses for DIMMs, each DIMM pair starts at a 512 Mbyte boundary. +This means that if DIMMs smaller than 256 Mbyte are used the system's +physical memory map will contain 'holes'. Supported DIMM sizes are 64 Mbytes +and 256 Mbytes. The DIMMs are 72 bit SDRAM based, as the system employs ECC. + +Embedded SCSI: +AS1200 has an embedded Symbios 810 Fast SCSI bus. + +Expansion: +AS1200 has 5 64-bit PCI slots, one 1 32-bit PCI slot and one EISA slot +(which is physically shared with one of the 64-bit PCI slots). +There are 2 separate PCI buses, PCI0 and PCI1. PCI0 has the 32-bit PCI +slot and the 2 top-most 64-bit PCI slots. PCI0 also has an Intel 82375EB +PCI/EISA bridge that drives things like the serial and parallel ports, +keyboard/mouse etc. PCI1 has 4 64-bit PCI slots and an Symbios 810 SCSI chip. +VGA console cards must be installed in a slot connected to PCI0. + +Power: +The system employs an I2C based power controller system. If you want to be +sure all power is removed from the system pull the mains cables from the +system. Tincup uses dual power supplies in load-sharing mode and not +as a redundancy pair. + +The kernel config file must contain: + options DEC_KN300 + cpu EV5 + +* +* AlphaServer 8200 and 8400 ("TurboLaser") +* +The AlphaServer 8200 and 8400 machines are aimed as enterprise servers. +Expect a tall 19" cabinet (8200) or fat (8400) 19" rack. This is big iron, +not a hobbyist system. These are multi-CPU machines, up to 12 CPUs can be in +a single machine. The TurboLaser System Bus (TLSB) allows 9 nodes on the +AS8400 and 5 nodes on the AS8200. TLSB is 256 bit data, 40 bit address +allowing 2.1 Gbytes/sec. Nodes on the TLSB can be CPUs, memory or I/O. A +maximum of 3 I/O ports are supported on a TLSB. Basic disk storage is housed +in a StorageWorks shelf. + +Features: +- 21164 EV5 CPUs at up to 467 MHz + 21264 EV67 CPUs at up to 625 MHz + one or two CPUs per CPU module +- cache: 4Mbytes per CPU +- memory bus: 256 bit with ECC +- memory: + uses big memory modules that plug into the TLSB, which in turn + hold special SIMM modules. + memory modules come in varying sizes, up to 2 Gbytes a piece. + uses ECC (8 bites per 64 bits of data) + 7 modules max for AS8400, 3 modules max for AS8200 + maximum memory is 14 Gbytes +- expansion: + 3 system 'I/O ports' that allow up to 12 I/O channels + each I/O channel can connect to XMI, Futurebus+ or PCI boxes + +Memory: +FreeBSD supports (and has been tested with) up to 2 Gbytes of memory on +TurboLaser. + +CPU: +TurboLaser is very much a multiprocessor machine. Currently FreeBSD only +uses one CPU. + +Expansion: +Only PCI expansion is supported on FreeBSD. XMI or Futurebus+ (which +are AS8400 only) are both unsupported. + +The I/O port modules are designated KFTIA or KFTHA. The I/O port modules +supply so called 'hoses' that connect to up to 4 (KFTHA) PCI buses or 1 +PCI bus (KFTIA). KFTIA has embedded dual 10baseT Ethernet, single FDDI, +3 SCSI Fast Wide Differential SCSI buses and a single Fast Wide Single Ended +SCSI bus. The FWSE SCSI is intended for the systems CDROM. + +KFTHA can drive via each of its 4 hoses a DWLPA or DWLPB box. The DWLPx +house a 12 slots 32 bit PCI backplane. Physically the 12 slots are 3 4-slot +buses but to the software it appears as a single 12 slots PCI bus. A fully +expanded AS8x00 can have 3 (I/O ports) times 4 (hoses) times 12 (PCI +slots/DWLPx) = 144 PCI slots. The maximum bandwidth per KFTHA is 500 +Mbytes/second. DWLPA can also house 8 EISA cards, 2 slots are PCI-only, 2 +slots are EISA only. Of the 12 slots 2 are always occupied by an I/O and +connector module. + +For best performance distribute high bandwidth (FibreChannel, Gigabit Ethernet) +over multiple hoses and/or multiple KFTHA/KFTIA. + +Currently PCI expansion cards containing PCI bridges are not usable. Don't +use them at this time. + +Embedded SCSI: +The single ended SCSI bus on the KFTIA will turn up as the fourth (!) +SCSI bus. The 3 differential SCSI buses of the KFTIA precede it. + +Console: +AS8x00 are generally run with serial consoles. Some newer machines might +have a graphical console of some sorts but FreeBSD has only been tested on +a serial console. + +For serial console usage either change /etc/ttys to have: + + console "/usr/libexec/getty std.9600" unknown on secure + +as the console entry, or add + + zs0 "/usr/libexec/getty std.9600" unknown on secure + +and make the zs node: + + mknod /dev/zs0 c 135 0 + +For the AlphaServer 8x00 machines the kernel config file must +contain: + options DEC_KN8AE # Alpha 8200/8400 (Turbolaser) + cpu EV5 + +* +* Alpha Processor Inc. UP1100 +* + +The UP1000 is an ATX mainboard based on the 21264a CPU which itself lives in +a Slot B module. It is normally housed in a ATX [mini]tower enclosure. + +Features: +- 21264a Alpha CPU at 600 or 700 MHz in a Slot B module (includes cooling fans) +- memory bus: 128 bits to the L2 cache, 64 bits from Slot B to the AMD-751 +- on-board Bcache / L2 cache: 2Mb (600Mhz) or 4Mb (700Mhz) cache +- AMD AMD-751 ('Irongate') system controller chip +- Acer Labs M1543C PCI-ISA bridge controller / super-IO chip +- PS/2 mouse & keyboard port +- memory: 168-pin PC100 unbuffered SDRAM DIMMS + 3 DIMM slots + DIMM sizes supported are 64, 128 or 256 Mb in size +- 2x 16550A serial port +- 1x ECP/EPP parallel port +- floppy interface +- 2x embedded Ultra DMA33 IDE interface +- 2x USB port +- expansion: 4 32 bit PCI slots + 2 ISA slots + 1 AGP slot + +Slot B: +Slot B is a box-like enclosure that houses a daughter-board for the CPU and +cache. It has 2 small fans for cooling. Loud ones too.. + +Memory: +The machine needs ECC capable DIMMs, so 72 bit ones. This does not appear to +be documented in the UP1000 docs. The system accesses the serial EEPROM on +the DIMMs via the SM bus. Note that if only a single DIMM is used it must be +installed in slot *2*. This is a bit counter-intuitive. + +Power +The UP1000 needs a 400Watt ATX power supply according to the manufacturer. +This might be a bit overly conservative/pessimistic judging from the power +consumption of the board & cpu. But as always you will have to take your +expansion cards and peripherals into account. The M1543C chip contains power +management functionality & temperature monitoring (via I2C / SM bus). + +Console +Chances are that your UP1000 comes by default with AlphaBios only. The SRM +console firmware is available from the Alpha Processor Inc. website. It is +currently available in a beta version which was successfully used during the +port of FreeBSD to the UP1000. + +EIDE: +The embedded Ultra DMA EIDE ports are bootable by the SRM console. + +SCSI: +UP1000 SRM can boot off an Adaptec 294x adapter. Under high I/O load conditions +machine lockups have been observed using the Adaptec 294x. A Symbios 875 +based card works just fine, using either the ncr or sym driver. The sym driver +is the newest and most actively maintained one. Most likely other cards +based on the Symbios chips that the sym driver supports will work as well. + +USB: +Is disabled by the SRM console and has not (yet) been tested with FreeBSD. + +For the UP1000 the kernel config file must contain: + cpu EV5 + options API_UP1000 # UP1000, UP1100 (Nautilus) + +* +* Alpha Processor Inc. UP1100 +* + +The UP1100 is an ATX mainboard based on the 21264a CPU running at 600 MHz. +It is normally housed in a ATX [mini]tower enclosure. + +Features: +- 21264a Alpha CPU at 600 MHz +- memory bus: 100MHz 64-bit +- on-board Bcache / L2 cache: 2Mb +- AMD AMD-751 ('Irongate') system controller chip +- Acer Labs M1535D PCI-ISA bridge controller / super-IO chip +- PS/2 mouse & keyboard port +- memory: 168-pin PC100 unbuffered SDRAM DIMMS + 3 DIMM slots + DIMM sizes supported are 64, 128 or 256 Mb in size +- 2x 16550A serial port +- 1x ECP/EPP parallel port +- floppy interface +- 2x embedded Ultra DMA33 IDE interface +- 2x USB port +- expansion: 3 32 bit PCI slots + 1 AGP2x slot + +Console: +SRM console code comes standard with the UP1100. The SRM lives in 2Mbytes of +flash ROM. + +Memory: +The machine needs ECC capable DIMMs, so 72 bit ones. This does not appear to +be documented in the UP1000 docs. The system accesses the serial EEPROM on +the DIMMs via the SM bus. Note that if only a single DIMM is used it must be +installed in slot *2*. This is a bit counter-intuitive. + +Power +The UP1000 needs a 400Watt ATX power supply according to the manufacturer. +This might be a bit overly conservative/pessimistic judging from the power +consumption of the board & cpu. But as always you will have to take your +expansion cards and peripherals into account. The M1535D chip contains power +management functionality & temperature monitoring (via I2C / SM bus using +a LM75 thermal sensor). + +Network: +The UP1100 has an on-board 21143 10/100Mbit Ethernet interface. + +Sound: +The UP1100 is equipped with a SoundBlaster compatible audio interface. +Whether this works with FreeBSD is as of yet unknown. + +EIDE: +The embedded Ultra DMA EIDE ports are bootable by the SRM console. + +USB: +The UP1100 has 3 USB ports, 2 going external and one connected to the +AGP port. + +For the UP1100 the kernel config file must contain: + cpu EV5 + options API_UP1000 # UP1000, UP1100 (Nautilus) + +* +* Alpha Processor Inc. CS20 +* + +The CS20 is a 19", 1U high rackmount server based on the 21264[ab] CPU. It can +have a maximum of 2 CPUs. + +Features: +- 21264a Alpha CPU at 667 MHz or 21264b 833 MHz (max. 2 CPUs) +- memory bus: 100MHz 256-bit wide +- 21271 Core Logic chipset ("Tsunami") +- Acer Labs M1533 PCI-ISA bridge controller / super-IO chip +- PS/2 mouse & keyboard port +- memory: 168-pin PC100 PLL buffered/registered SDRAM DIMMS + 8 DIMM slots + uses ECC memory + min 256 Mbytes / max 2 Gbytes of memory +- 2x 16550A serial port +- 1x ECP/EPP parallel port +- ALI M1543C Ultra DMA66 IDE interface +- embedded dual Intel 82559 10/100Mbit Ethernet +- embedded Symbios 53C1000 Ultra160 SCSI controller +- expansion: 2 64 bit PCI slots (2/3 length) + +CPU: +The CS20 can have 2 CPUs installed. FreeBSD/alpha is not currently SMP-capable +and will only use the primary CPU. + +Console: +SRM console code comes standard with the CS20. The SRM lives in 2Mbytes of +flash ROM. + +Memory: +The CS20 needs ECC capable DIMMs. Note that it uses *buffered* DIMMs. + +Monitoring: +The CS20 has an I2C based internal monitoring system for things like +temperature, fans, voltages etc. The I2C also supports 'wake on LAN'. + +Expansion: +Each PCI slot is connected to it's own independent PCI bus on the Tsunami. + +EIDE: +The embedded Ultra DMA EIDE ports are bootable by the SRM console. + +Disks: +The CS20 has an embedded slim-line IDE CD drive. There is a front-accessible +bay for a 1" high 3.5" SCSI hard-disk drive with SCA connector. + +Note that there is no floppy disk drive (or a connector to add one). + +The kernel config file must contain: + options DEC_ST6600 + cpu EV5 + +Contrary to expectation there is no 'cpu EV6' defined for inclusion in the +kernel config file. The 'cpu EV5' is mandatory to keep config(8) happy. + +Supported hardware overview +--------------------------- + +Word of caution: the installed base for FreeBSD/alpha is not nearly as large +as for FreeBSD/Intel. This means that the enormous variation of PCI/ISA +expansion cards out there has much less chance of having been tested on +alpha than on Intel. This is not to imply they are doomed to fail, just that +the chance of running into something never tested before is much greater. +GENERIC contains things that are known to work on Alpha only. + +- Expansion buses: PCI and ISA are fully supported. Turbo Channel is not +in GENERIC and has limited support (see the relevant machine model info). +The MCA bus is not supported. The EISA bus is not supported for use with +EISA expansion cards as the EISA support code is lacking. ISA cards in EISA +slots are reported to work. The Compaq Qvision EISA VGA card is driven in +ISA mode and works OK as a console. + +- Floppy drives: 1.44 Mbyte and 1.2 Mbyte floppy drives are supported. +2.88Mbyte drives sometimes found in Alpha machines are supported up to +1.44Mbyte. + +- ATA / ATAPI (IDE): are supported via the ata driver framework. As most +people run their Alphas with SCSI disks it is not as well tested as SCSI. Be +aware of boot-ability restrictions for IDE disks. See the machine specific +information. + +- SCSI: full support via the CAM layer for Adaptec 2940x (AIC7xxx +chip-based), Qlogic family and Symbios. Be aware of the machine-specific +boot-ability issues for the various adapter types. + +- FibreChannel: the Qlogic QL2x00 FibreChannel host adapters are fully +supported. + +- Ethernet: if you want to boot your Alpha over the Ethernet you will +obviously need an Ethernet card that the SRM console recognizes. This +generally means you need a board with an 21x4x Ethernet chip as that is +what Digital used. These chips are driven by the FreeBSD 'de' (older driver) +or 'dc' (newer driver). Some new SRM versions are known to recognize the +Intel 8255x Ethernet chips as driven by the FreeBSD 'fxp' driver. But beware: +the 'fxp' driver is reported not to work correctly with FreeBSD/alpha (although +it works excellently on FreeBSD/x86). + +- FDDI: DEC DEFPA PCI FDDI network adapters are supported on alpha. + +- graphics console/keyboard/mouse: in general the SRM console emulates +a VGA-compatibility mode on PCI VGA cards. This is, however, not guaranteed +to work by Compaq/DEC for each and every card type out there. When the SRM +thinks the VGA is acceptable FreeBSD will be able to use it. The console driver +works just like on a FreeBSD/intel machine. The TGA video graphics which +is embedded on for example Multia does *not* work with FreeBSD. TGA based +PCI cards are also *not* supported. Please note that VESA modes are not +supported on Alpha, so that leaves you with 80x25 consoles + +- serial ports: the 'PC standard' serial ports found on most Alphas are +supported. For TurboChannel machines the serial ports are also supported. + +- ISDN (i4b): is not supported on FreeBSD/alpha + +Acknowledgments +---------------- + +In compiling this file I used multiple information sources, but +http://www.netbsd.org proved to be an invaluable source of information. +If it wasn't for NetBSD/alpha there probably would not be a FreeBSD/alpha +in the first place. + +People who kindly helped me create this document: + +- Nick Maniscalco <nmanisca@vt.edu> +- Andrew Gallatin <gallatin@cs.duke.edu> +- Christian Weisgerber <naddy@mips.rhein-neckar.de> +- David O'Brien <obrien@NUXI.com> +- Wim Lemmers, ex-Compaq +- Matthew Jacob <mjacob@feral.com> +- Eric Schnoebelen <eric@cirr.com> +- Chuck Robey <chuckr@picnic.mat.net> +- Mike Smith <msmith@FreeBSD.ORG> +- Peter Jeremy <peter.jeremy@alcatel.com.au> +- Dolf de Waal <l.j.de.waal@kader.hobby.nl> +- Wouter Brackman, Compaq +- Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> +- Peter van Dijk <petervd@vuurwerk.nl> +- Lodewijk van den Berg, Compaq diff --git a/release/texts/alpha/INSTALL.TXT b/release/texts/alpha/INSTALL.TXT new file mode 100644 index 000000000000..f2cf13341f62 --- /dev/null +++ b/release/texts/alpha/INSTALL.TXT @@ -0,0 +1,443 @@ ++===================== Installing FreeBSD ==========================+ +| | +| Table of Contents: | +| | +| 0.0 Quick Start: | +| 0.1 Installing FreeBSD from CDROM or the Internet. | +| | +| 1.0 Detail on various installation types: | +| 1.1 Installing from a network CDROM | +| 1.2 Installing from Floppies | +| 1.3 Installing from QIC/SCSI tape | +| 1.4 Installing over a network using NFS or FTP | +| 1.4.1 NFS Installation tips | +| 1.4.2 FTP Installation tips | +| | ++=====================================================================+ + +Author: Jordan K. Hubbard +Last updated: Fri Mar 16 14:47:31 PST 2001 + +0.0 Quick Start +--- ----------- + +This manual documents the process of making a new installation of +FreeBSD on your machine. If you are upgrading from a previous +release of FreeBSD, please see the file UPGRADE.TXT for important +information on upgrading. If you are not familiar with configuring +hardware for FreeBSD, you should also read the HARDWARE.TXT file - +it contains important information which may save you a lot of grief. + +If you're new to FreeBSD then you should also read EVERYTHING listed +in the Documentation menu on the boot floppy. It may seem like a lot +to read, but the time you spend now reading the documents will be made +up many times over because you were adequately prepared. Also, you will +know the types of information available should you get stuck later. +Once the system is installed, you can also revisit this menu and use a +WEB browser to read the installed FAQ (Frequently Asked Questions) and +Handbook HTML documentation sets for FreeBSD. You can also use the +browser to visit other WEB sites on the net (like http://www.freebsd.org) +if you have an Internet connection. See ABOUT.TXT for more information +on the resources available to you. + +The best laid plans sometimes go awry, so if you run into trouble take a +look at TROUBLE.TXT which contains valuable troubleshooting information. + +DISCLAIMER: While FreeBSD does its best to safeguard against +accidental loss of data, it's still more than possible to WIPE OUT +YOUR ENTIRE DISK with this installation! Please do not proceed to the +final FreeBSD installation menu unless you've adequately backed up any +important data first! We really mean it! + +FreeBSD/alpha supports the alpha platforms described in HARDWARE.TXT + +You will need a dedicated disk for FreeBSD/alpha. It is not possible +to share a disk with another operating system at this time. This disk +will need to be attached to a SCSI controller which is supported by +the SRM firmware or an IDE disk assuming the SRM in your machine +supports booting from IDE disks. + +Your root filesystem MUST be the first partition (partition a) on the +disk to be bootable. + +You will need the SRM console firmware for your platform. In some +cases, it is possible to switch between AlphaBIOS (or ARC) firmware +and SRM. In others it will be necessary to download new firmware from +the vendor's Website. + +0.1 Installing FreeBSD from CDROM or the Internet +--- --------------------------------------------- + +The easiest type of installation is from CD. If you have a supported +CDROM drive and a FreeBSD installation CD from Walnut Creek CDROM, you +can boot FreeBSD directly from the CDROM. Insert the CDROM into the +drive and type the following command to start the installation: + + >>>boot dka0 (or whatever device your CDROM drive is) + +Alternatively you can boot the installation from floppy disk. You +should start the installation by building a set of FreeBSD boot floppy +from the files floppies/kern.flp and floppies/mfsroot.flp using the +instructions found in floppies/README.TXT. From the SRM console prompt +(>>>), just insert the kern.flp floppy and type the following command +to start the installation: + + >>>boot dva0 + +Insert the mfsroot.flp floppy when prompted and you will end up at the +first screen of the install program. + +If you don't have a CDROM and would like to simply install over the +net using PPP, slip or a dedicated connection, simply fetch the +<FreeBSD-release>/floppies/kern.flp and mfsroot.flp files from: + + ftp://ftp.freebsd.org/pub/FreeBSD + +or one of its many mirrors (http://www.freebsd.org/handbook/mirrors.html) +and follow step 3 above. You should also read the floppies/README.TXT +file as it contains important information for downloaders. + +Once you have a boot floppy made, please go to section 1.4 of this +document for additional tips on installing via FTP or NFS. + + +1.0 Detail on various installation types +--- ------------------------------------ + +Once you've gotten yourself to the initial installation screen +somehow, you should be able to follow the various menu prompts and go +from there. If you've never used the FreeBSD installation before, you +are also encouraged to read some of the documentation in the the +Documentation submenu as well as the general "Usage" instructions on +the first menu. + + REMEMBER: If you get stuck at a screen, hit F1 for the online + documentation for that section. + +If you've never installed FreeBSD before, or even if you have, the +"Standard" installation mode is the most recommended since it makes sure +that you'll visit all the various important checklist items along the +way. If you're much more comfortable with the FreeBSD installation +process and know _exactly_ what you want to do, use the Express or +Custom installation options. If you're upgrading an existing system, +use the Upgrade option. + +The FreeBSD installer supports the direct use of floppy, DOS, tape, +CDROM, FTP, NFS and UFS partitions as installation media, further tips +on installing from each type of media listed below. + +Once the install procedure has finished, you will be able to start +FreeBSD/alpha by typing something like this to the SRM prompt: + + >>>boot dkc0 + +This instructs the firmware to boot the specified disk. To find the +SRM names of disks in your machine, use the show device command: + + >>>show device + dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 + dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 + dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 + dva0.0.0.0.1 DVA0 + ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 + pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 + pqa0.0.0.4.0 PQA0 PCI EIDE + pqb0.0.1.4.0 PQB0 PCI EIDE + + +This example is from a Digital Personal Workstation 433au and shows +three disks attached to the machine. The first is a CDROM called dka0 +and the other two are disks and are called dkc0 and dkc100 +repectively. + +You can specify which kernel file to load and what boot options to use +with the -file and -flags options to boot, e.g.: + + >>>boot -file kernel.old -flags s + +To make FreeBSD/alpha boot automatically, use these commands: + + >>>set boot_osflags a + >>>set bootdef_dev dkc0 + >>>set auto_action BOOT + + +1.1 Installing from a network CDROM +--- ------------------------------- + +If you simply wish to install from a local CDROM drive then see the +Quick Start section. If you don't have a CDROM drive on your system +and wish to use a FreeBSD distribution CD in the CDROM drive of +another system to which you have network connectivity, there are +several ways of going about it: + +1. If you would be able to FTP install FreeBSD directly from the CDROM + drive in some FreeBSD machine, it's quite easy: You simply add the + following line to the password file (using the vipw command): + + ftp:*:99:99::0:0:FTP:/cdrom:/sbin/nologin + +And anyone else on your network will now be able to choose a Media type +of FTP and type in: ``ftp://<machine with CDROM drive>'' after picking +"Other" in the ftp sites menu. + +2. If you would rather use NFS to export the CDROM directly to the + machine(s) you'll be installing from, you need to first add an + entry to the /etc/exports file (on the machine with the CDROM drive) + which looks something like this: + + /cdrom -ro ziggy.foo.com + + To allow the machine "ziggy.foo.com" to mount the CDROM directly + via NFS during installation. The machine with the CDROM must also + be configured as an NFS server, of course, and if you're not sure how + to do that then an NFS installation is probably not the best choice + for you unless you're willing to read up on rc.conf(5) and configure + things appropriately. Assuming that this part goes smoothly, you + should be able to enter: <cdrom-host>:/cdrom as the path for an NFS + installation when the target machine is installed. + + +1.2 Installing from Floppies +--- ------------------------ + +If you must install from floppy disks, either due to unsupported +hardware or just because you enjoy doing things the hard way, you must +first prepare some floppies for the install. + +First, make a set of boot floppies as described in floppies/README.TXT. + +Second, read the file LAYOUT.TXT and pay special attention to the +"Distribution format" section since it describes which files you're +going to need to put onto floppy and which you can safely skip. + +Next you will need, at minimum, as many 1.44MB floppies as it takes to +hold all files in the bin (binary distribution) directory. If you're +preparing these floppies under DOS, then THESE floppies *must* be +formatted using the MS-DOS FORMAT command. If you're using Windows, +use the Windows File Manager format command. + +Don't trust Factory Preformatted floppies! Format them again +yourself, just to make sure. Many problems reported by our users in +the past have resulted from the use of improperly formatted media, +which is why I'm taking such special care to mention it here! + +If you're creating the floppies from another FreeBSD machine, a format +is still not a bad idea though you don't need to put a DOS filesystem +on each floppy. You can use the `disklabel' and `newfs' commands to +put a UFS filesystem on a floppy, as the following sequence of +commands illustrates: + + fdformat -f 1440 fd0.1440 + disklabel -w -r fd0.1440 floppy3 + newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 + +After you've formatted the floppies for DOS or UFS, you'll need to +copy the files onto them. The distribution files are split into +chunks conveniently sized so that 5 of them will fit on a conventional +1.44MB floppy. Go through all your floppies, packing as many files as +will fit on each one, until you've got all the distributions you want +packed up in this fashion. Each distribution should go into its own +subdirectory on the floppy, e.g.: a:\bin\bin.inf, a:\bin\bin.aa, +a:\bin\bin.ab, ... + +IMPORTANT NOTE: The bin.inf file also needs to go on the first floppy +of the bin set since it is read by the installation program in order +to figure out how many additional pieces to look for when fetching and +concatenating the distribution. When putting distributions onto +floppies, the <distname>.inf file MUST occupy the first floppy of each +distribution set! + +Once you come to the Media screen of the install, select "Floppy" and +you'll be prompted for the rest. + + +1.3 Installing from QIC/SCSI Tape +--- ----------------------------- + +When installing from tape, the installation program expects the files +to be simply tar'ed onto it, so after fetching all of the files for +the distributions you're interested in, simply tar them onto the tape +with a command something like this: + + cd /where/you/have/your/dists + tar cvf /dev/rwt0 (or /dev/rsa0) dist1 .. dist2 + +When you go to do the installation, you should also make sure that you +leave enough room in some temporary directory (which you'll be allowed +to choose) to accommodate the FULL contents of the tape you've +created. Due to the non-random access nature of tapes, this method of +installation requires quite a bit of temporary storage! You should +expect to require as much temporary storage as you have stuff written +on tape. + +SPECIAL NOTE: When going to do the installation, the tape must be in +the drive *before* booting from the boot floppy. The installation +"probe" may otherwise fail to find it. + +Now create a boot floppy as described in section 0.1 and proceed with +the installation. + + +1.4 Installing over a network using FTP or NFS +--- ------------------------------------------ + +After making a boot floppy as described in the first section, you can +load the rest of the installation over a network using one of 3 types +of connections: + + Serial port: SLIP / PPP + Parallel port: PLIP (using ``laplink'' style cable) + Ethernet: A standard Ethernet controller (including + certain PCCARD devices). + +Serial Port +----------- + +SLIP support is rather primitive, and is limited primarily to +hard-wired links, such as a serial cable running between two +computers. The link must be hard-wired because the SLIP installation +doesn't currently offer a dialing capability. If you need to dial out +with a modem or otherwise dialog with the link before connecting to +it, then I recommend that the PPP utility be used instead. + +If you're using PPP, make sure that you have your Internet Service +Provider's IP address and DNS information handy as you'll need to know +it fairly early in the installation process. You may also need to +know your own IP address, though PPP supports dynamic address +negotiation and may be able to pick up this information directly from +your ISP if they support it. + +You will also need to know how to use the various "AT commands" for +dialing out with your particular brand of modem as the PPP dialer +provides only a very simple terminal emulator. + + +Parallel Port +------------- + +If a hard-wired connection to another FreeBSD or Linux machine is +available, you might also consider installing over a "laplink" +style parallel port cable. The data rate over the parallel port +is much higher than what is typically possible over a serial line +(up to 50k/sec), thus resulting in a quicker installation. It's not +typically necessary to use "real" IP addresses when using a +point-to-point parallel cable in this way and you can generally just +use RFC 1918 style addresses for the ends of the link (e.g. 10.0.0.1, +10.0.0.2, etc). + +IMPORTANT NOTE: If you use a Linux machine rather than a FreeBSD +machine as your PLIP peer, you will also have to specify "link0" in +the TCP/IP setup screen's ``extra options for ifconfig'' field. + + +Ethernet +-------- + +FreeBSD supports most common Ethernet cards, a table of supported +cards (and their required settings) being provided as part of the +FreeBSD Hardware Guide (see the Documentation menu on the boot floppy +or the top level directory of the CDROM). + +You will also need to know your IP address on the network, the +"netmask" value for your address class and the name of your machine. +Your system administrator can tell you which values are appropriate to +your particular network setup. If you will be referring to other +hosts by name rather than IP address, you'll also need a name server +and possibly the address of a gateway (if you're using PPP, it's your +provider's IP address) to use in talking to it. + +If you do not know the answers to these questions then you should +really probably talk to your system administrator _first_ before +trying this type of installation! Using a randomly chosen IP address +or netmask on a live network will almost certainly get you shot at +dawn. + +Once you have a network connection of some sort working, the +installation can continue over NFS or FTP. + + +1.4.1 NFS installation tips +----- --------------------- + + NFS installation is fairly straight-forward: Simply copy the + FreeBSD distribution files you want onto a server somewhere + and then point the NFS media selection at it. + + If this server supports only "privileged port" access (as is + generally the default for Sun and Linux workstations), you + will need to set this option in the Options menu before + installation can proceed. + + If you have a poor quality Ethernet card which suffers from very + slow transfer rates, you may also wish to toggle the appropriate + Options flag. + + In order for NFS installation to work, the server must also support + "subdir mounts", e.g. if your FreeBSD 2.2 distribution directory + lives on: ziggy:/usr/archive/stuff/FreeBSD + Then ziggy will have to allow the direct mounting of + /usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff. + + In FreeBSD's /etc/exports file this is controlled by the + ``-alldirs'' option. Other NFS servers may have different + conventions. If you are getting `Permission Denied' messages + from the server then it's likely that you don't have this + properly enabled! + + +1.4.2 FTP Installation tips +----- --------------------- + + FTP installation may be done from any mirror site containing a + reasonably up-to-date version of FreeBSD. A full menu of + reasonable choices for almost any location in the world is + provided in the FTP site menu during installation. + + If you are installing from some other FTP site not listed in + this menu, or you are having troubles getting your name server + configured properly, you can also specify your own URL by + selecting the ``URL'' choice in that menu. A URL can + contain a hostname or an IP address, so the following would + work in the absence of a name server: + + ftp://192.216.191.11/pub/FreeBSD + + There are three FTP installation modes you can use: + + o FTP: + + This method uses the standard "Active" mode for file + transfers which allows the server to initiate a connection + to the client. This will not work through most firewalls + but will often work best with older FTP servers that do + not support passive mode. If your connection hangs with + passive mode, try this one! + + o FTP Passive: + + This sets the FTP "Passive" mode which prevents the + server from opening connections to the client. This + option is best for users to pass through firewalls that + do not allow incoming connections on random port + addresses. + + o FTP via an HTTP proxy: + + This option instructs FreeBSD to use HTTP to connect to a + proxy for all FTP operations. The proxy will translate + the requests and send them to the FTP server. This + allows the user to pass through firewalls that do not + allow FTP at all, but offer an HTTP proxy. You must + specify the hostname of the proxy in addition to the FTP + server. + + In the rare case that you have an FTP proxy that does not go + through HTTP, you can specify the URL as something like : + + ftp://foo.bar.com:1234/pub/FreeBSD + + Where "1234" is the port number of the proxy ftp server. + + +---- End of Installation Guide --- diff --git a/release/texts/alpha/RELNOTES.TXT b/release/texts/alpha/RELNOTES.TXT new file mode 100644 index 000000000000..f1f9bb1fb6a9 --- /dev/null +++ b/release/texts/alpha/RELNOTES.TXT @@ -0,0 +1,1499 @@ + RELEASE NOTES + FreeBSD Release 5.0-SNAP + (alpha Architecture) + +This is a 5.0-CURRENT release SNAPshot of FreeBSD, an active +development branch which will produce its first release in early +March 2001. Those features which have also been back-ported to +the 4.x-stable branch (the next release for which will be 4.3) +are marked [MERGED]. + +Any installation failures or crashes should be reported by using the +send-pr command (those preferring a Web-based interface can also see +http://www.FreeBSD.org/send-pr.html). + +For information about FreeBSD and the layout of the 5.0-RELEASE +directory (especially if you're installing from floppies!), see +ABOUT.TXT. For installation instructions, see the INSTALL.TXT and +HARDWARE.TXT files. + +For the latest of these 5.0-current snapshots, you should always see: + + ftp://current.FreeBSD.org/pub/FreeBSD + +If you wish to get the latest post-4.x-RELEASE technology. + +Table of contents: +------------------ +1. What's new since the 4.0/5.0 branch + 1.1 KERNEL CHANGES + 1.2 SECURITY FIXES + 1.3 USERLAND CHANGES + +2. Supported Configurations + 2.1 Disk Controllers + 2.2 Ethernet cards + 2.3 FDDI + 2.4 ATM + 2.5 Misc + +3. Obtaining FreeBSD + 3.1 FTP/Mail + 3.2 CDROM + +4. Upgrading from previous releases of FreeBSD + +5. Reporting problems, making suggestions, submitting code + +6. Acknowledgments + + +1. What's new since the 4.0/5.0 branch +-------------------------------------- +All changes described here are unique to the 5.0 branch unless +specifically marked as [MERGED] features. + + +1.1. KERNEL CHANGES +------------------- + +A new event notification facility called kqueue was added to the +FreeBSD kernel. This is a new interface which is able to replace +poll/select, offering improved performance, as well as the ability +to report many different types of events. Support for monitoring +changes in sockets, pipes, fifos, and files are present, as well as +for signals and processes. [MERGED] + +Support for named extended attributes was added to the FreeBSD kernel. +This allows the kernel, and appropriately privileged userland processes, +to tag files and directories with attribute data. Extended attributes +were added to support the TrustedBSD Project, in particular ACLs, +capability data, and mandatory access control labels. + +POSIX.1b Shared Memory Objects are now supported. The implementation +uses regular files, but automatically enables the MAP_NOSYNC flag +when they are mmap(2)ed. [MERGED] + +Added support for PCI Ethernet adapters based on the National Semiconductor +DP83815 chipset, including the NetGear FA312-TX. + +Due to a licensing change, softupdates have been integrated into the +main portion of the kernel source tree. As a consequence, softupdates +are now available with the GENERIC kernel. [MERGED] + +ipfilter has been updated to 3.4.16. [MERGED] + +The tap driver, a virtual Ethernet device driver for bridged +configurations, has been added. [MERGED] + +accept_filters, a kernel feature to reduce overheads when accepting +and reading new connections on listening sockets, has been added. +[MERGED] + +The ata(4) driver now has support for ATA100 controllers. In +addition, it now supports the ServerWorks ROSB4 ATA33 chipset, the CMD +648 ATA66 and CMD 649 ATA100 chipsets, and the Cyrix 5530. [MERGED] + +The ata(4) driver now has support for tagged queuing, which is +enabled by the ATA_ENABLE_TAGS option. [MERGED] + +The ata(4) driver now has support for ATA "pseudo" RAID controllers as +the Promise Fasttrak and HighPoint HPT370 controllers. [MERGED] + +AlphaServer 1200 ("Tincup") has been tested and works OK. Currently it does +not want to boot from CD or floppy but a transplanted disk that was +installed on another Alpha works well. [MERGED] + +The ti(4) driver now supports the Alteon AceNIC 1000baseT Gigabit +Ethernet and Netgear GA620T 1000baseT Gigabit cards. [MERGED] + +SMP support has been largely reworked, incorporating code from BSD/OS +5.0. One of the main features of SMPng ("SMP Next Generation") is to +allow more processes to run in kernel, without the need for spin locks +that can dramatically reduce the efficiency of multiple processors. +Interrupt handlers now have contexts associated with them that allow +them to be blocked, which reduces the need to lock out interrupts. + +The kernel and modules have been moved to the directory /boot/kernel, +so they can be easily manipulated together. The boot loader has been +updated to make this change as seamless as possible. + +A filesystem snapshot capability has been added to FFS. Details can +be found in /usr/src/sys/ufs/ffs/README.snapshot. + +Softupdates for FFS have received some bug fixes and enhancements. + +A bug in FFS that could cause superblock corruption on very large +filesystems has been corrected. [MERGED] + +The ng_mppc(4) and ng_bridge(4) node types have been added to the +netgraph subsystem. The ng_ether(4) node is now dynamically loadable. +Miscellaneous bug fixes and enhancements have also been made. [MERGED] + +The pcn(4) driver, which supports the AMD PCnet/FAST, PCnet/FAST+, +PCnet/FAST III, PCnet/PRO, PCnet/Home, and HomePNA adapters, has been added. +Although these cards are already supported by the lnc(4) driver, the pcn +driver runs these chips in 32-bit mode and uses the RX alignment feature to +achieve zero-copy receive. This driver is also machine-independent, +so it will work on both the i386 and alpha platforms. The lnc driver +is still needed to support non-PCI cards. [MERGED] + +The ed(4) driver is now also supported on the Alpha. + +A bug in the ed(4) driver that could cause panics with very short +packets and BPF or bridging active has been fixed. + +The pcm(4) driver now supports the ESS Solo 1, Maestro-1, Maestro-2, +and Maestro-2e; Forte Media fm801, ESS Maestro-2e, and VIA +Technologies VT82C686A sound card/chipsets, and has received some +other updates. [MERGED] A driver for the ESS Maestro-3/Allegro has +been added, however due to the amount of GPL firmware included, it +will only be built as a module. [MERGED] Separate drivers for the +SoundBlaster 8 and Soundblaster 16 now replace an older, unified +driver. [MERGED] A driver for the CMedia CMI8338/CMI8738 sound chips +has been added. A driver for the CS4281 sound chip has been +added. [MERGED] + +Replace the PQ_*CACHE options with a single PQ_CACHESIZE option to be +set to the cache size in kilobytes. The old options are still +supported for backwards compatibility. [MERGED] + +The ahc(4) driver has been updated. Among various improvements are +improved compatibility with chips in "RAID Port" mode and systems with +AAA and ARO cards installed, as well as performance improvements. +Some bugs were also fixed, including a rare hang on Ultra2/U160 +controllers. [MERGED] + +ACPI support has been merged in from the FreeBSD-ACPI project. + +devfs(5), which allows entries in the /dev directory to be built +automatically and supports more flexible attachment of devices, has +been largely reworked. devfs(5) is configured into the GENERIC +kernel. + +Write combining for crashdumps has been implemented. This feature +is useful when write caching is disabled on both SCSI and IDE disks, +where large memory dumps could take up to an hour to complete. [MERGED] + +The bktr(4) driver has been updated to 2.15. New tuner types have +been added, and improvements to the KLD module and to memory +allocation have been made. [MERGED] + +The bktr(4) driver has been updated to 2.17. This fixes bugs in devfs +when unloading and reloading, and syncs with some NetBSD +changes. [MERGED] + +The bktr(4) driver has been updated to 2.18. This adds support for +new Hauppauge Model 44xxx WinTV Cards (the ones with no audio mux). + +Extremely large swap areas (>67 GB) no longer panic the system. + +The Inode Filesystem (IFS) has been added; more information can be +found in /usr/src/sys/ufs/ifs/README. + +The cd(4) driver now has support for write operations. This allows +writing to DVD-RAM, PD and similar drives that probe as CD devices. +Note that change affects only random-access writeable devices, not +sequential-only writeable devices such as CD-R drives, which are +supported by cdrecord. [MERGED] + +The ISO-9660 filesystem now has a hook that supports a loadable +character conversion routine. The sysutils/cd9660_unicode port +contains a set of common conversions. [MERGED] + +Support for threads under Linux emulation has been added. + +The an(4) driver for Cisco Aironet cards now supports Wired Equivalent +Privacy (WEP) encryption, settable via ancontrol(8). [MERGED] + +A new netgraph node type ng_one2many(4) for multiplexing and +demultiplexing packets over multiple links has been added. [MERGED] + +The DEC3000-series support has been removed from the mfsroot floppy image +so that it fits on a 1.44Mbyte floppy again. As DEC3000 is currently +only usable diskless this should not cause any problems. + +For the same reason SLIP has been removed from the mfsroot image as well. + +Support for AlphaServer 2100A ('Lynx') has been added. + +netgraph(4) has received some updates. + +sbufs, null-terminated string data structures, and their associated +support routines, have been added to the kernel. Details are in +sbuf(9). + +The vinum(4) volume manager has received some bug fixes and enhancements. + +ICMP ECHO and TSTAMP replies are now rate limited. TCP RSTs generated +due to packets sent to open and unopen ports are now limited by +separate counters. Each rate limiting queue now has its own +description. + +ICMP UNREACH_FILTER_PROHIB messages can now RST TCP connections in the +SYN_SENT state if the correct sequence numbers are sent back, as +controlled by the net.inet.tcp.icmp_may_rst sysctl. [MERGED] + +TCP has received some bug fixes for its delayed ACK behavior. [MERGED] + +TCP now supports the NewReno modification to the TCP Fast Recovery +algorithm. This behavior can be controlled via the +net.inet.tcp.newreno sysctl variable. [MERGED] + +TCP now uses a more aggressive timeout for initial SYN segments; this +allows initial connection attempts to be dropped much faster. [MERGED] + +A new sysctl net.inet.ip.check_interface, which is on by default, +causes IP to verify that an incoming packet arrives on an interface +that has an address matching the packet's destination address. [MERGED] + +PECOFF (WIN32 Execution file format) support has been added. + +kernfs(5) is obsolete and has been retired. + +md(4), the memory disk device, has had the functionality of vn(4) +incorporated into it. md(4) devices can now be configured by +mdconfig(8). + +The ray(4) driver, which supports the Webgear Aviator wireless network +cards, has been committed. The operation of ray(4) interfaces can be +modified by raycontrol(8). [MERGED] + +FDDI networking using Digital Equipment DEFPA PCI FDDI adapters is now +supported. + +A new API has been added for sound cards with hardware volume +control. + +A new sysctl 'net.link.ether.inet.log_arp_wrong_iface' to controls the +suppression of logging when ARP replies arrive on the wrong +interface. [MERGED] + +A bug in the NFS client that caused bogus access times with +O_EXCL|O_CREAT opens was fixed. [MERGED] + +The bug that made certain CDROM drives fail to attach when connected +to a SCSI card driven by 'isp' has been fixed. [MERGED] + +Condition variables have now been implemented in the FreeBSD kernel. +See condvar(9) for more details. + +The "make buildkernel" target now gets the name of the +configuration(s) to build from the KERNCONF variable, not KERNEL. It +is no longer required, in some cases, for a "buildworld" to precede a +"buildkernel". (The buildworld is still required when upgrading across +major releases, across binutil upgrades and when config changes +version.) + +The API UP1100 mainboard has been verified to work OK. + +bridge(4) and dummynet(4) have received some enhancements and bug fixes. + +The API CS20 1U high server has been verified to work OK. + +ipfw(8) has a new feature ("me") that allows for packet matching on +interfaces with dynamically-changing IP addresses. [MERGED] + +The isp(4) driver has been updated. [MERGED] + +The ida disk driver now has crashdump support. [MERGED] + +The random(4) device has been rewritten to use the Yarrow algorithm. +It harvests entropy from a variety of interrupt sources, including the +console devices, Ethernet and point-to-point network interfaces, and +mass-storage devices. Entropy from the random(4) device is now +periodically saved to files in /var/db/entropy. + +Kernel code has been added that allows older generation Alpha CPUs +(EV4 and EV5) to emulate instructions of the newer Alpha CPU +generations. This enables the use of binary-only programs like Adobe +Acrobat 4 on EV4 and EV5. + +The fxp(4) driver now requires a "device miibus" entry in the kernel +configuration file. + +A new NFS hash function (based on the Fowler/Noll/Vo hash algorithm) +has been implemented to improve NFS performance by increasing the +efficiency of the nfsnode hash tables. [MERGED] + +The syscons(4) driver now supports keyboard-controlled pasting, by +default bound to Shift-Insert. + + +1.2. SECURITY FIXES +------------------- + +sysinstall(8) now allows the user to select one of three "security +profiles" at install-time. These profiles enable different levels of +system security by enabling or disabling various system services in +rc.conf(5) on new installs. [MERGED] + +A bug in which malformed ELF executable images can hang the system has +been fixed (see security advisory FreeBSD-SA-00:41). [MERGED] + +A security hole in Linux emulation was fixed (see security advisory +FreeBSD-SA-00:42). [MERGED] + +rlogind(8), rshd(8), and fingerd(8) are now disabled by default in +/etc/inetd.conf. This only affects new installations. [MERGED] + +String-handling library calls in many programs were fixed to reduce +the possibility of buffer overflow-related exploits. [MERGED] + +TCP now uses stronger randomness in choosing its initial sequence +numbers (see security advisory FreeBSD-SA-00:52). [MERGED] + +Several buffer overflows in tcpdump(1) were corrected (see security +advisory FreeBSD-SA-00:61). [MERGED] + +A security hole in top(1) was corrected (see security advisory +FreeBSD-SA-00:62). [MERGED] + +A potential security hole caused by an off-by-one-error in +gethostbyname(3) has been fixed (see security advisory +FreeBSD-SA-00:63). [MERGED] + +A potential buffer overflow in the ncurses(3X) library, which could +cause arbitrary code to be run from within systat(1), has been corrected +(see security advisory FreeBSD-SA-00:68). [MERGED] + +A vulnerability in telnetd(8) that could cause it to consume large +amounts of server resources has been fixed (see security advisory +FreeBSD-SA-00:69). [MERGED] + +The "nat deny_incoming" command in ppp(8) now works correctly (see +security advisory FreeBSD-SA-00:70). [MERGED] + +A vulnerability in csh(1)/tcsh(1) temporary files that could allow +overwriting of arbitrary user-writable files has been closed (see +security advisory FreeBSD-SA-00:76). [MERGED] + +The ssh(1) binary is no longer SUID root by default. + +Some fixes were applied to the Kerberos IV implementation related to +environment variables, a possible buffer overrun, and overwriting +ticket files. [MERGED] + +telnet(1) now does a better job of sanitizing its environment. [MERGED] + +Several vulnerabilities in procfs(4) were fixed (see security advisory +FreeBSD-SA-00:77). [MERGED] + +A bug in OpenSSH in which a server was unable to disable ssh-agent or +X11 forwarding was fixed (see security advisory FreeBSD-SA-01:01). +[MERGED] + +A bug in ipfw(8) and ipfw6(8) in which inbound TCP segments could +incorrectly be treated as being part of an "established" connection +has been fixed (see security advisory FreeBSD-SA-01:08). [MERGED] + +A bug in crontab(8) that could allow users to read any file on the +system in valid crontab(5) syntax has been fixed (see security +advisory FreeBSD-SA-01:09). [MERGED] + +A vulnerability in inetd(8) that could allow read-access to the +initial 16 bytes of wheel-accessible files has been fixed (see +security advisory FreeBSD-SA-01:11). [MERGED] + +A bug in periodic(8) that used insecure temporary files has been +corrected (see security advisory FreeBSD-SA-01:12). [MERGED] + +A bug in sort(1) in which an attacker might be able to cause it to +abort processing has been fixed (see security advisory +FreeBSD-SA-01:13). [MERGED] + +To fix a remotely-exploitable buffer overflow, BIND has been updated +to 8.2.3 (see security advisory FreeBSD-SA-01:18). [MERGED] + +OpenSSH now has code to prevent (instead of just mitigating through +connection limits) an attack that can lead to guessing the server key +(not host key) by regenerating the server key when an RSA failure is +detected (see security advisory FreeBSD-SA-01:24). [MERGED] + +A number of programs have had output formatting strings corrected so +as to reduce the risk of vulnerabilities. [MERGED] + +A number of programs that use temporary files now do so more +securely. [MERGED] + +A bug in ICMP that could cause an attacker to disrupt TCP and UDP +"sessions" has been corrected. [MERGED] + +A bug in timed(8), which caused it to crash if send certain malformed +packets, has been corrected (see security advisory +FreeBSD-SA-01:28). [MERGED] + +A bug in rwhod(8), which caused it to crash if send certain malformed +packets, has been corrected (see security advisory +FreeBSD-SA-01:29). [MERGED] + +To prevent some forms of DOS attacks, glob(3) allows specification of +a limit on the number of pathname matches it will return. ftpd(8) now +uses this feature. [MERGED] + + +1.3. USERLAND CHANGES +--------------------- + +cdcontrol(1) now supports a "cdid" command, which calculates and +displays the CD serial number, using the same algorithm used by the CDDB +database. [MERGED] + +mtree(8) now includes support for a file listing pathnames to be excluded +when creating and verifying prototypes. This makes it easier to use +mtree as a part of an intrusion-detection system. [MERGED] + +OpenSSL has been upgraded to 0.9.6. [MERGED] + +OpenSSL now has support for machine-dependent ASM optimizations, +activated by the new MACHINE_CPU Makefile variable. [MERGED] + +The OPIE one-time-password suite has been updated to 2.32. [MERGED] + +OpenSSH has been upgraded to 2.1.0, which provides support for the +SSH2 protocol, including DSA keys. Therefore, OpenSSH users in the US +no longer need to rely on the restrictively-licensed RSAREF toolkit +which is required to handle RSA keys. OpenSSH 2.1 interoperates well +with other SSH2 clients and servers, including the ssh2 port. See +http://www.openssh.com for more details. [MERGED] + +OpenSSH can now authenticate using OPIE passwords in SSH1 mode. +Support is not yet available in SSH2 mode. [MERGED] + +OpenSSH has been upgraded to 2.2.0. ssh-add(1) and ssh-agent(1) can now +handle DSA keys. An sftp server interoperable with ssh.com clients +and others has been added. scp(1) can now handle files >2GB. +Interoperability with other ssh2 clients/servers has been improved. A +new feature to limit the number of outstanding unauthenticated ssh +connections in sshd has been added. [MERGED] + +OpenSSH has been upgraded to 2.3.0. This version adds support for the +Rijndael encryption algorithm. [MERGED] + +PAM support for OpenSSH has been added. + +A long-standing bug in SSH, which sometimes resulted in a dropped +session when an X11-forwarded client was closed, was fixed. + +Kerberos compatability has been added to OpenSSH. [MERGED] + +OpenSSH has been modified to be more resistant to traffic analysis by +requiring that "non-echoed" characters are still echoed back in a null +packet, as well as by padding passwords sent so as not to hint at +password lengths. [MERGED] + +Support for USB devices was added to the GENERIC kernel and to the +installation programs to support USB devices out of the box. Note that +SRM does not support USB devices at the moment, so you must still use +an AT keyboard if you are not using a serial console. [MERGED] + +The csh(1) shell has been replaced by tcsh(1), although it can still +be run as csh(1). tcsh has been updated to version 6.10. [MERGED] + +The more(1) command has been replaced by less(1), although it can still +be run as more(1). [MERGED] + +ls(1) can produce colorized listings with the -G flag (and appropriate +terminal support). [MERGED] + +sendmail upgraded from version 8.9.3 to version 8.11.3. Important changes +include: new default file locations (see +/usr/src/contrib/sendmail/cf/README); newaliases is limited to root and +trusted users; STARTTLS encryption; and the MSA port (587) is turned on by +default. See /usr/src/contrib/sendmail/RELEASE_NOTES for more +information. [MERGED] + +mail.local(8) is no longer installed as a set-user-id binary. If you are +using a /etc/mail/sendmail.cf from the default sendmail.cf included with +FreeBSD any time after 3.1.0, you are fine. If you are using a +hand-configured sendmail.cf and mail.local for delivery, check to make sure +the F=S flag is set on the Mlocal line. Those with .mc files who need to +add the flag can do so by adding the following line to their your .mc file +and regenerating the sendmail.cf file: + MODIFY_MAILER_FLAGS(`LOCAL', `+S')dnl +Note that FEATURE(`local_lmtp') already does this. [MERGED] + +The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY +commands. [MERGED] + +vacation(1) has been updated to use the version included with +sendmail. [MERGED] + +The sendmail(8) configuration building tools are installed in +/usr/share/sendmail/cf/. [MERGED] + +New make.conf options: SENDMAIL_MC and SENDMAIL_ADDITIONAL_MC. See +/etc/defaults/make.conf for more information. [MERGED] + +The Makefile in /etc/mail now supports: the new SENDMAIL_MC make.conf +option; the ability to build .cf files from .mc files; generalized map +rebuilding; rebuilding the aliases file; and the ability to stop, start, +and restart sendmail. [MERGED] + +sysinstall(8) now properly preserves /etc/mail during a binary +upgrade. [MERGED] + +awk has been upgraded from gawk-3.0.4 to gawk-3.0.6. This fixes a number +of non-critical bugs and includes a few performance tweaks. [MERGED] + +routed(8) has been updated to version 2.22. [MERGED] + +The truncate(1) utility, which truncates or extends the length +of files, has been added. [MERGED] + +syslogd(8) can take a -n option to disable DNS queries for every +request. [MERGED] + +kenv(1), a command to dump the kernel environment, has been added. +[MERGED] + +The behavior of periodic(8) is now controlled by /etc/defaults/periodic.conf +and /etc/periodic.conf. [MERGED] + +logger(1) can now send messages directly to a remote syslog. [MERGED] + +which(1) is now a C program, rather than a Perl script. + +killall(1) is now a C program, rather than a Perl script. As a +result, killall's -m option now uses the regular expression syntax of +regex(3), rather than that of perl(1). [MERGED] + +killall(1) now allows non-root users to kill SUID root processes that +they started. + +finger(1) now has the ability to support fingering aliases, via the +finger.conf(5) file. [MERGED] + +finger(1) now has support for a .pubkey file. + +nsswitch support has been merged from NetBSD. By creating an +nsswitch.conf(5) file, FreeBSD can be configured so that various +databases such as passwd(5) and group(5) can be looked up using flat +files, NIS, or Hesiod. The old hosts.conf(5) file is no longer used. + +sshd X11Forwarding is now turned on by default on server (any risk is +to the client, where it is already disabled by default). + +RSA Security has waived all patent rights to the RSA algorithm (two +weeks before the patent was due to expire). As a result, the native +OpenSSL implementation of the RSA algorithm is now activated by +default, and the rsaref port and librsaUSA are no longer +required for USA residents. [MERGED] + +sshd is now enabled by default on new installs. [MERGED] + +perl has been updated to version 5.6.0. + +Binutils have been upgraded to 2.10.1. [MERGED] + +libreadline has been upgraded to 4.1. [MERGED] + +The ifconfig(8) command can set the link-layer address of an interface. +[MERGED] + +setproctitle(3) has been moved from libutil to libc. [MERGED] + +chio(1) now has the ability to specify elements by volume tag instead +of by their physical location as well as the ability to return an +element to its previous location. [MERGED] + +sed(1) now takes a -E option for extended regular expression +support. [MERGED] + +ln(1) now takes an -i option to request user confirmation before +overwriting an existing file. [MERGED] + +Version numbers of installed packages have a new (backward-compatible) +syntax, which supports the "PORTREVISION" and "PORTEPOCH" variables in +ports collection makefiles. These changes help keep track of changes +in the ports collection entries such as security patches or +FreeBSD-specific updates, which aren't reflected in the original, +third-party software distributions. pkg_version(1) can now compare +these new-style version numbers. [MERGED] + +cvs(1) has been updated to 1.11. [MERGED] + +tcpdump(1) has received some updates and bug fixes. [MERGED] + +User-land ppp(8) has received a number of updates and bug fixes. [MERGED] + +To improve performance and disk utilization, the "ports skeletons" in +the FreeBSD Ports Collection have been restructured. Installed ports +and packages should not be affected. [MERGED] + +make(1) has gained the :C/// (regexp substitution), :L (lowercase), +and :U (uppercase) variable modifiers. These were added to reduce the +differences between the FreeBSD and OpenBSD/NetBSD make programs. [MERGED] + +Bugs in make(1), among which include broken null suffix behavior, bad +assumptions about current directory permissions, and potential buffer +overflows, have been fixed. [MERGED] + +fsck wrappers have been imported; this feature provides infrastructure +for fsck(8) to work on different types of filesystems (analogous to +mount(8) and mount_*(8)). + +ncurses has been updated to ncurses-5.1-20001009. [MERGED] + +gperf has been updated to 2.7.2. [MERGED] + +style.perl.7, a style guide for Perl code in the FreeBSD base system, +has been added. + +The ISC library from the BIND distribution is now built as +libisc. [MERGED] + +The "in use" percentage metric displayed by netstat(1) now really +reflects the percentage of network mbufs used. [MERGED] + +mergemaster(8) has gained some new features, has been cleaned up +somewhat, and is now more cross-platform friendly. + +mergemaster(8) now sources an /etc/mergemaster.rc file and also +prompts the user to run recommended commands (such as "newaliases") as +needed. [MERGED] + +The compiler chain now uses the FSF-supplied C/C++ runtime +initialization code. This change brings about better compatibility +with code generated from the various egcs and gcc ports, as well as +the stock public FSF source. [MERGED] + +The threads library has gained some signal handling changes, bug +fixes, and performance enhancements (including zero system call thread +switching). gdb(1) thread support has been updated to match these +changes. [MERGED] + +chflags(1) has moved from /usr/bin to /bin. + +Use of the CSMG_* macros no longer require inclusion of <sys/param.h>. + +IP Filter is now supported by the rc.conf(5) boot-time configuration +and initialization. [MERGED] + +The lastlogin(1) utility, which prints the last login time of each +user, has been imported from NetBSD. [MERGED] + +newfs(1) now implements write combining, which can make creation of +new filesystems up to seven times faster. [MERGED] + +A number of buffer overflows in config(8) have been fixed. [MERGED] + +pwd(1) can now double as realpath(1), a program to resolve pathnames +to their underlying physical paths. [MERGED] + +file(1) has been contribify-ed, and imported as version 3.33. [MERGED] + +stty(1) now has support for an "erase2" control character, so that +both "delete" and "backspace" can be used to erase characters. [MERGED] + +The ibcs2(8), linux(8), osf1(8), and svr4(8) scripts, whose sole +purpose was to load emulation kernel modules, have been removed. The +kernel module system will automatically load them as needed to fulfill +dependencies. + +top(1) will now use the full width of its tty. + +groff(1) and its related utilities have been updated to FSF version +1.16.1. [MERGED] + +A number of cleanups and enhancements have been applied to the PCI +subsystem. /usr/share/misc/pci_vendors now contains a vendor/device +database, which can be used by pciconf(8). + +indent(1) has gained some new formatting options. [MERGED] + +sysinstall now uses some more intuitive defaults thanks to some new +dialog support functions. [MERGED] + +The default root partition in sysinstall is now 100MB on the i386 and +110MB on the alpha. + +gcc has been updated to 2.95.3. + +Shortly after the receipt of a SIGINFO signal (normally control-T from +the controlling tty), fsck_ffs will now output a line indicating the +current phase number and progress information relevant to the current +phase. [MERGED] + +fsck_ffs now supports background filesystem checks to mounted FFS +filesystems with the -B option (softupdates must be enabled on these +filesystems). + +Catching up with most other network utilities in the base system, +lpr(1), lpd(8), syslogd(8), and logger(1) are now all IPv6-capable. +[MERGED] + +rm(1) -v now displays the entire pathname of a file being +removed. [MERGED] + +lpr(1), lpq(1), and lpd(8) have received a few minor +enhancements. [MERGED] + +pkg_update(1), a utility to update installed packages and update their +dependencies, has been added. [MERGED] + +pkg_info(1) now supports globbing against names of installed packages. +The -G option disables this behavior, and the -x option causes regular +expression matching instead of shell globbing. [MERGED] + +If the first argument fo ancontrol(8) or wicontrol(8) doesn't start +with a "-", it is assumed to be an interface. + +rdist(1) has been retired. + +Kerberos IV has been updated to 1.0.5. [MERGED] + +Heimdal has been updated to 0.3e. [MERGED] + +ppp(8) has gained the tcpmssfixup option, which adjusts outgoing TCP +SYN packets so that the maximum receive segment size is no larger than +allowed by the interface MTU. + +libcrypt and libdescrypt have been unified to provide a configurable +password authentication hash library. Both the md5 and des hash methods +are provided unless the des hash is specifically compiled out. + +passwd(1) and pw(8) now select the passwd hash algorithm at run time. See +the "passwd_format" attribute in /etc/login.conf. + +In preparation for meeting SUSv2/POSIX <sys/select.h> requirements, +'struct selinfo' and related functions have been moved to +<sys/selinfo.h>. + +gcc now uses a unified libgcc rather than a separate one for threaded +and non-threaded programs. /usr/lib/libgcc_r.a can be removed. [MERGED] + +syslogd(8) now supports a "LOG_CONSOLE" facility (disabled by +default), which can be used to log /dev/console output. [MERGED] + +rpcgen now uses /usr/bin/cpp (as on NetBSD), not /usr/libexec/cpp. + +Boot-time syscons configuration was moved to a machine-independent +rc.syscons. [MERGED] + +burncd(8) now supports a -m option for multisession mode (the default +behavior now is to close disks as single-session). A -l option to +take a list of image files from a filename was also added; '-' can be +used as a filename for stdin. [MERGED] + +dmesg(8) now has a -a option to show the entire message buffer, +including syslog records and /dev/console output. [MERGED] + +In /etc/ssh/sshd_config, the ConnectionsPerPeriod parameter has been +deprecated in favor of MaxStartups. [MERGED] + +cdcontrol(1) now uses the CDROM environment variable to pick a default +device. [MERGED] + +sysctl(8) now supports a -N option to print out variable names only. + +All packages and ports now contain an "origin" directive, which makes +it easier for programs like pkg_version(1) to determine the directory +from which a package was built. [MERGED] + +sysinstall(8) now lives in /usr/sbin, which simplifies the installation +process. The sysinstall(8) manpage is also installed in a more +consistent fashion now. + +config(8) is now better about converting various warnings that should +have been errors into actual fatal errors with an exit code. This +ensures that that 'make buildkernel' doesn't quietly ignore them and +build a bogus kernel without a human to read the errors. [MERGED] + +pkg_create(1) and pkg_add(1) can now work with packages that have +been compressed using bzip2(1). pkg_add(1) will use the +PACKAGEROOT environment variable to determine a mirror site for new +packages. [MERGED] + +pkg_info(1) can now accept a -g flag for verifying an installed +package against its recorded checksums (to see if it's been modified +post-installation). Naturally, this mechanism is only as secure as +the contents of /var/db/pkg if it's to be used for auditing +purposes. [MERGED] + +libc is now thread-safe by default; libc_r contains only thread functions. + +find(1) now takes the -empty flag, which returns true if a file or +directory is empty. [MERGED] + +find(1) now takes the -iname and -ipath primaries for case-insensitive +matches, and the -regexp and -iregexp primaries for regular-expression +matches. The -E flag now enables extended regular +expressions. [MERGED] + +tftpd(8) now takes the -c and -C options, which allow the server to +chroot(2) based on the IP address of the connecting client. tftp(1) +and tftpd(8) can now transfer files larger than 65535 blocks. [MERGED] + +vidcontrol(1) now accepts a -g parameter to select custom text +geometry in the VESA_800x600 raster text mode. [MERGED] + +ldconfig(8) now checks directory ownerships and permissions for +greater security; these checks can be disabled with the -i +flag. [MERGED] + +The rfork_thread(3) library call has been added as a helper function +to rfork(2). Using this function should avoid the need to implement +complex stack swap code. [MERGED] + +Significant additions have been made to internationalization support; +FreeBSD now has complete locale support for the LC_MONETARY, +LC_NUMERIC, and LC_MESSAGES categories. A number of applications have +been updated to take advantage of this support. + +A compat4x distribution has been added for compatibility with FreeBSD +4-STABLE. + +The compat3x distribution has been updated to include libraries +present in FreeBSD 3.5.1-RELEASE. [MERGED] + +savecore(8) now supports a -k option to prevent clearing a crash dump +after saving it. It also attempts to avoid writing large stretches of +zeros to crash dump files to save space and time. [MERGED] + +When requested to delete multiple packages, pkg_delete(1) will now +attempt to remove them in dependency order rather than the order +specified on the command line. [MERGED] + +pkg_delete(1) now can perform glob/regexp matching of package names. +In addition, it supports the -a option for removing all packages and +the -i option for rm(1)-style interactive confirmation. [MERGED] + +tar(1) now supports the TAR_RSH variable, principally to enable the +use of ssh(1) as a transport. [MERGED] + +disklabel(8) now supports partition sizes expressed in kilobytes, +megabytes, or gigabytes, in addition to sectors. [MERGED] + +The pseudo-random number generator implemented by rand(3) has been +improved to provide less biased results. + +login(1) now exports environment variables set by PAM +modules. [MERGED] + +wall(1) now supports a -g flag to write a message to all users of a +given group. + +The new CPUTYPE make.conf variable controls the compilation of +processor-specific optimizations in various pieces of code such as +OpenSSL. [MERGED] + +The default value for the CVS_RSH variable (used by cvs(1)) is now +ssh, rather than rsh. [MERGED] + +bc has been updated from 1.04 to 1.06. [MERGED] + +ipfstat(8) now supports the -t option to turn on a top(1)-like +display. [MERGED] + +The dreaded 'going nowhere without my init' bug that manifested itself +while installing on hardware that had labeled disks connected (e.g. +with Tru64 on it) has been fixed. [MERGED] + +pkg_sign(1) and pkg_check(1) have been added to digitally sign and +verify the signatures on binary package files. [MERGED] + +/usr/src/share/examples/BSD_daemon/ now contains a scalable Beastie +graphic. [MERGED] + +dump(8) now supports inheritance of the "nodump" flag down a +hierarchy. [MERGED] + +The ISC DHCP client has been updated to 2.0pl5. [MERGED] + +split(1) now has the ability to split a file longer than 2GB. [MERGED] + +units(1) has received some updates and bugfixes. [MERGED] + +netstat(1) now keeps track of input and output packets on a +per-address basis for each interface. [MERGED] + +As part of an ongoing process, many manual pages were improved, both +in terms of their formatting markup and in their content. [MERGED] + +pkg_create(1) now records dependencies in dependency order rather than +in the order specified on the command line. This improves the +functioning of "pkg_add -r". [MERGED] + +"lprm -" now works for remote printer queues. [MERGED] + +ftpd(8) now supports a -r flag for read-only mode and a -E flag to +disable EPSV. It also has some fixes to reduce information leakage +and the ability to specify compile-time port ranges. [MERGED] + +ping(8) now supports a -m option to set the TTL of outgoing packets. + +A version of Transport Independent RPC (TI-RPC) has been imported. + +rpcbind(8) has replaced portmap(8). + +NFS now works over IPv6. + +lockd has been imported from NetBSD. + +rc(8) now has an framework for handling dependencies between +rc.conf(5) variables. [MERGED] + + +2. Supported Configurations +--------------------------- + +For an extensive overview of supported Alpha machines/mainboards please refer +to the HARDWARE.TXT file. + +2.1. Disk Controllers +--------------------- +IDE +ATA + +Adaptec 1535 ISA SCSI controllers +Adaptec 154x series ISA SCSI controllers +Adaptec AIC7850, AIC7860, AIC7880, AIC789x, on-board SCSI controllers. + +AdvanSys SCSI controllers (all models). + +BusLogic MultiMaster controllers: + +[ Please note that BusLogic/Mylex "Flashpoint" adapters are NOT yet supported ] + +BusLogic MultiMaster "W" Series Host Adapters: + BT-948, BT-958, BT-958D +BusLogic MultiMaster "C" Series Host Adapters: + BT-946C, BT-956C, BT-956CD, BT-445C, BT-747C, BT-757C, BT-757CD, BT-545C, + BT-540CF +BusLogic MultiMaster "S" Series Host Adapters: + BT-445S, BT-747S, BT-747D, BT-757S, BT-757D, BT-545S, BT-542D, BT-742A, + BT-542B +BusLogic MultiMaster "A" Series Host Adapters: + BT-742A, BT-542B + +AMI FastDisk controllers that are true BusLogic MultiMaster clones are also +supported. + +DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and +SmartRAID IV SCSI/RAID controllers are supported. The DPT SmartRAID/CACHE V +is not yet supported. + +AMI MegaRAID Express and Enterprise family RAID controllers: + MegaRAID Series 418 + MegaRAID Enterprise 1200 (Series 428) + MegaRAID Enterprise 1300 (Series 434) + MegaRAID Enterprise 1400 (Series 438) + MegaRAID Enterprise 1500 (Series 467) + MegaRAID Enterprise 1600 (Series 471) + MegaRAID Elite 1500 (Series 467) + MegaRAID Elite 1600 (Series 493) + MegaRAID Express 100 (Series 466WS) + MegaRAID Express 200 (Series 466) + MegaRAID Express 300 (Series 490) + MegaRAID Express 500 (Series 475) + Dell PERC + Dell PERC 2/SC + Dell PERC 2/DC + HP NetRAID-1si + HP NetRAID-3si + HP Embedded NetRAID +Booting from these controllers is supported, but not possible due to +SRM limitations. + +Mylex DAC960 and DAC1100 RAID controllers with 2.x, 3.x, 4.x and 5.x +firmware: + DAC960P + DAC960PD + DAC960PDU + DAC960PL + DAC960PJ + DAC960PG + AcceleRAID 150 + AcceleRAID 250 + eXtremeRAID 1100 +This list includes controllers sold by Digital/Compaq in Alpha systems +in the StorageWorks family, eg. KZPSC, KZPAC. Booting from these +controllers is supported when recognised by SRM (typically Digital/ +Compaq models only, and only in systems where they are supported). +EISA adapters are not supported. + +SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C820, 53C825a, +53C860, 53C875, 53C875j, 53C885, 53C895 and 53C896 PCI SCSI controllers: + ASUS SC-200 + Data Technology DTC3130 (all variants) + Diamond FirePort (all) + NCR cards (all) + Symbios cards (all) + Tekram DC390W, 390U and 390F + Tyan S1365 + +QLogic 1020, 1040, 1040B, 1080 and 1240 SCSI Host Adapters. +QLogic 2100 Fibre Channel Adapters (private loop only). + +With all supported SCSI controllers, full support is provided for +SCSI-I & SCSI-II peripherals, including hard disks, optical disks, +tape drives (including DAT and 8mm Exabyte), medium changers, processor +target devices and CDROM drives. WORM devices that support CDROM commands +are supported for read-only access by the CDROM driver. WORM/CD-R/CD-RW +writing support is provided by cdrecord, which is in the ports tree. + +The following CD-ROM type systems are supported at this time: +(cd) SCSI interface +(acd) ATAPI IDE interface + +2.2. Ethernet cards +------------------- + +Adaptec Duralink PCI Fast Ethernet adapters based on the Adaptec +AIC-6915 Fast Ethernet controller chip, including the following: + ANA-62011 64-bit single port 10/100baseTX adapter + ANA-62022 64-bit dual port 10/100baseTX adapter + ANA-62044 64-bit quad port 10/100baseTX adapter + ANA-69011 32-bit single port 10/100baseTX adapter + ANA-62020 64-bit single port 100baseFX adapter + +Allied-Telesis AT1700 and RE2000 cards + +Alteon Networks PCI Gigabit Ethernet NICs based on the Tigon 1 and Tigon 2 +chipsets, including the following: + Alteon AceNIC (Tigon 1 and 2) + 3Com 3c985-SX (Tigon 1 and 2) + Netgear GA620 (Tigon 2) + Silicon Graphics Gigabit Ethernet + DEC/Compaq EtherWORKS 1000 + NEC Gigabit Ethernet + +AMD PCnet/PCI (79c970 & 53c974 or 79c974) +AMD PCnet/FAST, PCnet/FAST+, PCnet/FAST III, PCnet/PRO, +PCnet/Home, and HomePNA. + +SMC Elite 16 WD8013 Ethernet interface, and most other WD8003E, +WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT +based clones. SMC Elite Ultra. SMC Etherpower II. + +RealTek 8129/8139 Fast Ethernet NICs including the following: + Allied Telesyn AT2550 + Allied Telesyn AT2500TX + Genius GF100TXR (RTL8139) + NDC Communications NE100TX-E + OvisLink LEF-8129TX + OvisLink LEF-8139TX + Netronix Inc. EA-1210 NetEther 10/100 + KTX-9130TX 10/100 Fast Ethernet + Accton "Cheetah" EN1207D (MPX 5030/5038; RealTek 8139 clone) + SMC EZ Card 10/100 PCI 1211-TX + +Lite-On 82c168/82c169 PNIC Fast Ethernet NICs including the following: + LinkSys EtherFast LNE100TX + NetGear FA310-TX Rev. D1 + Matrox FastNIC 10/100 + Kingston KNE110TX + +Macronix 98713, 98713A, 98715, 98715A and 98725 Fast Ethernet NICs + NDC Communications SFA100A (98713A) + CNet Pro120A (98713 or 98713A) + CNet Pro120B (98715) + SVEC PN102TX (98713) + +Macronix/Lite-On PNIC II LC82C115 Fast Ethernet NICs including the following: + LinkSys EtherFast LNE100TX Version 2 + +Winbond W89C840F Fast Ethernet NICs including the following: + Trendware TE100-PCIE + +VIA Technologies VT3043 "Rhine I" and VT86C100A "Rhine II" Fast Ethernet +NICs including the following: + Hawking Technologies PN102TX + D-Link DFE-530TX + AOpen/Acer ALN-320 + +Silicon Integrated Systems SiS 900 and SiS 7016 PCI Fast Ethernet NICs + +National Semiconductor DP83815 Fast Ethernet NICs including the following: + NetGear FA312-TX + +Sundance Technologies ST201 PCI Fast Ethernet NICs including +the following: + D-Link DFE-550TX + +SysKonnect SK-984x PCI Gigabit Ethernet cards including the following: + SK-9841 1000baseLX single mode fiber, single port + SK-9842 1000baseSX multimode fiber, single port + SK-9843 1000baseLX single mode fiber, dual port + SK-9844 1000baseSX multimode fiber, dual port + +Texas Instruments ThunderLAN PCI NICs, including the following: + Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100 Dual-Port + Compaq Netelligent 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, 10/100 TX UTP + Compaq NetFlex 3P, 3P Integrated, 3P w/ BNC + Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX UTP + Racore 8165 10/100baseTX + Racore 8148 10baseT/100baseTX/100baseFX multi-personality + +ADMtek Inc. AL981-based PCI Fast Ethernet NICs +ADMtek Inc. AN985-based PCI Fast Ethernet NICs +ADMtek Inc. AN986-based USB Ethernet NICs including the following: + LinkSys USB100TX + Billionton USB100 + Melco Inc. LUA-TX + D-Link DSB-650TX + SMC 2202USB + +CATC USB-EL1210A-based USB Ethernet NICs including the following: + CATC Netmate + CATC Netmate II + Belkin F5U111 + +Kawasaki LSI KU5KUSB101B-based USB Ethernet NICs including +the following: + LinkSys USB10T + Entrega NET-USB-E45 + Peracom USB Ethernet Adapter + 3Com 3c19250 + ADS Technologies USB-10BT + ATen UC10T + Netgear EA101 + D-Link DSB-650 + SMC 2102USB + SMC 2104USB + Corega USB-T + +ASIX Electronics AX88140A PCI NICs, including the following: + Alfa Inc. GFC2204 + CNet Pro110B + +DEC EtherWORKS III NICs (DE203, DE204, and DE205) +DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422) +DEC DC21040, DC21041, or DC21140 based NICs (SMC Etherpower 8432T, DE245, etc) + +Davicom DM9100 and DM9102 PCI Fast Ethernet NICs, including the +following: + Jaton Corporation XpressNet + +Fujitsu MB86960A/MB86965A + +HP PC Lan+ cards (model numbers: 27247B and 27252A). + +Intel EtherExpress 16 +Intel EtherExpress Pro/10 +Intel EtherExpress Pro/100B PCI Fast Ethernet + +Isolan AT 4141-0 (16 bit) +Isolink 4110 (8 bit) + +Novell NE1000, NE2000, and NE2100 Ethernet interface. + +PCI network cards emulating the NE2000: RealTek 8029, NetVin 5000, +Winbond W89C940, Surecom NE-34, VIA VT86C926. + +3Com 3C501 cards + +3Com 3C503 Etherlink II + +3Com 3c505 Etherlink/+ + +3Com 3C507 Etherlink 16/TP + +3Com 3C509, 3C579, 3C590/592/595/900/905/905B/905C PCI +(Fast) Etherlink III / (Fast) Etherlink XL + +3Com 3c980/3c980B Fast Etherlink XL server adapter + +3Com 3cSOHO100-TX OfficeConnect adapter + +Toshiba Ethernet cards + +Crystal Semiconductor CS89x0-based NICs, including: + IBM Etherjet ISA + +Note that NO token ring cards are supported at this time as we're +still waiting for someone to donate a driver for one of them. Any +takers? + + +2.3. FDDI +--------- + +Digital Equipment DEFPA PCI adapters are supported., + + +2.4. ATM +-------- + + o ATM Host Interfaces + - FORE Systems, Inc. PCA-200E ATM PCI Adapters + - Efficient Networks, Inc. ENI-155p ATM PCI Adapters + + o ATM Signaling Protocols + - The ATM Forum UNI 3.1 signaling protocol + - The ATM Forum UNI 3.0 signaling protocol + - The ATM Forum ILMI address registration + - FORE Systems' proprietary SPANS signaling protocol + - Permanent Virtual Channels (PVCs) + + o IETF "Classical IP and ARP over ATM" model + - RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5" + - RFC 1577, "Classical IP and ARP over ATM" + - RFC 1626, "Default IP MTU for use over ATM AAL5" + - RFC 1755, "ATM Signaling Support for IP over ATM" + - RFC 2225, "Classical IP and ARP over ATM" + - RFC 2334, "Server Cache Synchronization Protocol (SCSP)" + - Internet Draft draft-ietf-ion-scsp-atmarp-00.txt, + "A Distributed ATMARP Service Using SCSP" + + o ATM Sockets interface + + +2.5. Misc +--------- + +AST 4 port serial card using shared IRQ. + +ARNET 8 port serial card using shared IRQ. +ARNET (now Digiboard) Sync 570/i high-speed serial. + +Boca BB1004 4-Port serial card (Modems NOT supported) +Boca IOAT66 6-Port serial card (Modems supported) +Boca BB1008 8-Port serial card (Modems NOT supported) +Boca BB2016 16-Port serial card (Modems supported) + +Comtrol Rocketport card. + +Cyclades Cyclom-y Serial Board. + +STB 4 port card using shared IRQ. + +SDL Communications Riscom/8 Serial Board. +SDL Communications RISCom/N2 and N2pci high-speed sync serial boards. + +Stallion multiport serial boards: EasyIO, EasyConnection 8/32 & 8/64, +ONboard 4/16 and Brumby. + +Specialix SI/XIO/SX ISA, PCI serial expansion cards/modules. + +Advance Asound 100, 110 and Logic ALS120 +Crystal Semiconductor CS461x/462x/428x +ENSONIQ AudioPCI ES1370/1371 +ESS ES1868, ES1869, ES1879 and ES1888 +ESS Maestro-1, Maestro-2, and Maestro-2E +ForteMedia fm801 +Gravis UltraSound MAX/PnP +MSS/WSS Compatible DSPs +NeoMagic 256AV/ZX +OPTi 931/82C931 +SoundBlaster, Soundblaster Pro, Soundblaster AWE-32, Soundblaster AWE-64 +Trident 4DWave DX/NX +VIA Technologies VT82C686A +Yamaha DS1 and DS1e +(newpcm driver) + +Connectix QuickCam +Matrox Meteor Video frame grabber +Creative Labs Video Spigot frame grabber +Cortex1 frame grabber +Hauppauge Wincast/TV boards (PCI) +STB TV PCI +Intel Smart Video Recorder III +Various Frame grabbers based on Brooktree Bt848 / Bt878 chip. + +HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R drives. + +PS/2 mice + +Standard PC Joystick + +X-10 power controllers + +GPIB and Transputer drivers. + +Genius and Mustek hand scanners. + +Xilinx XC6200 based reconfigurable hardware cards compatible with +the HOT1 from Virtual Computers (www.vcc.com) + +Support for Dave Mills experimental Loran-C receiver. + +Lucent Technologies WaveLAN/IEEE 802.11 ISA standard speed +(2Mbps) and turbo speed (6Mbps) wireless network adapters and workalikes +(NCR WaveLAN/IEEE 802.11, Cabletron RoamAbout 802.11 DS). Note: the +ISA versions of these adapters are actually PCMCIA cards combined with +an ISA to PCMCIA bridge card, so both kinds of devices work with +the same driver. + +Aironet 4500/4800 series 802.11 wireless adapters. The PCI and ISA +models are supported for the Alpha architecture. + +3. Obtaining FreeBSD +-------------------- + +You may obtain FreeBSD in a variety of ways: + +3.1. FTP/Mail +------------- + +You can ftp FreeBSD and any or all of its optional packages from +`ftp.FreeBSD.org' - the official FreeBSD release site. + +For other locations that mirror the FreeBSD software see the file +MIRROR.SITES. Please ftp the distribution from the site closest (in +networking terms) to you. Additional mirror sites are always welcome! +Contact freebsd-admin@FreeBSD.org for more details if you'd like to +become an official mirror site. + +If you do not have access to the Internet and electronic mail is your +only recourse, then you may still fetch the files by sending mail to +`ftpmail@ftpmail.vix.com' - putting the keyword "help" in your message +to get more information on how to fetch files using this mechanism. +Please do note, however, that this will end up sending many *tens of +megabytes* through the mail and should only be employed as an absolute +LAST resort! + + +3.2. CDROM +---------- + +FreeBSD 4.x-RELEASE and 3.x-RELEASE CDs may be ordered on CDROM from: + + BSDi / Walnut Creek CDROM + 4041 Pike Lane, Suite D + Concord CA 94520 + USA + +1-800-786-9907, +1-925-674-0783, +1-925-674-0821 (FAX) + +Or via the Internet from orders@cdrom.com or http://www.cdrom.com. +Their current catalog can be obtained via ftp from: + + ftp://ftp.cdrom.com/cdrom/catalog + +Cost per -RELEASE CD is $39.95 or $24.95 with a FreeBSD subscription. +FreeBSD SNAPshot CDs, when available, are $39.95 or $14.95 with a +FreeBSD-SNAP subscription (-RELEASE and -SNAP subscriptions are entirely +separate). With a subscription, you will automatically receive updates as +they are released. Your credit card will be billed when each disk is +shipped and you may cancel your subscription at any time without further +obligation. + +Shipping (per order not per disc) is $5 in the US, Canada or Mexico +and $9.00 overseas. They accept Visa, Mastercard, Discover, American +Express or checks in U.S. Dollars and ship COD within the United +States. California residents please add 8.25% sales tax. + +Should you be dissatisfied for any reason, the CD comes with an +unconditional return policy. + + +4. Upgrading from previous releases of FreeBSD +---------------------------------------------- + +If you're upgrading from a previous release of FreeBSD, most likely +it's 3.0 and there may be some issues affecting you, depending +of course on your chosen method of upgrading. There are two popular +ways of upgrading FreeBSD distributions: + + o Using sources, via /usr/src + o Using sysinstall's (binary) upgrade option. + +Please read the UPGRADE.TXT file for more information, preferably +before beginning an upgrade. + + +5. Reporting problems, making suggestions, submitting code. +----------------------------------------------------------- +Your suggestions, bug reports and contributions of code are always +valued - please do not hesitate to report any problems you may find +(preferably with a fix attached, if you can!). + +The preferred method to submit bug reports from a machine with +Internet mail connectivity is to use the send-pr command or use the CGI +script at http://www.FreeBSD.org/send-pr.html. Bug reports +will be dutifully filed by our faithful bugfiler program and you can +be sure that we'll do our best to respond to all reported bugs as soon +as possible. Bugs filed in this way are also visible on our WEB site +in the support section and are therefore valuable both as bug reports +and as "signposts" for other users concerning potential problems to +watch out for. + +If, for some reason, you are unable to use the send-pr command to +submit a bug report, you can try to send it to: + + freebsd-bugs@FreeBSD.org + +Note that send-pr itself is a shell script that should be easy to move +even onto a totally different system. We much prefer if you could use +this interface, since it make it easier to keep track of the problem +reports. However, before submitting, please try to make sure whether +the problem might have already been fixed since. + + +Otherwise, for any questions or tech support issues, please send mail to: + + freebsd-questions@FreeBSD.org + + +If you're tracking the -current development efforts, you should +definitely join the -current mailing list, in order to keep abreast +of recent developments and changes that may affect the way you +use and maintain the system: + + freebsd-current@FreeBSD.org + + +Additionally, being a volunteer effort, we are always happy to have +extra hands willing to help - there are already far more desired +enhancements than we'll ever be able to manage by ourselves! To +contact us on technical matters, or with offers of help, please send +mail to: + + freebsd-hackers@FreeBSD.org + + +Please note that these mailing lists can experience *significant* +amounts of traffic and if you have slow or expensive mail access and +are only interested in keeping up with significant FreeBSD events, you +may find it preferable to subscribe instead to: + + freebsd-announce@FreeBSD.org + + +All of the mailing lists can be freely joined by anyone wishing +to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword +`help' on a line by itself somewhere in the body of the message. This +will give you more information on joining the various lists, accessing +archives, etc. There are a number of mailing lists targeted at +special interest groups not mentioned here, so send mail to majordomo +and ask about them! + + +6. Acknowledgments +------------------ + +FreeBSD represents the cumulative work of many hundreds, if not +thousands, of individuals from around the world who have worked very +hard to bring you this release. For a complete list of FreeBSD +project staffers, please see: + + http://www.FreeBSD.org/handbook/staff.html + +or, if you've loaded the doc distribution: + + file:/usr/share/doc/handbook/staff.html + + +Special mention to: + + The donors listed at http://www.FreeBSD.org/handbook/donors.html + + Justin M. Seger <jseger@FreeBSD.org> for almost single-handedly + converting the ports collection to ELF. + + Doug Rabson <dfr@FreeBSD.org> and John Birrell <jb@FreeBSD.org> + for making FreeBSD/alpha happen and to the NetBSD project for + substantial indirect aid. + + Peter Wemm <peter@FreeBSD.org> for the new kernel module system + (with substantial aid from Doug Rabson). + + And to the many thousands of FreeBSD users and testers all over the + world, without whom this release simply would not have been possible. + +We sincerely hope you enjoy this release of FreeBSD! + + The FreeBSD Project + +$FreeBSD$ diff --git a/release/texts/i386/INSTALL.TXT b/release/texts/i386/INSTALL.TXT new file mode 100644 index 000000000000..050969e40a63 --- /dev/null +++ b/release/texts/i386/INSTALL.TXT @@ -0,0 +1,541 @@ ++===================== Installing FreeBSD ==========================+ +| | +| Table of Contents: | +| | +| 0.0 Quick Start: | +| 0.1 Installing FreeBSD from CDROM or the Internet. | +| | +| 1.0 Detail on various installation types: | +| 1.1 Installing from a network CDROM | +| 1.2 Installing from Floppies | +| 1.3 Installing from a DOS partition | +| 1.4 Installing from QIC/SCSI tape | +| 1.5 Installing over a network using NFS or FTP | +| 1.5.1 NFS Installation tips | +| 1.5.2 FTP Installation tips | +| 1.6 Tips for Serial Console Users | +| | +| 2.0 DOS User's Q&A section. | +| 2.1 How do I make space for FreeBSD? | +| 2.2 Can I use compressed DOS filesystems from FreeBSD? | +| 2.3 Can I use DOS extended partitions? | +| 2.4 Can I run DOS executables under FreeBSD? | +| | ++=====================================================================+ + +Author: Jordan K. Hubbard +Last updated: Fri Mar 16 14:47:31 PST 2001 + +0.0 Quick Start +--- ----------- + +This manual documents the process of making a new installation of +FreeBSD on your machine. If you are upgrading from a previous +release of FreeBSD, please see the file UPGRADE.TXT for important +information on upgrading. If you are not familiar with configuring +PC hardware for FreeBSD, you should also read the HARDWARE.TXT file - +it contains important information which may save you a lot of grief. + +If you're new to FreeBSD then you should also read EVERYTHING listed +in the Documentation menu of the installer. It may seem like a lot +to read, but the time you spend now reading the documents will be made +up many times over because you were adequately prepared. Also, you will +know the types of information available should you get stuck later. +Once the system is installed, you can also revisit this menu and use a +WEB browser to read the installed FAQ (Frequently Asked Questions) and +Handbook HTML documentation sets for FreeBSD. You can also use the +browser to visit other WEB sites on the net (like http://www.freebsd.org) +if you have an Internet connection. See ABOUT.TXT for more information +on the resources available to you. + +The best laid plans sometimes go awry, so if you run into trouble take a +look at TROUBLE.TXT which contains valuable troubleshooting information. +You should also read ERRATA.TXT before installing and follow the pointers +there carefully since this will stop you from falling over any problems +which have reported in the interim for your particular release. + +DISCLAIMER: While FreeBSD does its best to safeguard against +accidental loss of data, it's still more than possible to WIPE OUT +YOUR ENTIRE DISK with this installation if you make a mistake! Please +do not proceed to the final FreeBSD installation menu unless you've +adequately backed up any important data first! We really mean it! + +FreeBSD requires a 386 or better processor to run (sorry, there is no +support for '286 processors) and at least 5 megs of RAM to install +and 4 megs of RAM to run. You will need at least 100MB of free hard +drive space for the most minimal installation. See below for ways of +shrinking existing DOS partitions in order to install FreeBSD. + + +0.1 Installing FreeBSD from CDROM or the Internet +--- --------------------------------------------- + +The easiest type of installation is from CD. If you have a supported +CDROM drive and a FreeBSD installation CD from Walnut Creek CDROM, +there are 2 ways of starting the installation from it: + + 1. If your system supports bootable CDROM media (usually an option + which can be selectively enabled in the controller's setup menu + or in the PC BIOS for some systems) and you have it enabled, + FreeBSD supports the "El Torrito" bootable CD standard. Simply + put the installation CD in your CDROM drive and boot the system + to begin installation. + + 2. Build a set of FreeBSD boot floppies from the floppies/ + directory in every FreeBSD distribution. Either simply use the + ``makeflp.bat'' script from DOS or read floppies/README.TXT + for more information on creating the bootable floppies under + different operating systems. Then you simply boot from the + first floppy and you should soon be in the FreeBSD installation. + +If you don't have a CDROM and would like to simply install over the +net using PPP, slip or a dedicated connection, simply fetch the +<FreeBSD-release>/floppies/boot.flp file from: + + ftp://ftp.freebsd.org/pub/FreeBSD + +or one of its many mirrors (http://www.freebsd.org/handbook/mirrors.html) +and follow step 3 above. You should also read the floppies/README.TXT +file as it contains important information for downloaders. + +Once you have your boot floppies made, please go to section 1.5 of this +document for additional tips on installing via FTP or NFS. + + +1.0 Detail on various installation types +--- ------------------------------------ + +Once you've gotten yourself to the initial installation screen somehow, +you should be able to follow the various menu prompts and go from there. +If you've never used the FreeBSD installation before, you are also +encouraged to read some of the documentation in the the Documentation +submenu as well as the general "Usage" instructions on the first menu. + + NOTE: If you get stuck at a screen, hit the F1 key for online + documentation relevant to that specific section. + +If you've never installed FreeBSD before, or even if you have, the +"Standard" installation mode is the most recommended since it makes sure +that you'll visit all the various important checklist items along the +way. If you're much more comfortable with the FreeBSD installation +process and know _exactly_ what you want to do, use the Express or +Custom installation options. If you're upgrading an existing system, +use the Upgrade option. + +The FreeBSD installer supports the direct use of floppy, DOS, tape, +CDROM, FTP, NFS and UFS partitions as installation media, further tips +on installing from each type of media listed below. + + +1.1 Installing from a network CDROM +--- ------------------------------- + +If you simply wish to install from a local CDROM drive then see the +Quick Start section. If you don't have a CDROM drive on your system +and wish to use a FreeBSD distribution CD in the CDROM drive of +another system to which you have network connectivity, there are also +several ways of going about it: + +1. If you would be able to FTP install FreeBSD directly from the CDROM + drive in some FreeBSD machine, it's quite easy: You simply add the + following line to the password file (using the vipw command): + + ftp:*:99:99::0:0:FTP:/cdrom:/sbin/nologin + + And anyone else on your network will now be able to choose a Media + type of FTP and type in: ``ftp://<machine with CDROM drive>'' after + picking "URL" in the ftp sites menu. + +2. If you would rather use NFS to export the CDROM directly to the + machine(s) you'll be installing from, you need to first add an + entry to the /etc/exports file (on the machine with the CDROM drive) + which looks something like this: + + /cdrom -ro ziggy.foo.com + + To allow the machine "ziggy.foo.com" to mount the CDROM directly + via NFS during installation. The machine with the CDROM must also + be configured as an NFS server, of course, and if you're not sure how + to do that then an NFS installation is probably not the best choice + for you unless you're willing to read up on rc.conf(5) and configure + things appropriately. Assuming that this part goes smoothly, you + should be able to enter: cdrom-host:/cdrom as the path for an NFS + installation when the target machine is installed, e.g. wiggy:/cdrom + + +1.2 Installing from Floppies +--- ------------------------ + +If you must install from floppy disks, either due to unsupported +hardware or just because you enjoy doing things the hard way, you must +first prepare some floppies for the install. + +First, make your boot floppies as described in floppies/README.TXT + +Second, read the file LAYOUT.TXT and pay special attention to the +"Distribution format" section since it describes which files you're +going to need to put onto floppy and which you can safely skip. + +Next you will need, at minimum, as many 1.44MB floppies as it takes to +hold all files in the bin (binary distribution) directory. If you're +preparing these floppies under DOS, then THESE floppies *must* be +formatted using the MS-DOS FORMAT command. If you're using Windows, +use the Windows File Manager format command. + +Don't trust Factory Preformatted floppies! Format them again +yourself, just to make sure. Many problems reported by our users in +the past have resulted from the use of improperly formatted media, +which is why I'm taking such special care to mention it here! + +If you're creating the floppies from another FreeBSD machine, a format +is still not a bad idea though you don't need to put a DOS filesystem +on each floppy. You can use the `disklabel' and `newfs' commands to +put a UFS filesystem on a floppy, as the following sequence of +commands illustrates: + + fdformat -f 1440 fd0.1440 + disklabel -w -r fd0.1440 floppy3 + newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 + +After you've formatted the floppies for DOS or UFS, you'll need to +copy the files onto them. The distribution files are split into +chunks conveniently sized so that 5 of them will fit on a conventional +1.44MB floppy. Go through all your floppies, packing as many files as +will fit on each one, until you've got all the distributions you want +packed up in this fashion. Each distribution should go into its own +subdirectory on the floppy, e.g.: a:\bin\bin.inf, a:\bin\bin.aa, +a:\bin\bin.ab, ... + +IMPORTANT NOTE: The bin.inf file also needs to go on the first floppy +of the bin set since it is read by the installation program in order +to figure out how many additional pieces to look for when fetching and +concatenating the distribution. When putting distributions onto +floppies, the <distname>.inf file MUST occupy the first floppy of each +distribution set! This is also covered in ABOUT.TXT + +Once you come to the Media screen of the install, select "Floppy" and +you'll be prompted for the rest. + + +1.3 Installing from a DOS partition +--- ------------------------------- + +To prepare for installation from an MS-DOS partition you should simply +copy the files from the distribution into a directory called +"FREEBSD" on the Primary DOS partition ("Drive C:"). For example, to do +a minimal installation of FreeBSD from DOS using files copied from the +CDROM, you might do something like this: + + C:\> MD C:\FREEBSD + C:\> XCOPY /S E:\BIN C:\FREEBSD\BIN + +Assuming that `E:' was where your CD was mounted. + +For as many `DISTS' as you wish to install from DOS (and you have free +space for), install each one in a directory under `C:\FREEBSD' - the +BIN dist is only the minimal requirement. + +Once you've copied the directories, you can simply launch the installation +from floppies as normal and select "DOS" as your media type when the time +comes. + + +1.4 Installing from QIC/SCSI Tape +--- ----------------------------- + +When installing from tape, the installation program expects the files +to be simply tar'ed onto it, so after fetching all of the files for +the distributions you're interested in, simply tar them onto the tape +with a command something like this: + + cd /where/you/have/your/dists + tar cvf /dev/rwt0 (or /dev/rsa0) dist1 .. dist2 + +When you go to do the installation, you should also make sure that you +leave enough room in some temporary directory (which you'll be allowed +to choose) to accommodate the FULL contents of the tape you've +created. Due to the non-random access nature of tapes, this method of +installation requires quite a bit of temporary storage! You should +expect to require as much temporary storage as you have stuff written +on tape. + +SPECIAL NOTE: When going to do the installation, the tape must be in +the drive *before* booting from the boot floppies. The installation +"probe" may otherwise fail to find it. + +Now create a boot floppy as described in section 0.1 and proceed with +the installation. + + +1.5 Installing over a network using FTP or NFS +--- ------------------------------------------ + +After making the boot floppies as described in the first section, you can +load the rest of the installation over a network using one of 3 types +of connections: + + Serial port: SLIP / PPP + Parallel port: PLIP (using ``laplink'' style cable) + Ethernet: A standard Ethernet controller (including + certain PCCARD devices). + +Serial Port +----------- + +SLIP support is rather primitive, and is limited primarily to +hard-wired links, such as a serial cable running between two +computers. The link must be hard-wired because the SLIP installation +doesn't currently offer a dialing capability. If you need to dial out +with a modem or otherwise dialog with the link before connecting to +it, then I recommend that the PPP utility be used instead. + +If you're using PPP, make sure that you have your Internet Service +Provider's IP address and DNS information handy as you'll need to know +it fairly early in the installation process. You may also need to +know your own IP address, though PPP supports dynamic address +negotiation and may be able to pick up this information directly from +your ISP if they support it. + +You will also need to know how to use the various "AT commands" for +dialing out with your particular brand of modem as the PPP dialer +provides only a very simple terminal emulator. + + +Parallel Port +------------- + +If a hard-wired connection to another FreeBSD or Linux machine is +available, you might also consider installing over a "laplink" style +parallel port cable. The data rate over the parallel port is much +higher than what is typically possible over a serial line (up to +50k/sec), thus resulting in a quicker installation. It's not +typically necessary to use "real" IP addresses when using a +point-to-point parallel cable in this way and you can generally just +use RFC 1918 style addresses for the ends of the link (e.g. 10.0.0.1, +10.0.0.2, etc). + +IMPORTANT NOTE: If you use a Linux machine rather than a FreeBSD +machine as your PLIP peer, you will also have to specify "link0" in +the TCP/IP setup screen's ``extra options for ifconfig'' field in +order to be compatible with Linux's slightly different PLIP protocol. + + +Ethernet +-------- + +FreeBSD supports most common PC Ethernet cards, a table of supported +cards (and their required settings) being provided as part of the +FreeBSD Hardware Guide (see the Documentation menu on the boot floppy +or the top level directory of the CDROM). If you are using one of the +supported PCMCIA Ethernet cards, also be sure that it's plugged in +_before_ the laptop is powered on! FreeBSD does not, unfortunately, +currently support "hot insertion" of PCMCIA cards during installation. + +You will also need to know your IP address on the network, the +"netmask" value for your address class and the name of your machine. +Your system administrator can tell you which values are appropriate to +your particular network setup. If you will be referring to other +hosts by name rather than IP address, you'll also need a name server +and possibly the address of a gateway (if you're using PPP, it's your +provider's IP address) to use in talking to it. If you want to install +by FTP via an HTTP proxy (see below), you will also need the proxy's +address. + +If you do not know the answers to these questions then you should +really probably talk to your system administrator _first_ before +trying this type of installation! Using a randomly chosen IP address +or netmask on a live network will almost certainly get you shot at +dawn. + +Once you have a network connection of some sort working, the +installation can continue over NFS or FTP. + + +1.5.1 NFS installation tips +----- --------------------- + + NFS installation is fairly straight-forward: Simply copy the + FreeBSD distribution files you want onto a server somewhere + and then point the NFS media selection at it. + + If this server supports only "privileged port" access (as is + generally the default for Sun and Linux workstations), you + will need to set this option in the Options menu before + installation can proceed. + + If you have a poor quality Ethernet card which suffers from very + slow transfer rates, you may also wish to toggle the appropriate + Options flag. + + In order for NFS installation to work, the server must also support + "subdir mounts", e.g. if your FreeBSD distribution directory lives + on: wiggy:/usr/archive/stuff/FreeBSD + Then wiggy will have to allow the direct mounting of + /usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff. + + In FreeBSD's /etc/exports file this is controlled by the + ``-alldirs'' option. Other NFS servers may have different + conventions. If you are getting `Permission Denied' messages + from the server then it's likely that you don't have this + properly enabled! + + +1.5.2 FTP Installation tips +----- --------------------- + + FTP installation may be done from any mirror site containing a + reasonably up-to-date version of FreeBSD. A full menu of + reasonable choices for almost any location in the world is + provided in the FTP site menu during installation. + + If you are installing from some other FTP site not listed in + this menu, or you are having troubles getting your name server + configured properly, you can also specify your own URL by + selecting the ``URL'' choice in that menu. A URL can + contain a hostname or an IP address, so the following would + work in the absence of a name server: + + ftp://192.216.191.11/pub/FreeBSD + + There are three FTP installation modes you can use: + + o FTP: + + This method uses the standard "Active" mode for file + transfers which allows the server to initiate a connection + to the client. This will not work through most firewalls + but will often work best with older FTP servers that do + not support passive mode. If your connection hangs with + passive mode, try this one! + + o FTP Passive: + + This sets the FTP "Passive" mode which prevents the + server from opening connections to the client. This + option is best for users to pass through firewalls that + do not allow incoming connections on random port + addresses. + + o FTP via an HTTP proxy: + + This option instructs FreeBSD to use HTTP to connect to a + proxy for all FTP operations. The proxy will translate + the requests and send them to the FTP server. This + allows the user to pass through firewalls that do not + allow FTP at all, but offer an HTTP proxy. You must + specify the hostname of the proxy in addition to the FTP + server. + + In the rare case that you have an FTP proxy that does not go + through HTTP, you can specify the URL as something like : + + ftp://foo.bar.com:1234/pub/FreeBSD + + Where "1234" is the port number of the proxy ftp server. + + +1.6 Tips for Serial Console Users +--- ----------------------------- + +If you'd like to install FreeBSD on a machine using just a serial +port (e.g. you don't have or wish to use a VGA card), please follow +these steps. + + 1. Connect some sort of ANSI (vt100) compatible terminal or terminal + emulation program to the COM1 port of the PC you are installing + FreeBSD onto. + + 2. Unplug the keyboard (yes, that's correct!) and then try to boot + from floppy or the installation CDROM, depending on the type of + installation media you have, with the keyboard unplugged. + + 3. If you don't get any output on your serial console, plug + the keyboard in again and wait for some beeps. If you are + booting from the CDROM, proceed to Step 5 as soon as you hear + the beep. + + 4. For a floppy boot, the first beep means to remove the + kern.flp floppy and insert the mfsroot.flp floppy, after + which you should press enter and wait for another beep. + + 5. Hit the space bar, then enter + + boot -h + + and you should now definitely be seeing everything on the + serial port. If that still doesn't work, check your serial + cabling as well as the settings on your terminal emulation + program or actual terminal device. It should be set for + 9600 baud, 8 bits, no parity. + + +2.0 DOS user's Question and Answer section +--- -------------------------------------- + +2.1 Help! I have no space! Do I need to delete everything first? +--- -------------------------------------------------------------- + +If your machine is already running DOS and has little or no free space +available for FreeBSD's installation, all is not lost! You may find +the "FIPS" utility, provided in the tools/ subdirectory on the FreeBSD +CDROM or on the various FreeBSD ftp sites, to be quite useful. + +FIPS allows you to split an existing DOS partition into two pieces, +preserving the original partition and allowing you to install onto the +second free piece. You first "defrag" your DOS partition, using the +DOS 6.xx "DEFRAG" utility or the Norton Disk tools, then run FIPS. It +will prompt you for the rest of the information it needs. Afterwards, +you can reboot and install FreeBSD on the new partition. Also note +that FIPS will create the second partition as a "clone" of the first, +so you'll actually see that you now have two DOS Primary partitions +where you formerly had one. Don't be alarmed! You can simply delete +the extra DOS Primary partition (making sure it's the right one by +examining its size! :) + +NOTE: FIPS does NOT currently work with FAT32 or VFAT style partitions +as used by newer versions of Windows 95. To split up such a partition, +you will need a commercial product such as Partition Magic 3.0. Sorry, +but this is just the breaks if you've got a Windows partition hogging +your whole disk and you don't want to reinstall from scratch. + +2.2 Can I use compressed DOS filesystems from FreeBSD? +--- -------------------------------------------------- + +No. If you are using a utility such as Stacker(tm) or +DoubleSpace(tm), FreeBSD will only be able to use whatever portion of +the filesystem you leave uncompressed. The rest of the filesystem +will show up as one large file (the stacked/dblspaced file!). DO NOT +REMOVE THAT FILE as you will probably regret it greatly! + +It is probably better to create another uncompressed DOS extended +partition and use this for communications between DOS and FreeBSD if +such is your desire. + + +2.3 Can I mount my DOS extended partitions? +--- --------------------------------------- + +Yes. DOS extended partitions are mapped in at the end of the other +``slices'' in FreeBSD, e.g. your D: drive might be /dev/da0s5, your E: +drive /dev/da0s6, and so on. This example assumes, of course, that +your extended partition is on SCSI drive 0. For IDE drives, substitute +``ad'' for ``da'' appropriately. You otherwise mount extended +partitions exactly like you would mount any other DOS drive, e.g.: + +mount -t msdos /dev/da0s5 /dos_d + + +2.4 Can I run DOS binaries under FreeBSD? +--- ------------------------------------- + +Ongoing work with BSDI's doscmd utility is bringing this much closer to +being a reality in FreeBSD 3.0, though it still has some rough edges. +If you're interested in working on this, please send mail to +emulation@FreeBSD.org and indicate that you're interested in joining +this ongoing effort! + +There is also a neat utility called "pcemu" in the ports collection +which emulates an 8088 and enough BIOS services to run DOS text mode +applications. It requires the X Window System (XFree86) to operate. + +---- End of Installation Guide --- diff --git a/release/texts/i386/RELNOTES.TXT b/release/texts/i386/RELNOTES.TXT new file mode 100644 index 000000000000..1c7f1a37fa8e --- /dev/null +++ b/release/texts/i386/RELNOTES.TXT @@ -0,0 +1,1801 @@ + RELEASE NOTES + FreeBSD Release 5.0-SNAP + (i386 Architecture) + +This is a 5.0-CURRENT release SNAPshot of FreeBSD, an active +development branch which will produce its first release in early +March 2001. Those features which have also been back-ported to +the 4.x-stable branch (the next release for which will be 4.3) +are marked [MERGED]. + +Any installation failures or crashes should be reported by using the +send-pr command (those preferring a Web-based interface can also see +http://www.FreeBSD.org/send-pr.html). + +For information about FreeBSD and the layout of the 5.0-RELEASE +directory (especially if you're installing from floppies!), see +ABOUT.TXT. For installation instructions, see the INSTALL.TXT and +HARDWARE.TXT files. + +For the latest of these 5.0-current snapshots, you should always see: + + ftp://current.FreeBSD.org/pub/FreeBSD + +If you wish to get the latest post-4.x-RELEASE technology. + +Table of contents: +------------------ +1. What's new since the 4.0/5.0 branch + 1.1 KERNEL CHANGES + 1.2 SECURITY FIXES + 1.3 USERLAND CHANGES + +2. Supported Configurations + 2.1 Disk Controllers + 2.2 Ethernet cards + 2.3 FDDI + 2.4 ATM + 2.5 Misc + +3. Obtaining FreeBSD + 3.1 FTP/Mail + 3.2 CDROM + +4. Upgrading from previous releases of FreeBSD + +5. Reporting problems, making suggestions, submitting code + +6. Acknowledgments + + +1. What's new since the 4.0/5.0 branch +-------------------------------------- +All changes described here are unique to the 5.0 branch unless +specifically marked as [MERGED] features. + + +1.1. KERNEL CHANGES +------------------- + +A new event notification facility called kqueue was added to the +FreeBSD kernel. This is a new interface which is able to replace +poll/select, offering improved performance, as well as the ability +to report many different types of events. Support for monitoring +changes in sockets, pipes, fifos, and files are present, as well as +for signals and processes. [MERGED] + +Support for named extended attributes was added to the FreeBSD kernel. +This allows the kernel, and appropriately privileged userland processes, +to tag files and directories with attribute data. Extended attributes +were added to support the TrustedBSD Project, in particular ACLs, +capability data, and mandatory access control labels. + +Support for Intel's Wired for Management 2.0 (PXE) was added to +the FreeBSD boot loader. Due to API differences, the older PXE +versions are not supported. This allow network booting using DHCP. [MERGED] + +POSIX.1b Shared Memory Objects are now supported. The implementation +uses regular files, but automatically enables the MAP_NOSYNC flag +when they are mmap(2)ed. [MERGED] + +Added support for PCI Ethernet adapters based on the National Semiconductor +DP83815 chipset, including the NetGear FA312-TX. + +Due to a licensing change, softupdates have been integrated into the +main portion of the kernel source tree. As a consequence, softupdates +are now available with the GENERIC kernel. [MERGED] + +A driver for AGP hardware has been added. [MERGED] + +ipfilter has been updated to 3.4.16. [MERGED] + +Various fixes and improvements to the IPv6 code have been merged in +from the KAME project, including significantly-improved IPSEC +functionality. [MERGED] + +twe 3ware ATA RAID driver added. [MERGED] + +The tap driver, a virtual Ethernet device driver for bridged +configurations, has been added. [MERGED] + +accept_filters, a kernel feature to reduce overheads when accepting +and reading new connections on listening sockets, has been added. +[MERGED] + +The ata(4) driver now has support for ATA100 controllers. In +addition, it now supports the ServerWorks ROSB4 ATA33 chipset, the CMD +648 ATA66 and CMD 649 ATA100 chipsets, and the Cyrix 5530. [MERGED] + +The ata(4) driver now has support for tagged queuing, which is +enabled by the ATA_ENABLE_TAGS option. [MERGED] + +The ata(4) driver now has support for ATA "pseudo" RAID controllers as +the Promise Fasttrak and HighPoint HPT370 controllers. [MERGED] + +The ti(4) driver now supports the Alteon AceNIC 1000baseT Gigabit +Ethernet and Netgear GA620T 1000baseT Gigabit cards. [MERGED] + +The mly(4) driver, for Mylex PCI to SCSI AccelRAID and eXtremeRAID +controllers with firmware 6.x and later, has been added. [MERGED] + +The asr(4) driver, which provides support for the Adaptec SCSI RAID +controller family, as well as the DPT SmartRAID V and VI families, has +been added. [MERGED] + +SMP support has been largely reworked, incorporating code from BSD/OS +5.0. One of the main features of SMPng ("SMP Next Generation") is to +allow more processes to run in kernel, without the need for spin locks +that can dramatically reduce the efficiency of multiple processors. +Interrupt handlers now have contexts associated with them that allow +them to be blocked, which reduces the need to lock out interrupts. + +The xl(4) driver now supports the 3Com 3C556 and 3C556B MiniPCI +adapters used on some laptops. [MERGED] + +The kernel and modules have been moved to the directory /boot/kernel, +so they can be easily manipulated together. The boot loader has been +updated to make this change as seamless as possible. + +A filesystem snapshot capability has been added to FFS. Details can +be found in /usr/src/sys/ufs/ffs/README.snapshot. + +Softupdates for FFS have received some bug fixes and enhancements. + +A bug in FFS that could cause superblock corruption on very large +filesystems has been corrected. [MERGED] + +Support for the Adaptec FSA family of PCI-SCSI RAID controllers has +been added, in the form of the aac(4) driver. [MERGED] + +The ng_mppc(4) and ng_bridge(4) node types have been added to the +netgraph subsystem. The ng_ether(4) node is now dynamically loadable. +Miscellaneous bug fixes and enhancements have also been made. [MERGED] + +The pcn(4) driver, which supports the AMD PCnet/FAST, PCnet/FAST+, +PCnet/FAST III, PCnet/PRO, PCnet/Home, and HomePNA adapters, has been added. +Although these cards are already supported by the lnc(4) driver, the pcn +driver runs these chips in 32-bit mode and uses the RX alignment feature to +achieve zero-copy receive. This driver is also machine-independent, +so it will work on both the i386 and alpha platforms. The lnc driver +is still needed to support non-PCI cards. [MERGED] + +A bug in the ed(4) driver that could cause panics with very short +packets and BPF or bridging active has been fixed. [MERGED] + +The i386 boot loader now has support for a "nullconsole" console type, +for use on systems with neither a video console nor a serial +port. [MERGED] + +The pcm(4) driver now supports the ESS Solo 1, Maestro-1, Maestro-2, +and Maestro-2e; Forte Media fm801, ESS Maestro-2e, and VIA +Technologies VT82C686A sound card/chipsets, and has received some +other updates. [MERGED] A driver for the ESS Maestro-3/Allegro has +been added, however due to the amount of GPL firmware included, it +will only be built as a module. [MERGED] Separate drivers for the +SoundBlaster 8 and Soundblaster 16 now replace an older, unified +driver. [MERGED] A driver for the CMedia CMI8338/CMI8738 sound chips +has been added. A driver for the CS4281 sound chip has been +added. [MERGED] + +Replace the PQ_*CACHE options with a single PQ_CACHESIZE option to be +set to the cache size in kilobytes. The old options are still +supported for backwards compatibility. [MERGED] + +The NCPU, NAPIC, NBUS, and NIN kernel configuration options, +for configuring SMP kernels, have been removed. NCPU is now set to a +maximum of 16, and the other, aforementioned options are now dynamic. +[MERGED] + +The ahc(4) driver has been updated. Among various improvements are +improved compatibility with chips in "RAID Port" mode and systems with +AAA and ARO cards installed, as well as performance improvements. +Some bugs were also fixed, including a rare hang on Ultra2/U160 +controllers. [MERGED] + +ACPI support has been merged in from the FreeBSD-ACPI project. + +isdn4bsd has been updated to version 0.96.00 + +The ihfc(4) driver for supporting Cologne Chip Designs HFC devices +under isdn4bsd has been added. + +The itjc(4) driver for supporting NETjet-S / Teles PCI-TJ under +isdn4bsd has been added. + +Experimental support for the Eicon.Diehl DIVA 2.0 and 2.02 ISA PnP +ISDN cards has been added to the isic(4) isdn4bsd driver. + +Support for Fujitsu MB86960A/MB86965A based Ethernet PC-Cards is back. +[MERGED] + +devfs(5), which allows entries in the /dev directory to be built +automatically and supports more flexible attachment of devices, has +been largely reworked. devfs(5) is configured into the GENERIC +kernel. + +Preliminary Cardbus support under NEWCARD has been added. This supports +TI113X, TI12XX, TI125X, Ricoh 5C46/5C47, Topic 95/97/100 and +Cirrus Logic PD683X bridges. 16-bit PC Card support under this is not yet +functional. + +Write combining for crashdumps has been implemented. This feature +is useful when write caching is disabled on both SCSI and IDE disks, +where large memory dumps could take up to an hour to complete. [MERGED] + +The bktr(4) driver has been updated to 2.15. New tuner types have +been added, and improvements to the KLD module and to memory +allocation have been made. [MERGED] + +The bktr(4) driver has been updated to 2.17. This fixes bugs in devfs +when unloading and reloading, and syncs with some NetBSD +changes. [MERGED] + +The bktr(4) driver has been updated to 2.18. This adds support for +new Hauppauge Model 44xxx WinTV Cards (the ones with no audio mux). + +Extremely large swap areas (>67 GB) no longer panic the system. + +The snc(4) driver for the National Semiconductor DP8393X (SONIC) +Ethernet controller. Currently, this driver is only used on the PC-98 +architecture. [MERGED] + +The ich(4) driver for the Intel 82801AA (ICH) SMBus controller and +compatibles has been added. [MERGED] + +The Inode Filesystem (IFS) has been added; more information can be +found in /usr/src/sys/ufs/ifs/README. + +The uscanner(4) driver for basic USB scanner support using SANE. See +the SANE home page for supported scanners. HP ScanJet 4100C, 5200C +and 6300C are known to be working. + +The umodem(4) driver for USB modems. Supported so far is only the +3Com 5605 and Metricom Ricochet GS wireless USB modems. + +The ncv, nsp, and stg drivers have been ported from NetBSD/pc98. +They supports NCR 53C50 / Workbit Ninja SCSI-3 / TMC 18C30, 18C50 +based PC-Card/ISA SCSI controllers. [MERGED] + +The cd(4) driver now has support for write operations. This allows +writing to DVD-RAM, PD and similar drives that probe as CD devices. +Note that change affects only random-access writeable devices, not +sequential-only writeable devices such as CD-R drives, which are +supported by cdrecord. [MERGED] + +The ISO-9660 filesystem now has a hook that supports a loadable +character conversion routine. The sysutils/cd9660_unicode port +contains a set of common conversions. [MERGED] + +The an(4) driver for Cisco Aironet cards now supports Wired Equivalent +Privacy (WEP) encryption, settable via ancontrol(8). [MERGED] + +The pcm(4) audio driver is now compiled into the GENERIC kernel by +default. + +The pccard driver and pccardc(8) now support multiple "beep types" +upon card insertion and removal. [MERGED] + +The spic(4) driver, which provides access to the jog dial device on +some Sony laptops, has been added. + +A new netgraph node type ng_one2many(4) for multiplexing and +demultiplexing packets over multiple links has been added. [MERGED] + +A number of cleanups and enhancements have been applied to the PCI +subsystem. /usr/share/misc/pci_vendors now contains a vendor/device +database, which can be used by pciconf(8). + +netgraph(4) has received some updates. + +sbufs, null-terminated string data structures, and their associated +support routines, have been added to the kernel. Details are in +sbuf(9). + +The el(4) driver can now be loaded as a module. + +The vinum(4) volume manager has received some bug fixes and enhancements. + +ICMP ECHO and TSTAMP replies are now rate limited. TCP RSTs generated +due to packets sent to open and unopen ports are now limited by +separate counters. Each rate limiting queue now has its own +description. + +ICMP UNREACH_FILTER_PROHIB messages can now RST TCP connections in the +SYN_SENT state if the correct sequence numbers are sent back, as +controlled by the net.inet.tcp.icmp_may_rst sysctl. [MERGED] + +TCP has received some bug fixes for its delayed ACK behavior. [MERGED] + +TCP now supports the NewReno modification to the TCP Fast Recovery +algorithm. This behavior can be controlled via the +net.inet.tcp.newreno sysctl variable. [MERGED] + +TCP now uses a more aggressive timeout for initial SYN segments; this +allows initial connection attempts to be dropped much faster. [MERGED] + +A new sysctl net.inet.ip.check_interface, which is on by default, +causes IP to verify that an incoming packet arrives on an interface +that has an address matching the packet's destination address. [MERGED] + +PECOFF (WIN32 Execution file format) support has been added. + +kernfs(5) is obsolete and has been retired. + +md(4), the memory disk device, has had the functionality of vn(4) +incorporated into it. md(4) devices can now be configured by +mdconfig(8). + +The ray(4) driver, which supports the Webgear Aviator wireless network +cards, has been committed. The operation of ray(4) interfaces can be +modified by raycontrol(8). [MERGED] + +Linksys Fast Ethernet PCCARD cards supported by the ed(4) driver now +require the addition of flag 0x80000 to their config line in +pccard.conf(5). This flag is not optional. These Linksys cards will +not be recognized without it. [MERGED] + +A new API has been added for sound cards with hardware volume +control. + +The VESA S3 linear framebuffer driver has been added. + +A new sysctl 'net.link.ether.inet.log_arp_wrong_iface' to controls the +suppression of logging when ARP replies arrive on the wrong +interface. [MERGED] + +A bug in the NFS client that caused bogus access times with +O_EXCL|O_CREAT opens was fixed. [MERGED] + +Support for the 80386 processor has been removed from the GENERIC +kernel, as this code seriously pessimizes performance on other ia32 +processors. + +The I386_CPU kernel option to support the 80386 processor is now mutually +exclusive with support for other ia32 processors; this should slightly +improve performance on the 80386 due to the elimination of runtime +processor type checks. + +Custom kernels that will run on the 80386 can still be built by changing +the cpu options in the kernel configuration file to only include I386_CPU. + +Condition variables have now been implemented in the FreeBSD kernel. +See condvar(9) for more details. + +The "make buildkernel" target now gets the name of the +configuration(s) to build from the KERNCONF variable, not KERNEL. It +is no longer required, in some cases, for a "buildworld" to precede a +"buildkernel". (The buildworld is still required when upgrading across +major releases, across binutil upgrades and when config changes +version.) + +bridge(4) and dummynet(4) have received some enhancements and bug fixes. + +ipfw(8) has a new feature ("me") that allows for packet matching on +interfaces with dynamically-changing IP addresses. [MERGED] + +The isp(4) driver has been updated. [MERGED] + +The ida disk driver now has crashdump support. [MERGED] + +The random(4) device has been rewritten to use the Yarrow algorithm. +It harvests entropy from a variety of interrupt sources, including the +console devices, Ethernet and point-to-point network interfaces, and +mass-storage devices. Entropy from the random(4) device is now +periodically saved to files in /var/db/entropy. + +The fxp(4) driver now requires a "device miibus" entry in the kernel +configuration file. + +A new NFS hash function (based on the Fowler/Noll/Vo hash algorithm) +has been implemented to improve NFS performance by increasing the +efficiency of the nfsnode hash tables. [MERGED] + +The syscons(4) driver now supports keyboard-controlled pasting, by +default bound to Shift-Insert. + + +1.2. SECURITY FIXES +------------------- + +sysinstall(8) now allows the user to select one of three "security +profiles" at install-time. These profiles enable different levels of +system security by enabling or disabling various system services in +rc.conf(5) on new installs. [MERGED] + +A bug in which malformed ELF executable images can hang the system has +been fixed (see security advisory FreeBSD-SA-00:41). [MERGED] + +A security hole in Linux emulation was fixed (see security advisory +FreeBSD-SA-00:42). [MERGED] + +rlogind(8), rshd(8), and fingerd(8) are now disabled by default in +/etc/inetd.conf. This only affects new installations. [MERGED] + +String-handling library calls in many programs were fixed to reduce the +possibility of buffer overflow-related exploits. [MERGED] + +TCP now uses stronger randomness in choosing its initial sequence +numbers (see security advisory FreeBSD-SA-00:52). [MERGED] + +Several buffer overflows in tcpdump(1) were corrected (see security +advisory FreeBSD-SA-00:61). [MERGED] + +A security hole in top(1) was corrected (see security advisory +FreeBSD-SA-00:62). [MERGED] + +A potential security hole caused by an off-by-one-error in +gethostbyname(3) has been fixed (see security advisory +FreeBSD-SA-00:63). [MERGED] + +A potential buffer overflow in the ncurses(3X) library, which could +cause arbitrary code to be run from within systat(1), has been corrected +(see security advisory FreeBSD-SA-00:68). [MERGED] + +A vulnerability in telnetd(8) that could cause it to consume large +amounts of server resources has been fixed (see security advisory +FreeBSD-SA-00:69). [MERGED] + +The "nat deny_incoming" command in ppp(8) now works correctly (see +security advisory FreeBSD-SA-00:70). [MERGED] + +A vulnerability in csh(1)/tcsh(1) temporary files that could allow +overwriting of arbitrary user-writable files has been closed (see +security advisory FreeBSD-SA-00:76). [MERGED] + +The ssh(1) binary is no longer SUID root by default. + +Some fixes were applied to the Kerberos IV implementation related to +environment variables, a possible buffer overrun, and overwriting +ticket files. [MERGED] + +telnet(1) now does a better job of sanitizing its environment. [MERGED] + +Several vulnerabilities in procfs(4) were fixed (see security advisory +FreeBSD-SA-00:77). [MERGED] + +A bug in OpenSSH in which a server was unable to disable ssh-agent or +X11 forwarding was fixed (see security advisory FreeBSD-SA-01:01). +[MERGED] + +A bug in ipfw(8) and ipfw6(8) in which inbound TCP segments could +incorrectly be treated as being part of an "established" connection +has been fixed (see security advisory FreeBSD-SA-01:08). [MERGED] + +A bug in crontab(8) that could allow users to read any file on the +system in valid crontab(5) syntax has been fixed (see security +advisory FreeBSD-SA-01:09). [MERGED] + +A vulnerability in inetd(8) that could allow read-access to the +initial 16 bytes of wheel-accessible files has been fixed (see +security advisory FreeBSD-SA-01:11). [MERGED] + +A bug in periodic(8) that used insecure temporary files has been +corrected (see security advisory FreeBSD-SA-01:12). [MERGED] + +A bug in sort(1) in which an attacker might be able to cause it to +abort processing has been fixed (see security advisory +FreeBSD-SA-01:13). [MERGED] + +To fix a remotely-exploitable buffer overflow, BIND has been updated +to 8.2.3 (see security advisory FreeBSD-SA-01:18). [MERGED] + +OpenSSH now has code to prevent (instead of just mitigating through +connection limits) an attack that can lead to guessing the server key +(not host key) by regenerating the server key when an RSA failure is +detected (see security advisory FreeBSD-SA-01:24). [MERGED] + +A number of programs have had output formatting strings corrected so +as to reduce the risk of vulnerabilities. [MERGED] + +A number of programs that use temporary files now do so more +securely. [MERGED] + +A bug in ICMP that could cause an attacker to disrupt TCP and UDP +"sessions" has been corrected. [MERGED] + +A bug in timed(8), which caused it to crash if send certain malformed +packets, has been corrected (see security advisory +FreeBSD-SA-01:28). [MERGED] + +A bug in rwhod(8), which caused it to crash if send certain malformed +packets, has been corrected (see security advisory +FreeBSD-SA-01:29). [MERGED] + +To prevent some forms of DOS attacks, glob(3) allows specification of +a limit on the number of pathname matches it will return. ftpd(8) now +uses this feature. [MERGED] + + +1.3. USERLAND CHANGES +--------------------- + +cdcontrol(1) now supports a "cdid" command, which calculates and +displays the CD serial number, using the same algorithm used by the CDDB +database. [MERGED] + +mtree(8) now includes support for a file listing pathnames to be excluded +when creating and verifying prototypes. This makes it easier to use +mtree as a part of an intrusion-detection system. [MERGED] + +OpenSSL has been upgraded to 0.9.6. [MERGED] + +OpenSSL now has support for machine-dependent ASM optimizations, +activated by the new MACHINE_CPU Makefile variable. [MERGED] + +The OPIE one-time-password suite has been updated to 2.32. [MERGED] + +OpenSSH has been upgraded to 2.1.0, which provides support for the +SSH2 protocol, including DSA keys. Therefore, OpenSSH users in the US +no longer need to rely on the restrictively-licensed RSAREF toolkit +which is required to handle RSA keys. OpenSSH 2.1 interoperates well +with other SSH2 clients and servers, including the ssh2 port. See +http://www.openssh.com for more details. [MERGED] + +OpenSSH can now authenticate using OPIE passwords in SSH1 mode. +Support is not yet available in SSH2 mode. [MERGED] + +OpenSSH has been upgraded to 2.2.0. ssh-add(1) and ssh-agent(1) can now +handle DSA keys. An sftp server interoperable with ssh.com clients +and others has been added. scp(1) can now handle files >2GB. +Interoperability with other ssh2 clients/servers has been improved. A +new feature to limit the number of outstanding unauthenticated ssh +connections in sshd has been added. [MERGED] + +OpenSSH has been upgraded to 2.3.0. This version adds support for the +Rijndael encryption algorithm. [MERGED] + +PAM support for OpenSSH has been added. + +A long-standing bug in SSH, which sometimes resulted in a dropped +session when an X11-forwarded client was closed, was fixed. + +Kerberos compatability has been added to OpenSSH. [MERGED] + +OpenSSH has been modified to be more resistant to traffic analysis by +requiring that "non-echoed" characters are still echoed back in a null +packet, as well as by padding passwords sent so as not to hint at +password lengths. [MERGED] + +Support for USB devices was added to the GENERIC kernel and to the +installation programs to support USB devices out of the box. Note that +an AT keyboard must still be used during the initial install, but it +should work fine afterwards. [MERGED] + +The entire i386 bootstrap was revamped to support automatic detection and +use of the Enhanced Disk Drive BIOS extensions to support booting beyond +the 1023rd cylinder. As part of this change, the FreeBSD boot manager +(boot0) was increased from 1 sector in size (512 bytes), to 2 sectors in +length (1024 bytes). As a result, several userland changes were made to +cope with MBR boot loaders of varying sizes. [MERGED] + +The csh(1) shell has been replaced by tcsh(1), although it can still +be run as csh(1). tcsh has been updated to version 6.10. [MERGED] + +The more(1) command has been replaced by less(1), although it can still +be run as more(1). [MERGED] + +ls(1) can produce colorized listings with the -G flag (and appropriate +terminal support). [MERGED] + +libalias(3) and natd(8) now support RFC 2391 (Load Sharing using IP +Network Address Translation), as well as new translation options. +[MERGED] + +FreeBSD can now be installed over an IPv6-only network. [MERGED] + +sendmail upgraded from version 8.9.3 to version 8.11.3. Important changes +include: new default file locations (see +/usr/src/contrib/sendmail/cf/README); newaliases is limited to root and +trusted users; STARTTLS encryption; and the MSA port (587) is turned on by +default. See /usr/src/contrib/sendmail/RELEASE_NOTES for more +information. [MERGED] + +mail.local(8) is no longer installed as a set-user-id binary. If you are +using a /etc/mail/sendmail.cf from the default sendmail.cf included with +FreeBSD any time after 3.1.0, you are fine. If you are using a +hand-configured sendmail.cf and mail.local for delivery, check to make sure +the F=S flag is set on the Mlocal line. Those with .mc files who need to +add the flag can do so by adding the following line to their your .mc file +and regenerating the sendmail.cf file: + MODIFY_MAILER_FLAGS(`LOCAL', `+S')dnl +Note that FEATURE(`local_lmtp') already does this. [MERGED] + +The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY +commands. [MERGED] + +vacation(1) has been updated to use the version included with +sendmail. [MERGED] + +The sendmail(8) configuration building tools are installed in +/usr/share/sendmail/cf/. [MERGED] + +New make.conf options: SENDMAIL_MC and SENDMAIL_ADDITIONAL_MC. See +/etc/defaults/make.conf for more information. [MERGED] + +The Makefile in /etc/mail now supports: the new SENDMAIL_MC make.conf +option; the ability to build .cf files from .mc files; generalized map +rebuilding; rebuilding the aliases file; and the ability to stop, start, +and restart sendmail. [MERGED] + +sysinstall(8) now properly preserves /etc/mail during a binary +upgrade. [MERGED] + +awk has been upgraded from gawk-3.0.4 to gawk-3.0.6. This fixes a number +of non-critical bugs and includes a few performance tweaks. [MERGED] + +routed(8) has been updated to version 2.22. [MERGED] + +The truncate(1) utility, which truncates or extends the length +of files, has been added. [MERGED] + +syslogd(8) can take a -n option to disable DNS queries for every +request. [MERGED] + +kenv(1), a command to dump the kernel environment, has been added. +[MERGED] + +The behavior of periodic(8) is now controlled by /etc/defaults/periodic.conf +and /etc/periodic.conf. [MERGED] + +boot98cfg(8), a PC-98 boot manager installation and configuration +utility, has been added. [MERGED] + +logger(1) can now send messages directly to a remote syslog. [MERGED] + +GDB now supports hardware watchpoints (using the kernel's debug register +support that has been introduced in FreeBSD 4.0). [MERGED] + +which(1) is now a C program, rather than a Perl script. + +killall(1) is now a C program, rather than a Perl script. As a +result, killall's -m option now uses the regular expression syntax of +regex(3), rather than that of perl(1). [MERGED] + +killall(1) now allows non-root users to kill SUID root processes that +they started. + +finger(1) now has the ability to support fingering aliases, via the +finger.conf(5) file. [MERGED] + +finger(1) now has support for a .pubkey file. + +nsswitch support has been merged from NetBSD. By creating an +nsswitch.conf(5) file, FreeBSD can be configured so that various +databases such as passwd(5) and group(5) can be looked up using flat +files, NIS, or Hesiod. The old hosts.conf(5) file is no longer used. + +sshd X11Forwarding is now turned on by default on server (any risk is +to the client, where it is already disabled by default). + +RSA Security has waived all patent rights to the RSA algorithm (two +weeks before the patent was due to expire). As a result, the native +OpenSSL implementation of the RSA algorithm is now activated by +default, and the rsaref port and librsaUSA are no longer +required for USA residents. [MERGED] + +sshd is now enabled by default on new installs. [MERGED] + +perl has been updated to version 5.6.0. + +Binutils have been upgraded to 2.10.1. [MERGED] + +libreadline has been upgraded to 4.1. [MERGED] + +The ifconfig(8) command can set the link-layer address of an interface. +[MERGED] + +setproctitle(3) has been moved from libutil to libc. [MERGED] + +chio(1) now has the ability to specify elements by volume tag instead +of by their physical location as well as the ability to return an +element to its previous location. [MERGED] + +sed(1) now takes a -E option for extended regular expression +support. [MERGED] + +ln(1) now takes an -i option to request user confirmation before +overwriting an existing file. [MERGED] + +Version numbers of installed packages have a new (backward-compatible) +syntax, which supports the "PORTREVISION" and "PORTEPOCH" variables in +ports collection makefiles. These changes help keep track of changes +in the ports collection entries such as security patches or +FreeBSD-specific updates, which aren't reflected in the original, +third-party software distributions. pkg_version(1) can now compare +these new-style version numbers. [MERGED] + +cvs(1) has been updated to 1.11. [MERGED] + +tcpdump(1) has received some updates and bug fixes. [MERGED] + +User-land ppp(8) has received a number of updates and bug fixes. [MERGED] + +To improve performance and disk utilization, the "ports skeletons" in +the FreeBSD Ports Collection have been restructured. Installed ports +and packages should not be affected. [MERGED] + +make(1) has gained the :C/// (regexp substitution), :L (lowercase), +and :U (uppercase) variable modifiers. These were added to reduce the +differences between the FreeBSD and OpenBSD/NetBSD make programs. [MERGED] + +Bugs in make(1), among which include broken null suffix behavior, bad +assumptions about current directory permissions, and potential buffer +overflows, have been fixed. [MERGED] + +fsck wrappers have been imported; this feature provides infrastructure +for fsck(8) to work on different types of filesystems (analogous to +mount(8) and mount_*(8)). + +ncurses has been updated to ncurses-5.1-20001009. [MERGED] + +gperf has been updated to 2.7.2. [MERGED] + +style.perl.7, a style guide for Perl code in the FreeBSD base system, +has been added. + +The ISC library from the BIND distribution is now built as +libisc. [MERGED] + +The "in use" percentage metric displayed by netstat(1) now really +reflects the percentage of network mbufs used. [MERGED] + +mergemaster(8) has gained some new features, has been cleaned up +somewhat, and is now more cross-platform friendly. + +mergemaster(8) now sources an /etc/mergemaster.rc file and also +prompts the user to run recommended commands (such as "newaliases") as +needed. [MERGED] + +The compiler chain now uses the FSF-supplied C/C++ runtime +initialization code. This change brings about better compatibility +with code generated from the various egcs and gcc ports, as well as +the stock public FSF source. [MERGED] + +The threads library has gained some signal handling changes, bug +fixes, and performance enhancements (including zero system call thread +switching). gdb(1) thread support has been updated to match these +changes. [MERGED] + +chflags(1) has moved from /usr/bin to /bin. + +Use of the CSMG_* macros no longer require inclusion of <sys/param.h>. + +IP Filter is now supported by the rc.conf(5) boot-time configuration +and initialization. [MERGED] + +The lastlogin(1) utility, which prints the last login time of each +user, has been imported from NetBSD. [MERGED] + +newfs(1) now implements write combining, which can make creation of +new filesystems up to seven times faster. [MERGED] + +A number of buffer overflows in config(8) have been fixed. [MERGED] + +pwd(1) can now double as realpath(1), a program to resolve pathnames +to their underlying physical paths. [MERGED] + +file(1) has been contribify-ed, and imported as version 3.33. [MERGED] + +stty(1) now has support for an "erase2" control character, so that +both "delete" and "backspace" can be used to erase characters. [MERGED] + +The ibcs2(8), linux(8), osf1(8), and svr4(8) scripts, whose sole +purpose was to load emulation kernel modules, have been removed. The +kernel module system will automatically load them as needed to fulfill +dependencies. + +top(1) will now use the full width of its tty. + +groff(1) and its related utilities have been updated to FSF version +1.16.1. [MERGED] + +growfs(8), a utility for growing FFS filesystems, has been added. +ffsinfo(8), a utility for dump all the meta-information of an existing +filesystem, has also been added. + +indent(1) has gained some new formatting options. [MERGED] + +sysinstall now uses some more intuitive defaults thanks to some new +dialog support functions. [MERGED] + +The default root partition in sysinstall is now 100MB on the i386 and +110MB on the alpha. + +gcc has been updated to 2.95.3. + +Shortly after the receipt of a SIGINFO signal (normally control-T from +the controlling tty), fsck_ffs will now output a line indicating the +current phase number and progress information relevant to the current +phase. [MERGED] + +fsck_ffs now supports background filesystem checks to mounted FFS +filesystems with the -B option (softupdates must be enabled on these +filesystems). + +Catching up with most other network utilities in the base system, +lpr(1), lpd(8), syslogd(8), and logger(1) are now all IPv6-capable. +[MERGED] + +libdisk can now do install-time configuration of the i386 boot0 boot +loader. [MERGED] + +rm(1) -v now displays the entire pathname of a file being +removed. [MERGED] + +lpr(1), lpq(1), and lpd(8) have received a few minor +enhancements. [MERGED] + +pkg_update(1), a utility to update installed packages and update their +dependencies, has been added. [MERGED] + +pkg_info(1) now supports globbing against names of installed packages. +The -G option disables this behavior, and the -x option causes regular +expression matching instead of shell globbing. [MERGED] + +If the first argument fo ancontrol(8) or wicontrol(8) doesn't start +with a "-", it is assumed to be an interface. + +rdist(1) has been retired. + +Kerberos IV has been updated to 1.0.5. [MERGED] + +Heimdal has been updated to 0.3e. [MERGED] + +ppp(8) has gained the tcpmssfixup option, which adjusts outgoing TCP +SYN packets so that the maximum receive segment size is no larger than +allowed by the interface MTU. + +libcrypt and libdescrypt have been unified to provide a configurable +password authentication hash library. Both the md5 and des hash methods +are provided unless the des hash is specifically compiled out. + +passwd(1) and pw(8) now select the passwd hash algorithm at run time. See +the "passwd_format" attribute in /etc/login.conf. + +In preparation for meeting SUSv2/POSIX <sys/select.h> requirements, +'struct selinfo' and related functions have been moved to +<sys/selinfo.h>. + +gcc now uses a unified libgcc rather than a separate one for threaded +and non-threaded programs. /usr/lib/libgcc_r.a can be removed. [MERGED] + +syslogd(8) now supports a "LOG_CONSOLE" facility (disabled by +default), which can be used to log /dev/console output. [MERGED] + +rpcgen now uses /usr/bin/cpp (as on NetBSD), not /usr/libexec/cpp. + +Boot-time syscons configuration was moved to a machine-independent +rc.syscons. [MERGED] + +burncd(8) now supports a -m option for multisession mode (the default +behavior now is to close disks as single-session). A -l option to +take a list of image files from a filename was also added; '-' can be +used as a filename for stdin. [MERGED] + +dmesg(8) now has a -a option to show the entire message buffer, +including syslog records and /dev/console output. [MERGED] + +In /etc/ssh/sshd_config, the ConnectionsPerPeriod parameter has been +deprecated in favor of MaxStartups. [MERGED] + +cdcontrol(1) now uses the CDROM environment variable to pick a default +device. [MERGED] + +sysctl(8) now supports a -N option to print out variable names only. + +All packages and ports now contain an "origin" directive, which makes +it easier for programs like pkg_version(1) to determine the directory +from which a package was built. [MERGED] + +sysinstall(8) now lives in /usr/sbin, which simplifies the installation +process. The sysinstall(8) manpage is also installed in a more +consistent fashion now. + +config(8) is now better about converting various warnings that should +have been errors into actual fatal errors with an exit code. This +ensures that that 'make buildkernel' doesn't quietly ignore them and +build a bogus kernel without a human to read the errors. [MERGED] + +pkg_create(1) and pkg_add(1) can now work with packages that have +been compressed using bzip2(1). pkg_add(1) will use the +PACKAGEROOT environment variable to determine a mirror site for new +packages. [MERGED] + +pkg_info(1) can now accept a -g flag for verifying an installed +package against its recorded checksums (to see if it's been modified +post-installation). Naturally, this mechanism is only as secure as +the contents of /var/db/pkg if it's to be used for auditing +purposes. [MERGED] + +libc is now thread-safe by default; libc_r contains only thread functions. + +find(1) now takes the -empty flag, which returns true if a file or +directory is empty. [MERGED] + +find(1) now takes the -iname and -ipath primaries for case-insensitive +matches, and the -regexp and -iregexp primaries for regular-expression +matches. The -E flag now enables extended regular +expressions. [MERGED] + +tftpd(8) now takes the -c and -C options, which allow the server to +chroot(2) based on the IP address of the connecting client. tftp(1) +and tftpd(8) can now transfer files larger than 65535 blocks. [MERGED] + +vidcontrol(1) now accepts a -g parameter to select custom text +geometry in the VESA_800x600 raster text mode. [MERGED] + +ldconfig(8) now checks directory ownerships and permissions for +greater security; these checks can be disabled with the -i +flag. [MERGED] + +The rfork_thread(3) library call has been added as a helper function +to rfork(2). Using this function should avoid the need to implement +complex stack swap code. [MERGED] + +Significant additions have been made to internationalization support; +FreeBSD now has complete locale support for the LC_MONETARY, +LC_NUMERIC, and LC_MESSAGES categories. A number of applications have +been updated to take advantage of this support. + +A compat4x distribution has been added for compatibility with FreeBSD +4-STABLE. + +The compat3x distribution has been updated to include libraries +present in FreeBSD 3.5.1-RELEASE. [MERGED] + +savecore(8) now supports a -k option to prevent clearing a crash dump +after saving it. It also attempts to avoid writing large stretches of +zeros to crash dump files to save space and time. [MERGED] + +When requested to delete multiple packages, pkg_delete(1) will now +attempt to remove them in dependency order rather than the order +specified on the command line. [MERGED] + +pkg_delete(1) now can perform glob/regexp matching of package names. +In addition, it supports the -a option for removing all packages and +the -i option for rm(1)-style interactive confirmation. [MERGED] + +tar(1) now supports the TAR_RSH variable, principally to enable the +use of ssh(1) as a transport. [MERGED] + +disklabel(8) now supports partition sizes expressed in kilobytes, +megabytes, or gigabytes, in addition to sectors. [MERGED] + +The pseudo-random number generator implemented by rand(3) has been +improved to provide less biased results. + +login(1) now exports environment variables set by PAM +modules. [MERGED] + +wall(1) now supports a -g flag to write a message to all users of a +given group. + +The new CPUTYPE make.conf variable controls the compilation of +processor-specific optimizations in various pieces of code such as +OpenSSL. [MERGED] + +The default value for the CVS_RSH variable (used by cvs(1)) is now +ssh, rather than rsh. [MERGED] + +bc has been updated from 1.04 to 1.06. [MERGED] + +ipfstat(8) now supports the -t option to turn on a top(1)-like +display. [MERGED] + +pkg_sign(1) and pkg_check(1) have been added to digitally sign and +verify the signatures on binary package files. [MERGED] + +/usr/src/share/examples/BSD_daemon/ now contains a scalable Beastie +graphic. [MERGED] + +dump(8) now supports inheritance of the "nodump" flag down a +hierarchy. [MERGED] + +The ISC DHCP client has been updated to 2.0pl5. [MERGED] + +split(1) now has the ability to split a file longer than 2GB. [MERGED] + +units(1) has received some updates and bugfixes. [MERGED] + +netstat(1) now keeps track of input and output packets on a +per-address basis for each interface. [MERGED] + +As part of an ongoing process, many manual pages were improved, both +in terms of their formatting markup and in their content. [MERGED] + +pkg_create(1) now records dependencies in dependency order rather than +in the order specified on the command line. This improves the +functioning of "pkg_add -r". [MERGED] + +"lprm -" now works for remote printer queues. [MERGED] + +ftpd(8) now supports a -r flag for read-only mode and a -E flag to +disable EPSV. It also has some fixes to reduce information leakage +and the ability to specify compile-time port ranges. [MERGED] + +ping(8) now supports a -m option to set the TTL of outgoing packets. + +A version of Transport Independent RPC (TI-RPC) has been imported. + +rpcbind(8) has replaced portmap(8). + +NFS now works over IPv6. + +lockd has been imported from NetBSD. + +rc(8) now has an framework for handling dependencies between +rc.conf(5) variables. [MERGED] + + +2. Supported Configurations +--------------------------- + +FreeBSD currently runs on a wide variety of ISA, VLB, EISA, MCA and PCI +bus based PC's, ranging from 386sx to Pentium class machines (though the +386sx is not recommended). Support for generic IDE or ESDI drive +configurations, various SCSI controller, network and serial cards is +also provided. + +What follows is a list of all peripherals currently known to work with +FreeBSD. Other configurations may also work, we have simply not as yet +received confirmation of this. + +2.1. Disk Controllers +--------------------- +IDE +ATA + +Adaptec 1535 ISA SCSI controllers +Adaptec 154x series ISA SCSI controllers +Adaptec 164x series MCA SCSI controllers +Adaptec 174x series EISA SCSI controller in standard and enhanced mode. +Adaptec 274X/284X/2920C/294x/2950/3940/3950 (Narrow/Wide/Twin) series +EISA/VLB/PCI SCSI controllers. +Adaptec AIC7850, AIC7860, AIC7880, AIC789x, on-board SCSI controllers. +Adaptec 1510 series ISA SCSI controllers (not for bootable devices) +Adaptec 152x series ISA SCSI controllers +Adaptec AIC-6260 and AIC-6360 based boards, which includes the AHA-152x +and SoundBlaster SCSI cards. + +Adaptec 2100S, 2400A, 3200S, and 3400S SCSI RAID controllers. + +Adaptec FSA family RAID controllers: + Adaptec AAC-2622 + Adaptec AAC-364 + Adaptec AAC-3642 + Dell PERC 2/QC + Dell PERC 2/Si + Dell PERC 3/Di + Dell PERC 3/QC + Dell PERC 3/Si + HP NetRAID-4M + +AdvanSys SCSI controllers (all models). + +BusLogic MultiMaster controllers: + +[ Please note that BusLogic/Mylex "Flashpoint" adapters are NOT yet supported ] + +BusLogic MultiMaster "W" Series Host Adapters: + BT-948, BT-958, BT-958D +BusLogic MultiMaster "C" Series Host Adapters: + BT-946C, BT-956C, BT-956CD, BT-445C, BT-747C, BT-757C, BT-757CD, BT-545C, + BT-540CF +BusLogic MultiMaster "S" Series Host Adapters: + BT-445S, BT-747S, BT-747D, BT-757S, BT-757D, BT-545S, BT-542D, BT-742A, + BT-542B +BusLogic MultiMaster "A" Series Host Adapters: + BT-742A, BT-542B + +AMI FastDisk controllers that are true BusLogic MultiMaster clones are also +supported. + +The Buslogic/Bustek BT-640 and Storage Dimensions SDC3211B and SDC3211F +Microchannel (MCA) bus adapters are also supported. + +DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and +SmartRAID IV SCSI/RAID controllers. + +DPT SmartRAID V and VI SCSI RAID controllers: + PM1554, PM2554, PM2654, PM2865, PM2754, PM3755, PM3757 + +AMI MegaRAID Express and Enterprise family RAID controllers: + MegaRAID Series 418 + MegaRAID Enterprise 1200 (Series 428) + MegaRAID Enterprise 1300 (Series 434) + MegaRAID Enterprise 1400 (Series 438) + MegaRAID Enterprise 1500 (Series 467) + MegaRAID Enterprise 1600 (Series 471) + MegaRAID Elite 1500 (Series 467) + MegaRAID Elite 1600 (Series 493) + MegaRAID Express 100 (Series 466WS) + MegaRAID Express 200 (Series 466) + MegaRAID Express 300 (Series 490) + MegaRAID Express 500 (Series 475) + Dell PERC + Dell PERC 2/SC + Dell PERC 2/DC + HP NetRAID-1si + HP NetRAID-3si + HP Embedded NetRAID +Booting from these controllers is supported. + +Mylex DAC960 and DAC1100 RAID controllers with 2.x, 3.x, 4.x and 5.x +firmware: + DAC960P + DAC960PD + DAC960PDU + DAC960PL + DAC960PJ + DAC960PG + AcceleRAID 150 + AcceleRAID 250 + eXtremeRAID 1100 +Booting from these controllers is supported. EISA adapters are not +supported. + +Mylex PCI to SCSI RAID controllers with 6.x firmware: + AcceleRAID 160 + AcceleRAID 170 + AcceleRAID 352 + eXtremeRAID 2000 + eXtremeRAID 3000 +Compatible Mylex controllers not listed should work, but have not been +verified. + +3ware Escalade ATA RAID controllers. All members of the 5000 and +6000 series are supported. + +SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C820, 53C825a, +53C860, 53C875, 53C875j, 53C885, 53C895 and 53C896 PCI SCSI controllers: + ASUS SC-200 + Data Technology DTC3130 (all variants) + Diamond FirePort (all) + NCR cards (all) + Symbios cards (all) + Tekram DC390W, 390U and 390F + Tyan S1365 + +NCR 53C500 based PC-Card SCSI host adapters: + IO DATA PCSC-DV + KME KXLC002(TAXAN ICD-400PN, etc.), KXLC004 + Macnica Miracle SCSI-II mPS110 + Media Intelligent MSC-110, MSC-200 + NEC PC-9801N-J03R + New Media Corporation BASICS SCSI + Qlogic Fast SCSI + RATOC REX-9530, REX-5572 (as SCSI only) + +TMC 18C30, 18C50 based ISA/PC-Card SCSI host adapters: + Future Domain SCSI2GO + IBM SCSI PCMCIA Card + ICM PSC-2401 SCSI + Melco IFC-SC + RATOC REX-5536, REX-5536AM, REX-5536M, REX-9836A + +QLogic 1020, 1040, 1040B, 1080 and 1240 SCSI Host Adapters. +QLogic 2100 Fibre Channel Adapters (private loop only). + +DTC 3290 EISA SCSI controller in 1542 emulation mode. + +Workbit Ninja SCSI-3 based PC-Card SCSI host adapters: + Alpha-Data AD-PCS201 + IO DATA CBSC16 + +With all supported SCSI controllers, full support is provided for +SCSI-I & SCSI-II peripherals, including hard disks, optical disks, +tape drives (including DAT and 8mm Exabyte), medium changers, processor +target devices and CDROM drives. WORM devices that support CDROM commands +are supported for read-only access by the CDROM driver. WORM/CD-R/CD-RW +writing support is provided by cdrecord, which is in the ports tree. + +The following CD-ROM type systems are supported at this time: +(cd) SCSI interface (also includes ProAudio Spectrum and + SoundBlaster SCSI) +(matcd) Matsushita/Panasonic (Creative SoundBlaster) proprietary + interface (562/563 models) +(scd) Sony proprietary interface (all models) +(acd) ATAPI IDE interface + +The following drivers were supported under the old SCSI subsystem, but are +NOT YET supported under the new CAM SCSI subsystem: + + NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller. + + UltraStor 14F, 24F and 34F SCSI controllers. + + Seagate ST01/02 SCSI controllers. + + Future Domain 8xx/950 series SCSI controllers. + + WD7000 SCSI controller. + + [ Note: There is work-in-progress to port the UltraStor driver to + the new CAM SCSI framework, but no estimates on when or if it will + be completed. ] + +Unmaintained drivers, they might or might not work for your hardware: + + (mcd) Mitsumi proprietary CD-ROM interface (all models) + + +2.2. Ethernet cards +------------------- + +Adaptec Duralink PCI Fast Ethernet adapters based on the Adaptec +AIC-6915 Fast Ethernet controller chip, including the following: + ANA-62011 64-bit single port 10/100baseTX adapter + ANA-62022 64-bit dual port 10/100baseTX adapter + ANA-62044 64-bit quad port 10/100baseTX adapter + ANA-69011 32-bit single port 10/100baseTX adapter + ANA-62020 64-bit single port 100baseFX adapter + +Allied-Telesis AT1700 and RE2000 cards + +Alteon Networks PCI Gigabit Ethernet NICs based on the Tigon 1 and Tigon 2 +chipsets, including the following: + Alteon AceNIC (Tigon 1 and 2) + 3Com 3c985-SX (Tigon 1 and 2) + Netgear GA620 (Tigon 2) + Silicon Graphics Gigabit Ethernet + DEC/Compaq EtherWORKS 1000 + NEC Gigabit Ethernet + +AMD PCnet/PCI (79c970 & 53c974 or 79c974) +AMD PCnet/FAST, PCnet/FAST+, PCnet/FAST III, PCnet/PRO, +PCnet/Home, and HomePNA. + +SMC Elite 16 WD8013 Ethernet interface, and most other WD8003E, +WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT +based clones. SMC Elite Ultra. SMC Etherpower II. + +RealTek 8129/8139 Fast Ethernet NICs including the following: + Allied Telesyn AT2550 + Allied Telesyn AT2500TX + Genius GF100TXR (RTL8139) + NDC Communications NE100TX-E + OvisLink LEF-8129TX + OvisLink LEF-8139TX + Netronix Inc. EA-1210 NetEther 10/100 + KTX-9130TX 10/100 Fast Ethernet + Accton "Cheetah" EN1207D (MPX 5030/5038; RealTek 8139 clone) + SMC EZ Card 10/100 PCI 1211-TX + +Lite-On 82c168/82c169 PNIC Fast Ethernet NICs including the following: + LinkSys EtherFast LNE100TX + NetGear FA310-TX Rev. D1 + Matrox FastNIC 10/100 + Kingston KNE110TX + +Macronix 98713, 98713A, 98715, 98715A and 98725 Fast Ethernet NICs + NDC Communications SFA100A (98713A) + CNet Pro120A (98713 or 98713A) + CNet Pro120B (98715) + SVEC PN102TX (98713) + +Macronix/Lite-On PNIC II LC82C115 Fast Ethernet NICs including the following: + LinkSys EtherFast LNE100TX Version 2 + +Winbond W89C840F Fast Ethernet NICs including the following: + Trendware TE100-PCIE + +VIA Technologies VT3043 "Rhine I" and VT86C100A "Rhine II" Fast Ethernet +NICs including the following: + Hawking Technologies PN102TX + D-Link DFE-530TX + AOpen/Acer ALN-320 + +Silicon Integrated Systems SiS 900 and SiS 7016 PCI Fast Ethernet NICs + +National Semiconductor DP83815 Fast Ethernet NICs including the following: + NetGear FA312-TX + +Sundance Technologies ST201 PCI Fast Ethernet NICs including +the following: + D-Link DFE-550TX + +SysKonnect SK-984x PCI Gigabit Ethernet cards including the following: + SK-9841 1000baseLX single mode fiber, single port + SK-9842 1000baseSX multimode fiber, single port + SK-9843 1000baseLX single mode fiber, dual port + SK-9844 1000baseSX multimode fiber, dual port + +Texas Instruments ThunderLAN PCI NICs, including the following: + Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100 Dual-Port + Compaq Netelligent 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, 10/100 TX UTP + Compaq NetFlex 3P, 3P Integrated, 3P w/ BNC + Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX UTP + Racore 8165 10/100baseTX + Racore 8148 10baseT/100baseTX/100baseFX multi-personality + +ADMtek Inc. AL981-based PCI Fast Ethernet NICs +ADMtek Inc. AN985-based PCI Fast Ethernet NICs +ADMtek Inc. AN986-based USB Ethernet NICs including the following: + LinkSys USB100TX + Billionton USB100 + Melco Inc. LUA-TX + D-Link DSB-650TX + SMC 2202USB + +CATC USB-EL1210A-based USB Ethernet NICs including the following: + CATC Netmate + CATC Netmate II + Belkin F5U111 + +Kawasaki LSI KU5KUSB101B-based USB Ethernet NICs including +the following: + LinkSys USB10T + Entrega NET-USB-E45 + Peracom USB Ethernet Adapter + 3Com 3c19250 + ADS Technologies USB-10BT + ATen UC10T + Netgear EA101 + D-Link DSB-650 + SMC 2102USB + SMC 2104USB + Corega USB-T + +ASIX Electronics AX88140A PCI NICs, including the following: + Alfa Inc. GFC2204 + CNet Pro110B + +DEC EtherWORKS III NICs (DE203, DE204, and DE205) +DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422) +DEC DC21040, DC21041, or DC21140 based NICs (SMC Etherpower 8432T, DE245, etc) + +Davicom DM9100 and DM9102 PCI Fast Ethernet NICs, including the +following: + Jaton Corporation XpressNet + +Fujitsu MB86960A/MB86965A, including the following: + CONTEC C-NET(PC)C Ethernet + Eiger Labs EPX-10BT + Fujitsu FMV-J182, FMV-J182A, MBH10302, MBH10303 Ethernet PCMCIA + Fujitsu Towa LA501 Ethernet + HITACHI HT-4840-11 + NextCom J Link NC5310 + RATOC REX-5588, REX-9822, REX-4886, REX-R280 + TDK LAK-CD021, LAK-CD021A, LAK-CD021BX + +HP PC Lan+ cards (model numbers: 27247B and 27252A). + +Intel EtherExpress 16 +Intel EtherExpress Pro/10 +Intel EtherExpress Pro/100B PCI Fast Ethernet +Intel InBusiness 10/100 PCI Network Adapter +Intel PRO/100+ Management Adapter + +Isolan AT 4141-0 (16 bit) +Isolink 4110 (8 bit) + +Novell NE1000, NE2000, and NE2100 Ethernet interface. + +PCI network cards emulating the NE2000: RealTek 8029, NetVin 5000, +Winbond W89C940, Surecom NE-34, VIA VT86C926. + +3Com 3C501 cards + +3Com 3C503 Etherlink II + +3Com 3c505 Etherlink/+ + +3Com 3C507 Etherlink 16/TP + +3Com 3C509, 3C529 (MCA), 3C579, +3C589/589B/589C/589D/589E/XE589ET/574TX/574B (PC-card/PCMCIA), +3C590/592/595/900/905/905B/905C PCI, +3C556/556B MiniPCI, +3C575TX/575B/XFE575BT/575C/656/656B/656C Cardbus, +and EISA (Fast) Etherlink III / (Fast) Etherlink XL + +3Com 3c980/3c980B Fast Etherlink XL server adapter + +3Com 3cSOHO100-TX OfficeConnect adapter + +Crystal Semiconductor CS89x0-based NICs, including: + IBM Etherjet ISA + +NE2000 compatible PC-Card (PCMCIA) Ethernet/FastEthernet cards, +including the following: + AR-P500 Ethernet card + Accton EN2212/EN2216/UE2216(OEM) + Allied Telesis CentreCOM LA100-PCM_V2 + AmbiCom 10BaseT card + BayNetworks NETGEAR FA410TXC Fast Ethernet + CNet BC40 adapter + COREGA Ether PCC-T/EtherII PCC-T/FEther PCC-TXF/PCC-TXD + Compex Net-A adapter + CyQ've ELA-010 + D-Link DE-650/660 + Danpex EN-6200P2 + ELECOM Laneed LD-CDL/TX + IO DATA PCLATE,PCET/TX-R + IBM Creditcard Ethernet I/II + IC-CARD Ethernet/IC-CARD+ Ethernet + Linksys EC2T/PCMPC100,EtherFast 10/100 PC Card (PCMPC100 V2) + Melco LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX + NDC Ethernet Instant-Link + National Semiconductor InfoMover NE4100 + Network Everywhere Ethernet 10BaseT PC Card + Planex FNW-3600-T + Socket LP-E + Surecom EtherPerfect EP-427 + TDK LAK-CD031,Grey Cell GCS2000 Ethernet Card + Telecom Device SuperSocket RE450T + +Megahertz X-Jack Ethernet PC-Card CC-10BT + +Xircom X3201 (Cardbus) based Ethernet cards, +including the following: + IBM EtherJet Cardbus Adapter + Intel PRO/100 Mobile Cardbus (versions that uses the X3201 chipset) + Xircom Cardbus Realport + Xircom Cardbus Ethernet 10/100 + Xircom Cardbus Ethernet II 10/100 + +Xircom CreditCard adapters(16bit) and workalikes + Accton EN2226/Fast EtherCard (16-bit verison) + Compaq Netelligent 10/100 PC Card + Intel EtherExpress PRO/100 Mobile Adapter (16-bit verison) + Xircom 10/100 Network PC Card adapter. + Xircom Realport card + modem(Ethernet part) + Xircom CreditCard Ethernet 10/100 + Xircom CreditCard 10Base-T "CreditCard Ethernet Adaptor IIps" (PS-CE2-10) + Xircom CreditCard Ethernet 10/100 + modem (Ethernet part) + +National Semiconductor DP8393X (SONIC) Ethernet cards + NEC PC-9801-83, -84, -103, and -104 + NEC PC-9801N-25 and -J02R + + +2.3. FDDI +--------- + +DEC FDDI (DEFPA/DEFEA) NICs + + +2.4. ATM +-------- + + o ATM Host Interfaces + - FORE Systems, Inc. PCA-200E ATM PCI Adapters + - Efficient Networks, Inc. ENI-155p ATM PCI Adapters + + o ATM Signaling Protocols + - The ATM Forum UNI 3.1 signaling protocol + - The ATM Forum UNI 3.0 signaling protocol + - The ATM Forum ILMI address registration + - FORE Systems' proprietary SPANS signaling protocol + - Permanent Virtual Channels (PVCs) + + o IETF "Classical IP and ARP over ATM" model + - RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5" + - RFC 1577, "Classical IP and ARP over ATM" + - RFC 1626, "Default IP MTU for use over ATM AAL5" + - RFC 1755, "ATM Signaling Support for IP over ATM" + - RFC 2225, "Classical IP and ARP over ATM" + - RFC 2334, "Server Cache Synchronization Protocol (SCSP)" + - Internet Draft draft-ietf-ion-scsp-atmarp-00.txt, + "A Distributed ATMARP Service Using SCSP" + + o ATM Sockets interface + + +2.5. Misc +--------- + +AST 4 port serial card using shared IRQ. + +ARNET 8 port serial card using shared IRQ. +ARNET (now Digiboard) Sync 570/i high-speed serial. + +Boca BB1004 4-Port serial card (Modems NOT supported) +Boca IOAT66 6-Port serial card (Modems supported) +Boca BB1008 8-Port serial card (Modems NOT supported) +Boca BB2016 16-Port serial card (Modems supported) + +Comtrol Rocketport card. + +Cyclades Cyclom-y Serial Board. + +STB 4 port card using shared IRQ. + +SDL Communications Riscom/8 Serial Board. +SDL Communications RISCom/N2 and N2pci high-speed sync serial boards. + +Stallion multiport serial boards: EasyIO, EasyConnection 8/32 & 8/64, +ONboard 4/16 and Brumby. + +Specialix SI/XIO/SX ISA, EISA and PCI serial expansion cards/modules. + +Advance Asound 100, 110 and Logic ALS120 +Crystal Semiconductor CS461x/462x/428x +ENSONIQ AudioPCI ES1370/1371 +ESS ES1868, ES1869, ES1879 and ES1888 +ESS Maestro-1, Maestro-2, and Maestro-2E +ESS Maestro-3/Allegro +ForteMedia fm801 +Gravis UltraSound MAX/PnP +MSS/WSS Compatible DSPs +NeoMagic 256AV/ZX +OPTi 931/82C931 +SoundBlaster, Soundblaster Pro, Soundblaster AWE-32, Soundblaster AWE-64 +Trident 4DWave DX/NX +VIA Technologies VT82C686A +Yamaha DS1 and DS1e +(newpcm driver) + +Connectix QuickCam +Matrox Meteor Video frame grabber +Creative Labs Video Spigot frame grabber +Cortex1 frame grabber +Hauppauge Wincast/TV boards (PCI) +STB TV PCI +Intel Smart Video Recorder III +Various Frame grabbers based on Brooktree Bt848 / Bt878 chip. + +HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R drives. + +PS/2 mice + +Standard PC Joystick + +X-10 power controllers + +GPIB and Transputer drivers. + +Genius and Mustek hand scanners. + +Xilinx XC6200 based reconfigurable hardware cards compatible with +the HOT1 from Virtual Computers (www.vcc.com) + +Support for Dave Mills experimental Loran-C receiver. + +Lucent Technologies WaveLAN/IEEE 802.11 PCMCIA and ISA standard speed +(2Mbps) and turbo speed (6Mbps) wireless network adapters and workalikes +NCR WaveLAN/IEEE 802.11 +Cabletron RoamAbout 802.11 DS +Compaq WL100 +Corega KK Wireless LAN PCC-11, PCCA-11 +Laneed Wireless card +ELECOM Air@Hawk/LD-WL11/PCC +Farallon Skyline 11Mbps Wireless +ICOM SL-1100 +IO Data WN-B11/PCM +Melco Airconnect WLI-PCM-L11 +NEC Wireless Card CMZ-RT-WP, PC-WL/11C, PK-WL001 +PLANEX GeoWave/GW-NS110 +TDK LAK-CD011WL +Note: the ISA versions of these adapters are actually PCMCIA cards +combined with an ISA to PCMCIA bridge card, so both kinds of devices +work with the same driver. + +Aironet 4500/4800 series 802.11 wireless adapters. The PCMCIA, +PCI and ISA adapters are all supported. +Cisco Systems Aironet 340 Series (includes 340, 341, and 342 models) +11Mbps 802.11 wireless NIC + +Webgear Aviator 2.4GHz wireless adapters. + +AcerISDN P10 ISA PnP (experimental) +Asuscom ISDNlink 128K ISA +AVM A1 +AVM Fritz!Card classic +AVM Fritz!Card PnP +AVM Fritz!Card PCI +Creatix ISDN-S0 +Creatix ISDN-S0 P&P +Dr. Neuhaus Niccy Go@ and compatibles +Dynalink IS64PH +ELSA PCC-16 +ELSA QuickStep 1000pro ISA +ELSA MicroLink ISDN/PCI +ELSA QuickStep 1000pro PCI +ITK ix1 Micro ( < V.3, non-PnP version ) +Sedlbauer Win Speed +Siemens I-Surf 2.0 +TELEINT ISDN SPEED No.1 (experimental) +Teles S0/8 +Teles S0/16 +Teles S0/16.3 +Teles S0/16.3 PnP +Teles 16.3c ISA PnP (experimental) +USRobotics Sportster ISDN TA intern +Winbond W6692 based PCI cards + +Toshiba Mobile HDD MEHDD20A (Type II) + +Panasonic Flash ATA BN-040ABP3 + +Hewlett Packard M820e (CD-writer) + +FAX-Modem/PC-Card +Melco IGM-PCM56K/IGM-PCM56KH +Nokia Card Phone 2.0 (gsm900/dcs1800 HSCSD terminal) + +PHS Data Communication Card/PC-Card +NTT DoCoMo P-in Comp@ct +Panasonic KX-PH405 +SII MC-P200 + + +3. Obtaining FreeBSD +-------------------- + +You may obtain FreeBSD in a variety of ways: + + +3.1. FTP/Mail +------------- + +You can ftp FreeBSD and any or all of its optional packages from +`ftp.FreeBSD.org' - the official FreeBSD release site. + +For other locations that mirror the FreeBSD software see the file +MIRROR.SITES. Please ftp the distribution from the site closest (in +networking terms) to you. Additional mirror sites are always welcome! +Contact freebsd-admin@FreeBSD.org for more details if you'd like to +become an official mirror site. + +If you do not have access to the Internet and electronic mail is your +only recourse, then you may still fetch the files by sending mail to +`ftpmail@ftpmail.vix.com' - putting the keyword "help" in your message +to get more information on how to fetch files using this mechanism. +Please do note, however, that this will end up sending many *tens of +megabytes* through the mail and should only be employed as an absolute +LAST resort! + + +3.2. CDROM +---------- + +FreeBSD 4.x-RELEASE and 3.x-RELEASE CDs may be ordered on CDROM from: + + BSDi / Walnut Creek CDROM + 4041 Pike Lane, Suite D + Concord CA 94520 + USA + +1-800-786-9907, +1-925-674-0783, +1-925-674-0821 (FAX) + +Or via the Internet from orders@cdrom.com or http://www.cdrom.com. +Their current catalog can be obtained via ftp from: + + ftp://ftp.cdrom.com/cdrom/catalog + +Cost per -RELEASE CD is $39.95 or $24.95 with a FreeBSD subscription. +FreeBSD SNAPshot CDs, when available, are $39.95 or $14.95 with a +FreeBSD-SNAP subscription (-RELEASE and -SNAP subscriptions are entirely +separate). With a subscription, you will automatically receive updates as +they are released. Your credit card will be billed when each disk is +shipped and you may cancel your subscription at any time without further +obligation. + +Shipping (per order not per disc) is $5 in the US, Canada or Mexico +and $9.00 overseas. They accept Visa, Mastercard, Discover, American +Express or checks in U.S. Dollars and ship COD within the United +States. California residents please add 8.25% sales tax. + +Should you be dissatisfied for any reason, the CD comes with an +unconditional return policy. + + +4. Upgrading from previous releases of FreeBSD +---------------------------------------------- + +If you're upgrading from a previous release of FreeBSD, most likely +it's 3.0 and there may be some issues affecting you, depending +of course on your chosen method of upgrading. There are two popular +ways of upgrading FreeBSD distributions: + + o Using sources, via /usr/src + o Using sysinstall's (binary) upgrade option. + +Please read the UPGRADE.TXT file for more information, preferably +before beginning an upgrade. + + +5. Reporting problems, making suggestions, submitting code. +----------------------------------------------------------- +Your suggestions, bug reports and contributions of code are always +valued - please do not hesitate to report any problems you may find +(preferably with a fix attached, if you can!). + +The preferred method to submit bug reports from a machine with +Internet mail connectivity is to use the send-pr command or use the CGI +script at http://www.FreeBSD.org/send-pr.html. Bug reports +will be dutifully filed by our faithful bugfiler program and you can +be sure that we'll do our best to respond to all reported bugs as soon +as possible. Bugs filed in this way are also visible on our WEB site +in the support section and are therefore valuable both as bug reports +and as "signposts" for other users concerning potential problems to +watch out for. + +If, for some reason, you are unable to use the send-pr command to +submit a bug report, you can try to send it to: + + freebsd-bugs@FreeBSD.org + +Note that send-pr itself is a shell script that should be easy to move +even onto a totally different system. We much prefer if you could use +this interface, since it make it easier to keep track of the problem +reports. However, before submitting, please try to make sure whether +the problem might have already been fixed since. + + +Otherwise, for any questions or tech support issues, please send mail to: + + freebsd-questions@FreeBSD.org + + +If you're tracking the -current development efforts, you should +definitely join the -current mailing list, in order to keep abreast +of recent developments and changes that may affect the way you +use and maintain the system: + + freebsd-current@FreeBSD.org + + +Additionally, being a volunteer effort, we are always happy to have +extra hands willing to help - there are already far more desired +enhancements than we'll ever be able to manage by ourselves! To +contact us on technical matters, or with offers of help, please send +mail to: + + freebsd-hackers@FreeBSD.org + + +Please note that these mailing lists can experience *significant* +amounts of traffic and if you have slow or expensive mail access and +are only interested in keeping up with significant FreeBSD events, you +may find it preferable to subscribe instead to: + + freebsd-announce@FreeBSD.org + + +All of the mailing lists can be freely joined by anyone wishing +to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword +`help' on a line by itself somewhere in the body of the message. This +will give you more information on joining the various lists, accessing +archives, etc. There are a number of mailing lists targeted at +special interest groups not mentioned here, so send mail to majordomo +and ask about them! + + +6. Acknowledgments +------------------ + +FreeBSD represents the cumulative work of many hundreds, if not +thousands, of individuals from around the world who have worked very +hard to bring you this release. For a complete list of FreeBSD +project staffers, please see: + + http://www.FreeBSD.org/handbook/staff.html + +or, if you've loaded the doc distribution: + + file:/usr/share/doc/handbook/staff.html + + +Special mention to: + + The donors listed at http://www.FreeBSD.org/handbook/donors.html + + Justin M. Seger <jseger@FreeBSD.org> for almost single-handedly + converting the ports collection to ELF. + + Doug Rabson <dfr@FreeBSD.org> and John Birrell <jb@FreeBSD.org> + for making FreeBSD/alpha happen and to the NetBSD project for + substantial indirect aid. + + Peter Wemm <peter@FreeBSD.org> for the new kernel module system + (with substantial aid from Doug Rabson). + + And to the many thousands of FreeBSD users and testers all over the + world, without whom this release simply would not have been possible. + +We sincerely hope you enjoy this release of FreeBSD! + + The FreeBSD Project + +$FreeBSD$ diff --git a/release/write_mfs_in_kernel.c b/release/write_mfs_in_kernel.c new file mode 100644 index 000000000000..379112459ee8 --- /dev/null +++ b/release/write_mfs_in_kernel.c @@ -0,0 +1,96 @@ +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + * + * This program patches a filesystem into a kernel made with MD_ROOT + * option. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/types.h> +#include <sys/param.h> +#include <sys/stat.h> +#include <ufs/ffs/fs.h> + +static int force = 0; /* don't check for zeros, may corrupt kernel */ + +int +main(int argc, char **argv) +{ + unsigned char *buf_kernel, *buf_fs, *p,*q, *prog; + int fd_kernel, fd_fs, ch, errs=0; + struct stat st_kernel, st_fs; + u_long l; + + prog= *argv; + while ((ch = getopt(argc, argv, "f")) != EOF) + switch(ch) { + case 'f': + force = 1 - force; + break; + default: + errs++; + } + argc -= optind; + argv += optind; + + if (errs || argc != 2) { + fprintf(stderr,"Usage:\n\t%s [-f] kernel fs\n", prog); + exit(2); + } + --argv; /* original prog did not use getopt(3) */ + fd_kernel = open(argv[1],O_RDWR); + if (fd_kernel < 0) { perror(argv[1]); exit(2); } + fstat(fd_kernel,&st_kernel); + fd_fs = open(argv[2],O_RDONLY); + if (fd_fs < 0) { perror(argv[2]); exit(2); } + fstat(fd_fs,&st_fs); + buf_kernel = malloc(st_kernel.st_size); + if (!buf_kernel) { perror("malloc"); exit(2); } + buf_fs = malloc(st_fs.st_size); + if (!buf_fs) { perror("malloc"); exit(2); } + if (st_kernel.st_size != read(fd_kernel,buf_kernel,st_kernel.st_size)) + { perror(argv[1]); exit(2); } + if (st_fs.st_size != read(fd_fs,buf_fs,st_fs.st_size)) + { perror(argv[2]); exit(2); } + for(l=0,p=buf_kernel; l < st_kernel.st_size - st_fs.st_size ; l++,p++ ) + if(*p == 'M' && !strcmp(p,"MFS Filesystem goes here")) + goto found; + fprintf(stderr,"MFS filesystem signature not found in %s\n",argv[1]); + exit(1); +found: + if (!force) + for(l=0,q= p + SBOFF; l < st_fs.st_size - SBOFF ; l++,q++ ) + if (*q) + goto fail; + memcpy(p+SBOFF,buf_fs+SBOFF,st_fs.st_size-SBOFF); + lseek(fd_kernel,0L,SEEK_SET); + if (st_kernel.st_size != write(fd_kernel,buf_kernel,st_kernel.st_size)) + { perror(argv[1]); exit(2); } + exit(0); +fail: + l += SBOFF; + fprintf(stderr,"Obstruction in kernel after %ld bytes (%ld Kbyte)\n", + l, l/1024); + fprintf(stderr,"Filesystem is %ld bytes (%ld Kbyte)\n", + (u_long)st_fs.st_size, (u_long)st_fs.st_size/1024); + exit(1); +} + +/* + * I added a '-f' option to force writing the image into the kernel, even when + * there is already data (i.e. not zero) in the written area. This is useful + * to rewrite a changed MD-image. Beware: If the written image is larger than + * the space reserved in the kernel (with option MD_ROOT) then + * THIS WILL CORRUPT THE KERNEL! + * + */ |