diff options
-rw-r--r-- | FAQ/FAQ.sgml | 6219 |
1 files changed, 3147 insertions, 3072 deletions
diff --git a/FAQ/FAQ.sgml b/FAQ/FAQ.sgml index 382acb9d74..84050f5ad0 100644 --- a/FAQ/FAQ.sgml +++ b/FAQ/FAQ.sgml @@ -1,5 +1,5 @@ <!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> -<!-- $Id: FAQ.sgml,v 1.85 1997-10-18 16:05:59 brian Exp $ --> +<!-- $Id: FAQ.sgml,v 1.86 1997-10-18 23:34:07 brian Exp $ --> <article> @@ -7,7 +7,7 @@ <author>Please send submissions to <tt><htmlurl url='mailto:faq@freebsd.org' name='<faq@freebsd.org>'></tt> - <date>$Date: 1997-10-18 16:05:59 $</date> + <date>$Date: 1997-10-18 23:34:07 $</date> <abstract> This is the FAQ for FreeBSD systems version 2.X All entries are @@ -473,10 +473,10 @@ users: <itemize> - <item><url url="comp.unix.bsd.freebsd.announce" + <item><url url="news:comp.unix.bsd.freebsd.announce" name="comp.unix.bsd.freebsd.announce"> (moderated) - <item><url url="comp.unix.bsd.freebsd.misc" + <item><url url="news:comp.unix.bsd.freebsd.misc" name="comp.unix.bsd.freebsd.misc"> <item><url url="comp.unix.bsd.misc" name="comp.unix.bsd.misc"> @@ -1753,2095 +1753,2168 @@ usenet/news.answers/mail/sendmail-faq" as the body of the message. - <sect> - <heading>Commercial Applications</heading> + <sect> + <heading>Commercial Applications</heading> - <p> - <bf/NOTE/ This section is still very sparse, though we're hoping, of - course, that companies will add to it! :) The FreeBSD group has no - financial interest in any of the companies listed here but simply - lists them as a public service (and feels that commercial interest - in FreeBSD can have very positive effects on FreeBSD's long-term - viability). We encourage commercial software vendors to send their - entries here for inclusion. - - - <sect1> - <heading>Where can I get Motif for FreeBSD?</heading> - <p>Contact <ref id="xig" name="Xi Graphics"> for a Motif 2.0 - distribution for FreeBSD. - - This distribution includes: - <itemize> - <item>OSF/Motif manager, xmbind, panner, wsm. - <item>Development kit with uil, mrm, xm, xmcxx, include and Imake files. - <item>Static and dynamic libraries. - <item>Demonstration applets. - <item>Preformatted man pages. - </itemize> - - <p>Be sure to specify that you want the FreeBSD version of Motif - when ordering! Versions for BSDI and Linux are also sold by - <em>Xi Graphics</em>. This is currently a 4 diskette set... in the - future this will change to a unified CD distribution like their CDE.</p> - - <sect1> - <heading>Where can I get CDE for FreeBSD?</heading> - <p>Contact <ref id="xig" name="Xi Graphics"> for a CDE 1.0.10 - distribution for FreeBSD. This includes Motif 1.2.5, and can - be used with Motif 2.0. - - <p>This is a unified CDROM distribution for FreeBSD and Linux.</p> - - <sect1> - <heading>Are there any commercial high-performance X servers?<label id="xig"></heading> - <p> - Yes, <url url="http://www.xig.com" name="Xi Graphics"> - sells their Accelerated-X product for FreeBSD and other Intel - based systems. - - This high performance X Server offers easy configuration, support - for multiple concurrent video boards and is distributed in binary - form only, in a unified diskette distribution for FreeBSD and Linux. - - There is a free "compatibility demo" of version 3.1 available. - - Xi Graphics also sells Motif and CDE for FreeBSD (see above). - - <descrip> - <tag/More info/ - <url url="http://www.xig.com/" name="Xi Graphics WWW page"> - <tag/or/ - <url url="mailto:sales@xig.com" name="Sales"> or - <url url="mailto:support@xig.com" name="Support"> - email addresses. - <tag/or/ - phone (800) 946 7433 or +1 303 298-7478. - </descrip> - - <sect1> - <heading>Are there any Database systems for FreeBSD?</heading> - <p> - Yes! Conetic Software Systems has ported their C/base and C/books - database systems to FreeBSD 2.0.5 and higher, and Sleepycat - Software is selling a commercially supported version of the DB - database library. - - <descrip> - <tag/For more information/ - <url url="http://www.conetic.com/" name="Conetic Software Systems"> - <tag/or mail/ - <url url="mailto:info@conetic.com" name="Information E-mail address">, - <tag/and/ - <url url="http://www.sleepycat.com/" name = "Sleepycat Software">. - </descrip> - - <sect> - <heading>User Applications</heading> - <sect1> - <heading>So, where are all the user applications?</heading> - - <p> - Please take a look at <url - url="http://www.FreeBSD.ORG/ports/" name="the ports page"> - for info on software packages ported to FreeBSD. The list currently - tops 1000 and is growing daily, so come back to check often - or subscribe to the <tt/freebsd-announce/ <ref id="mailing" - name="mailing list"> for periodic updates on new entries. - - Most ports should be available for both the 2.2 and 3.0 - branches, and many of them should work on 2.1.x systems as - well. Each time a FreeBSD release is made, a snapshot of the - ports tree at the time of release in also included in the - <tt>ports/</tt> directory. - - We also support the concept of a ``package'', essentially no - more than a gzipped binary distribution with a little extra - intelligence embedded in it for doing whatever custom installation - work is required. A package can installed and uninstalled - again easily without having to know the gory details of which - files it includes. - - Use the package installation menu in <tt>/stand/sysinstall</tt> - (under the post-configuration menu item) or invoke the - <em>pkg_add(1)</em> command on the specific package files you're - interested in installing. Package files can usually be identified by - their <em>.tgz</em> suffix and CDROM distribution people will have - a <tt>packages/All</tt> directory on their CD which contains such - files. They can also be downloaded over the net for various versions - of FreeBSD at the following locations: - - <descrip> - <tag>for 2.1.x-release</tag> - <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/" - name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/"> - <tag>for 2.2.2-release/2.2-stable</tag> - <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2/" - name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2/"> - <tag>for 3.0-current</tag> - <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/" - name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/"> - </descrip> - - or your nearest local mirror site. - - Note that all ports may not be available as packages since - new ones are constantly being added. It is always a good - idea to check back periodically to see which packages are available - at the <url url="ftp://ftp.freebsd.org/pub/FreeBSD/" - name="ftp.freebsd.org"> master site. - - <sect1> - <heading>ghostscript gives lots of errors with my 386/486SX.<label id="emul"></heading> - - <p> - You don't have a math co-processor, right? - You will need to add the alternative math emulator to your kernel; - you do this by adding the following to your kernel config file - and it will be compiled in. - - <verb> - options GPL_MATH_EMULATE - </verb> - - <bf/NOTE/ You will need to remove the <tt/MATH_EMULATE/ - option when you do this. - - <sect1> - <heading>Where do I find libc.so.3.0?</heading> - <p> - You are trying to run a package for 2.2/3.0 on a 2.1.x - system. Please take a look at the previous section and get - the correct port/package for your system. - - <sect1> - <heading>When I run a SCO/iBCS2 application, it bombs on <tt/socksys/.</heading> - - <p> - You first need to edit the <tt>/etc/sysconfig</tt> - (or <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" - name="/etc/rc.conf">) file in the last - section to change the following variable to <tt/YES/: - <verb> - # Set to YES if you want ibcs2 (SCO) emulation loaded at startup - ibcs2=NO - </verb> - It will load the <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ibcs2" name="ibcs2"> - kernel module at startup. - - You'll then need to set up /compat/ibcs2/dev to look like: - - <verb> + <p><bf/NOTE/ This section is still very sparse, though we're hoping, of + course, that companies will add to it! :) The FreeBSD group has no + financial interest in any of the companies listed here but simply + lists them as a public service (and feels that commercial interest + in FreeBSD can have very positive effects on FreeBSD's long-term + viability). We encourage commercial software vendors to send their + entries here for inclusion. + + <sect1> + <heading>Where can I get Motif for FreeBSD?</heading> + + <p>Contact <ref id="xig" name="Xi Graphics"> for a Motif 2.0 + distribution for FreeBSD. + + <p>This distribution includes: + <itemize> + <item>OSF/Motif manager, xmbind, panner, wsm. + + <item>Development kit with uil, mrm, xm, xmcxx, include and Imake + files. + + <item>Static and dynamic libraries. + + <item>Demonstration applets. + + <item>Preformatted man pages. + </itemize> + + <p>Be sure to specify that you want the FreeBSD version of Motif + when ordering! Versions for BSDI and Linux are also sold by + <em>Xi Graphics</em>. This is currently a 4 diskette set... in the + future this will change to a unified CD distribution like their CDE. + + <sect1> + <heading>Where can I get CDE for FreeBSD?</heading> + + <p>Contact <ref id="xig" name="Xi Graphics"> for a CDE 1.0.10 + distribution for FreeBSD. This includes Motif 1.2.5, and can + be used with Motif 2.0. + + <p>This is a unified CDROM distribution for FreeBSD and Linux. + + <sect1> + <heading> + Are there any commercial high-performance X servers?<label id="xig"> + </heading> + + <p>Yes, <url url="http://www.xig.com" name="Xi Graphics"> sells their + Accelerated-X product for FreeBSD and other Intel based systems. + + <p>This high performance X Server offers easy configuration, support + for multiple concurrent video boards and is distributed in binary + form only, in a unified diskette distribution for FreeBSD and Linux. + + <p>There is a free "compatibility demo" of version 3.1 available. + + <p>Xi Graphics also sells Motif and CDE for FreeBSD (see above). + + <descrip> + <tag/More info/ + <url url="http://www.xig.com/" name="Xi Graphics WWW page"> + + <tag/or/ <url url="mailto:sales@xig.com" name="Sales"> or + <url url="mailto:support@xig.com" name="Support"> email addresses. + + <tag/or/ phone (800) 946 7433 or +1 303 298-7478. + </descrip> + + <sect1> + <heading>Are there any Database systems for FreeBSD?</heading> + + <p>Yes! Conetic Software Systems has ported their C/base and C/books + database systems to FreeBSD 2.0.5 and higher, and Sleepycat + Software is selling a commercially supported version of the DB + database library. + + <descrip> + <tag/For more information/ + <url url="http://www.conetic.com/" name="Conetic Software Systems"> + + <tag/or mail/ + <url url="mailto:info@conetic.com" name="Information E-mail address">, + + <tag/and/ + <url url="http://www.sleepycat.com/" name = "Sleepycat Software">. + </descrip> + + <sect> + <heading>User Applications</heading> + + <sect1> + <heading>So, where are all the user applications?</heading> + + <p>Please take a look at <url url="http://www.FreeBSD.ORG/ports/" + name="the ports page"> for info on software packages ported to + FreeBSD. The list currently tops 1000 and is growing daily, so come + back to check often or subscribe to the <tt/freebsd-announce/ + <ref id="mailing" name="mailing list"> for periodic updates on new + entries. + + <p>Most ports should be available for both the 2.2 and 3.0 + branches, and many of them should work on 2.1.x systems as + well. Each time a FreeBSD release is made, a snapshot of the + ports tree at the time of release in also included in the + <tt>ports/</tt> directory. + + <p>We also support the concept of a ``package'', essentially no + more than a gzipped binary distribution with a little extra + intelligence embedded in it for doing whatever custom installation + work is required. A package can installed and uninstalled + again easily without having to know the gory details of which + files it includes. + + <p>Use the package installation menu in <tt>/stand/sysinstall</tt> + (under the post-configuration menu item) or invoke the + <em>pkg_add(1)</em> command on the specific package files you're + interested in installing. Package files can usually be identified by + their <em>.tgz</em> suffix and CDROM distribution people will have + a <tt>packages/All</tt> directory on their CD which contains such + files. They can also be downloaded over the net for various versions + of FreeBSD at the following locations: + + <descrip> + <tag>for 2.1.x-release</tag> + <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/" + name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/"> + + <tag>for 2.2.2-release/2.2-stable</tag> + <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2/" + name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2/"> + + <tag>for 3.0-current</tag> + <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/" + name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/"> + </descrip> + + <p>or your nearest local mirror site. + + <p>Note that all ports may not be available as packages since + new ones are constantly being added. It is always a good + idea to check back periodically to see which packages are available + at the <url url="ftp://ftp.freebsd.org/pub/FreeBSD/" + name="ftp.freebsd.org"> master site. + + <sect1> + <heading> + ghostscript gives lots of errors with my 386/486SX.<label id="emul"> + </heading> + + <p>You don't have a math co-processor, right? + You will need to add the alternative math emulator to your kernel; + you do this by adding the following to your kernel config file + and it will be compiled in. + + <verb> + options GPL_MATH_EMULATE + </verb> + + <p><bf/NOTE/ You will need to remove the <tt/MATH_EMULATE/ + option when you do this. + + <sect1> + <heading>Where do I find libc.so.3.0?</heading> + + <p>You are trying to run a package for 2.2/3.0 on a 2.1.x + system. Please take a look at the previous section and get + the correct port/package for your system. + + <sect1> + <heading> + When I run a SCO/iBCS2 application, it bombs on <tt/socksys/. + </heading> + + <p>You first need to edit the <tt>/etc/sysconfig</tt> + (or <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" + name="/etc/rc.conf">) file in the last section to change the + following variable to <tt/YES/: + + <verb> + # Set to YES if you want ibcs2 (SCO) emulation loaded at startup + ibcs2=NO + </verb> + + <p>It will load the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ibcs2" name="ibcs2"> + kernel module at startup. + + <p>You'll then need to set up /compat/ibcs2/dev to look like: + + <verb> lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys -rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx - </verb> - You just need socksys to go to <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?null(4)" - name="/dev/null"> to fake the - open & close. The code in -current will handle the rest. - This is much cleaner than the way it was done before. If you - want the <tt/spx/ driver for a local socket X connection, define - <tt/SPX_HACK/ when you compile the system. - - <sect1> - <heading>How do I configure INN (Internet News) for my machine?</heading> - - <p>After installing the inn package or port, the - <url url="http://www.math.psu.edu/barr/INN.html" - name="Dave Barr's INN Page"> - where you'll find the INN FAQ may be an excellent place to start. - - <sect> - <heading>Kernel Configuration</heading> - <p> - <sect1> - <heading>I'd like to customize my kernel. Is it difficult?<label id="make-kernel"></heading> - <p> - Not at all! First, you need either the complete - <tt/srcdist/ or, at the minimum, the <tt/kerndist/ loaded on your - system. This provides the necessary sources for building the - kernel, as, unlike most commercial UNIX vendors, we have a policy - of <bf/NOT/ shipping our kernel code in binary object form. - Shipping the source takes a bit more space, but it also means - that you can refer to the actual kernel sources in case of - difficulty or to further your understanding of what's - <bf/really/ happening. - - Once you have the <tt/kerndist/ or <tt/srcdist/ loaded, do this: - - <enum> - <item> <tt>cd /usr/src/sys/i386/conf</tt> - <item> <tt/cp GENERIC MYKERNEL/ - <item> <tt/vi MYKERNEL/ - <item> <tt/config MYKERNEL/ - <item> <tt>cd ../../compile/MYKERNEL</tt> - <item> <tt/make depend/ - <item> <tt/make all/ - <item> <tt/make install/ - <item> <tt/reboot/ - </enum> - - Step 2 may not be necessary if you already have a kernel - configuration file from a previous release of FreeBSD 2.X. - - simply bring your old one over and check it carefully for any - drivers that may have changed boot syntax or been rendered - obsolete. - - A good kernel config file to look into is <tt/LINT/, which - contains entries for <bf/all/ possible kernel options and - documents them fairly well. The <tt/GENERIC/ kernel config file - is used to build the initial release you probably loaded (unless - you upgraded in-place) and contains entries for the most common - configurations. It's a pretty good place to start from. - - If you don't need to make any changes to <tt/GENERIC/, you can - also skip step 3, where you customize the kernel for your - configuration. Step 8 should only be undertaken if steps 6 and 7 - succeed. This will copy the new kernel image to - <tt>/kernel</tt> and <bf/BACK UP YOUR OLD ONE IN/ - <tt>/kernel.old</tt>! It's very important to remember this in - case the new kernel fails to work for some reason - you can still - select <tt>/kernel.old</tt> at the boot prompt to boot the old - one. When you reboot, the new kernel will boot by default. - - If the compile in step 7 falls over for some reason, then it's - recommended that you start from step 4 but substitute - <tt/GENERIC/ for <tt/MYKERNEL/. If you can generate a - <tt/GENERIC/ kernel, then it's likely something in your special - configuration file that's bad (or you've uncovered a bug!). If - the build of the <tt/GENERIC/ kernel does <bf/NOT/ succeed, then - it's very likely that your sources are somehow corrupted. - - Finally, if you need to see your original boot messages again to - compile a new kernel that's better tailored to your hardware, try - the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?dmesg" - name="dmesg"> command. It should print out all the boot-time - messages printed by your old kernel, some of which may be quite - helpful in configuring the new one. - - <bf/NOTE:/ I recommend making a dated snapshot of your kernel - in <tt/kernel.YYMMDD/ after you get it all working, that way if - you do something dire the next time you play with your configuration - you can boot that kernel instead of having to go all the way back - to <tt/kernel.GENERIC/. This is particularly important if you're - now booting off a controller that isn't supported in the GENERIC - kernel (yes, personal experience). - - <sect1> - <heading>My kernel compiles fail because <tt/_hw_float/ is missing.</heading> - - <p> - Let me guess. You removed <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?npx(4)" - name="npx0"> from your kernel configuration - file because you don't have a math co-processor, right? Wrong! :-) - The <tt/npx0/ is <bf/MANDATORY/. Even if you don't have a - mathematic co-processor, you <bf/must/ include the <tt/npx0/ - device. - - <sect1> - <heading>Interrupt conflicts with multi-port serial code.</heading> - <p> - Q. When I compile a kernel with multi-port serial code, it tells me - that only the first port is probed and the rest skipped due to - interrupt conflicts. How do I fix this? - - <p> - A. The problem here is that FreeBSD has code built-in to keep the - kernel from getting trashed due to hardware or software - conflicts. The way to fix this is to leave out the IRQ settings - on all but one port. Here is a example: + </verb> -<verb> -# -# Multiport high-speed serial line - 16550 UARTS -# -device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr -device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr -device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr -device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr -</verb> + <p>You just need socksys to go to <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?null(4)" name="/dev/null"> + to fake the open & close. The code in -current will handle the + rest. This is much cleaner than the way it was done before. If you + want the <tt/spx/ driver for a local socket X connection, define + <tt/SPX_HACK/ when you compile the system. - <sect1> - <heading>How do I enable support for QIC-40/80 drives?</heading> + <sect1> + <heading> + How do I configure INN (Internet News) for my machine? + </heading> - <p> - You need to uncomment the following line in the generic config - file (or add it to your config file), add a ``<tt/flags 0x1/'' - on the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fdc(4)" - name="fdc"> line and recompile. + <p>After installing the inn package or port, an excelent place to + start is <url url="http://www.math.psu.edu/barr/INN.html" + name="Dave Barr's INN Page"> where you'll find the INN FAQ. -<verb> + <sect> + <heading>Kernel Configuration</heading> + + <sect1> + <heading> + I'd like to customize my kernel. Is it difficult? + <label id="make-kernel"> + </heading> + + <p>Not at all! First, you need either the complete <tt/srcdist/ or, at + the minimum, the <tt/kerndist/ loaded on your system. This provides the + necessary sources for building the kernel, as, unlike most commercial + UNIX vendors, we have a policy of <bf/NOT/ shipping our kernel code in + binary object form. + + <p>Shipping the source takes a bit more space, but it also means + that you can refer to the actual kernel sources in case of + difficulty or to further your understanding of what's + <bf/really/ happening. + + <p>Once you have the <tt/kerndist/ or <tt/srcdist/ loaded, do the + following as root: + + <enum> + <item> <tt>cd /usr/src/sys/i386/conf</tt> + <item> <tt/cp GENERIC MYKERNEL/ + <item> <tt/vi MYKERNEL/ + <item> <tt/config MYKERNEL/ + <item> <tt>cd ../../compile/MYKERNEL</tt> + <item> <tt/make depend/ + <item> <tt/make all/ + <item> <tt/make install/ + <item> <tt/reboot/ + </enum> + + <p>Step 2 may not be necessary if you already have a kernel + configuration file from a previous release of FreeBSD 2.X. - + simply bring your old one over and check it carefully for any + drivers that may have changed boot syntax or been rendered + obsolete. + + <p>A good kernel config file to look into is <tt/LINT/, which + contains entries for <bf/all/ possible kernel options and + documents them fairly well. The <tt/GENERIC/ kernel config file + is used to build the initial release you probably loaded (unless + you upgraded in-place) and contains entries for the most common + configurations. It's a pretty good place to start from. + + <p>If you don't need to make any changes to <tt/GENERIC/, you can + also skip step 3, where you customize the kernel for your + configuration. Step 8 should only be undertaken if steps 6 and 7 + succeed. This will copy the new kernel image to + <tt>/kernel</tt> and <bf/BACK UP YOUR OLD ONE IN/ + <tt>/kernel.old</tt>! It's very important to remember this in + case the new kernel fails to work for some reason - you can still + select <tt>/kernel.old</tt> at the boot prompt to boot the old + one. When you reboot, the new kernel will boot by default. + + <p>If the compile in step 7 falls over for some reason, then it's + recommended that you start from step 4 but substitute + <tt/GENERIC/ for <tt/MYKERNEL/. If you can generate a + <tt/GENERIC/ kernel, then it's likely something in your special + configuration file that's bad (or you've uncovered a bug!). If + the build of the <tt/GENERIC/ kernel does <bf/NOT/ succeed, then + it's very likely that your sources are somehow corrupted. + + <p>Finally, if you need to see your original boot messages again to + compile a new kernel that's better tailored to your hardware, try + the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?dmesg" + name="dmesg"> command. It should print out all the boot-time + messages printed by your old kernel, some of which may be quite + helpful in configuring the new one. + + <p><bf/NOTE:/ I recommend making a dated snapshot of your kernel + in <tt/kernel.YYMMDD/ after you get it all working, that way if + you do something dire the next time you play with your configuration + you can boot that kernel instead of having to go all the way back + to <tt/kernel.GENERIC/. This is particularly important if you're + now booting off a controller that isn't supported in the GENERIC + kernel (yes, personal experience). + + <sect1> + <heading> + My kernel compiles fail because <tt/_hw_float/ is missing. + </heading> + + <p>Let me guess. You removed <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?npx(4)" name="npx0"> from your + kernel configuration file because you don't have a math co-processor, + right? Wrong! :-) The <tt/npx0/ is <bf/MANDATORY/. Even if you don't + have a mathematic co-processor, you <bf/must/ include the <tt/npx0/ + device. + + <sect1> + <heading>Interrupt conflicts with multi-port serial code.</heading> + + <p><bf/Q./ When I compile a kernel with multi-port serial code, it + tells me that only the first port is probed and the rest skipped due to + interrupt conflicts. How do I fix this? + + <p><bf/A./ The problem here is that FreeBSD has code built-in to keep + the kernel from getting trashed due to hardware or software + conflicts. The way to fix this is to leave out the IRQ settings + on all but one port. Here is a example: + + <verb> + # + # Multiport high-speed serial line - 16550 UARTS + # + device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr + device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr + device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr + device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr + </verb> + + <sect1> + <heading>How do I enable support for QIC-40/80 drives?</heading> + + <p>You need to uncomment the following line in the generic config + file (or add it to your config file), add a ``<tt/flags 0x1/'' + on the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fdc(4)" + name="fdc"> line and recompile. + + <verb> controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr disk fd0 at fdc0 drive 0 ^^^^^^^^^ disk fd1 at fdc0 drive 1 #tape ft0 at fdc0 drive 2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -</verb> + </verb> - Next, you create a device called <tt>/dev/ft0</tt> by going into - <tt>/dev</tt> and run the following command: - - <verb> - sh MAKEDEV ft0 - </verb> - - for the first device. <tt/ft1/ for a second one and so on. - - You will have a device called <tt>/dev/ft0</tt>, which you can - write to through a special program to manage it called - ``<tt/ft/'' - see the man page on <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ft" name="ft"> - for further details. - Versions previous to <tt/-current/ also had some trouble dealing - with bad tape media; if you have trouble where <tt/ft/ seems to - go back and forth over the same spot, try grabbing the latest - version of <tt/ft/ from <tt>/usr/src/sbin/ft</tt> in - <tt/-current/ and try that. - </sect1> - - <sect> - <heading>System Administration</heading> - - <sect1> - <heading>Where are the system start-up configuration files?</heading> - - <p> - From 2.0.5R to 2.2.2R, the primary configuration file is - <tt>/etc/sysconfig</tt>. All the options are to be specified in - this file and other files such as <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?rc" name="/etc/rc"> and - <tt>/etc/netstart</tt> just include it. - - Look in the <tt>/etc/sysconfig</tt> file and change the value to - match your system. This file is filled with comments to show what - to put in there. - - In post-2.2.2 and 3.0, <tt>/etc/sysconfig</tt> was renamed - to a more self-describing <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" - name="rc.conf"> file and the syntax - cleaned up a bit in the process. <tt>/etc/netstart</tt> was also - renamed to <tt>/etc/rc.network</tt> so that all files could be - copied with a <tt><htmlurl - url="http://www.freebsd.org/cgi/man.cgi?cp" name="cp"> - /usr/src/etc/rc* /etc</tt> command. - - <tt>/etc/rc.local</tt> is here as always and is the place to - start up additional local services like <htmlurl - url="http://www.freebsd.org/cgi/ports.cgi?^inn" name="INN"> - or set custom options. - - The <tt>/etc/rc.serial</tt> is for serial port initialization - (e.g. locking the port characteristics, and so on.). - - The <tt>/etc/rc.i386</tt> is for Intel-specifics settings, such - as iBCS2 emulation or the PC system console configuration. - - Starting with 2.1.0R, you can also have "local" startup files in a - directory specified in <tt>/etc/sysconfig</tt> (or - <tt>/etc/rc.conf</tt>): - <verb> - # Location of local startup files. - local_startup=/usr/local/etc/rc.local.d - </verb> - Each file ending in <tt/.sh/ will be executed in alphabetical - order. - - If you want to ensure a certain execution order without changing all - the file names, you can use a scheme similar to the following with - digits prepended to each file name to insure the ordering: - <verb> - 10news.sh - 15httpd.sh - 20ssh.sh - </verb> - It can be seen as ugly (or SysV :-)) but it provides a simple and - regular scheme for locally-added packages without resorting to - magical editing of <tt>/etc/rc.local</tt>. - - <sect1> - <heading>How do I add a user easily?</heading> - - <p> - Use the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?adduser" - name="adduser"> command. - - There is another package called ``<tt/new-account/'' also written - in Perl by Ollivier Robert. Ask - <tt><roberto@FreeBSD.ORG></tt> about it. It is currently - undergoing further development. - - To remove the user again, use the <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?rmuser" name="rmuser"> - command. - - <sect1> - <heading>How can I add my new hard disk to my FreeBSD system?</heading> - <p> - The easiest way to do this is from the installation program. You - can start the installation program by running - <tt>/stand/sysinstall</tt> as root. - <p> - Alternatively, if you still have the install floppy, you can just - reboot from that and use the partition & label editors while - the system is totally quiescent. - <p> - <label id="2_1-disklabel-fix"> - If the above does not work for you, or if you're a total masochist - who likes arcane interfaces, this is how to use - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?disklabel" - name="disklabel"> manually: - <p> - <em>WARNING: There is no substitute for reading carefully - & understanding what you are doing! Things described here may - DESTROY your system. Proceed with caution! Remember, a BACKUP is your - friend!</em> - <p> - <tt /sysinstall/ used to be broken up to 2.1.5-RELEASE and will - insist on mounting something at / in the disklabel editor. You will - have to manually run - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?disklabel" - name="disklabel"> before you can run - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?newfs" - name="newfs">/. This means doing the math for partitions - yourself. This is rumored to be easy :-) See if you can obtain a - skeletal label with ''<tt>disklabel -r <diskname></tt>'' - <em>(e.g. </em>''<tt>disklabel -r /dev/rwd0s2</tt>''<em>, assuming - that your new disk is wd0, the first IDE drive, and the FreeBSD - slice is the second one, s2)</em>. You should see something - like:- + <p>Next, you create a device called <tt>/dev/ft0</tt> by going into + <tt>/dev</tt> and run the following command: -<verb> -# /dev/rwd0s2: -type: ESDI -disk: wd0s2 -label: -flags: -bytes/sector: 512 -sectors/track: 63 -tracks/cylinder: 64 -sectors/cylinder: 4032 -cylinders: 610 -sectors/unit: 2459520 -rpm: 3600 -interleave: 1 -trackskew: 0 -cylinderskew: 0 -headswitch: 0 # milliseconds -track-to-track seek: 0 # milliseconds -drivedata: 0 - -8 partitions: -# size offset fstype [fsize bsize bps/cpg] - c: 2459520 0 unused 0 0 # (Cyl. 0 - 609) - e: 2459520 0 4.2BSD 0 0 0 # (Cyl. 0 - 609) -</verb> + <verb> + sh ./MAKEDEV ft0 + </verb> - Make sure that the size is correct, in this case, 2459520 - sectors/unit x 512 bytes/sector / 2**20 (1 Megabyte) = 1200 - Megabytes. The rest of the stuff (b/s, t/c, s/c, interleave, etc.) - should get suitable defaults from <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?disklabel" - name="disklabel">, but see - <ref id="ESDI" name="this note"> for older disks. 'fsize' is the - <ref id="fsize" name="Fragment size"> for the filesystem, - and 'bsize' is the <ref id="bsize" name="Block size">. 'c' is - the partition covering the entire slice (or entire disk for a - non-sliced disk), and must remain as it is. <em>It should not be - used for a filesystem</em>. The 'c' partition is magic in that it - is faked by the kernel even if no disklabel exists. - <p> - In the trivial case, where you want a single filesystem spanning - the whole slice, the entry for 'e' has to be corrected. Setting fsize - to 1024 and bsize to 8192 (8 fragments/block), which are reasonable - values for a filesystem, the correct entry for 'e' would be:- + <p>for the first device. <tt/ft1/ for a second one and so on. -<verb> - e: 2459520 0 4.2BSD 1024 8192 -</verb> + <p>You will have a device called <tt>/dev/ft0</tt>, which you can + write to through a special program to manage it called + ``<tt/ft/'' - see the man page on <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ft" name="ft"> + for further details. - <p> - Now, the (slightly) harder case, where we want 2 partitions for 2 - filesystems. Following the <ref id="fsname" name="BSD naming - conventions">, the partitions will be <tt /wd0s2e/ & - <tt /wd0s2f/. Suppose we split up the 1200 MB into 300 MB for - 'e' and the remaining 900 MB for 'f'. The partition entries would - be:- + <p>Versions previous to <tt/-current/ also had some trouble dealing + with bad tape media; if you have trouble where <tt/ft/ seems to + go back and forth over the same spot, try grabbing the latest + version of <tt/ft/ from <tt>/usr/src/sbin/ft</tt> in + <tt/-current/ and try that. -<verb> -8 partitions: -# size offset fstype [fsize bsize bps/cpg] - c: 2459520 0 unused 0 0 # (Cyl. 0 - 609) - e: 614400 0 4.2BSD 1024 8192 - f: 1843200 614400 4.2BSD 1024 8192 -</verb> + <sect> + <heading>System Administration</heading> - <p> - <bf /Note:/ You can directly edit the disklabel with - ''<tt>disklabel -e wd0s2</tt>''. See - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?disklabel" - name="disklabel">. - <p> - If you have at least FreeBSD 2.1.5, and you want to dedicate - an entire disk to FreeBSD without any care for other - systems, you might shorten the steps above to something like: -<verb> -# dd if=/dev/zero of=/dev/rwd0 count=100 -# disklabel -Brw wd0 auto -# disklabel -e wd0 -</verb> + <sect1> + <heading>Where are the system start-up configuration files?</heading> + + <p>From 2.0.5R to 2.2.1R, the primary configuration file is + <tt>/etc/sysconfig</tt>. All the options are to be specified in + this file and other files such as <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rc" name="/etc/rc"> and + <tt>/etc/netstart</tt> just include it. + + <p>Look in the <tt>/etc/sysconfig</tt> file and change the value to + match your system. This file is filled with comments to show what + to put in there. + + <p>In post-2.2.1 and 3.0, <tt>/etc/sysconfig</tt> was renamed + to a more self-describing <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" name="rc.conf"> + file and the syntax cleaned up a bit in the process. + <tt>/etc/netstart</tt> was also renamed to <tt>/etc/rc.network</tt> + so that all files could be copied with a <tt><htmlurl + url="http://www.freebsd.org/cgi/man.cgi?cp" name="cp"> /usr/src/etc/rc* + /etc</tt> command. + + <p><tt>/etc/rc.local</tt> is here as always and may be used to + start up additional local services like <htmlurl + url="http://www.freebsd.org/cgi/ports.cgi?^inn" name="INN"> + or set custom options. + + <p>The <tt>/etc/rc.serial</tt> is for serial port initialization + (e.g. locking the port characteristics, and so on.). + + <p>The <tt>/etc/rc.i386</tt> is for Intel-specifics settings, such + as iBCS2 emulation or the PC system console configuration. + + <p>Starting with 2.1.0R, you can also have "local" startup files in a + directory specified in <tt>/etc/sysconfig</tt> (or + <tt>/etc/rc.conf</tt>): + + <verb> + # Location of local startup files. + local_startup=/usr/local/etc/rc.local.d + </verb> + + <p>Each file ending in <tt/.sh/ will be executed in alphabetical order. + + <p>If you want to ensure a certain execution order without changing all + the file names, you can use a scheme similar to the following with + digits prepended to each file name to insure the ordering: + + <verb> + 10news.sh + 15httpd.sh + 20ssh.sh + </verb> + + <p>It can be seen as ugly (or SysV :-)) but it provides a simple and + regular scheme for locally-added packages without resorting to + magical editing of <tt>/etc/rc.local</tt>. Many of the ports/packages + assume that <tt>/usr/local/etc/rc.d</tt> is a local startup directory. + + <sect1> + <heading>How do I add a user easily?</heading> + + <p>Use the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?adduser" + name="adduser"> command. + + <p>There is another package called ``<tt/new-account/'' also written + in Perl by Ollivier Robert. Ask <tt><roberto@FreeBSD.ORG></tt> + about it. It is currently undergoing further development. + + <p>To remove the user again, use the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rmuser" name="rmuser"> command. + + <sect1> + <heading>How can I add my new hard disk to my FreeBSD system?</heading> + + <p>The easiest way to do this is from the installation program. You + can start the installation program by running + <tt>/stand/sysinstall</tt> as root. + + <p>Alternatively, if you still have the install floppy, you can just + reboot from that and use the partition & label editors while + the system is totally quiescent. + + <p><label id="2_1-disklabel-fix">If the above does not work for you, + or if you're a total masochist who likes arcane interfaces, this is how + to use <htmlurl url="http://www.freebsd.org/cgi/man.cgi?disklabel" + name="disklabel"> manually: + + <p><em>WARNING: There is no substitute for reading carefully + & understanding what you are doing! Things described here may + DESTROY your system. Proceed with caution! Remember, a BACKUP is your + friend!</em> + + <p><tt /sysinstall/ used to be broken up to 2.1.5-RELEASE and will + insist on mounting something at / in the disklabel editor. You will + have to manually run + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?disklabel" + name="disklabel"> before you can run + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?newfs" name="newfs">/. + This means doing the math for partitions yourself. This is rumored to + be easy :-) See if you can obtain a skeletal label with + ''<tt>disklabel -r <diskname></tt>'' <em>(e.g. + </em>''<tt>disklabel -r /dev/rwd0s2</tt>''<em>, assuming that your new + disk is wd0, the first IDE drive, and the FreeBSD slice is the second + one, s2)</em>. You should see something like:- + + <verb> + # /dev/rwd0s2: + type: ESDI + disk: wd0s2 + label: + flags: + bytes/sector: 512 + sectors/track: 63 + tracks/cylinder: 64 + sectors/cylinder: 4032 + cylinders: 610 + sectors/unit: 2459520 + rpm: 3600 + interleave: 1 + trackskew: 0 + cylinderskew: 0 + headswitch: 0 # milliseconds + track-to-track seek: 0 # milliseconds + drivedata: 0 + + 8 partitions: + # size offset fstype [fsize bsize bps/cpg] + c: 2459520 0 unused 0 0 # (Cyl. 0 - 609) + e: 2459520 0 4.2BSD 0 0 0 # (Cyl. 0 - 609) + </verb> + + <p>Make sure that the size is correct, in this case, 2459520 + sectors/unit x 512 bytes/sector / 2**20 (1 Megabyte) = 1200 + Megabytes. The rest of the stuff (b/s, t/c, s/c, interleave, etc.) + should get suitable defaults from <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?disklabel" + name="disklabel">, but see <ref id="ESDI" name="this note"> for older + disks. 'fsize' is the <ref id="fsize" name="Fragment size"> for the + filesystem, and 'bsize' is the <ref id="bsize" name="Block size">. 'c' + is the partition covering the entire slice (or entire disk for a + non-sliced disk), and must remain as it is. <em>It should not be + used for a filesystem</em>. The 'c' partition is magic in that it + is faked by the kernel even if no disklabel exists. + + <p>In the trivial case, where you want a single filesystem spanning + the whole slice, the entry for 'e' has to be corrected. Setting fsize + to 1024 and bsize to 8192 (8 fragments/block), which are reasonable + values for a filesystem, the correct entry for 'e' would be:- + + <verb> + e: 2459520 0 4.2BSD 1024 8192 + </verb> + + <p>Now, the (slightly) harder case, where we want 2 partitions for 2 + filesystems. Following the <ref id="fsname" name="BSD naming + conventions">, the partitions will be <tt /wd0s2e/ & + <tt /wd0s2f/. Suppose we split up the 1200 MB into 300 MB for + 'e' and the remaining 900 MB for 'f'. The partition entries would + be:- + + <verb> + 8 partitions: + # size offset fstype [fsize bsize bps/cpg] + c: 2459520 0 unused 0 0 # (Cyl. 0 - 609) + e: 614400 0 4.2BSD 1024 8192 + f: 1843200 614400 4.2BSD 1024 8192 + </verb> + + <p><bf /Note:/ You can directly edit the disklabel with + ''<tt>disklabel -e wd0s2</tt>''. See + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?disklabel" + name="disklabel">. + + <p>If you have at least FreeBSD 2.1.5, and you want to dedicate + an entire disk to FreeBSD without any care for other + systems, you might shorten the steps above to something like: + + <verb> + # dd if=/dev/zero of=/dev/rwd0 count=100 + # disklabel -Brw wd0 auto + # disklabel -e wd0 + </verb> + + <p>The first <htmlurl url="http://www.freebsd.org/cgi/man.cgi?dd" + name="dd"> command ensures there is no old junk at + the beginning of the disk that might confuse the disk code + in the kernel. Following is an automatic skeleton label + generation using the defaults that have been probed from the + disk at boot time. Editing this label continues as described + above. + + <p>You're done! Time to initialize the filesystems with something + like:- + + <verb> + newfs -d0 /dev/rwd0s2e + newfs -d0 /dev/rwd0s2f + </verb> + + <p>Depending on the disk name and slice number, it might be + required that you run the script <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV" name="/dev/MAKEDEV"> + before in order to create the desired device nodes. + + <p>And mount your new filesystems (See + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount" name="mount">):- + + <verb> + mount /dev/wd0s2e /mnt/foo + mount /dev/wd0s2f /mnt/bar + </verb> + + <p>You may wish to edit <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?fstab(5)" name="/etc/fstab"> to + automatically mount the filesystems at boot time. + + <p><bf /Glossary:/ + + <descrip> + <tag><label id="fsize"><bf>Fragment Size (fsize)</bf></tag> + The basic unit of storage for <tt /ffs/. See + M. McKusick, W. Joy, S. Leffler, and R. Fabry, + "A Fast File System for UNIX", + ACM Transactions on Computer Systems 2, 3, pp 181-197, August + 1984, (reprinted in the BSD System Manager's Manual, SMM:5) or + <url url="file:/usr/share/doc/smm/05.fastfs/paper.ascii.gz" + name="/usr/share/doc/smm/05.fastfs/paper.ascii.gz"> on your system. + + <tag><label id="bsize"><bf>Block Size (bsize)</bf></tag> + A block comprises one or more fragments. See the + reference above and + <url url="file:/usr/include/sys/disklabel.h" + name="<sys/disklabel.h>"> + + <tag><label id="ESDI"> + <bf>Disklabel Characteristics for Older Disks (ESDI)</bf></tag> + You may need to provide more information to <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?disklabel" + name="disklabel"> if you happen to own a ``true disk'', i.e. one with a + uniform geometry, real heads, sectors, and cylinders, + such as an old ESDI drive. All of this should be easily + obtainable from the drive case, owner's manual, fellow + sufferers, etc. :-) + + <tag><label id="fsname"> + <bf>BSD Filesystem Naming Conventions</bf></tag> + Partition 'a' is by convention reserved for a bootable + partition, and partition 'b' for swap space. Regular + partition names should start with 'd'. ('d' used to be + magic in 386BSD 0.1 through FreeBSD 2.0, thus partition + 'e' is often used for the first non-bootable partition + containing a filesystem.) + + <tag><label id="swap"> + <bf>Warning about swap space</bf></tag> + The space required by the BSD partition table is allowed + for in the file system. It's not allowed for by the swap + partition. So don't start swap at cylinder 0, either offset + it or put a file system in partition 'a'. + </descrip> + + <sect1> + <heading>I have a new removable drive, how do I use it?</heading> + + <p>Whether it's a removable drive like a ZIP or an EZ drive (or + even a floppy, if you want to use it that way), or a new hard + disk, once it's installed and recognized by the system, and + you have your cartridge/floppy/whatever slotted in, things are + pretty much the same for all devices. + + <p><label id="disklabel">(this section is based on <url + url="http://vinyl.quickweb.com/mark/FreeBSD/ZIP-FAQ.html" + name="Mark Mayo's ZIP FAQ">) + + <p>If it's a ZIP drive or a floppy , you've already got a DOS + filesystem on it, you can use a command like this: + + <verb> + mount -t msdos /dev/fd0c /floppy + </verb> + + <p>if it's a floppy, or this: + + <verb> + mount -t msdos /dev/sd2s4 /zip + </verb> + + <p>for a ZIP disk with the factory configuration. + + <p>For other disks, see how they're laid out using <tt/fdisk/ or + <tt>/stand/sysinstall</tt>. + + <p>The rest of the examples will be for a ZIP drive on sd2, the third + SCSI disk. + + <p>Unless it's a floppy, or a removable you plan on sharing with + other people, it's probably a better idea to stick a BSD file + system on it. You'll get long filename support, at least a 2X + improvement in performance, and a lot more stability. First, you + need to redo the DOS-level partitions/filesystems. You can either + use <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fdisk" + name="fdisk"> or <tt>/stand/sysinstall</tt>, or for a small + drive that you don't want to bother with multiple operating system + support on, just blow away the whole FAT partition table (slices) + and just use the BSD partitioning: + + <verb> + dd if=/dev/zero of=/dev/rsd2 count=2 + disklabel -Brw sd2 auto + </verb> + + <p>You can use disklabel (more info in <ref id="2_1-disklabel-fix" + name="this note">) or <tt>/stand/sysinstall</tt> to create multiple + BSD partitions. You'll certainly want to do this if you're adding + swap space on a fixed disk, but it's probably irrelevant on a + removable drive like a ZIP. + + <p>Finally, create a new file system, this one's on our ZIP drive + using the whole disk: + + <verb> + newfs /dev/rsd2c + </verb> + + <p>and mount it: + + <verb> + mount /dev/sd2c /zip + </verb> + + <p>and it's probably a good idea to add a line like this to + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fstab" + name="/etc/fstab"> so you can just type "mount /zip" in the + future: + + <verb> + /dev/sd2c /zip ffs rw,noauto 0 0 + </verb> + + <sect1> + <heading>How do I mount a secondary DOS partition?</heading> + + <p>The secondary DOS partitions are found after ALL the primary + partitions. For example, if you have an "E" partition as the + second DOS partition on the second SCSI drive, you need to create + the special files for "slice 5" in /dev, then mount /dev/sd1s5: + + <verb> + # cd /dev + # ./MAKEDEV sd1s5 + # mount -t msdos /dev/sd1s5 /dos/e + </verb> + + <sect1> + <heading>Can I mount other foreign filesystems under FreeBSD?</heading> + + <p><bf/ Digital UNIX/ UFS CDROMs can be mounted directly on FreeBSD. + Mounting disk partitions from Digital UNIX and other systems + that support UFS may be more complex, depending on the details + of the disk partitioning for the operating system in question. + + <p><bf/ Linux/: 2.2 and later have support for <bf/ext2fs/ partitions. + See <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount_ext2fs" + name="mount_ext2fs"> for more information. + + <p>Any other information on this subject would be appreciated. + + <sect1> + <heading>How can I use the NT loader to boot FreeBSD?</heading> + + <p>The general idea is that you copy the first sector of your + native root FreeBSD partition into a file in the DOS/NT + partition. Assuming you name that file something like + <tt>c:\bootsect.bsd</tt> (inspired by <tt>c:\bootsect.dos</tt>), + you can then edit the <tt>c:\boot.ini</tt> file to come up with + something like this: + + <verb> + [boot loader] + timeout=30 + default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS + [operating systems] + multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" + C:\BOOTSECT.BSD="FreeBSD" + C:\="DOS" + </verb> + + <p>This procedure assumes that DOS, NT, FreeBSD, or whatever + have been installed into their respective fdisk partitions on the + <bf/same/ disk. In my case DOS & NT are in the first fdisk + partition and FreeBSD is in the second. I also installed FreeBSD + to boot from its native partition, <bf/not/ the disk MBR. + + <p>Mount a DOS-formatted floppy (if you've converted to NTFS) or the + FAT partition, under, say, <tt>/mnt</tt>. + + <verb> + dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1 + </verb> + + <p>Reboot into DOS or NT. NTFS users copy the <tt/bootsect.bsd/ + and/or the <tt/bootsect.lnx/ file from the floppy to + <tt/C:\/. Modify the attributes (permissions) on + <tt/boot.ini/ with: + + <verb> + attrib -s -r c:\boot.ini + </verb> + + <p>Edit to add the appropriate entries from the example + <tt/boot.ini/ above, and restore the attributes: + + <verb> + attrib -r -s c:\boot.ini + </verb> + + <p>If FreeBSD is booting from the MBR, restore it with the DOS + ``<tt/fdisk/'' command after you reconfigure them to boot from their + native partitions. + + <sect1> + <heading> + How about FreeBSD and Linux? How do I boot FreeBSD from LILO? + </heading> + + <p>Theoretically you should be able to boot FreeBSD from LILO by + treating it as a DOS-style operating system, but I haven't been + able to get it to work. If you put LILO at the start of your Linux + boot partition instead of in the MBR, you can boot LILO from the + FreeBSD boot manager. This is what I do. + + <p>If you're running Windows-95 and Linux this is recommended anyway, + to make it simpler to get Linux booting again if you should need + to reinstall Windows95 (which is a Jealous Operating System, and + will bear no other Operating Systems in the Master Boot Record). + + <sect1> + <heading> + Will a ``dangerously dedicated'' disk endanger my health? + </heading> + + <p><label id="dedicate">The installation procedure allows you to chose + two different methods in partitioning your harddisk(s). The default way + makes it compatible with other operating systems on the same machine, + by using fdisk table entries (called ``slices'' in FreeBSD), + with a FreeBSD slice that employs partitions of its own. + Optionally, one can chose to install a boot-selector to switch + between the possible operating systems on the disk(s). + + <p>Now, while this is certainly the common case for people + coming from a PC background, those people coming more from a + Unix background and who are going to setup a machine just to + run FreeBSD and only FreeBSD, are more used to the classic + Unix way where the operating system owns the entire disks, + from the very first sector through the end. A true fdisk + table isn't of any use in this case, the machine is running + FreeBSD 24 hours per day, 7 days per week, no other operating + system should ever be booted on it. So, if you select + ``A)ll FreeBSD'' in sysinstall's fdisk editor, and answer the + next question with ``No'', you'll get this mode. Note that + this means the BSD bootstrap also forms the MBR for this drive, + so there's no space left for anything like a boot manager. + Don't ever try to install one, or you'll damage the BSD + bootstrap. + + <p>So why it is called ``dangerous''? A disk in this mode + doesn't contain what normal PC utilities would consider a + valid fdisk table. Depending on how well they have been + designed, they might complain at you once they are getting + in contact with such a disk, or even worse, they might + damage the BSD bootstrap without even asking or notifying + you. Some kind of operating system that is in rather + widespread use on PCs is known for this kind of + user-unfriendliness (of course, it does this in the name of + ``user-friendliness''). At least one Award BIOS that is for + example used in HP Netservers (but not only there) is known + to ignore any harddisk that doesn't have what it believes to + be a valid fdisk table. When it comes to booting, it simply + ignores such a disk drive, advances to the floppy drive, and + barfs at you with just ``Read error''. Very impressive, eh? + They probably also call this ``user-friendly'', who knows? + + <p>The advantages of this mode are: FreeBSD owns the entire + disk, no need to waste several fictitious `tracks' for just + nothing but a 1980-aged simplistic partitioning model + enforcing some artificial and now rather nonsensical + constraints on how this partitioning needs to be done. + These constraints often lead to what might be the biggest + headaches for OS installations on PCs, geometry mismatch + hassles resulting out of two different, redundant ways how + to store the partitioning information in the fdisk table. + See the chapter about <ref id="missing_os" name="Missing + Operating System">. In ``dangerously dedicated'' mode, the + BSD bootstrap starts at sector 0, and this one is the only + sector that always translates into the same C/H/S values, + regardless of which `translation' your BIOS is using for + your disk. Thus, you can also swap disks between + systems/controllers that use a different translation scheme, + without risking that they won't boot anymore. + + <p>To return a ``dangerously dedicated'' disk for normal PC + use, there are basically two options. The first is, you + write enough NULL bytes over the MBR to make any subsequent + installation believe this to be a blank disk. You can do + this for example with + + <verb> + dd if=/dev/zero of=/dev/rsd0 count=15 + </verb> + + <p>Alternatively, the undocumented DOS ``feature'' + + <verb> + fdisk /mbr + </verb> + + <p>will to install a new master boot record as well, thus clobbering the + BSD bootstrap. + + <sect1> + <heading>How can I add more swap space?</heading> + + <p>The best way is to increase the size of your swap partition, or + take advantage of this convenient excuse to add another disk (and + see <ref id="swap" name="this note"> if you do). + + <p>Adding swap onto a separate disk makes things faster than + simply adding swap onto the same disk. As an example, if you + are compiling source located on one disk, and the swap is on + another disk, this is much faster than both swap and compile + on the same disk. This is true for SCSI disks specifically. + + <p> IDE drives are not able to allow access to both drives on + the same channel at the same time (FreeBSD doesn't support mode 4, so + all IDE disk I/O is ``programmed''). I would still suggest putting + your swap on a separate drive however. The drives are so cheap, + it is not worth worrying about. + + <p>It is a really bad idea to locate your swap file over NFS + unless you are running in a very fast networking environment, with + a good server. - The first <htmlurl url="http://www.freebsd.org/cgi/man.cgi?dd" - name="dd"> command ensures there is no old junk at - the beginning of the disk that might confuse the disk code - in the kernel. Following is an automatic skeleton label - generation using the defaults that have been probed from the - disk at boot time. Editing this label continues as described - above. - <p> - You're done! Time to initialize the filesystems with something - like:- + <p>Here is an example for 64Mb vn-swap (<tt>/usr/swap0</tt>, though + of course you can use any name that you want). + + <p>Make sure your kernel was built with the line + + <verb> + pseudo-device vn 1 #Vnode driver (turns a file into a device) + </verb> + + <p>in your config-file. The GENERIC kernel already contains this. + + <enum> + <item>create a vn-device <verb> - newfs -d0 /dev/rwd0s2e - newfs -d0 /dev/rwd0s2f + cd /dev + sh ./MAKEDEV vn0 </verb> - Depending on the disk name and slice number, it might be - required that you run the script <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV" - name="/dev/MAKEDEV"> - before in order to create the desired device nodes. + <item>create a swapfile (<tt>/usr/swap0</tt>) - And mount your new filesystems (See - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount" - name="mount">):- + <verb> + dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 + </verb> + + <item>enable the swap file in <tt>/etc/rc.conf</tt> <verb> - mount /dev/wd0s2e /mnt/foo - mount /dev/wd0s2f /mnt/bar + swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. </verb> - You may wish to edit <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?fstab(5)" - name="/etc/fstab"> to automatically mount - the filesystems at boot time. - - <p> - <bf /Glossary:/ - <descrip> - <tag><label id="fsize"><bf>Fragment Size (fsize)</bf></tag> - The basic unit of storage for <tt /ffs/. See - M. McKusick, W. Joy, S. Leffler, and R. Fabry, - "A Fast File System for UNIX", - ACM Transactions on Computer Systems 2, 3, pp 181-197, August - 1984, (reprinted in the BSD System Manager's Manual, SMM:5) or - <url url="file:/usr/share/doc/smm/05.fastfs/paper.ascii.gz" - name="/usr/share/doc/smm/05.fastfs/paper.ascii.gz"> - on your system. - <tag><label id="bsize"><bf>Block Size (bsize)</bf></tag> - A block comprises one or more fragments. See the - reference above and - <url url="file:/usr/include/sys/disklabel.h" - name="<sys/disklabel.h>"> - <tag><label id="ESDI"> - <bf>Disklabel Characteristics for Older Disks (ESDI)</bf></tag> - You may need to provide more information to <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?disklabel" - name="disklabel"> - if you happen to own a ``true disk'', i.e. one with a - uniform geometry, real heads, sectors, and cylinders, - such as an old ESDI drive. All of this should be easily - obtainable from the drive case, owner's manual, fellow - sufferers, etc. :-) - <tag><label id="fsname"> - <bf>BSD Filesystem Naming Conventions</bf></tag> - Partition 'a' is by convention reserved for a bootable - partition, and partition 'b' for swap space. Regular - partition names should start with 'd'. ('d' used to be - magic in 386BSD 0.1 through FreeBSD 2.0, thus partition - 'e' is often used for the first non-bootable partition - containing a filesystem.) - <tag><label id="swap"> - <bf>Warning about swap space</bf></tag> - The space required by the BSD partition table is allowed - for in the file system. It's not allowed for by the swap - partition. So don't start swap at cylinder 0, either offset - it or put a file system in partition 'a'. - </descrip> - - <sect1> - <heading>I have a new removable drive, how do I use it?</heading> - - <p> - Whether it's a removable drive like a ZIP or an EZ drive (or - even a floppy, if you want to use it that way), or a new hard - disk, once it's installed and recognized by the system, and - you have your cartridge/floppy/whatever slotted in, things are - pretty much the same for all devices. - - <label id="disklabel"> - (this section is based on <url - url="http://vinyl.quickweb.com/mark/FreeBSD/ZIP-FAQ.html" - name="Mark Mayo's ZIP FAQ">) - - If it's a ZIP drive or a floppy , you've already got a DOS - filesystem on it, you can use a command like this: - - <verb> - mount -t msdos /dev/fd0c /floppy - </verb> - - if it's a floppy, or this: - - <verb> - mount -t msdos /dev/sd2s4 /zip - </verb> - - for a ZIP disk with the factory configuration. - - For other disks, see how they're laid out - using <tt/fdisk/ or <tt>/stand/sysinstall</tt>. - - The rest of the - examples will be for a ZIP drive on sd2, the third SCSI disk. - - Unless it's a floppy, or a removable you plan on sharing with - other people, it's probably a better idea to stick a BSD file - system on it. You'll get long filename support, at least a 2X - improvement in performance, and a lot more stability. First, you - need to redo the DOS-level partitions/filesystems. You can either - use <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fdisk" - name="fdisk"> or <tt>/stand/sysinstall</tt>, or for a small - drive that you don't want to bother with multiple operating system - support on, just blow away the whole FAT partition table (slices) - and just use the BSD partitioning: - - <verb> - dd if=/dev/zero of=/dev/rsd2 count=2 - disklabel -Brw sd2 auto - </verb> - - You can use disklabel (more info in <ref id="2_1-disklabel-fix" - name="this note">) or <tt>/stand/sysinstall</tt> to create multiple - BSD partitions. You'll certainly want to do this if you're adding - swap space on a fixed disk, but it's probably irrelevant on a - removable drive like a ZIP. - - Finally, create a new file system, this one's on our ZIP drive - using the whole disk: - - <verb> - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?newfs" - name="newfs"> /dev/rsd2c - </verb> - - and mount it: - - <verb> - mount /dev/sd2c /zip - </verb> - - and it's probably a good idea to add a line like this to - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fstab" - name="/etc/fstab"> so you can just type "mount /zip" in the - future: - - <verb> - /dev/sd2c /zip ffs rw,noauto 0 0 - </verb> - - <sect1> - <heading>How do I mount a secondary DOS partition?</heading> - - <p> - The secondary DOS partitions are found after ALL the primary - partitions. For example, if you have an "E" partition as the - second DOS partition on the second SCSI drive, you need to create - the special files for "slice 5" in /dev, then mount /dev/sd1s5: - - <verb> - % cd /dev - % ./MAKEDEV sd1s5 - % mount -t msdos /dev/sd1s5 /dos/e - </verb> - - <sect1> - <heading>Can I mount other foreign filesystems under FreeBSD?</heading> <p> - <bf/ Digital UNIX/ UFS CDROMs can be mounted directly on FreeBSD. - Mounting disk partitions from Digital UNIX and other systems - that support UFS may be more complex, depending on the details - of the disk partitioning for the operating system in question. - <p> - <bf/ Linux/: 2.2 and later have support for <bf/ext2fs/ partitions. - See <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount_ext2fs" - name="mount_ext2fs"> for more information. - - Any other information on this subject would be appreciated. - - <sect1> - <heading>How can I use the NT loader to boot FreeBSD?</heading> - <p> - The general idea is that you copy the first sector of your - native root FreeBSD or Linux partition into a file in the DOS/NT - partition. Assuming you name that file something like - <tt>c:\bootsect.bsd</tt> or <tt>c:\bootsect.lnx</tt> - (inspired by <tt>c:\bootsect.dos</tt>) you can then edit the - <tt>c:\boot.ini</tt> file to come up with something like - this: - <verb> - [boot loader] - timeout=30 - default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS - [operating systems] - multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" - C:\BOOTSECT.BSD="FreeBSD" - C:\BOOTSECT.LNX="Linux" - C:\="DOS" - </verb> - This procedure assumes that DOS, NT, Linux, FreeBSD, or whatever - have been installed into their respective fdisk partitions on the - <bf/same/ disk. In my case DOS & NT are in the first fdisk - partition, FreeBSD in the second, and Linux in the third. I also - installed FreeBSD and Linux to boot from their native partitions, - not the disk MBR, and without delay. - - Mount a DOS-formatted floppy (if you've converted to NTFS) or the - FAT partition, under, say, <tt>/mnt</tt>. - - In FreeBSD: - <verb> - dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1 - </verb> - - In Linux: - <verb> - dd if=/dev/sda2 of=/mnt/bootsect.lnx bs=512 count=1 - </verb> - - Reboot into DOS or NT. NTFS users copy the <tt/bootsect.bsd/ - and/or the <tt/bootsect.lnx/ file from the floppy to - <tt/C:\/. Modify the attributes (permissions) on - <tt/boot.ini/ with: - - <verb> - attrib -s -r c:\boot.ini - </verb> - - Edit to add the appropriate entries from the example - <tt/boot.ini/ above, and restore the attributes: - - <verb> - attrib -r -s c:\boot.ini - </verb> - - If FreeBSD or Linux are booting from the MBR, restore it with the - DOS ``<htmlurl url="http://www.freebsd.org/cgi/man.cgi?fdisk" - name="fdisk /mbr">'' command after you reconfigure them to - boot from their native partitions. - - <sect1> - <heading>How about FreeBSD and Linux? How do I boot FreeBSD from LILO?</heading> - <p> - Theoretically you should be able to boot FreeBSD from LILO by - treating it as a DOS-style operating system, but I haven't been - able to get it to work. If you put LILO at the start of your Linux - boot partition instead of in the MBR, you can boot LILO from the - FreeBSD boot manager. This is what I do. - - If you're running Windows-95 and Linux this is recommended anyway, - to make it simpler to get Linux booting again if you should need - to reinstall Windows95 (which is a Jealous Operating System, and - will bear no other Operating Systems in the Master Boot Record). - - <sect1> - <heading>Will a ``dangerously dedicated'' disk endanger my health?</heading> - <p><label id="dedicate"> - The installation procedure allows you to chose two different - methods in partitioning your harddisk(s). The default way makes - it compatible with other operating systems on the same machine, - by using fdisk table entries (called ``slices'' in FreeBSD), - with a FreeBSD slice that employs partitions of its own. - Optionally, one can chose to install a boot-selector to switch - between the possible operating systems on the disk(s). - - <p> - Now, while this is certainly the common case for people - coming from a PC background, those people coming more from a - Unix background and who are going to setup a machine just to - run FreeBSD and only FreeBSD, are more used to the classic - Unix way where the operating system owns the entire disks, - from the very first sector through the end. A true fdisk - table isn't of any use in this case, the machine is running - FreeBSD 24 hours per day, 7 days per week, no other operating - system should ever be booted on it. So, if you select - ``A)ll FreeBSD'' in sysinstall's fdisk editor, and answer the - next question with ``No'', you'll get this mode. Note that - this means the BSD bootstrap also forms the MBR for this drive, - so there's no space left for anything like a boot manager. - Don't ever try to install one, or you'll damage the BSD - bootstrap. - - <p> - So why it is called ``dangerous''? A disk in this mode - doesn't contain what normal PC utilities would consider a - valid fdisk table. Depending on how well they have been - designed, they might complain at you once they are getting - in contact with such a disk, or even worse, they might - damage the BSD bootstrap without even asking or notifying - you. Some kind of operating system that is in rather - widespread use on PCs is known for this kind of - user-unfriendliness (of course, it does this in the name of - ``user-friendliness''). At least one Award BIOS that is for - example used in HP Netservers (but not only there) is known - to ignore any harddisk that doesn't have what it believes to - be a valid fdisk table. When it comes to booting, it simply - ignores such a disk drive, advances to the floppy drive, and - barfs at you with just ``Read error''. Very impressive, eh? - They probably also call this ``user-friendly'', who knows? - - <p> - The advantages of this mode are: FreeBSD owns the entire - disk, no need to waste several fictitious `tracks' for just - nothing but a 1980-aged simplistic partitioning model - enforcing some artificial and now rather nonsensical - constraints on how this partitioning needs to be done. - These constraints often lead to what might be the biggest - headaches for OS installations on PCs, geometry mismatch - hassles resulting out of two different, redundant ways how - to store the partitioning information in the fdisk table. - See the chapter about <ref id="missing_os" name="Missing - Operating System">. In ``dangerously dedicated'' mode, the - BSD bootstrap starts at sector 0, and this one is the only - sector that always translates into the same C/H/S values, - regardless of which `translation' your BIOS is using for - your disk. Thus, you can also swap disks between - systems/controllers that use a different translation scheme, - without risking that they won't boot anymore. - - <p> - To return a ``dangerously dedicated'' disk for normal PC - use, there are basically two options. The first is, you - write enough NULL bytes over the MBR to make any subsequent - installation believe this to be a blank disk. You can do - this for example with - - <verb> - dd if=/dev/zero of=/dev/rsd0 count=15 - </verb> - - Alternatively, the undocumented DOS command - - <verb> - fdisk /mbr - </verb> - - is supposed to install a new master boot record as well, - thus clobbering the BSD bootstrap. - - - <sect1> - <heading>How can I add more swap space?</heading> - - <p>The best way is to increase the size of your swap partition, or - take advantage of this convenient excuse to add another disk (and - see <ref id="swap" name="this note"> if you do). - <p>Adding swap onto a separate disk makes things faster than - simply adding swap onto the same disk. As an example, if you - are compiling source located on one disk, and the swap is on - another disk, this is much faster than both swap and compile - on the same disk. This is true for SCSI disks specifically. - <p> IDE drives are not able to allow access to both drives on - the same channel at the same time. I would still suggest putting - your swap on a separate drive however. The drives are so cheap, - it is not worth worrying about. - <p>It is a really bad idea to locate your swap file over NFS - unless you are running in a fast networking environment, with - a good server. If you can afford fast ethernet, you will not - need my advice anyway. - - - <p>Here is an example for 64Mb vn-swap (<tt>/usr/swap0</tt>, though - of course you can use any name that you want). - <p> - Make sure your kernel was built with the line - <verb> -pseudo-device vn 1 #Vnode driver (turns a file into a device) - </verb> - in your config-file. The GENERIC kernel already contains this. - <p> - <enum> - <item> - create a vn-device - <verb> -cd /dev; sh ./MAKEDEV vn0 - </verb> - <item> - create a swapfile (<tt>/usr/swap0</tt>) - <verb> -dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - </verb> - <item> - enable the swap file in /etc/rc.conf - <verb> -swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - </verb> - <item> - reboot the machine - </enum> - <p>To enable the swap file immediately try - <verb> -vnconfig -ce /dev/vn0c /usr/swap0 swap - </verb> - - - - </sect1> - - - <sect1> - <heading>I'm having problems setting up my printer.</heading> - <p> - Please have a look at the Handbook entry on printing. It - should cover most of your problem. See the - <url - url="../handbook/printing.html" - name="Handbook entry on printing."> - </sect1> - - <sect1> - <heading>The keyboard mappings are wrong for my system.</heading> - <p> - The kbdcontrol program has an option to load a keyboard map file. - Under <tt>/usr/share/syscons/keymaps</tt> are a number of map - files. Choose the one relevant to your system and load it. - - <verb> - kbdcontrol -l uk.iso - </verb> - - Both the <tt>/usr/share/syscons/keymaps</tt> and the <tt/.kbd/ - extension are assumed by - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?kbdcontrol" - name="kbdcontrol">. - - This can be configured in <tt>/etc/sysconfig</tt> - (or <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" - name="rc.conf">). See the - appropriate comments in this file. - - In 2.0.5R and later, everything related to text fonts, keyboard - mapping is in <tt>/usr/share/examples/syscons</tt>. - - The following mappings are currently supported: - <itemize> - <!-- automatically created by `kbdmap -p' --> - - <item>Brazilian 275 keyboard Codepage 850 - <item>Brazilian 275 keyboard ISO-8859-1 - <item>Danish Codepage 865 - <item>Danish ISO-8859-1 - <item>French ISO-8859-1 - <item>German Codepage 850 - <item>German ISO-8859-1 - <item>Italian ISO-8859-1 - <item>Japanese 106 - <item>Japanese 106x - <item>Norwegian ISO-8859-1 - <item>Russian Codepage 866 (alternative) - <item>Russian koi8-r (shift) - <item>Russian koi8-r - <item>Spanish ISO-8859-1 - <item>Swedish Codepage 850 - <item>Swedish ISO-8859-1 - <item>United Kingdom Codepage 850 - <item>United Kingdom ISO-8859-1 - <item>United States of America ISO-8859-1 - <item>United States of America dvorak - <item>United States of America dvorakx - </itemize> - </sect1> - - <sect1> - <heading>I can't get user quotas to work properly.</heading> - <p> - <enum> - <item>Don't turn on quotas on '/', - <item>Put the quota file on the file system that the quotas are - to be enforced on. ie: - <verb> - FS QUOTA FILE - /usr /usr/admin/quotas - /home /home/admin/quotas - ... - </verb> - </enum> - - <sect1> - <heading>What's inappropriate about my ccd?</heading> - <p> - The symptom of this is: - <verb> - host# ccdconfig -C - ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format - host# - </verb> - - <p> - This usually happens when you are trying to concatenate the - `c' partitions, which default to type `unused'. The ccd - driver requires the underlying partition type to be - FS_BSDFFS. Edit the disklabel of the disks you are trying - to concatenate and change the types of partitions to - `4.2BSD'. - - <sect1> - <heading>Why can't I edit the disklabel on my ccd?</heading> - <p> - The symptom of this is: - <verb> - host# disklabel ccd0 - (it prints something sensible here, so let's try to edit it) - host# disklabel -e ccd0 - (edit, save, quit) - disklabel: ioctl DIOCWDINFO: No disk label on disk; - use "disklabel -r" to install initial label - host# - </verb> - - <p> - This is because the disklabel returned by ccd is actually a - `fake' one that is not really on the disk. You can solve - this problem by writing it back explicitly, as in: - <verb> - host# disklabel ccd0 > /tmp/disklabel.tmp - host# disklabel -Rr ccd0 /tmp/disklabel.tmp - host# disklabel -e ccd0 - (this will work now) - </verb> - - </sect1> - - <sect1> - <heading>Does FreeBSD support System V IPC primitives?</heading> - - <p> - Yes, FreeBSD supports System V-style IPC. This includes shared - memory, messages and semaphores. You need to add the following - lines to your kernel config to enable them. - - <verb> - options SYSVSHM - options "SHMMAXPGS=64" # 256Kb of sharable memory - options SYSVSEM # enable for semaphores - options SYSVMSG # enable for messaging - </verb> - - Recompile and install. - - <bf/NOTE:/ You may need to increase SHMMAXPGS to some - ridiculous number like 4096 (16M!) if you want to run - GIMP. 256Kb is plenty for X11R6 shared memory. - - <sect1> - <heading>How do I use sendmail for mail delivery with UUCP?</heading> - - <p> - The sendmail configuration that ships with FreeBSD is - suited for sites that connect directly to the Internet. - Sites that wish to exchange their mail via UUCP must install - another sendmail configuration file. - - <p> - Tweaking <tt>/etc/sendmail.cf</tt> manually is considered - something for purists. Sendmail version 8 comes with a - new approach of generating config files via some - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?m4" - name="m4"> - preprocessing, where the actual hand-crafted configuration - is on a higher abstraction level. You should use the - configuration files under + <item>reboot the machine + </enum> -<verb> - /usr/src/usr.sbin/sendmail/cf -</verb> + <p>To enable the swap file immediately, type - If you didn't install your system with full sources, - the sendmail config stuff has been - broken out into a separate source distribution tarball just - for you. Assuming you've got your CD-ROM mounted, do: + <verb> + vnconfig -ce /dev/vn0c /usr/swap0 swap + </verb> -<verb> - cd /usr/src - tar -xvzf /cdrom/dists/src/ssmailcf.aa -</verb> + <sect1> + <heading>I'm having problems setting up my printer.</heading> - Don't panic, this is only a few hundred kilobytes in size. - The file <tt>README</tt> in the <tt>cf</tt> directory can - serve as a basic introduction to m4 configuration. + <p>Please have a look at the Handbook entry on printing. It + should cover most of your problem. See the + <url url="../handbook/printing.html" name="Handbook entry on printing."> - <p> - For UUCP delivery, you are best advised to use the - <em>mailertable</em> feature. This constitutes a database - that sendmail can use to base its routing decision upon. + <sect1> + <heading>The keyboard mappings are wrong for my system.</heading> - <p> - First, you have to create your <tt>.mc</tt> file. The - directory <tt>/usr/src/usr.sbin/sendmail/cf/cf</tt> is the - home of these files. Look around, there are already a few - examples. Assuming you have named your file <tt>foo.mc</tt>, - all you need to do in order to convert it into a valid - <tt>sendmail.cf</tt> is: + <p>The kbdcontrol program has an option to load a keyboard map file. + Under <tt>/usr/share/syscons/keymaps</tt> are a number of map + files. Choose the one relevant to your system and load it. -<verb> - cd /usr/src/usr.sbin/sendmail/cf/cf - make foo.cf - cp foo.cf /etc/sendmail.cf -</verb> + <verb> + kbdcontrol -l uk.iso + </verb> - A typical <tt>.mc</tt> file might look like: + <p>Both the <tt>/usr/share/syscons/keymaps</tt> and the <tt/.kbd/ + extension are assumed by + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?kbdcontrol" + name="kbdcontrol">. -<verb> - include(`../m4/cf.m4') - VERSIONID(`Your version number') - OSTYPE(bsd4.4) + <p>This can be configured in <tt>/etc/sysconfig</tt> (or <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">). + See the appropriate comments in this file. - FEATURE(nodns) - FEATURE(nocanonify) - FEATURE(mailertable) + <p>In 2.0.5R and later, everything related to text fonts, keyboard + mapping is in <tt>/usr/share/examples/syscons</tt>. - define(`UUCP_RELAY', your.uucp.relay) - define(`UUCP_MAX_SIZE', 200000) + <p>The following mappings are currently supported: - MAILER(local) - MAILER(smtp) - MAILER(uucp) + <itemize> + <!-- generate by `kbdmap -p' --> + <item>Belgian ISO-8859-1 + <item>Brazilian 275 keyboard Codepage 850 + <item>Brazilian 275 keyboard ISO-8859-1 + <item>Danish Codepage 865 + <item>Danish ISO-8859-1 + <item>French ISO-8859-1 + <item>German Codepage 850 + <item>German ISO-8859-1 + <item>Italian ISO-8859-1 + <item>Japanese 106 + <item>Japanese 106x + <item>Latin American + <item>Norwegian ISO-8859-1 + <item>Polish ISO-8859-2 (programmer's) + <item>Russian Codepage 866 (alternative) + <item>Russian koi8-r (shift) + <item>Russian koi8-r + <item>Spanish ISO-8859-1 + <item>Swedish Codepage 850 + <item>Swedish ISO-8859-1 + <item>Swiss-German ISO-8859-1 + <item>United Kingdom Codepage 850 + <item>United Kingdom ISO-8859-1 + <item>United States of America ISO-8859-1 + <item>United States of America dvorak + <item>United States of America dvorakx + </itemize> - Cw your.alias.host.name - Cw youruucpnodename.UUCP -</verb> + <sect1> + <heading>I can't get user quotas to work properly.</heading> + + <p> + <enum> + <item>Don't turn on quotas on '/', - The <em>nodns</em> and <em>nocanonify</em> features will - prevent any usage of the DNS during mail delivery. The - <em>UUCP_RELAY</em> clause is needed for bizarre reasons, - don't ask. Simply put an Internet hostname there that - is able to handle .UUCP pseudo-domain addresses; most likely, - you will enter the mail relay of your ISP there. + <item>Put the quota file on the file system that the quotas are + to be enforced on. ie: - <p> - Once you've got this, you need this file called - <tt>/etc/mailertable</tt>. A typical example of this - gender again: + <verb> + FS QUOTA FILE + /usr /usr/admin/quotas + /home /home/admin/quotas + ... + </verb> + </enum> -<verb> - # - # makemap hash /etc/mailertable.db < /etc/mailertable - # - horus.interface-business.de uucp-dom:horus - .interface-business.de uucp-dom:if-bus - interface-business.de uucp-dom:if-bus - .heep.sax.de smtp8:%1 - horus.UUCP uucp-dom:horus - if-bus.UUCP uucp-dom:if-bus - . uucp-dom:sax -</verb> + <sect1> + <heading>What's inappropriate about my ccd?</heading> - As you can see, this is part of a real-life file. The first - three lines handle special cases where domain-addressed mail - should not be sent out to the default route, but instead to - some UUCP neighbor in order to ``shortcut'' the delivery - path. The next line handles mail to the local Ethernet - domain that can be delivered using SMTP. Finally, the UUCP - neighbors are mentioned in the .UUCP pseudo-domain notation, - to allow for a ``uucp-neighbor!recipient'' override of the - default rules. The last line is always a single dot, matching - everything else, with UUCP delivery to a UUCP neighbor that - serves as your universal mail gateway to the world. All of - the node names behind the <tt>uucp-dom:</tt> keyword must - be valid UUCP neighbors, as you can verify using the - command <tt>uuname</tt>. - - <p> - As a reminder that this file needs to be converted into a - DBM database file before being usable, the command line to - accomplish this is best placed as a comment at the top of - the mailertable. You always have to execute this command - each time you change your mailertable. - - <p> - Final hint: if you are uncertain whether some particular - mail routing would work, remember the <tt>-bt</tt> option to - sendmail. It starts sendmail in <em>address test mode</em>; - simply enter ``0 '', followed by the address you wish to - test for the mail routing. The last line tells you the used - internal mail agent, the destination host this agent will be - called with, and the (possibly translated) address. Leave - this mode by typing Control-D. + <p>The symptom of this is: -<verb> - j@uriah 191% sendmail -bt - ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) - Enter <ruleset> <address> - > 0 foo@interface-business.de - rewrite: ruleset 0 input: foo @ interface-business . de - ... - rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ - < @ interface-business . de > - > ^D - j@uriah 192% -</verb> + <verb> + # ccdconfig -C + ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format + # + </verb> + + <p>This usually happens when you are trying to concatenate the + `c' partitions, which default to type `unused'. The ccd + driver requires the underlying partition type to be + FS_BSDFFS. Edit the disklabel of the disks you are trying + to concatenate and change the types of partitions to + `4.2BSD'. + + <sect1> + <heading>Why can't I edit the disklabel on my ccd?</heading> + <p>The symptom of this is: - </sect1> + <verb> + # disklabel ccd0 + (it prints something sensible here, so let's try to edit it) + # disklabel -e ccd0 + (edit, save, quit) + disklabel: ioctl DIOCWDINFO: No disk label on disk; + use "disklabel -r" to install initial label + # + </verb> + + <p>This is because the disklabel returned by ccd is actually a + `fake' one that is not really on the disk. You can solve + this problem by writing it back explicitly, as in: + + <verb> + # disklabel ccd0 > /tmp/disklabel.tmp + # disklabel -Rr ccd0 /tmp/disklabel.tmp + # disklabel -e ccd0 + (this will work now) + </verb> + + <sect1> + <heading>Does FreeBSD support System V IPC primitives?</heading> - </sect> + <p>Yes, FreeBSD supports System V-style IPC. This includes shared + memory, messages and semaphores. You need to add the following + lines to your kernel config to enable them. - <sect> - <heading>The X Window System and Virtual Consoles</heading> + <verb> + options SYSVSHM + options "SHMMAXPGS=64" # 256Kb of sharable memory + options SYSVSEM # enable for semaphores + options SYSVMSG # enable for messaging + </verb> + + <p>Recompile and install. + + <p><bf/NOTE:/ You may need to increase SHMMAXPGS to some + ridiculous number like 4096 (16M!) if you want to run + GIMP. 256Kb is plenty for X11R6 shared memory. + + <sect1> + <heading> + How do I use sendmail for mail delivery with UUCP?<label id="uucpmail"> + </heading> + + <p>The sendmail configuration that ships with FreeBSD is + suited for sites that connect directly to the Internet. + Sites that wish to exchange their mail via UUCP must install + another sendmail configuration file. + + <p>Tweaking <tt>/etc/sendmail.cf</tt> manually is considered + something for purists. Sendmail version 8 comes with a + new approach of generating config files via some + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?m4" + name="m4"> preprocessing, where the actual hand-crafted configuration + is on a higher abstraction level. You should use the + configuration files under + + <verb> + /usr/src/usr.sbin/sendmail/cf + </verb> + + <p>If you didn't install your system with full sources, the sendmail + config stuff has been broken out into a separate source distribution + tarball just for you. Assuming you've got your CD-ROM mounted, do: + + <verb> + cd /usr/src + tar -xvzf /cdrom/dists/src/ssmailcf.aa + </verb> + + <p>Don't panic, this is only a few hundred kilobytes in size. + The file <tt>README</tt> in the <tt>cf</tt> directory can + serve as a basic introduction to m4 configuration. + + <p>For UUCP delivery, you are best advised to use the + <em>mailertable</em> feature. This constitutes a database + that sendmail can use to base its routing decision upon. + + <p>First, you have to create your <tt>.mc</tt> file. The + directory <tt>/usr/src/usr.sbin/sendmail/cf/cf</tt> is the + home of these files. Look around, there are already a few + examples. Assuming you have named your file <tt>foo.mc</tt>, + all you need to do in order to convert it into a valid + <tt>sendmail.cf</tt> is: + + <verb> + cd /usr/src/usr.sbin/sendmail/cf/cf + make foo.cf + cp foo.cf /etc/sendmail.cf + </verb> - <sect1> - <heading>I want to run X, how do I go about it?</heading> + <p>A typical <tt>.mc</tt> file might look like: + + <verb> + include(`../m4/cf.m4') + VERSIONID(`Your version number') + OSTYPE(bsd4.4) + + FEATURE(nodns) + FEATURE(nocanonify) + FEATURE(mailertable) + + define(`UUCP_RELAY', your.uucp.relay) + define(`UUCP_MAX_SIZE', 200000) + + MAILER(local) + MAILER(smtp) + MAILER(uucp) + + Cw your.alias.host.name + Cw youruucpnodename.UUCP + </verb> + + <p>The <em>nodns</em> and <em>nocanonify</em> features will + prevent any usage of the DNS during mail delivery. The + <em>UUCP_RELAY</em> clause is needed for bizarre reasons, + don't ask. Simply put an Internet hostname there that + is able to handle .UUCP pseudo-domain addresses; most likely, + you will enter the mail relay of your ISP there. + + <p>Once you've got this, you need this file called + <tt>/etc/mailertable</tt>. A typical example of this + gender again: + + <verb> + # + # makemap hash /etc/mailertable.db < /etc/mailertable + # + horus.interface-business.de uucp-dom:horus + .interface-business.de uucp-dom:if-bus + interface-business.de uucp-dom:if-bus + .heep.sax.de smtp8:%1 + horus.UUCP uucp-dom:horus + if-bus.UUCP uucp-dom:if-bus + . uucp-dom:sax + </verb> + + <p>As you can see, this is part of a real-life file. The first + three lines handle special cases where domain-addressed mail + should not be sent out to the default route, but instead to + some UUCP neighbor in order to ``shortcut'' the delivery + path. The next line handles mail to the local Ethernet + domain that can be delivered using SMTP. Finally, the UUCP + neighbors are mentioned in the .UUCP pseudo-domain notation, + to allow for a ``uucp-neighbor!recipient'' override of the + default rules. The last line is always a single dot, matching + everything else, with UUCP delivery to a UUCP neighbor that + serves as your universal mail gateway to the world. All of + the node names behind the <tt>uucp-dom:</tt> keyword must + be valid UUCP neighbors, as you can verify using the + command <tt>uuname</tt>. + + <p>As a reminder that this file needs to be converted into a + DBM database file before being usable, the command line to + accomplish this is best placed as a comment at the top of + the mailertable. You always have to execute this command + each time you change your mailertable. + + <p>Final hint: if you are uncertain whether some particular + mail routing would work, remember the <tt>-bt</tt> option to + sendmail. It starts sendmail in <em>address test mode</em>; + simply enter ``0 '', followed by the address you wish to + test for the mail routing. The last line tells you the used + internal mail agent, the destination host this agent will be + called with, and the (possibly translated) address. Leave + this mode by typing Control-D. + + <verb> + j@uriah 191% sendmail -bt + ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) + Enter <ruleset> <address> + > 0 foo@interface-business.de + rewrite: ruleset 0 input: foo @ interface-business . de + ... + rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ + < @ interface-business . de > + > ^D + j@uriah 192% + </verb> + + <sect1> + <heading> + How do I set up mail with a dialup connection to the 'net? + <label id="ispmail"> + </heading> + + <p>If you've got a statically assigned IP number, you should not + need to adjust anything from the default. Set your host name up + as your assigned internet name and sendmail will do the rest. + + <p>If you've got a dynamically assigned IP number and use a dialup + <bf/ppp/ connection to the internet, you will probably be given a + mailbox on your ISPs mail server. Lets assume your ISPs domain is + <tt/myISP.com/, and that your user name is <tt/user/. Lets also + assume you've called your machine <tt/bsd.home/ and that your ISP + has told you that you may use <tt/relay.myISP.com/ as a mail relay. + + <p>In order to retrieve mail from your mailbox, you'll need to + install a retrieval agent. <bf/Fetchmail/ is a good choice as it + supports many different protocols. Usually, POP3 will be provided + by your ISP. If you've chosen to use user-ppp, you can automatically + fetch your mail when a connection to the 'net is established with the + following entry in <tt>/etc/ppp/ppp.linkup</tt>: + + <verb> + MYADDR: + !bg su user -c fetchmail + </verb> + + <p>I'm assuming that you have an account for <tt/user/ on <tt/bsd.home/. + In the home directory of <tt/user/ on <tt/bsd.home/, create a + <tt/.fetchmailrc/ file: + + <verb> + poll myISP.com protocol pop3 fetchall pass MySecret; + </verb> - <p> - The easiest way is to simply specify that you want to run X - during the installation process. - <p> - Then read and follow the documentation on the <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xf86config" name="xf86config"> tool, which assists you in - configuring XFree86(tm) for your particular graphics - card/mouse/etc. + <p>Needless to say, this file should not be readable by anyone except + <tt/user/ as it contains the password <tt/MySecret/. - You may also wish to investigate the Xaccel server, which is - available at a very reasonable price. See section - <ref id="xig" name="on Xi Graphics"> for more details. + <p>In order to send mail with the correct <bf/from:/ header, you must + tell sendmail to use <tt/user@myISP.com/ rather than + <tt/user@bsd.home/. You may also wish to tell sendmail to send all + mail via <tt/relay.myISP.com/, allowing quicker mail transmission. - <sect1> - <heading>Why doesn't my mouse work with X</heading> + <p>The following <tt/.mc/ file should suffice: + + <verb> + VERSIONID(`bsd.home.mc version 1.0') + OSTYPE(bsd4.4)dnl + FEATURE(nouucp)dnl + MAILER(local)dnl + MAILER(smtp)dnl + Cwbsd.home + CwmyISP.com + MASQUERADE_AS(`myISP.com')dnl + FEATURE(allmasquerade)dnl + FEATURE(masquerade_envelope)dnl + FEATURE(nocanonify)dnl + FEATURE(nodns)dnl + define(SMART_HOST, `relay.myISP.com') + DmmyISP.com + define(`confDOMAIN_NAME',`myISP.com')dnl + </verb> + + <p>Refer to the previous section for details of how to turn this + <tt/.mc/ file into a <tt/sendmail.rc/ file. Also, don't forget to + restart sendmail after updating sendmail.cf. + + <sect> + <heading>The X Window System and Virtual Consoles</heading> + + <sect1> + <heading>I want to run X, how do I go about it?</heading> + + <p>The easiest way is to simply specify that you want to run X + during the installation process. + + <p>Then read and follow the documentation on the <htmlurl url= + "http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xf86config" + name="xf86config"> tool, which assists you in configuring XFree86(tm) + for your particular graphics card/mouse/etc. + + <p>You may also wish to investigate the Xaccel server, which is + available at a very reasonable price. See the section on + <ref id="xig" name="Xi Graphics"> for more details. + + <sect1> + <heading>Why doesn't my mouse work with X</heading> + + <p>If you are using syscons (the default console driver), you can + configure FreeBSD to support a mouse pointer on each virtual + screen. In order to avoid conflicting with X, syscons supports + a virtual device called ``<tt>/dev/sysmouse</tt>''. All mouse events + received from the real mouse device are written to the sysmouse + device, using the MouseSystems protocol. If you wish to use your + mouse on one or more virtual consoles, <bf/and/ use X, the + following configuration is recommended: + + <verb> + /etc/rc.conf: + moused_type=ps/2 # or whatever your actual type is + moused_port=/dev/psm0 # or whatever your real port is + moused_flags= + + /etc/XF86Config + Section Pointer + Protocol "MouseSystems" + Device "/dev/sysmouse" + ..... + </verb> + + <p>Some people prefer to use ``<tt>/dev/mouse</tt>'' under X. To + make this work, ``<tt>/dev/mouse</tt>'' should be linked to + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sysmouse" + name="/dev/sysmouse">: + + <verb> + # cd /dev + # rm -f mouse + # ln -s sysmouse mouse + </verb> + + <sect1> + <heading>Help! X Window menus and dialog boxes don't work right!</heading> + + <p>Try turning off the Num Lock key. + + <p>If your Num Lock key is on by default at boot-time, you may add + the following line in the ``<tt/Keyboard/'' section of the + <tt/XF86config/ file. + + <verb> + # Let the server do the NumLock processing. This should only be + # required when using pre-R6 clients + ServerNumLock + </verb> + + <sect1> + <heading>What is a virtual console and how do I make more?</heading> + + <p>Virtual consoles, put simply, enable you to have several + simultaneous sessions on the same machine without doing anything + complicated like setting up a network or running X. + + <p>When the system starts, it will display a login prompt on + the monitor after displaying all the boot messages. You can + then type in your login name and password and start working (or + playing!) on the first virtual console. + + <p>At some point, you will probably wish to start another + session, perhaps to look at documentation for a program + you are running or to read your mail while waiting for an + FTP transfer to finish. Just do Alt-F2 (hold down the Alt + key and press the F2 key), and you will find a login prompt + waiting for you on the second ``virtual console''! When you + want to go back to the original session, do Alt-F1. + + <p>The default FreeBSD installation has three virtual consoles + enabled, and Alt-F1, Alt-F2, and Alt-F3 will switch between + these virtual consoles. + + To enable more of them, edit <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> + and add entries for ``<tt/ttyv4/'' to ``<tt/ttyvc/'' after the + comment on ``Virtual terminals'': + + <verb> + # Edit the existing entry for ttyv3 in /etc/ttys and change + # "off" to "on". + 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 + ttyva "/usr/libexec/getty Pc" cons25 on secure + ttyvb "/usr/libexec/getty Pc" cons25 on secure + </verb> + + <p>Use as many or as few as you want. The more virtual terminals + you have, the more resources that are used; this can be important + if you have 8MB RAM or less. You may also want to change the + ``<tt/secure/'' to ``<tt/insecure/''. + + <p><bf/IMPORTANT NOTE/ if you want to run an X server you <bf/MUST/ + leave at least one virtual terminal unused (or turned off) for it + to use. That is to say that if you want to have a login + prompt pop up for all twelve of your Alt-function keys, + you're out of luck - you can only do this for eleven of them + if you also want to run an X server on the same machine. + + <p>The easiest way to disable a console is by turning it off. For + example, if you had the full 12 terminal allocation mentioned + above and you wanted to run X, you would change settings for + virtual terminal 12 from: + + <verb> + ttyvb "/usr/libexec/getty Pc" cons25 on secure + </verb> + + <p>to: + + <verb> + ttyvb "/usr/libexec/getty Pc" cons25 off secure + </verb> + + <p>If your keyboard has only ten function keys, you would end up with: + + <verb> + ttyv9 "/usr/libexec/getty Pc" cons25 off secure + ttyva "/usr/libexec/getty Pc" cons25 off secure + ttyvb "/usr/libexec/getty Pc" cons25 off secure + </verb> + + <p>(You could also just delete these lines.) + + <p>Once you have edited <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys">, + the next step is to make sure that you have enough virtual terminal + devices. The easiest way to do this is: + + <verb> + # cd /dev + # ./MAKEDEV vty12 # For 12 devices + </verb> + + <p>Next, the easiest (and cleanest) way to activate the virtual + consoles is to reboot. However, if you really don't want to + reboot, you can just shut down the X Window system and execute (as + <tt/root/): + + <verb> + kill -HUP 1 + </verb> + + <p>It's imperative that you completely shut down X Window if it is + running, before running this command. If you don't, your system + will probably appear to hang/lock up after executing the kill + command. + + <sect1> + <heading>How do I access the virtual consoles from X?</heading> + + <p>If the console is currently displaying X Window, you can use + Ctrl-Alt-F1, etc. to switch to a virtual console. Note, however, + that once you've switched away from X Window to a virtual + terminal, you may use only the Alt- function key to switch to another + virtual terminal or back to X Window. You do not need to also press the + Ctrl key. If you use the control key to switch back to X on some + older releases, you can find your text console stuck in ``control-lock'' + mode. Tap the control key to wake it up again. + + <sect1> + <heading>How do I start XDM from the <tt>/etc/ttys</tt> file ?</heading> + + <p>Starting <htmlurl url= + "http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xdm" + name="xdm"> via <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys" + name="/etc/ttys"> is a <bf/Bad Thing/. I don't know why this + crept into some README file. + + <p>Start it from your <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rc" name="rc.local"> (or even + from a <tt/X.sh/ script in <tt>/usr/local/etc/rc.d</tt>), and be + explicit about how it has to start. If this is your last action in + <tt/rc.local/, put a ``<tt/sleep 1/'' behind, to allow <tt/xdm/ to + properly daemonize before the <tt/rc/ shell exits. + + <p><tt/xdm/ should be started without any arguments (i.e., as a + daemon). + + <p><bf/NOTE:/ A previos version of this FAQ told you to add the + <tt/vt/ you want X to use to the + <tt>/usr/X11R6/lib/X11/xdm/Xservers</tt> file. This is not necessary: + X will use the first free <tt/vt/ it finds. + + <sect1> + <heading>When I run xconsole, I get ``Couldn't open console''.</heading> + + <p>If you start <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=X" + name="X"> with <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=startx" + name="startx">, the permissions on /dev/console will <tt /not/ get + changed, resulting in things like <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xterm" + name="xterm -C"> and <htmlurl url= + "http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xconsole" + name="xconsole"> not working. + + <p>This is because of the way console permissions are set by default. + On a multi-user system, one doesn't necessarily want just any user + to be able to write on the system console. For users who are logging + directly onto a machine with a VTY, the + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab" name="fbtab"> + file exists to solve such problems. + + <p>In a nutshell, make sure an uncommented line of the form + + <verb> + /dev/ttyv0 0600 /dev/console + </verb> + + <p>is in <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab(5)" + name="/etc/fbtab"> and it will ensure that whomever logs in on + <tt>/dev/ttyv0</tt> will own the console. + + <sect1> + <heading>My PS/2 mouse doesn't behave properly under X.</heading> + + <p>Your mouse and the mouse driver have somewhat become out of + synchronization. Switching away from X to a virtual terminal + and getting back to X again may make them re-synchronized. + If the problem occurs often, you may add the following option + in your kernel configuration file and recompile it. + + <verb> + options PSM_CHECKSYNC + </verb> + + <p>See the section on <ref id="make-kernel" name="building a kernel"> + if you've no experience with building kernels. + + <p>With this option, there should be less chance of synchronization + problem between the mouse and the driver. If, however, you + still see the problem, click any mouse button while holding + the mouse still to re-synchronize the mouse and the driver. + + <p>Note that unfortunately this option may not work with all the + systems and voids the ``tap'' feature of the ALPS GlidePoint + device attached to the PS/2 mouse port. + + <sect> + <heading>Networking<label id="networking"></heading> + + <sect1> + <heading>Where can I get information on ``diskless booting''?</heading> + + <p>``Diskless booting'' means that the FreeBSD box is booted over a + network, and reads the necessary files from a server instead of + its hard disk. For full details, please read + <url url="../handbook/diskless.html" + name="the Handbook entry on diskless booting"> + + <sect1> + <heading> + Can a FreeBSD box be used as a dedicated network router? + </heading> + + <p>Internet standards and good engineering practice prohibit us from + providing packet forwarding by default in FreeBSD. You can + however enable this feature by changing the following variable to + <tt/YES/ in <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf" + name="rc.conf">: + + <verb> + gateway_enable=YES # Set to YES if this host will be a gateway + </verb> + + <p>This option will put the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?sysctl" name="sysctl"> variable + <tt/net.inet.ip.forwarding/ to <tt/1/. + + <p>In most cases, you will also need to run a routing process to + tell other systems on your network about your router; FreeBSD + comes with the standard BSD routing daemon + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?routed" + name="routed">, or for more complex situations you may want to try + <em/GaTeD/ (available by FTP from <tt/ftp.gated.Merit.EDU/) which + supports FreeBSD as of 3_5Alpha7. + + <p>It is our duty to warn you that, even when FreeBSD is configured + in this way, it does not completely comply with the Internet + standard requirements for routers; however, it comes close enough + for ordinary usage. + + <sect1> + <heading> + I want to recompile the latest BIND from ISC. It blows up during the + compilation on some types conflicts. What can I do? + </heading> + + <p>There is a conflict between the ``<tt/cdefs.h/'' file in the + distribution and the one shipped with FreeBSD. Just remove + <tt>compat/include/sys/cdefs.h</tt>. + + <sect1> + <heading>Can I connect my Win95 box to the Internet via FreeBSD?</heading> + + <p>Typically, people who ask this question have two PC's at home, one + with FreeBSD and one with Win95; the idea is to use the FreeBSD + box to connect to the Internet and then be able to access the + Internet from the Windows95 box through the FreeBSD box. This + is really just a special case of the previous question. + + <p>There's a useful document available which explains how to set + FreeBSD up as a <url url="http://www.ssimicro.com/~jeremyc/ppp.html" + name="PPP Dialup Router"> + + <p><bf/NOTE:/ This requires having at least two fixed IP addresses + available, and possibly three or more, depending on how much + work you want to go through to set up the Windows box. As an + alternative, if you don't have a fixed IP, you can use one of + the private IP subnets and install <bf/proxies/ such as + <url url="http://squid.nlanr.net/Squid/" name="SQUID"> and + <url url="http://www.tis.com/" name="the TIS firewall toolkit"> + on your FreeBSD box. + + <p>See also the section on <ref id="direct-at" name="natd">. + + <sect1> + <heading>Does FreeBSD support SLIP and PPP?</heading> + + <p>Yes. See the man pages for + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?slattach" + name="slattach">, <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?sliplogin" name="sliplogin">, + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?pppd" name="pppd"> and + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" name="ppp">. + <tt/pppd/ and <tt/ppp/ provide support for both incoming and outgoing + connections. <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sliplogin" + name="Sliplogin"> deals exclusively with incoming connections and + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?slattach" + name="slattach"> deals exclusively with outgoing connections. + + <p>These programs are described in the following sections of the + <url url="../handbook/handbook.html" name="handbook">: + + <itemize> + <item><url url="../handbook/slips.html" + name="Handbook entry on SLIP (server side)"> + + <item><url url="../handbook/slipc.html" + name="Handbook entry on SLIP (client side)"> + + <item><url url="../handbook/ppp.html" + name="Handbook entry on PPP (kernel version)"> + + <item><url url="../handbook/userppp.html" + name="Handbook entry on PPP (user-mode version)"> + </itemize> + + <p>If you only have access to the Internet through a "shell + account", you may want to have a look at the <htmlurl + url="http://www.freebsd.org/cgi/ports.cgi?^slirp" name="slirp"> + package. It can provide you with (limited) access to services + such as ftp and http direct from your local machine. + + <sect1> + <heading> + Does FreeBSD support NAT or Masquerading<label id="natd"> + </heading> - <p> - If you are using syscons (the default console driver), you can - configure FreeBSD to support a mouse pointer on each virtual - screen. In order to avoid conflicting with X, syscons supports - a virtual device called ``<tt>sysmouse</tt>''. All mouse events - received from the real mouse device are written to the sysmouse - device, using the MouseSystems protocol. If you wish to use your - mouse on one or more virtual consoles, <bf/and/ use X, the - following configuration is recommended: + <p>If you have a local subnet (one or more local machines), but have + been allocated only a single IP number from your Internet provider + (or even if you receive a dynamic IP number), you may want to look at + the <htmlurl url="http://www.freebsd.org/cgi/man.cgi?natd" name="natd"> + program. <tt/Natd/ allows you to connect an entire subnet to the + internet using only a single IP number. + + <p>The <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" + name="ppp"> program has similar functionality built in via + the <tt/-alias/ switch. The <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?libalias" name="alias library"> + is used in both cases. + + <sect1> + <heading> + I can't make ppp work. What am I doing wrong ?<label id="userppp"> + </heading> + + <p>You should first read the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ppp" name="ppp man page"> and + the <url url="../handbook/userppp.html" + name="ppp section of the handbook">. Enable logging with the command + + <verb> + set log Phase Chat Connect Carrier lcp ipcp ccp command + </verb> + + <p>This command may be typed at the <tt/ppp/ command prompt or + it may be entered in the <tt>/etc/ppp/ppp.conf</tt> configuration file + (the start of the <bf>default</bf> section is the best place to put it). + Make sure that <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?syslog.conf" + name="/etc/syslog.conf"> contains the lines + + <verb> + !ppp + *.* /var/log/ppp.log + </verb> + + <p>and that the file <tt>/var/log/ppp.log</tt> exists. You can + now find out a lot about what's going on from the log file. + Don't worry if it doesn't all make sense. If you need to + get help from someone, it may make sense to them. + + <p>If your version of ppp doesn't understand the "set log" + command, you should download the + <url url="http://www.freebsd.org/~brian" name="latest version">. + It will build on FreeBSD version 2.1.5 and higher. + + <sect2> + <heading>Ppp won't dial in -auto mode</heading> + + <p>First, check that you've got a default route. By running <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?netstat"> + name="netstat -rn">, you should see two entries like this: <verb> - /etc/sysconfig (or rc.conf): - mousedtype=ps/2 # or whatever your actual type is - mousedport=/dev/psm0 # or whatever your real port is - - /etc/XF86Config - Section Pointer - Protocol "MouseSystems" - Device "/dev/sysmouse" - ..... +Destination Gateway Flags Refs Use Netif Expire +default 10.0.0.2 UGSc 0 0 tun0 +10.0.0.2 10.0.0.1 UH 0 0 tun0 </verb> - <p> - Some people prefer to use ``<tt>/dev/mouse</tt>'' under X. To - make this work, ``<tt>/dev/mouse</tt>'' should be linked to - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sysmouse" - name="/dev/sysmouse">: + <p>This is assuming that you've used the addresses from the + handbook, the man page or from the ppp.conf.sample file. + If you haven't got a default route, it may be because you're + running an old version of <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ppp" + name="ppp"> that doesn't understand the + word <tt/HISADDR/ in the ppp.conf file. If your version of + <tt/ppp/ is from before FreeBSD 2.2.5, change the <verb> - cd /dev - rm -f mouse - ln -s sysmouse mouse + add 0 0 HISADDR </verb> - <sect1> - <heading>Help! X Window menus and dialog boxes don't work right!</heading> - <p> - Try turning off the Num Lock key. + <p>line to one saying - If your Num Lock key is on by default at boot-time, you may add - the following line in the ``<tt/Keyboard/'' section of the - <tt/XF86config/ file. + <verb> + add 0 0 10.0.0.2 + </verb> -<verb> -# Let the server do the NumLock processing. This should only be required -# when using pre-R6 clients - ServerNumLock -</verb> + <p>Another reason for the default route line being missing is that + you have mistakenly set up a default router in your + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf" + name="/etc/rc.conf"> file (this file was called + <tt>/etc/sysconfig</tt> prior to release 2.2.2), and you have + omitted the line saying + <verb> + delete ALL + </verb> - <sect1> - <heading>What is a virtual console and how do I make more?</heading> - <p> - Virtual consoles, put simply, enable you to have several - simultaneous sessions on the same machine without doing anything - complicated like setting up a network or running X. - <p> - When the system starts, it will display a login prompt on - the monitor after displaying all the boot messages. You can - then type in your login name and password and start working (or - playing!) on the first virtual console. - <p> - At some point, you will probably wish to start another - session, perhaps to look at documentation for a program - you are running or to read your mail while waiting for an - FTP transfer to finish. Just do Alt-F2 (hold down the Alt - key and press the F2 key), and you will find a login prompt - waiting for you on the second ``virtual console''! When you - want to go back to the original session, do Alt-F1. - <p> - The default FreeBSD installation has three virtual consoles - enabled, and Alt-F1, Alt-F2, and Alt-F3 will switch between - these virtual consoles. - - To enable more of them, edit <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> - and add - entries for ``<tt/ttyv4/'' to ``<tt/ttyvc/'' after the - comment on ``Virtual terminals'' (delete the leading - whitespace in the following example): - - <verb> - # Edit the existing entry for ttyv3 in /etc/ttys and change - # "off" to "on". - 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 - ttyva "/usr/libexec/getty Pc" cons25 on secure - ttyvb "/usr/libexec/getty Pc" cons25 on secure - </verb> - - Use as many or as few as you want. The more virtual terminals - you have, the more resources that are used; this can be important - if you have 8MB RAM or less. You may also want to change the - ``<tt/secure/'' to ``<tt/insecure/''. - - <bf/IMPORTANT NOTE/ if you want to run an X server you <bf/MUST/ - leave at least one virtual terminal unused (or turned off) for it - to use. That is to say that if you want to have a login - prompt pop up for all twelve of your Alt-function keys, - you're out of luck - you can only do this for eleven of them - if you also want to run an X server on the same machine. - - The easiest way to disable a console is by turning it off. For - example, if you had the full 12 terminal allocation mentioned - above and you wanted to run X, you would change settings for - virtual terminal 12 from: - - <verb> - ttyvb "/usr/libexec/getty Pc" cons25 on secure - </verb> - to: - <verb> - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </verb> - - If your keyboard has only ten function keys, you would end up with: - <verb> - ttyv9 "/usr/libexec/getty Pc" cons25 off secure - ttyva "/usr/libexec/getty Pc" cons25 off secure - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </verb> - (You could also just delete these lines.) - - Once you have edited <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys">, - the next step is to make - sure that you have enough virtual terminal devices. The easiest - way to do this is: - <verb> - cd /dev - ./MAKEDEV vty12 # For 12 devices - </verb> - - Next, the easiest (and cleanest) way to activate the virtual - consoles is to reboot. However, if you really don't want to - reboot, you can just shut down the X Window system and execute (as - <tt/root/): - <verb> - kill -HUP 1 - </verb> - - It's imperative that you completely shut down X Window if it is - running, before running this command. If you don't, your system - will probably appear to hang/lock up after executing the kill - command. - - <sect1> - <heading>How do I access the virtual consoles from X?</heading> - <p> - If the console is currently displaying X Window, you can use - Ctrl-Alt-F1, etc. to switch to a virtual console. Note, however, - that once you've switched away from X Window to a virtual - terminal, you use only the Alt- function key to switch to another - virtual terminal or back to X Window. You do not also press the - Ctrl key; the Ctrl-Alt-function key combination is used only when - switching from X Window to a virtual terminal. If you insist on - using the control key to switch back to X you can find your - text console stuck in ``control-lock'' mode. Tap the control - key to wake it up again. - - <sect1> - <heading>How do I start XDM from the <tt>/etc/ttys</tt> file ?</heading> - <p> - Starting <htmlurl url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xdm" name="xdm"> - via <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys" - name="/etc/ttys"> is a Bad Thing. I don't know why this - crept into some README file. - - Start it from your <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?rc" - name="rc.local">, and be explicit about how it - has to start. If this is your last action in <tt/rc.local/, put - a ``<tt/sleep 1/'' behind, to allow <tt/xdm/ to properly - daemonize before the <tt/rc/ shell exits. - - <tt/xdm/ should be started without any arguments (i.e., as a - daemon). - - <bf/NOTE:/ A previos version of this FAQ told you to add the - <tt/vt/ you want X to use to the - <tt>/usr/X11R6/lib/X11/xdm/Xservers</tt> file. This is not necessary: - X will use the first free <tt/vt/ it finds. - - - <sect1> - <heading>When I run xconsole, I get ``Couldn't open console''.</heading> - <p> - If you start <htmlurl url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=X" name="X"> - with <htmlurl url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=startx" name="startx">, the permissions on /dev/console will - <tt /not/ get changed, resulting in things like - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xterm" name="xterm -C"> and - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xconsole" name="xconsole"> not working. - - <p> - This is because of the way console permissions are set by default. - On a multi-user system, one doesn't necessarily want just any user - to be able to write on the system console. For users who are logging - directly onto a machine with a VTY, the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab" - name="fbtab"> file exists - to solve such problems. - - In a nutshell, make sure an uncommented line of the form - - <verb> - /dev/ttyv0 0600 /dev/console - </verb> - - is in <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab(5)" - name="/etc/fbtab"> and it will ensure that whomever logs - in on <tt>/dev/ttyv0</tt> will own the console. - - - <sect1> - <heading>My PS/2 mouse doesn't behave properly under X Window.</heading> - <p> - Your mouse and the mouse driver have somewhat become out of - synchronization. Switching away from X to a virtual terminal - and getting back to X again may make them re-synchronized. - If the problem occurs often, you may add the following option - in your kernel configuration file and recompile it. - <verb> - options PSM_CHECKSYNC - </verb> - - See the section on <ref id="make-kernel" name="building a - kernel"> if you've no experience with building kernels. - - With this option, there should be less chance of synchronization - problem between the mouse and the driver. If, however, you - still see the problem, click any mouse button while holding - the mouse still to re-synchronize the mouse and the driver. - - Note that unfortunately this option may not work with all the - systems and voids the ``tap'' feature of the ALPS GlidePoint - device attached to the PS/2 mouse port. - - - <sect> - <heading>Networking</heading> - - <sect1> - <heading>Where can I get information on ``diskless booting''?</heading> - - <p> - ``Diskless booting'' means that the FreeBSD box is booted over a - network, and reads the necessary files from a server instead of - its hard disk. For full details, please read - - <url url="../handbook/diskless.html" - name="the Handbook entry on diskless booting"> - - <sect1> - <heading>Can a FreeBSD box be used as a dedicated network router?</heading> - - <p> - Internet standards and good engineering practice prohibit us from - providing packet forwarding by default in FreeBSD. You can - however enable this feature by changing the following variable to - <tt/YES/ in <tt>/etc/sysconfig</tt> (or <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?rc.conf" - name="rc.conf">): - <verb> - # If you want this host to be a gateway, set to YES. - gateway=YES - </verb> - - This option will put the <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?sysctl" - name="sysctl"> variable - <tt/net.inet.ip.forwarding/ to <tt/1/. - - In most cases, you will also need to run a routing process to - tell other systems on your network about your router; FreeBSD - comes with the standard BSD routing daemon - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?routed" - name="routed">, or for - more complex situations you may want to try <em/GaTeD/ (available - by FTP from <tt/ftp.gated.Merit.EDU/) which supports FreeBSD as - of 3_5Alpha7. - - It is our duty to warn you that, even when FreeBSD is configured - in this way, it does not completely comply with the Internet - standard requirements for routers; however, it comes close enough - for ordinary usage. - - <sect1> - <heading>I want to recompile the latest BIND from ISC. It blows up during the compilation on some types conflicts. What can I do ? </heading> - <p> - There is a conflict between the ``<tt/cdefs.h/'' file in the - distribution and the one shipped with FreeBSD. Just remove - <tt>compat/include/sys/cdefs.h</tt>. - - <sect1> - <heading>Can I connect my Win95 box to the Internet via FreeBSD?</heading> - <p> - Typically, people who ask this question have two PC's at home, one - with FreeBSD and one with Win95; the idea is to use the FreeBSD - box to connect to the Internet and then be able to access the - Internet from the Windows95 box through the FreeBSD box. This - is really just a special case of the previous question. - - There's a useful document available which explains how to set - FreeBSD up as a <url url="http://www.ssimicro.com/~jeremyc/ppp.html" - name="PPP Dialup Router"> - - <bf/NOTE:/ This requires having at least two fixed IP addresses - available, and possibly three or more, depending on how much - work you want to go through to set up the Windows box. As an - alternative, if you don't have a fixed IP, you can use one of - the private IP subnets and install <bf/proxies/ such as - <url url="http://squid.nlanr.net/Squid/" name="SQUID"> and - <url url="http://www.tis.com/" name="the TIS firewall toolkit"> - on your FreeBSD box. - - <sect1> - <heading>Does FreeBSD support SLIP and PPP?</heading> - - <p> - Yes. See the man pages for - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?slattach" - name="slattach">, - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sliplogin" - name="sliplogin">, - - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?pppd" - name="pppd"> and - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" - name="ppp">. <tt/pppd/ and <tt/ppp/ provide - support for both incoming and outgoing connections. - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sliplogin" - name="Sliplogin"> deals exclusively with incoming connections and - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?slattach" - name="slattach"> deals exclusively with outgoing connections. - - These programs are described in the following sections of the - <url url="../handbook/handbook.html" name="handbook">: - - <p><url url="../handbook/slips.html" - name="Handbook entry on SLIP (server side)"> - <p><url url="../handbook/slipc.html" - name="Handbook entry on SLIP (client side)"> - <p><url url="../handbook/ppp.html" - name="Handbook entry on PPP (kernel version)"> - <p><url url="../handbook/userppp.html" - name="Handbook entry on PPP (user-mode version)"> - - <p> - If you only have access to the Internet through a "shell - account", you may want to have a look at the - <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^slirp" - name="slirp"> - package. It can provide you with (limited) access to services - such as ftp and http direct from your local machine. - - <sect1> - <heading>Does FreeBSD support NAT or Masquerading</heading> - - <p> - If you have a subnet (one or more local machines), but have - been allocated only a single IP number from your Internet - provider, you may want to look at the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?natd" - name="natd"> program. - <tt/Natd/ allows you to connect an entire subnet to the internet - using only a single IP number. - - <p> - The - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" - name="ppp"> program has similar functionality built in via - the <tt/-alias/ switch. - - <sect1> - <heading>I can't make <tt/ppp/ work. What am I doing wrong ?<label id="userppp"></heading> - + <p>from <tt>ppp.conf</tt>. If this is the case, go back to the + <url url="../handbook/userppp:final.html" + name="Final system configuration"> section of the handbook. - <p> - You should first read the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" - name="ppp"> manual page and - the <url url="../handbook/userppp.html" - name="ppp section of the handbook">. Enable logging - with the command -<verb> - set log Phase Chat Connect Carrier lcp ipcp ccp command -</verb> - This command may be typed at the <tt/ppp/ command prompt or - it may be entered in the <tt>/etc/ppp/ppp.conf</tt> - configuration file (the start of the <bf>default</bf> section - is the best place to put it). Make sure that - <tt>/etc/syslog.conf</tt> contains the lines -<verb> - !ppp - *.* /var/log/ppp.log -</verb> - and that the file <tt>/var/log/ppp.log</tt> exists. You can - now find out a lot about what's going on from the log file. - Don't worry if it doesn't all make sense. If you need to - get help from someone, it may make sense to them. - - If your version of ppp doesn't understand the "set log" - command, you should download the - <url url="http://www.freebsd.org/~brian" name="latest version">. - It will build on FreeBSD version 2.1.5 and higher. - - <sect2> - <heading>Ppp won't dial in -auto mode</heading> - - <p> - First, check that you've got a default route. By - running <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?netstat"> - name="netstat -rn">, you should see two entries - like this: -<verb> -Destination Gateway Flags Refs Use Netif Expire -default 10.0.0.2 UGSc 0 0 tun0 -10.0.0.2 10.0.0.1 UH 0 0 tun0 -</verb> - This is assuming that you've used the addresses from the - handbook, the man page or from the ppp.conf.sample file. - If you haven't got a default route, it may be because you're - running an old version of <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ppp" - name="ppp"> that doesn't understand the - word <tt/HISADDR/ in the ppp.conf file. If your version of - <tt/ppp/ is from before FreeBSD 2.2.5, change the -<verb> - add 0 0 HISADDR -</verb> - line to one saying -<verb> - add 0 0 10.0.0.2 -</verb> - Another reason for the default route line being missing is that - you have mistakenly set up a default router in your - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf" - name="/etc/rc.conf"> file (this file was called - <tt>/etc/sysconfig</tt> prior to release 2.2.2), and you have - omitted the line saying -<verb> - delete ALL -</verb> - from <tt>ppp.conf</tt>. If this is the case, go back to the - <url url="../handbook/userppp:final.html" - name="Final system configuration"> section of the handbook. + <sect2> + <heading>What does "No route to host" mean</heading> - <sect2> - <heading>What does "No route to host" mean</heading> + <p>This error is usually due to a missing - <p> - This error is usually due to a missing -<verb> -MYADDR: - delete ALL - add 0 0 HISADDR -</verb> - section in your <tt>/etc/ppp/ppp.linkup</tt> file. This is - only necessary if you have a dynamic IP address or don't - know the address of your gateway. If you're using - interactive mode, you can type the following after entering - <tt/packet mode/ (packet mode is indicated by the capitalized - <bf/PPP/ in the prompt): -<verb> - delete ALL - add 0 0 HISADDR -</verb> - Refer to the <url url="../handbook/userppp:dynamicIP.html" - name="PPP and Dynamic IP addresses"> section of the handbook - for further details. + <verb> + MYADDR: + delete ALL + add 0 0 HISADDR + </verb> - <sect2> - <heading>My connection drops after about 3 minutes</heading> + <p>section in your <tt>/etc/ppp/ppp.linkup</tt> file. This is + only necessary if you have a dynamic IP address or don't know the + address of your gateway. If you're using interactive mode, you can + type the following after entering <tt/packet mode/ (packet mode is + indicated by the capitalized <bf/PPP/ in the prompt): - <p> - The default ppp timeout is 3 minutes. This can be adjusted - with the line -<verb> - set timeout NNN -</verb> - where NNN is the number of seconds of inactivity before the - connection is closed. If NNN is zero, the connection is - never closed due to a timeout. - It is possible to put this command in the <tt>ppp.conf</tt> - file, or to type it at the prompt in interactive mode. It - is also possible to adjust it on the fly while the line is - active by connecting to <tt/ppp/s server socket using - - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?telnet" - name="telnet"> or - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?pppctl" - name="pppctl">. Refer to the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" - name="ppp"> man page for further details. - - <sect2> - <heading>My connection drops under heavy load</heading> - - <p> - If you have Link Quality Reporting (LQR) configured, it is - possible that too many LQR packets are lost between your - machine and the peer. Ppp deduces that the line must therefore - be bad, and disconnects. Prior to FreeBSD version 2.2.5, - LQR was enabled by default. It is now disabled by default. - LQR can be disabled with the line -<verb> - disable lqr -</verb> + <verb> + delete ALL + add 0 0 HISADDR + </verb> - <sect2> - <heading>My connection drops after a random amount of time</heading> + <p>Refer to the <url url="../handbook/userppp:dynamicIP.html" + name="PPP and Dynamic IP addresses"> section of the handbook + for further details. - <p> - Sometimes, on a noisy phone line or even on a line with - call waiting enabled, your modem may hang up because it - thinks (incorrectly) that it lost carrier. + <sect2> + <heading>My connection drops after about 3 minutes</heading> - <p> - There's a setting on most modems for determining how tolerant - it should be to temporary losses of carrier. On a USR - Sportster for example, this is measured by the S10 register in - tenths of a second. To make your modem more forgiving, you could - add the following send-expect sequence to your dial string: -<verb> - set dial "...... ATS10=10 OK ......" -</verb> + <p>The default ppp timeout is 3 minutes. This can be adjusted + with the line - <p> - Refer to your modems manual for details. + <verb> + set timeout NNN + </verb> - <sect2> - <heading>Nothing happens after the Login OK! message</heading> + <p>where <bf/NNN/ is the number of seconds of inactivity before the + connection is closed. If <bf/NNN/ is zero, the connection is + never closed due to a timeout. It is possible to put this command in + the <tt>ppp.conf</tt> file, or to type it at the prompt in + interactive mode. It is also possible to adjust it on the fly while + the line is active by connecting to <tt/ppp/s server socket using + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?telnet" name="telnet"> + or <htmlurl url="http://www.freebsd.org/cgi/man.cgi?pppctl" + name="pppctl">. Refer to the + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" name="ppp"> man + page for further details. + + <sect2> + <heading>My connection drops under heavy load</heading> + + <p>If you have Link Quality Reporting (LQR) configured, it is + possible that too many LQR packets are lost between your + machine and the peer. Ppp deduces that the line must therefore + be bad, and disconnects. Prior to FreeBSD version 2.2.5, + LQR was enabled by default. It is now disabled by default. + LQR can be disabled with the line - <p> - Prior to FreeBSD version 2.2.5, once the link was established, - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" - name="ppp"> would wait for the peer to initiate the Line Control - Protocol (LCP). Many ISPs will not initiate negotiations and - expect the client to do so. To force <tt/ppp/ to initiate - the LCP, use the following line: -<verb> - set openmode active -</verb> - <bf/Note/: It usually does no harm if both sides initiate - negotiation, so openmode is now active by default. However, - the next section explains when it <bf/does/ do some harm. - - <sect2> - <heading>I keep seeing errors about magic being the same</heading> - - <p> - Occasionally, just after connecting, you may see messages in - the log that say "magic is the same". Sometimes, these - messages are harmless, and sometimes one side or the other - exits. - - <p> - This normally happens on server machines with slow disks that - are spawning a getty on the port, and executing ppp from a - login script or program after login. The reason is that in - the time taken between getty exiting and ppp starting, the - client-side ppp starts sending Line Control Protocol (LCP) - packets. Because ECHO is still switched on for the port on - the server, the client ppp sees these packets "reflect" back. - - <p> - One part of the LCP negotiation is to establish a magic number - for each side of the link so that "reflections" can be detected. - The protocol says that when the peer tries to negotiate - the same magic number, a NAK should be sent and a new magic - number should be chosen. During the period that the server - port has ECHO turned on, the client ppp sends LCP packets, - sees the same magic in the reflected packet and NAKs it. It - also sees the NAK reflect (which also means ppp must change - its magic). This produces a potentially enormous number of - magic number changes, all of which are happily piling into - the servers tty buffer. As soon as ppp starts on the server, - it's flooded with magic number changes and almost immediately - decides it's tried enough to negotiate LCP and gives up. - Meanwhile, the client, who no longer sees the reflections, - becomes happy just in time to see a hangup from the server. - - <p> - The only way to circumvent this is to put the following line - in your ppp.conf file: -<verb> - set openmode passive -</verb> - This tells ppp to wait for the server to initiate LCP - negotiations. Some servers may never initiate negotiations. - If this is the case, please report it as a bug (using send-pr). - Ppp will need to be adjusted so that the user can configure a - variable delay before initiating LCP negotiations. - - <sect2> - <heading>Ppp locks up shortly after connecting</heading> - - <p> - Prior to version 2.2.5 of FreeBSD, it was possible that your - link was disabled shortly after connection due to <tt/ppp/ - mis-handling Predictor1 compression negotiation. This would - only happen if both sides tried to negotiate different - Compression Control Protocols (CCP). This problem is now - corrected, but if you're still running an old version of - <tt/ppp/, the problem can be circumvented with the line -<verb> - disable pred1 -</verb> + <verb> + disable lqr + </verb> - <sect2> - <heading>Ppp locks up when I shell out to test it</heading> - - <p> - When you execute the <tt/shell/ or <tt/!/ command, <tt/ppp/ - executes a shell (or if you've passed any arguements, <tt/ppp/ - will execute those arguements). Ppp will wait for the command - to complete before continuing. If you attempt to use the - ppp link while running the command, the link will appear to have - frozen. This is because <tt/ppp/ is waiting for the command - to complete. - - <p> - If you wish to execute commands like this, use the - <tt/!bg/ command instead. This will execute the given command - in the background, and ppp can continue to service the link. - - <sect2> - <heading>Ppp over a null-modem cable never exits</heading> - - <p> - There is no way for <tt/ppp/ to automatically determine that - a direct connection has been dropped. This is due to the - lines that are used in a null-modem serial cable. When using - this sort of connection, LQR should always be enabled with - the line -<verb> - enable lqr -</verb> - LQR is accepted by default if negotiated by the peer. + <sect2> + <heading>My connection drops after a random amount of time</heading> - <sect2> - <heading>Why does ppp dial for no reason in -auto mode</heading> + <p>Sometimes, on a noisy phone line or even on a line with + call waiting enabled, your modem may hang up because it + thinks (incorrectly) that it lost carrier. - <p> - If <tt/ppp/ is dialing unexpectedly, you must determine the - cause, and set up Dial filters (dfilters) to prevent such - dialing. + <p>There's a setting on most modems for determining how tolerant + it should be to temporary losses of carrier. On a USR + Sportster for example, this is measured by the S10 register in + tenths of a second. To make your modem more forgiving, you could + add the following send-expect sequence to your dial string: - <p> - To determine the cause, use the following line: -<verb> - set log +tcp/ip -</verb> - This will log all traffic through the connection. The next - time the line comes up unexpectedly, you will see the reason - logged with a convenient timestamp next to it. - - <p> - You can now disable dialing under these circumstances. Usually, - this sort of problem arises due to DNS lookups. To prevent - DNS lookups from establishing a connection (this will <bf/not/ - prevent <tt/ppp/ from passing the packets through an established - connection), use the following: -<verb> - set dfilter 1 deny udp src eq 53 - set dfilter 2 deny udp dst eq 53 - set dfilter 3 permit 0/0 0/0 -</verb> + <verb> + set dial "...... ATS10=10 OK ......" + </verb> - <sect2> - <heading>What do these CCP errors mean</heading> + <p>Refer to your modem manual for details. - <p> - I keep seeing the following errors in my log file: -<verb> - CCP: CcpSendConfigReq - CCP: Received Terminate Ack (1) state = Req-Sent (6) -</verb> - This is because ppp is trying to negotiate Predictor1 - compression, and the peer does not want to negotiate any - compression at all. The messages are harmless, but if you - wish to remove them, you can disable Predictor1 compression - locally too: -<verb> - disable pred1 -</verb> + <sect2> + <heading>Nothing happens after the Login OK! message</heading> - <sect2> - <heading>Ppp locks up during file transfers with IO errors</heading> - - <p> - Under FreeBSD 2.2.2 and before, there was a bug in the tun - driver that prevents incoming packets of a size larger than - the tun interface's MTU size. Receipt of a packet greater than - the MTU size results in an IO error being logged via syslogd. - - <p> - The ppp specification says that an MRU of 1500 should - <bf>always</bf> be accepted as a minimum, despite any LCP - negotiations, therefore it is possible that should you decrease - the MTU to less than 1500, your ISP will transmit packets of - 1500 regardless, and you will tickle this non-feature - locking - up your link. - - <p> - The problem can be circumvented by never setting an MTU of - less than 1500 under FreeBSD 2.2.2 or before. - - <sect2> - <heading>None of this helps - I'm desperate !</heading> - - <p> - If all else fails, send as much information as you can, - including your config files, how you're starting <tt/ppp/, - the relevent parts of your log file and the output of the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?netstat" - name="netstat -rn"> command (before and after connecting) to the - <url url="mailto:freebsd-questions@FreeBSD.org" - name="freebsd-questions@FreeBSD.org"> mailing list, and someone - should point you in the right direction. - - <sect1> - <heading>I can't create a <tt>/dev/ed0</tt> device!</heading> - - <p> - In the Berkeley networking framework, network interfaces are only - directly accessible by kernel code. Please see the - <tt>/etc/netstart</tt> file and the manual pages for the various - network programs mentioned there for more information. If this - leaves you totally confused, then you should pick up a book - describing network administration on another BSD-related - operating system; with few significant exceptions, administering - networking on FreeBSD is basically the same as on SunOS 4.0 or - Ultrix. - - <sect1> - <heading>How can I setup Ethernet aliases?</heading> - <p> - Add ``<tt/netmask 0xffffffff/'' to your <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ifconfig" - name="ifconfig"> command-line like the following: - <verb> - ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff - </verb> - - <sect1> - <heading>How do I get my 3C503 to use the other network port?</heading> - - <p> - If you want to use the other ports, you'll have to specify an - additional parameter on the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ifconfig" - name="ifconfig"> command line. The - default port is ``<tt/link0/''. To use the AUI port instead of - the BNC one, use ``<tt/link2/''. - - <sect1> - <heading>I'm having problems with NFS to/from FreeBSD.</heading> - - <p> - Certain PC network cards are better than others (to put it - mildly) and can sometimes cause problems with network intensive - applications like NFS. - - See - <url - url="../handbook/nfs.html" - name="the Handbook entry on NFS"> - - for more information on - this topic. - - <sect1> - <heading>Why can't I NFS-mount from a Linux box?</heading> - - <p> - Some versions of the Linux NFS code only accept mount requests - from a privileged port; try - <verb> - mount -o -P linuxbox:/blah /mnt - </verb> - <sect1> - <heading>Why can't I NFS-mount from a Sun box?</heading> - - <p> - Sun workstations running SunOS 4.X only accept mount requests - from a privileged port; try - <verb> - mount -o -P sunbox:/blah /mnt - </verb> - <sect1><heading>I'm having problems talking PPP to NeXTStep machines.</heading> - - <p> - Try disabling the TCP extensions in <tt>/etc/sysconfig</tt> (or <tt/rc.conf/) by - changing the following variable to NO: - <verb> - tcp_extensions=NO - </verb> - - Xylogic's Annex boxes are also broken in this regard and you must - use the above change to connect thru them. - - <sect1> - <heading>How do I enable IP multicast support?</heading> - - <p> - Multicast host operations are fully supported in FreeBSD 2.0 by - default. If you want your box to run as a multicast router, you - will need to load the <tt/ip_mroute_mod/ loadable kernel module - and run <tt/mrouted/. - -For more information: -<verb> + <p>Prior to FreeBSD version 2.2.5, once the link was established, + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ppp" + name="ppp"> would wait for the peer to initiate the Line Control + Protocol (LCP). Many ISPs will not initiate negotiations and + expect the client to do so. To force <tt/ppp/ to initiate + the LCP, use the following line: + + <verb> + set openmode active + </verb> + + <p><bf/Note/: It usually does no harm if both sides initiate + negotiation, so openmode is now active by default. However, + the next section explains when it <bf/does/ do some harm. + + <sect2> + <heading>I keep seeing errors about magic being the same</heading> + + <p>Occasionally, just after connecting, you may see messages in + the log that say "magic is the same". Sometimes, these + messages are harmless, and sometimes one side or the other + exits. + + <p>This normally happens on server machines with slow disks that + are spawning a getty on the port, and executing ppp from a + login script or program after login. The reason is that in + the time taken between getty exiting and ppp starting, the + client-side ppp starts sending Line Control Protocol (LCP) + packets. Because ECHO is still switched on for the port on + the server, the client ppp sees these packets "reflect" back. + + <p>One part of the LCP negotiation is to establish a magic number + for each side of the link so that "reflections" can be detected. + The protocol says that when the peer tries to negotiate + the same magic number, a NAK should be sent and a new magic + number should be chosen. During the period that the server + port has ECHO turned on, the client ppp sends LCP packets, + sees the same magic in the reflected packet and NAKs it. It + also sees the NAK reflect (which also means ppp must change + its magic). This produces a potentially enormous number of + magic number changes, all of which are happily piling into + the servers tty buffer. As soon as ppp starts on the server, + it's flooded with magic number changes and almost immediately + decides it's tried enough to negotiate LCP and gives up. + Meanwhile, the client, who no longer sees the reflections, + becomes happy just in time to see a hangup from the server. + + <p>The only way to circumvent this is to put the following line + in your ppp.conf file: + + <verb> + set openmode passive + </verb> + + <p>This tells ppp to wait for the server to initiate LCP negotiations. + Some servers may never initiate negotiations. If this is the case, + please report it as a bug (using send-pr). Ppp will need to be + adjusted so that the user can configure a variable delay before + initiating LCP negotiations. + + <sect2> + <heading>Ppp locks up shortly after connecting</heading> + + <p>Prior to version 2.2.5 of FreeBSD, it was possible that your + link was disabled shortly after connection due to <tt/ppp/ + mis-handling Predictor1 compression negotiation. This would + only happen if both sides tried to negotiate different + Compression Control Protocols (CCP). This problem is now + corrected, but if you're still running an old version of + <tt/ppp/, the problem can be circumvented with the line + + <verb> + disable pred1 + </verb> + + <sect2> + <heading>Ppp locks up when I shell out to test it</heading> + + <p>When you execute the <tt/shell/ or <tt/!/ command, <tt/ppp/ + executes a shell (or if you've passed any arguements, <tt/ppp/ + will execute those arguements). Ppp will wait for the command + to complete before continuing. If you attempt to use the + ppp link while running the command, the link will appear to have + frozen. This is because <tt/ppp/ is waiting for the command + to complete. + + <p>If you wish to execute commands like this, use the + <tt/!bg/ command instead. This will execute the given command + in the background, and ppp can continue to service the link. + + <sect2> + <heading>Ppp over a null-modem cable never exits</heading> + + <p>There is no way for <tt/ppp/ to automatically determine that + a direct connection has been dropped. This is due to the + lines that are used in a null-modem serial cable. When using + this sort of connection, LQR should always be enabled with + the line + + <verb> + enable lqr + </verb> + + <p>LQR is accepted by default if negotiated by the peer. + + <sect2> + <heading>Why does ppp dial for no reason in -auto mode</heading> + + <p>If <tt/ppp/ is dialing unexpectedly, you must determine the + cause, and set up Dial filters (dfilters) to prevent such dialing. + + <p>To determine the cause, use the following line: + + <verb> + set log +tcp/ip + </verb> + + <p>This will log all traffic through the connection. The next + time the line comes up unexpectedly, you will see the reason + logged with a convenient timestamp next to it. + + <p>You can now disable dialing under these circumstances. Usually, + this sort of problem arises due to DNS lookups. To prevent + DNS lookups from establishing a connection (this will <bf/not/ + prevent <tt/ppp/ from passing the packets through an established + connection), use the following: + + <verb> + set dfilter 1 deny udp src eq 53 + set dfilter 2 deny udp dst eq 53 + set dfilter 3 permit 0/0 0/0 + </verb> + + <p>This is not always suitable, as it will effectively break your + demand-dial capabilities - most programs will need a DNS lookup + before doing any other network related things. + + <p>In the DNS case, you should try to determine what is actually + trying to resolve a host name. A lot of the time, + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sendmail" + name="sendmail"> is the culprit. You should make sure that you tell + sendmail not to do any DNS lookups in its configuration file. See + the section on <ref id="ispmail" name="Mail Configuration"> for + further details. + + <sect2> + <heading>What do these CCP errors mean</heading> + + <p>I keep seeing the following errors in my log file: + + <verb> + CCP: CcpSendConfigReq + CCP: Received Terminate Ack (1) state = Req-Sent (6) + </verb> + + <p>This is because ppp is trying to negotiate Predictor1 + compression, and the peer does not want to negotiate any + compression at all. The messages are harmless, but if you + wish to remove them, you can disable Predictor1 compression + locally too: + + <verb> + disable pred1 + </verb> + + <sect2> + <heading>Ppp locks up during file transfers with IO errors</heading> + + <p>Under FreeBSD 2.2.2 and before, there was a bug in the tun + driver that prevents incoming packets of a size larger than + the tun interface's MTU size. Receipt of a packet greater than + the MTU size results in an IO error being logged via syslogd. + + <p>The ppp specification says that an MRU of 1500 should + <bf>always</bf> be accepted as a minimum, despite any LCP + negotiations, therefore it is possible that should you decrease + the MTU to less than 1500, your ISP will transmit packets of + 1500 regardless, and you will tickle this non-feature - locking + up your link. + + <p>The problem can be circumvented by never setting an MTU of + less than 1500 under FreeBSD 2.2.2 or before. + + <sect2> + <heading>None of this helps - I'm desperate !</heading> + + <p>If all else fails, send as much information as you can, + including your config files, how you're starting <tt/ppp/, + the relevent parts of your log file and the output of the + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?netstat" + name="netstat -rn"> command (before and after connecting) to the + <url url="mailto:freebsd-questions@FreeBSD.org" + name="freebsd-questions@FreeBSD.org"> mailing list or the + <url url="news:comp.unix.bsd.freebsd.misc" + name="comp.unix.bsd.freebsd.misc"> news group, and someone + should point you in the right direction. + + <sect1> + <heading>I can't create a <tt>/dev/ed0</tt> device!</heading> + + <p>In the Berkeley networking framework, network interfaces are only + directly accessible by kernel code. Please see the + <tt>/etc/rc.network</tt> file and the manual pages for the various + network programs mentioned there for more information. If this + leaves you totally confused, then you should pick up a book + describing network administration on another BSD-related + operating system; with few significant exceptions, administering + networking on FreeBSD is basically the same as on SunOS 4.0 or + Ultrix. + + <sect1> + <heading>How can I setup Ethernet aliases?</heading> + + <p>Add ``<tt/netmask 0xffffffff/'' to your <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ifconfig" name="ifconfig"> + command-line like the following: + + <verb> + ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff + </verb> + + <sect1> + <heading>How do I get my 3C503 to use the other network port?</heading> + + <p>If you want to use the other ports, you'll have to specify an + additional parameter on the + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ifconfig" + name="ifconfig"> command line. The + default port is ``<tt/link0/''. To use the AUI port instead of + the BNC one, use ``<tt/link2/''. These flags should be specified + using the ifconfig_* variables in <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf">. + + <sect1> + <heading>I'm having problems with NFS to/from FreeBSD.</heading> + + <p>Certain PC network cards are better than others (to put it + mildly) and can sometimes cause problems with network intensive + applications like NFS. + + <p>See <url url="../handbook/nfs.html" name="the Handbook entry on NFS"> + for more information on this topic. + + <sect1> + <heading>Why can't I NFS-mount from a Linux box?</heading> + + <p>Some versions of the Linux NFS code only accept mount requests + from a privileged port; try + + <verb> + mount -o -P linuxbox:/blah /mnt + </verb> + + <sect1> + <heading>Why can't I NFS-mount from a Sun box?</heading> + + <p>Sun workstations running SunOS 4.X only accept mount requests + from a privileged port; try + + <verb> + mount -o -P sunbox:/blah /mnt + </verb> + + <sect1> + <heading>I'm having problems talking PPP to NeXTStep machines.</heading> + + <p>Try disabling the TCP extensions in <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf"> by + changing the following variable to NO: + + <verb> + tcp_extensions=NO + </verb> + + <p>Xylogic's Annex boxes are also broken in this regard and you must + use the above change to connect thru them. + + <sect1> + <heading>How do I enable IP multicast support?</heading> + + <p>Multicast host operations are fully supported in FreeBSD 2.0 and + above by default. If you want your box to run as a multicast router, you + will need to load the <tt/ip_mroute_mod/ loadable kernel module + and run <tt/mrouted/. + + <p>For more information: + + <verb> Product Description Where --------------- ----------------------- --------------------------------------- faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt @@ -3859,641 +3932,650 @@ rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c quality of RTP packets. vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z and nv. -</verb> + </verb> - </sect1> - <sect1> - <heading>Which network cards are based on the DEC PCI chipset?</heading> + <sect1> + <heading>Which network cards are based on the DEC PCI chipset?</heading> - <p> - Here is a list compiled by Glen Foster - <tt/<gfoster@driver.nsta.org>/: -<verb> -Vendor Model -- -------------------------------------------------------- -ASUS PCI-L101-TB -Accton ENI1203 -Cogent EM960PCI -Compex ENET32-PCI -D-Link DE-530 -DEC DE435 -Danpex EN-9400P3 -JCIS Condor JC1260 -Linksys EtherPCI -Mylex LNP101 -SMC EtherPower 10/100 (Model 9332) -SMC EtherPower (Model 8432) -TopWare TE-3500P -Zynx ZX342 -</verb> - </sect1> - <sect1> - <heading>Why do I have to use the FQDN for hosts on my site?</heading> - <p> - You will probably find that the host is actually in a different - domain; for example, if you are in foo.bar.edu and you wish to reach - a host called ``mumble'' in the bar.edu domain, you will have to - refer to it by the fully-qualified domain name, ``mumble.bar.edu'', - instead of just ``mumble''. - <p> - Traditionally, this was allowed by BSD BIND resolvers. However - the current version of <em>BIND</em> that ships with FreeBSD - no longer provides default abbreviations for non-fully - qualified domain names other than the domain you are in. - So an unqualified host <tt>mumble</tt> must either be found - as <tt>mumble.foo.bar.edu</tt>, or it will be searched for - in the root domain. - <p> - This is different from the previous behavior, where the - search continued across <tt>mumble.bar.edu</tt>, and - <tt>mumble.edu</tt>. Have a look at RFC 1535 for why this - was considered bad practice, or even a security hole. - <p> - As a good workaround, you can place the line -<p><tt> -search foo.bar.edu bar.edu -</tt><p> - instead of the previous - -<p><tt> -domain foo.bar.edu -</tt><p> - into your <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?resolv.conf" - name="/etc/resolv.conf">. However, make sure - that the search order does not go beyond the ``boundary - between local and public administration'', as RFC 1535 - calls it. - - </sect1> - - <sect1> - <heading>``Permission denied'' for all networking operations.</heading> - <p> - If you have compiled your kernel with the <tt/IPFIREWALL/ - option, you need to be aware that the default policy as of - 2.1.7R (this actually changed during 2.1-STABLE development) - is to deny all packets that are not explicitly allowed. - - <p> - If you had unintentionally misconfigured your system for - firewalling, you can restore network operability by typing - the following while logged in as root: + <p>Here is a list compiled by <url url="mailto:gfoster@driver.nsta.org" + name="Glen Foster">: - <verb> - ipfw add 65534 allow all from any to any - </verb> + <verb> + Vendor Model + ---------------------------------------------- + ASUS PCI-L101-TB + Accton ENI1203 + Cogent EM960PCI + Compex ENET32-PCI + D-Link DE-530 + DEC DE435 + Danpex EN-9400P3 + JCIS Condor JC1260 + Linksys EtherPCI + Mylex LNP101 + SMC EtherPower 10/100 (Model 9332) + SMC EtherPower (Model 8432) + TopWare TE-3500P + Zynx ZX342 + </verb> - For further information on configuring a FreeBSD firewall, - see the <url url="../handbook/handbook.html" name="FreeBSD Handbook."> + <sect1> + <heading>Why do I have to use the FQDN for hosts on my site?</heading> + + <p>You will probably find that the host is actually in a different + domain; for example, if you are in foo.bar.edu and you wish to reach + a host called ``mumble'' in the bar.edu domain, you will have to + refer to it by the fully-qualified domain name, ``mumble.bar.edu'', + instead of just ``mumble''. + + <p>Traditionally, this was allowed by BSD BIND resolvers. However + the current version of <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?named" name="bind"> that ships + with FreeBSD no longer provides default abbreviations for non-fully + qualified domain names other than the domain you are in. + So an unqualified host <tt>mumble</tt> must either be found + as <tt>mumble.foo.bar.edu</tt>, or it will be searched for + in the root domain. + + <p>This is different from the previous behavior, where the + search continued across <tt>mumble.bar.edu</tt>, and + <tt>mumble.edu</tt>. Have a look at RFC 1535 for why this + was considered bad practice, or even a security hole. + + <p>As a good workaround, you can place the line - </sect1> + <verb> + search foo.bar.edu bar.edu + </verb> - <sect> - <heading>Serial Communications</heading> - <p> - This section answers common questions about serial communications - with FreeBSD. - - <sect1> - <heading>How do I tell if FreeBSD found my serial ports?</heading> - <p> - As the FreeBSD kernel boots, it will probe for the serial ports - in your system for which the kernel was configured. You can - either watch your system closely for the messages it prints or - run the command - <verb> - dmesg | grep sio - </verb> - after your system's up and running. - - Here's some example output from the above command: - <verb> - sio0 at 0x3f8-0x3ff irq 4 on isa - sio0: type 16550A - sio1 at 0x2f8-0x2ff irq 3 on isa - sio1: type 16550A - </verb> - - This shows two serial ports. The first is on irq 4, is using - port address <tt/0x3f8/, and has a 16550A-type UART chip. The - second uses the same kind of chip but is on irq 3 and is at port - address <tt/0x2f8/. Internal modem cards are treated just like - serial ports---except that they always have a modem ``attached'' - to the port. - - The <tt/GENERIC/ kernel includes support for two serial ports - using the same irq and port address settings in the above - example. If these settings aren't right for your system, or if - you've added modem cards or have more serial ports than your - kernel is configured for, just reconfigure your kernel. See - section <ref id="make-kernel" name="about building a kernel"> for - more details. - - <sect1> - <heading>How do I tell if FreeBSD found my modem cards?</heading> - <p> - Please refer to the answer to the previous question. - - <sect1> - <heading>I just upgraded to 2.0.5 and my <tt/tty0X/ are missing!</heading> - <p> - Don't worry, they have been merged with the <tt/ttydX/ devices. - You'll have to change any old configuration files you have, though. - - <sect1> - <heading>How do I access the serial ports on FreeBSD?</heading> - <p> - The third serial port, <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?sio" - name="sio2"> (known as COM3 in DOS), is on - <tt>/dev/cuaa2</tt> for dial-out devices, and on - <tt>/dev/ttyd2</tt> for dial-in devices. What's the difference - between these two classes of devices? - - You use <tt/ttydX/ for dial-ins. When opening - <tt>/dev/ttydX</tt> in blocking mode, a process will wait for the - corresponding <tt/cuaaX/ device to become inactive, and then wait - for the carrier detect line to go active. When you open the - <tt/cuaaX/ device, it makes sure the serial port isn't already in - use by the <tt/ttydX/ device. If the port's available, it - ``steals'' it from the <tt/ttydX/ device. Also, the <tt/cuaXX/ - device doesn't care about carrier detect. With this scheme and - an auto-answer modem, you can have remote users log in and you - can still dialout with the same modem and the system will take - care of all the conflicts. - - <sect1> - <heading>How do I enable support for a multiport serial card?</heading> - <p> - Again, the section on kernel configuration provides information - about configuring your kernel. For a multiport serial card, - place an <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?sio" - name="sio"> line for each serial port on the card in the - kernel configuration file. But place the irq and vector - specifiers on only one of the entries. All of the ports on the - card should share one irq. For consistency, use the last serial - port to specify the irq. Also, specify the - <tt/COM_MULTIPORT/ option. - - The following example is for an AST 4-port serial card on irq 7: - <verb> - options "COM_MULTIPORT" - device sio4 at isa? port 0x2a0 tty flags 0x781 - device sio5 at isa? port 0x2a8 tty flags 0x781 - device sio6 at isa? port 0x2b0 tty flags 0x781 - device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr - </verb> - The flags indicate that the master port has minor number 7 - (<tt/0x700/), diagnostics enabled during probe (<tt/0x080/), and - all the ports share an irq (<tt/0x001/). - - <sect1> - <heading>Can FreeBSD handle multiport serial cards sharing irqs?</heading> - <p> - Not yet. You'll have to use a different irq for each card. - - <sect1> - <heading>How can I set the default serial parameters for a port?</heading> - <p> - The <tt/ttydX/ (or <tt/cuaaX/) device is the regular device - you'll want to open for your applications. When a process opens - the device, it'll have a default set of terminal I/O settings. - You can see these settings with the command - <verb> - stty -a -f /dev/ttyd1 - </verb> - - When you change the settings to this device, the settings are in - effect until the device is closed. When it's reopened, it goes - back to the default set. To make changes to the default set, you - can open and adjust the settings of the ``initial state'' device. - For example, to turn on <tt/CLOCAL/ mode, 8 bits, and - <tt>XON/XOFF</tt> flow control by default for ttyd5, do: - <verb> - stty -f /dev/ttyid5 clocal cs8 ixon ixoff - </verb> - - A good place to do this is in <tt>/etc/rc.serial</tt>. Now, an - application will have these settings by default when it opens - <tt/ttyd5/. It can still change these settings to its liking, - though. - - You can also prevent certain settings from being changed by an - application by making adjustments to the ``lock state'' device. - For example, to lock the speed of <tt/ttyd5/ to 57600 bps, do - <verb> - stty -f /dev/ttyld5 57600 - </verb> - - Now, an application that opens <tt/ttyd5/ and tries to change the - speed of the port will be stuck with 57600 bps. - - Naturally, you should make the initial state and lock state - devices writable only by <tt/root/. The <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV" - name="MAKEDEV"> script does - <bf/NOT/ do this when it creates the device entries. - - <sect1> - <heading>How can I enable dialup logins on my modem?</heading> - <p> - So you want to become an Internet service provider, eh? First, - you'll need one or more modems that can auto-answer. Your modem - will need to assert carrier-detect when it detects a carrier and - not assert it all the time. It will need to hang up the phone - and reset itself when the data terminal ready (<tt/DTR/) line - goes from on to off. It should probably use <tt>RTS/CTS</tt> - flow control or no local flow control at all. Finally, it must - use a constant speed between the computer and itself, but (to be - nice to your callers) it should negotiate a speed between itself - and the remote modem. - - For many Hayes command-set--compatible modems, this command will - make these settings and store them in nonvolatile memory: - <verb> - AT &C1 &D3 &K3 &Q6 S0=1 &W - </verb> - See the section <ref id="direct-at" name="on sending AT - commands"> below for information on how to make these settings - without resorting to an MS-DOS terminal program. - - Next, make an entry in <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ttys" - name="/etc/ttys"> for the modem. This - file lists all the ports on which the operating system will await - logins. Add a line that looks something like this: - <verb> - ttyd1 "/usr/libexec/getty std.57600" dialup on insecure - </verb> - This line indicates that the second serial port - (<tt>/dev/ttyd1</tt>) has a modem connected running at 57600 bps - and no parity (<tt/std.57600/, which comes from the file - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?gettytab" - name="/etc/gettytab">). The terminal type for this port is - ``dialup.'' The port is ``on'' and is ``insecure''---meaning - root logins on the port aren't allowed. For dialin ports like - this one, use the <tt/ttydX/ entry. - - It's common practice to use ``dialup'' as the terminal type. - Many users set up in their .profile or .login files a prompt for - the actual terminal type if the starting type is dialup. The - example shows the port as insecure. To become root on this port, - you have to login as a regular user, then <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?su" - name="su">'' to - <tt/root/. If you use ``secure'' then <tt/root/ can login in - directly. - - After making modifications to <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ttys" - name="/etc/ttys">, you need to - send a hangup or <tt/HUP/ signal to the <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?init" - name="init"> process: - <verb> - kill -1 1 - </verb> - This forces the init process to reread <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ttys" - name="/etc/ttys">. The - init process will then start getty processes on all ``on'' ports. - You can find out if logins are available for your port by typing - <verb> - ps -ax | grep '[t]tyd1' - </verb> - - You should see something like: - <verb> - 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 - </verb> - - <sect1> - <heading>How can I connect a dumb terminal to my FreeBSD box?</heading> - <p> - If you're using another computer as a terminal into your FreeBSD - system, get a null modem cable to go between the two serial - ports. If you're using an actual terminal, see its accompanying - instructions. - - Then, modify <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?ttys" - name="/etc/ttys">, like above. For example, if - you're hooking up a WYSE-50 terminal to the fifth serial port, - use an entry like this: - <verb> - ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure - </verb> - This example shows that the port on <tt>/dev/ttyd4</tt> has a - wyse50 terminal connected at 38400 bps with no parity - (<tt/std.38400/ from <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?gettytab" - name="/etc/gettytab">) and <tt/root/ logins - are allowed (secure). - - <sect1> - <heading>Why can't I run <tt/tip/ or <tt/cu/?</heading> - <p> - On your system, the programs <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> and <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?cu" - name="cu"> are probably - executable only by <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?uucp" - name="uucp"> and group <tt/dialer/. You can use - the group <tt/dialer/ to control who has access to your modem or - remote systems. Just add yourself to group dialer. - - Alternatively, you can let everyone on your system run <tt/tip/ - and <tt/cu/ by typing: - <verb> - chmod 4511 /usr/bin/cu - chmod 4511 /usr/bin/tip - </verb> - - <sect1> - <heading>My stock Hayes modem isn't supported---what can I do?</heading> - <p> - Actually, the man page for <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> is out of date. There is a - generic Hayes dialer already built in. Just use - ``<tt/at=hayes/'' in your <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?remote" - name="/etc/remote"> file. - - The Hayes driver isn't smart enough to recognize some of the - advanced features of newer modems---messages like <tt/BUSY/, - <tt/NO DIALTONE/, or <tt/CONNECT 115200/ will just confuse it. - You should turn those messages off when you use <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> (using - <tt/ATX0&W/). - - Also, the dial timeout for <tt/tip/ is 60 seconds. Your modem - should use something less, or else tip will think there's a - communication problem. Try <tt/ATS7=45&W/. - - Actually, as shipped <tt/tip/ doesn't yet support it fully. The - solution is to edit the file <tt/tipconf.h/ in the directory - <tt>/usr/src/usr.bin/tip/tip</tt> Obviously you need the source - distribution to do this. - - Edit the line ``<tt/#define HAYES 0/'' to ``<tt/#define HAYES - 1/''. Then ``<tt/make/'' and ``<tt/make install/''. Everything - works nicely after that. - - <sect1> - <heading>How am I expected to enter these AT commands?<label id="direct-at"></heading> - <p> - Make what's called a ``<tt/direct/'' entry in your - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" - name="/etc/remote"> file. For example, if your modem's hooked - up to the first serial port, <tt>/dev/cuaa0</tt>, then put in the - following line: - <verb> - cuaa0:dv=/dev/cuaa0:br#19200:pa=none - </verb> - Use the highest bps rate your modem supports in the br - capability. Then, type <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip cuaa0"> and you'll be - connected to your modem. - - If there is no <tt>/dev/cuaa0</tt> on your system, do this: - <verb> - cd /dev - MAKEDEV cuaa0 - </verb> - <p> - Or use cu as root with the following command: - <verb> - cu -l``line'' -s``speed'' - </verb> - with line being the serial port (e.g.<tt>/dev/cuaa0</tt>) - and speed being the speed (e.g.<tt>57600</tt>). - When you are done entering the AT commands hit <tt>~.</tt> to exit. - - <sect1> - <heading>The <tt/@/ sign for the pn capability doesn't work!</heading> - <p> - The <tt/@/ sign in the phone number capability tells tip to look in - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?phones(5)" - name="/etc/phones"> for a phone number. But the <tt/@/ sign is - also a special character in capability files like - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" - name="/etc/remote">. Escape it with a backslash: - <verb> - pn=\@ - </verb> - - <sect1> - <heading>How can I dial a phone number on the command line?</heading> - <p> - Put what's called a ``<tt/generic/'' entry in your - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" - name="/etc/remote"> file. For example: - <verb> - tip115200|Dial any phone number at 115200 bps:\ - :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: - tip57600|Dial any phone number at 57600 bps:\ - :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: - </verb> - - Then you can things like ``<tt/tip -115200 5551234/''. If you - prefer <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cu" - name="cu"> over <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip">, use a generic cu entry: - <verb> - cu115200|Use cu to dial any number at 115200bps:\ - :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: - </verb> - and type ``<tt/cu 5551234 -s 115200/''. - - <sect1> - <heading>Do I have to type in the bps rate every time I do that?</heading> - <p> - Put in an entry for <tt/tip1200/ or <tt/cu1200/, but go ahead and - use whatever bps rate is appropriate with the br - capability. <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> thinks a good default is 1200 bps which is - why it looks for a ``<tt/tip1200/'' entry. You don't have to use - 1200 bps, though. - - <sect1> - <heading>I access a number of hosts through a terminal server.</heading> - <p> - Rather than waiting until you're connected and typing - ``<tt/CONNECT <host>/'' each time, use tip's <tt/cm/ - capability. For example, these entries in - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" - name="/etc/remote">: - <verb> - pain|pain.deep13.com|Forrester's machine:\ - :cm=CONNECT pain\n:tc=deep13: - muffin|muffin.deep13.com|Frank's machine:\ - :cm=CONNECT muffin\n:tc=deep13: - deep13:Gizmonics Institute terminal server:\ - :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234: - </verb> - - will let you type ``<tt/tip pain/'' or ``<tt/tip muffin/'' to - connect to the hosts pain or muffin; and ``<tt/tip deep13/'' to - get to the terminal server. - - <sect1> - <heading>Can tip try more than one line for each site?</heading> - <p> - This is often a problem where a university has several modem lines - and several thousand students trying to use them... - <p> - Make an entry for your university in <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?remote" - name="/etc/remote"> - and use <tt>\@</tt> for the <tt/pn/ capability: - <verb> - big-university:\ - :pn=\@:tc=dialout - dialout:\ - :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: - </verb> - - Then, list the phone numbers for the university in - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?phones" - name="/etc/phones">: - <verb> - big-university 5551111 - big-university 5551112 - big-university 5551113 - big-university 5551114 - </verb> - - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> will try each one in the listed order, then give up. If - you want to keep retrying, run <tt/tip/ in a while loop. - - <sect1> - <heading>Why do I have to hit CTRL+P twice to send CTRL+P once?</heading> - <p> - CTRL+P is the default ``force'' character, used to tell - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> - that the next character is literal data. You can set the force - character to any other character with the <tt/~s/ escape, which - means ``set a variable.'' - - Type ``<tt/~sforce=<single-char>/'' followed by a newline. - <tt/<single-char>/ is any single character. If you leave - out <tt/<single-char>/, then the force character is the nul - character, which you can get by typing CTRL+2 or CTRL+SPACE. A - pretty good value for <tt/<single-char>/ is SHIFT+CTRL+6, - which I've seen only used on some terminal servers. - - You can have the force character be whatever you want by - specifying the following in your <tt>$HOME/.tiprc</tt> - file: - <verb> - force=<single-char> - </verb> - - <sect1> - <heading>Suddenly everything I type is in UPPER CASE??</heading> - <p> - You must've pressed CTRL+A, <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?tip" - name="tip"> ``raise character,'' - specially designed for people with broken caps-lock keys. Use - <tt/~s/ as above and set the variable ``raisechar'' to something - reasonable. In fact, you can set it to the same as the force - character, if you never expect to use either of these features. - - Here's a sample .tiprc file perfect for Emacs users who need to - type CTRL+2 and CTRL+A a lot: - <verb> - force=^^ - raisechar=^^ - </verb> - The ^^ is SHIFT+CTRL+6. - - <sect1> - <heading>How can I do file transfers with <tt/tip/?</heading> - <p> - If you're talking to another UNIX system, you can send and - receive files with <tt/~p/ (put) and <tt/~t/ (take). These - commands run <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?cat" - name="cat"> and <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?echo" - name="echo"> on the remote system - to accept and send files. The syntax is: - <verb> - ~p <local-file> [<remote-file>] - ~t <remote-file> [<local-file>] - </verb> - - There's no error checking, so you probably should use another - protocol, like zmodem. - - <sect1> - <heading>How can I run zmodem with <tt/tip/?</heading> - <p> - First, install one of the zmodem programs from the ports - collection (such as one of the two from the comms category, - <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^lrzsz" - name="lrzsz"> and - <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^rzsz" - name="rzsz">). - - To receive files, start the sending program on the remote end. - Then, press enter and type ``<tt/~C rz/'' (or ``<tt/~C lrz/'' if - you installed lrzsz) to begin receiving them locally. - - To send files, start the receiving program on the remote end. - Then, press enter and type ``<tt/~C sz <files>/'' (or - ``<tt/~C lsz <files>/'') to send them to the - remote system. - - </sect> - - <sect> - <heading>Miscellaneous Questions</heading> - <p> + <p>instead of the previous - <sect1> - <heading>Why does FreeBSD consume far more swap space than Linux?</heading> + <verb> + domain foo.bar.edu + </verb> - <p> - It doesn't. You might mean ``why does my swap seem full?''. If - that is what you really meant, it's because putting stuff in swap - rather than discarding it makes it faster to recover than if the - pager had to go through the file system to pull in clean - (unmodified) blocks from an executable. + <p>into your <htmlurl url="http://www.freebsd.org/cgi/man.cgi?resolv.conf" + name="/etc/resolv.conf"> file. However, make sure that the search order + does not go beyond the ``boundary between local and public + administration'', as RFC 1535 calls it. - The actual amount of dirty pages that you can have in core at - once is not reduced; the clean pages are displaced as necessary. + <sect1> + <heading>``Permission denied'' for all networking operations.</heading> - <sect1> - <heading>What is FreeBSD's a.out executable format, and why not ELF?</heading> - <p>To understand why FreeBSD uses the <tt>a.out</tt> format, you must - first know a little about the 3 currently "dominant" executable - formats for UNIX: + <p>If you have compiled your kernel with the <tt/IPFIREWALL/ + option, you need to be aware that the default policy as of + 2.1.7R (this actually changed during 2.1-STABLE development) + is to deny all packets that are not explicitly allowed. - <itemize> + <p>If you had unintentionally misconfigured your system for + firewalling, you can restore network operability by typing + the following while logged in as root: + + <verb> + ipfw add 65534 allow all from any to any + </verb> + + <p>For further information on configuring a FreeBSD firewall, + see the <url url="../handbook/firewalls.html" name="Handbook section">. + + <sect> + <heading>Serial Communications</heading> + + <p>This section answers common questions about serial communications + with FreeBSD. PPP and SLIP are covered in the <ref id="networking" + name="Networking"> section. + + <sect1> + <heading>How do I tell if FreeBSD found my serial ports?</heading> + + <p>As the FreeBSD kernel boots, it will probe for the serial ports + in your system for which the kernel was configured. You can + either watch your system closely for the messages it prints or + run the command + + <verb> + dmesg | grep sio + </verb> + + <p>after your system's up and running. + + <p>Here's some example output from the above command: + + <verb> + sio0 at 0x3f8-0x3ff irq 4 on isa + sio0: type 16550A + sio1 at 0x2f8-0x2ff irq 3 on isa + sio1: type 16550A + </verb> + + <p>This shows two serial ports. The first is on irq 4, is using + port address <tt/0x3f8/, and has a 16550A-type UART chip. The + second uses the same kind of chip but is on irq 3 and is at port + address <tt/0x2f8/. Internal modem cards are treated just like + serial ports---except that they always have a modem ``attached'' + to the port. + + <p>The <tt/GENERIC/ kernel includes support for two serial ports + using the same irq and port address settings in the above + example. If these settings aren't right for your system, or if + you've added modem cards or have more serial ports than your + kernel is configured for, just reconfigure your kernel. See + section <ref id="make-kernel" name="about building a kernel"> for + more details. + + <sect1> + <heading>How do I tell if FreeBSD found my modem cards?</heading> + + <p>Refer to the answer to the previous question. + + <sect1> + <heading>I just upgraded to 2.0.5 and my <tt/tty0X/ are missing!</heading> + + <p>Don't worry, they have been merged with the <tt/ttydX/ devices. + You'll have to change any old configuration files you have, though. + + <sect1> + <heading>How do I access the serial ports on FreeBSD?</heading> + + <p>The third serial port, <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?sio" name="sio2"> (known as + COM3 in DOS), is on <tt>/dev/cuaa2</tt> for dial-out devices, and on + <tt>/dev/ttyd2</tt> for dial-in devices. What's the difference + between these two classes of devices? + + <p>You use <tt/ttydX/ for dial-ins. When opening <tt>/dev/ttydX</tt> + in blocking mode, a process will wait for the corresponding + <tt/cuaaX/ device to become inactive, and then wait + for the carrier detect line to go active. When you open the + <tt/cuaaX/ device, it makes sure the serial port isn't already in + use by the <tt/ttydX/ device. If the port's available, it + ``steals'' it from the <tt/ttydX/ device. Also, the <tt/cuaXX/ + device doesn't care about carrier detect. With this scheme and + an auto-answer modem, you can have remote users log in and you + can still dialout with the same modem and the system will take + care of all the conflicts. + + <sect1> + <heading>How do I enable support for a multiport serial card?</heading> + + <p>Again, the section on kernel configuration provides information + about configuring your kernel. For a multiport serial card, + place an <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio" + name="sio"> line for each serial port on the card in the + kernel configuration file. But place the irq and vector + specifiers on only one of the entries. All of the ports on the + card should share one irq. For consistency, use the last serial + port to specify the irq. Also, specify the <tt/COM_MULTIPORT/ + option. + + <p>The following example is for an AST 4-port serial card on irq 7: + + <verb> + options "COM_MULTIPORT" + device sio4 at isa? port 0x2a0 tty flags 0x781 + device sio5 at isa? port 0x2a8 tty flags 0x781 + device sio6 at isa? port 0x2b0 tty flags 0x781 + device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr + </verb> + + <p>The flags indicate that the master port has minor number 7 + (<tt/0x700/), diagnostics enabled during probe (<tt/0x080/), and + all the ports share an irq (<tt/0x001/). + + <sect1> + <heading>Can FreeBSD handle multiport serial cards sharing irqs?</heading> + + <p>Not yet. You'll have to use a different irq for each card. + + <sect1> + <heading>How can I set the default serial parameters for a port?</heading> + + <p>The <tt/ttydX/ (or <tt/cuaaX/) device is the regular device + you'll want to open for your applications. When a process opens + the device, it'll have a default set of terminal I/O settings. + You can see these settings with the command + + <verb> + stty -a -f /dev/ttyd1 + </verb> + + <p>When you change the settings to this device, the settings are in + effect until the device is closed. When it's reopened, it goes + back to the default set. To make changes to the default set, you + can open and adjust the settings of the ``initial state'' device. + For example, to turn on <tt/CLOCAL/ mode, 8 bits, and + <tt>XON/XOFF</tt> flow control by default for ttyd5, do: + + <verb> + stty -f /dev/ttyid5 clocal cs8 ixon ixoff + </verb> + + <p>A good place to do this is in <tt>/etc/rc.serial</tt>. Now, an + application will have these settings by default when it opens + <tt/ttyd5/. It can still change these settings to its liking, + though. + + <p>You can also prevent certain settings from being changed by an + application by making adjustments to the ``lock state'' device. + For example, to lock the speed of <tt/ttyd5/ to 57600 bps, do + + <verb> + stty -f /dev/ttyld5 57600 + </verb> + + <p>Now, an application that opens <tt/ttyd5/ and tries to change the + speed of the port will be stuck with 57600 bps. + + <p>Naturally, you should make the initial state and lock state + devices writable only by <tt/root/. The <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV" + name="MAKEDEV"> script does <bf/NOT/ do this when it creates the + device entries. + + <sect1> + <heading>How can I enable dialup logins on my modem?</heading> + + <p>So you want to become an Internet service provider, eh? First, + you'll need one or more modems that can auto-answer. Your modem + will need to assert carrier-detect when it detects a carrier and + not assert it all the time. It will need to hang up the phone + and reset itself when the data terminal ready (<tt/DTR/) line + goes from on to off. It should probably use <tt>RTS/CTS</tt> + flow control or no local flow control at all. Finally, it must + use a constant speed between the computer and itself, but (to be + nice to your callers) it should negotiate a speed between itself + and the remote modem. + + <p>For many Hayes command-set--compatible modems, this command will + make these settings and store them in nonvolatile memory: + + <verb> + AT &C1 &D3 &K3 &Q6 S0=1 &W + </verb> + + <p>See the section <ref id="direct-at" name="on sending AT + commands"> below for information on how to make these settings + without resorting to an MS-DOS terminal program. + + <p>Next, make an entry in <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> for the + modem. This file lists all the ports on which the operating system will + await logins. Add a line that looks something like this: + + <verb> + ttyd1 "/usr/libexec/getty std.57600" dialup on insecure + </verb> + + <p>This line indicates that the second serial port + (<tt>/dev/ttyd1</tt>) has a modem connected running at 57600 bps + and no parity (<tt/std.57600/, which comes from the file + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?gettytab" + name="/etc/gettytab">). The terminal type for this port is + ``dialup.'' The port is ``on'' and is ``insecure''---meaning + root logins on the port aren't allowed. For dialin ports like + this one, use the <tt/ttydX/ entry. + + <p>It's common practice to use ``dialup'' as the terminal type. + Many users set up in their .profile or .login files a prompt for + the actual terminal type if the starting type is dialup. The + example shows the port as insecure. To become root on this port, + you have to login as a regular user, then <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?su" name="su">'' to + <tt/root/. If you use ``secure'' then <tt/root/ can login in + directly. + + <p>After making modifications to <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys">, you + need to send a hangup or <tt/HUP/ signal to the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?init" name="init"> process: + + <verb> + kill -HUP 1 + </verb> + + <p>This forces the init process to reread <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys">. The + init process will then start getty processes on all ``on'' ports. + You can find out if logins are available for your port by typing + + <verb> + ps -ax | grep '[t]tyd1' + </verb> + + <p>You should see something like: + + <verb> + 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 + </verb> + + <sect1> + <heading>How can I connect a dumb terminal to my FreeBSD box?</heading> + + <p>If you're using another computer as a terminal into your FreeBSD + system, get a null modem cable to go between the two serial + ports. If you're using an actual terminal, see its accompanying + instructions. + + <p>Then, modify <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys" + name="/etc/ttys">, like above. For example, if you're hooking up a + WYSE-50 terminal to the fifth serial port, use an entry like this: + + <verb> + ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure + </verb> + + <p>This example shows that the port on <tt>/dev/ttyd4</tt> has a + wyse50 terminal connected at 38400 bps with no parity + (<tt/std.38400/ from <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?gettytab" + name="/etc/gettytab">) and <tt/root/ logins are allowed (secure). + + <sect1> + <heading>Why can't I run <tt/tip/ or <tt/cu/?</heading> + + <p>On your system, the programs <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> and <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?cu" name="cu"> are probably + executable only by <htmlurl url="http://www.freebsd.org/cgi/man.cgi?uucp" + name="uucp"> and group <tt/dialer/. You can use the group <tt/dialer/ + to control who has access to your modem or remote systems. Just add + yourself to group dialer. + + <p>Alternatively, you can let everyone on your system run <tt/tip/ + and <tt/cu/ by typing: + + <verb> + # chmod 4511 /usr/bin/cu + # chmod 4511 /usr/bin/tip + </verb> + + <sect1> + <heading>My stock Hayes modem isn't supported---what can I do?</heading> + + <p>Actually, the man page for <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> is out of + date. There is a generic Hayes dialer already built in. Just use + ``<tt/at=hayes/'' in your <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote"> file. + + <p>The Hayes driver isn't smart enough to recognize some of the + advanced features of newer modems---messages like <tt/BUSY/, + <tt/NO DIALTONE/, or <tt/CONNECT 115200/ will just confuse it. + You should turn those messages off when you use <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> (using + <tt/ATX0&W/). + + <p>Also, the dial timeout for <tt/tip/ is 60 seconds. Your modem + should use something less, or else tip will think there's a + communication problem. Try <tt/ATS7=45&W/. + + <p>Actually, as shipped <tt/tip/ doesn't yet support it fully. The + solution is to edit the file <tt/tipconf.h/ in the directory + <tt>/usr/src/usr.bin/tip/tip</tt> Obviously you need the source + distribution to do this. + + <p>Edit the line ``<tt/#define HAYES 0/'' to ``<tt/#define HAYES + 1/''. Then ``<tt/make/'' and ``<tt/make install/''. Everything + works nicely after that. + + <sect1> + <heading> + How am I expected to enter these AT commands?<label id="direct-at"> + </heading> + + <p>Make what's called a ``<tt/direct/'' entry in your + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" + name="/etc/remote"> file. For example, if your modem's hooked + up to the first serial port, <tt>/dev/cuaa0</tt>, then put in the + following line: + + <verb> + cuaa0:dv=/dev/cuaa0:br#19200:pa=none + </verb> + + <p>Use the highest bps rate your modem supports in the br + capability. Then, type <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip cuaa0"> and + you'll be connected to your modem. + + <p>If there is no <tt>/dev/cuaa0</tt> on your system, do this: + + <verb> + # cd /dev + # ./MAKEDEV cuaa0 + </verb> + + <p>Or use cu as root with the following command: + + <verb> + # cu -l``line'' -s``speed'' + </verb> + + <p>with line being the serial port (e.g.<tt>/dev/cuaa0</tt>) + and speed being the speed (e.g.<tt>57600</tt>). When you are done + entering the AT commands hit <tt>~.</tt> to exit. + + <sect1> + <heading>The <tt/@/ sign for the pn capability doesn't work!</heading> + + <p>The <tt/@/ sign in the phone number capability tells tip to look in + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?phones(5)" + name="/etc/phones"> for a phone number. But the <tt/@/ sign is + also a special character in capability files like + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" + name="/etc/remote">. Escape it with a backslash: + + <verb> + pn=\@ + </verb> + + <sect1> + <heading>How can I dial a phone number on the command line?</heading> + + <p>Put what's called a ``<tt/generic/'' entry in your + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" + name="/etc/remote"> file. For example: + + <verb> + tip115200|Dial any phone number at 115200 bps:\ + :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: + tip57600|Dial any phone number at 57600 bps:\ + :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: + </verb> + + <p>Then you can things like ``<tt/tip -115200 5551234/''. If you + prefer <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cu" + name="cu"> over <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip">, use a + generic cu entry: + + <verb> + cu115200|Use cu to dial any number at 115200bps:\ + :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: + </verb> + + <p>and type ``<tt/cu 5551234 -s 115200/''. + + <sect1> + <heading>Do I have to type in the bps rate every time I do that?</heading> + + <p>Put in an entry for <tt/tip1200/ or <tt/cu1200/, but go ahead and + use whatever bps rate is appropriate with the br capability. <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> thinks a good + default is 1200 bps which is why it looks for a ``<tt/tip1200/'' entry. + You don't have to use 1200 bps, though. + + <sect1> + <heading>I access a number of hosts through a terminal server.</heading> + + <p>Rather than waiting until you're connected and typing + ``<tt/CONNECT <host>/'' each time, use tip's <tt/cm/ + capability. For example, these entries in + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote" + name="/etc/remote">: + + <verb> + pain|pain.deep13.com|Forrester's machine:\ + :cm=CONNECT pain\n:tc=deep13: + muffin|muffin.deep13.com|Frank's machine:\ + :cm=CONNECT muffin\n:tc=deep13: + deep13:Gizmonics Institute terminal server:\ + :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234: + </verb> + + <p>will let you type ``<tt/tip pain/'' or ``<tt/tip muffin/'' to + connect to the hosts pain or muffin; and ``<tt/tip deep13/'' to + get to the terminal server. + + <sect1> + <heading>Can tip try more than one line for each site?</heading> + + <p>This is often a problem where a university has several modem lines + and several thousand students trying to use them... + + <p>Make an entry for your university in <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote"> + and use <tt>\@</tt> for the <tt/pn/ capability: + + <verb> + big-university:\ + :pn=\@:tc=dialout + dialout:\ + :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: + </verb> + + <p>Then, list the phone numbers for the university in + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?phones" + name="/etc/phones">: + + <verb> + big-university 5551111 + big-university 5551112 + big-university 5551113 + big-university 5551114 + </verb> + + <p><htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip" + name="tip"> will try each one in the listed order, then give up. If + you want to keep retrying, run <tt/tip/ in a while loop. + + <sect1> + <heading>Why do I have to hit CTRL+P twice to send CTRL+P once?</heading> + + <p>CTRL+P is the default ``force'' character, used to tell + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> + that the next character is literal data. You can set the force + character to any other character with the <tt/~s/ escape, which + means ``set a variable.'' + + <p>Type ``<tt/~sforce=<single-char>/'' followed by a newline. + <tt/<single-char>/ is any single character. If you leave + out <tt/<single-char>/, then the force character is the nul + character, which you can get by typing CTRL+2 or CTRL+SPACE. A + pretty good value for <tt/<single-char>/ is SHIFT+CTRL+6, + which I've seen only used on some terminal servers. + + <p>You can have the force character be whatever you want by + specifying the following in your <tt>$HOME/.tiprc</tt> + file: + + <verb> + force=<single-char> + </verb> + + <sect1> + <heading>Suddenly everything I type is in UPPER CASE??</heading> + + <p>You must've pressed CTRL+A, <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> ``raise + character,'' specially designed for people with broken caps-lock keys. + Use <tt/~s/ as above and set the variable ``raisechar'' to something + reasonable. In fact, you can set it to the same as the force + character, if you never expect to use either of these features. + + <p>Here's a sample .tiprc file perfect for Emacs users who need to + type CTRL+2 and CTRL+A a lot: + + <verb> + force=^^ + raisechar=^^ + </verb> + + <p>The ^^ is SHIFT+CTRL+6. + + <sect1> + <heading>How can I do file transfers with <tt/tip/?</heading> + + <p>If you're talking to another UNIX system, you can send and + receive files with <tt/~p/ (put) and <tt/~t/ (take). These + commands run <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cat" + name="cat"> and <htmlurl url="http://www.freebsd.org/cgi/man.cgi?echo" + name="echo"> on the remote system to accept and send files. The syntax + is: + + <verb> + ~p <local-file> [<remote-file>] + ~t <remote-file> [<local-file>] + </verb> + + <p>There's no error checking, so you probably should use another + protocol, like zmodem. + + <sect1> + <heading>How can I run zmodem with <tt/tip/?</heading> + + <p>First, install one of the zmodem programs from the ports + collection (such as one of the two from the comms category, + <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^lrzsz" name="lrzsz"> + and <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^rzsz" + name="rzsz">). + + <p>To receive files, start the sending program on the remote end. + Then, press enter and type ``<tt/~C rz/'' (or ``<tt/~C lrz/'' if + you installed lrzsz) to begin receiving them locally. + + <p>To send files, start the receiving program on the remote end. + Then, press enter and type ``<tt/~C sz <files>/'' (or + ``<tt/~C lsz <files>/'') to send them to the + remote system. + + <sect> + <heading>Miscellaneous Questions</heading> + + <sect1> + <heading> + Why does FreeBSD consume far more swap space than Linux? + </heading> + + <p>It doesn't. You might mean ``why does my swap seem full?''. If + that is what you really meant, it's because putting stuff in swap + rather than discarding it makes it faster to recover than if the + pager had to go through the file system to pull in clean + (unmodified) blocks from an executable. + + <p>The actual amount of dirty pages that you can have in core at + once is not reduced; the clean pages are displaced as necessary. + + <sect1> + <heading> + What is FreeBSD's a.out executable format, and why not ELF? + </heading> + + <p>To understand why FreeBSD uses the <tt>a.out</tt> format, you must + first know a little about the 3 currently "dominant" executable + formats for UNIX: + + <itemize> <item><htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" name="a.out"> + <p>The oldest and `classic' unix object format. It uses a short and compact header with a magic number at the beginning - that's often used to characterize the format (see the + that's often used to characterize the format (see <htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" name="a.out(5)"> for more details). It contains three loaded segments: .text, .data, and .bss plus a symbol table and a string table. - </item> - <item><bf>COFF</bf> <p>The SVR3 object format. The header now comprises a section @@ -4509,465 +4591,458 @@ domain foo.bar.edu commercial SYSV world (which has at least three ABIs: SVR4, Solaris, SCO) does it hold true. - FreeBSD tries to work around this problem somewhat by + <p>FreeBSD tries to work around this problem somewhat by providing a utility for <em>branding</em> a known <tt/ELF/ executable with information about the ABI it's compliant with. See the man page for <htmlurl url="http://www.freebsd.org/cgi/man.cgi?brandelf" - name="brandelf"> for more information.</item> - </itemize> + name="brandelf"> for more information. + </itemize> - <p>FreeBSD comes from the "classic" camp and uses the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" - name="a.out"> format, a technology tried and proven through - many generations of BSD releases. Though it has also been possible - for some time to build and run native <tt/ELF/ binaries (and - kernels) on a FreeBSD system, no official "push" to switch to - ELF as the default format has, as yet, been made. Why? Well, - when the Linux camp made their painful transition to <tt/ELF/, it - was not so much to flee the <tt/a.out/ executable format - as it was their inflexible jump-table based shared library - mechanism, which made the construction of shared libraries - very difficult for vendors and developers alike. Since the <tt/ELF/ - tools available offered a solution to the shared library - problem and were generally seen as "the way forward" anyway, the - migration cost was accepted as necessary and the transition - made. - - <p>In FreeBSD's case, it's not quite so simple since our shared - library mechanism is based more closely on Sun's - <tt>SunOS</tt>-style shared library mechanism and, as such, is very - easy to use. The only thing we actually lack with <tt/a.out/ - which <tt/ELF/ would give us is cleaner support for C++ constructors - and destructors, among other similarly esoteric things, and it - simply hasn't become much of a problem yet (and there is quite - a bit of C++ code in FreeBSD's source tree). Should that change, - a migration may, at some point, be more seriously contemplated. - </sect1> - - <sect1> - <heading>Why doesn't chmod change the permissions on symlinks?</heading> - <p> - You have to use either ``<tt/-H/'' or ``<tt/-L/'' together with - the ``<tt/-R/'' option to make this work. See the - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod" - name="chmod"> and - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?symlink" - name="symlink"> man pages for more info. - - <bf/WARNING/ the ``<tt/-R/'' option does a <bf/RECURSIVE/ - <tt/chmod/. Be careful about specifying directories or symlinks - to directories to <tt/chmod/. If you want to change the - permissions of a directory referenced by a symlink, use - - <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod" - name="chmod"> without any options and follow the symlink with a - trailing slash (``<tt>/</tt>''). For example, if ``<tt/foo/'' is - a symlink to directory ``<tt/bar/'', and you want to change the - permissions of ``<tt/foo/'' (actually ``<tt/bar/''), you would do - something like: - <verb> - chmod 555 foo/ - </verb> - - With the trailing slash, <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?chmod" - name="chmod"> will follow the symlink, - ``<tt/foo/'', to change the permissions of the directory, - ``<tt/bar/''. - </sect1> - - <sect1> - <heading>Why are login names <bf/still/ resticted to 8 characters</heading> - - <p>You'd think it'd be easy enough to change <bf/UT_NAMESIZE/ and rebuild - the whole world, and everything would just work. Unfortunately there's - scads of applications and utilities (including system tools) that have - hard-coded small numbers (not always "8" or "9", but oddball ones - like "15" and "20") in structures and buffers... and it would break - Sun's NIS clients and no doubt cause other problems in interacting - with other UNIX systems. - </sect1> - - <sect1> - <heading>Can I run DOS binaries under FreeBSD?</heading> - - <p> - Not yet, though BSDI has just donated their <tt/rundos/ DOS emulation - subsystem which we're now working on integrating and enhancing. - Send mail to - <url url="mailto:emulation@freebsd.org" - name="The FreeBSD emulation discussion list"> - if you're interested in joining this effort! - - For now, there is a neat utility called - <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" - name="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 (provided as XFree86 3.1.2). - - <sect1> - <heading>What is this thing called ``<tt/sup/'', and how do I use it?</heading> - - <p> - <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^sup" - name="SUP"> - stands for Software Update Protocol, and was developed by CMU - for keeping their development trees in sync. We used it to keep - remote sites in sync with our central development sources. - - SUP is not bandwidth friendly, and has been retired. The current - recommended method to keep your sources up to date is - <url url="../handbook/cvsup.html" name="Handbook entry on CVSup"> - - <sect1> - <heading>How cool is FreeBSD?</heading> - <p> - Q. Has anyone done any temperature testing while running FreeBSD? - I know Linux runs cooler than dos, but have never seen a mention of - FreeBSD. It seems to run really hot. - <p> - A. No, but we have done numerous taste tests on blindfolded - volunteers who have also had 250 micrograms of LSD-25 - administered beforehand. 35% of the volunteers said that FreeBSD - tasted sort of orange, whereas Linux tasted like purple haze. - Neither group mentioned any particular variances in temperature - that I can remember. We eventually had to throw the results of - this survey out entirely anyway when we found that too many - volunteers were wandering out of the room during the tests, thus - skewing the results. I think most of the volunteers are at Apple - now, working on their new ``scratch and sniff'' GUI. It's a - funny old business we're in! - - Seriously, both FreeBSD and Linux uses the ``<tt/HLT/'' (halt) - instruction when the system is idle thus lowering its energy - consumption and therefore the heat it generates. Also if you - have APM (automatic power management) configured, then FreeBSD - can also put the CPU into a low power mode. - - <sect1> - <heading>Who's scratching in my memory banks??</heading> - <p> - Q. Is there anything "odd" that FreeBSD does when compiling the - kernel which would cause the memory to make a scratchy sound? When - compiling (and for a brief moment after recognizing the floppy drive - upon startup, as well), a strange scratchy sound emanates from what - appears to be the memory banks. - <p> - A. Yes! You'll see frequent references to ``daemons'' in the BSD - documentation, and what most people don't know is that this - refers to genuine, non-corporeal entities that now possess your - computer. The scratchy sound coming from your memory is actually - high-pitched whispering exchanged among the daemons as they best - decide how to deal with various system administration tasks. - - If the noise gets to you, a good ``<tt>fdisk /mbr</tt>'' from DOS - will get rid of them, but don't be surprised if they react - adversely and try to stop you. In fact, if at any point during - the exercise you hear the satanic voice of Bill Gates coming from - the built-in speaker, take off running and don't ever look back! - Freed from the counterbalancing influence of the BSD daemons, the - twin demons of DOS and Windows are often able to re-assert total - control over your machine to the eternal damnation of your soul. - Given a choice, I think I'd prefer to get used to the scratchy - noises, myself! - </sect1> - - - <sect> - <heading>For serious FreeBSD hackers only</heading> - - <sect1> - <heading>What's with all these SNAPshot, RELENG and RELEASE releases?</heading> - - <p> - There are currently three active/semi-active branches in the FreeBSD - <url url="http://www.freebsd.org/cgi/cvsweb.cgi" name="CVS Repository">: - - <itemize> - <item><bf/RELENG_2_1_0/ AKA <bf/2.1-stable/ AKA <bf/"2.1 branch"/</item> - <item><bf/RELENG_2_2/ AKA <bf/2.2-stable/ AKA <bf/"2.2 branch"/</item> - <item><bf/HEAD/ AKA <bf/-current/ AKA <bf/3.0-current/</item> - </itemize> - - <p><bf/HEAD/ is not an actual branch tag, like the other two, it's - simply a symbolic constant for - <em/"the current, non-branched development stream"/ - which we simply refer to as <bf/-current/. - - Right now, <bf/-current/ is the 3.0 development stream and the - <bf/2.2-stable/ branch, <bf/RELENG_2_2/, forked off from - <bf/-current/ in November 1996. - - The <bf/2.1-stable/ branch, <bf/RELENG_2_1_0/,departed -current in - September of 1994. - - <sect1> - <heading>How do I make my own custom release?<label id="custrel"></heading> - <p> - To make a release you need to do three things: First, you need to - be running a kernel with the <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?vn" - name="vn"> driver configured in. Add - this to your kernel config file and build a new kernel: - - <verb> -pseudo-device vn #Vnode driver (turns a file into a device) - </verb> - - Second, you have to have the whole CVS repository at hand. - To get this you can use - <url url="../handbook/cvsup.html" name="CVSUP"> - but your tag value, if any, should be `.' and your release name - should be cvs: - - <verb> -*default prefix=/home/ncvs base=/a host=cvsup.FreeBSD.org release=cvs delete compress use-rel=suffix - -## Main Source Tree -src-all -src-eBones -src-secure - -# Other stuff -ports-all -www - </verb> - - Then run <tt/cvsup -g supfile/ to suck all the good bits into your - box... - - Finally, you need a chunk of empty space to build into. Let's - say it's in <tt>/some/big/filesystem</tt>, and from the example - above you've got the CVS repository in <tt>/home/ncvs</tt>: - - <verb> -setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs -cd /usr/src/release -make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release - </verb> - - An entire release will be built in - <tt>/some/big/filesystem/release</tt> - and you will have a full FTP-type installation in - <tt>/some/big/filesystem/release/R/ftp</tt> - when you're done. If you want to build your SNAP along some other - branch than -current, you can also add <tt/RELEASETAG=SOMETAG/ to - the make release command line above, e.g. <tt/RELEASETAG=RELENG_2_2/ - would build an up-to-the- minute 2.2 GAMMA snapshot. - - <sect1> - <heading>How do I create customized installation disks?</heading> - <p> - The entire process of creating installation disks and source and - binary archives is automated by various targets in - <tt>/usr/src/release/Makefile</tt>. The information there should - be enough to get you started. However, it should be said that this - involves doing a ``make world'' and will therefore take up a lot of - time and disk space. - - <sect1> - <heading>``make world'' clobbers my existing installed binaries.</heading> - - <p> - Yes, this is the general idea; as its name might suggest, - ``make world'' rebuilds every system binary from scratch, so - you can be certain of having a clean and consistent - environment at the end (which is why it takes so long). - <p> - If the environment variable <tt/DESTDIR/ is defined while running - ``<tt/make world/'' or ``<tt/make install/'', the newly-created - binaries will be deposited in a directory tree identical to the - installed one, rooted at <tt>${DESTDIR}</tt>. - Some random combination of shared libraries modifications and - program rebuilds can cause this to fail in ``<tt/make world/'', - however. - - - <sect1> - <heading>When my system boots, it says ``(bus speed defaulted)''.</heading> - - <p> - The Adaptec 1542 SCSI host adapters allow the user to configure - their bus access speed in software. Previous versions of the - 1542 driver tried to determine the fastest usable speed and set - the adapter to that. We found that this breaks some users' - systems, so you now have to define the ``<tt/TUNE_1542/'' kernel - configuration option in order to have this take place. Using it - on those systems where it works may make your disks run faster, - but on those systems where it doesn't, your data could be - corrupted. - - <sect1> - <heading>Can I follow current with limited Internet access?<label id="ctm"></heading> - - <p> - Yes, you can do this <tt /without/ downloading the whole source tree - by using the - <url - url="../handbook/ctm.html" - name="CTM facility."> - - <sect1> - <heading>How did you split the distribution up into 240k files?</heading> - - <p> - Newer BSD based systems have a ``<tt/-b/'' option to split that - allows them to split files on arbitrary byte boundaries. - - Here is an example from <tt>/usr/src/Makefile</tt>. - - <verb> - bin-tarball: - (cd ${DISTDIR}; \ - tar cf - . \ - gzip --no-name -9 -c | \ - split -b 240640 - \ - ${RELEASEDIR}/tarballs/bindist/bin_tgz.) - </verb> - - <sect1> - <heading>I've written a kernel extension, who do I send it to?</heading> - <p> - Please take a look at: - - <url url="../handbook/contrib.html" - name="The Handbook entry on how to submit code."> - - And thanks for the thought! - - - <sect1> - <heading>How are Plug N Play ISA cards detected and initialised?</heading> - <p> - By: Frank Durda IV <tt><uhclem@nemesis.lonestar.org></tt> - - In a nutshell, there a few I/O ports that all of the PnP boards - respond to when the host asks if anyone is out there. So when - the PnP probe routine starts, he asks if there are any PnP boards - present, and all the PnP boards respond with their model # to - a I/O read of the same port, so the probe routine gets a wired-OR - ``yes'' to that question. At least one bit will be on in that - reply. Then the probe code is able to cause boards with board - model IDs (assigned by Microsoft/Intel) lower than X to go - ``off-line''. It then looks to see if any boards are still - responding to the query. If the answer was ``<tt/0/'', then - there are no boards with IDs above X. Now probe asks if there - are any boards below ``X''. If so, probe knows there are boards - with a model numbers below X. Probe then asks for boards greater - than X-(limit/4) to go off-line. If repeats the query. By - repeating this semi-binary search of IDs-in-range enough times, - the probing code will eventually identify all PnP boards present - in a given machine with a number of iterations that is much lower - than what 2^64 would take. - - The IDs are two 32-bit fields (hence 2ˆ64) + 8 bit checksum. - The first 32 bits are a vendor identifier. They never come out - and say it, but it appears to be assumed that different types of - boards from the same vendor could have different 32-bit vendor - ids. The idea of needing 32 bits just for unique manufacturers - is a bit excessive. - - The lower 32 bits are a serial #, ethernet address, something - that makes this one board unique. The vendor must never produce - a second board that has the same lower 32 bits unless the upper - 32 bits are also different. So you can have multiple boards of - the same type in the machine and the full 64 bits will still be - unique. - - The 32 bit groups can never be all zero. This allows the - wired-OR to show non-zero bits during the initial binary search. - - Once the system has identified all the board IDs present, it will - reactivate each board, one at a time (via the same I/O ports), - and find out what resources the given board needs, what interrupt - choices are available, etc. A scan is made over all the boards - to collect this information. - - This info is then combined with info from any ECU files on the - hard disk or wired into the MLB BIOS. The ECU and BIOS PnP - support for hardware on the MLB is usually synthetic, and the - peripherals don't really do genuine PnP. However by examining - the BIOS info plus the ECU info, the probe routines can cause the - devices that are PnP to avoid those devices the probe code cannot - relocate. - - Then the PnP devices are visited once more and given their I/O, - DMA, IRQ and Memory-map address assignments. The devices will - then appear at those locations and remain there until the next - reboot, although there is nothing that says you can't move them - around whenever you want. - - There is a lot of oversimplification above, but you should get - the general idea. - - Microsoft took over some of the primary printer status ports to - do PnP, on the logic that no boards decoded those addresses for - the opposing I/O cycles. I found a genuine IBM printer board - that did decode writes of the status port during the early PnP - proposal review period, but MS said ``tough''. So they do a - write to the printer status port for setting addresses, plus that - use that address + <tt/0x800/, and a third I/O port for reading - that can be located anywhere between <tt/0x200/ and <tt/0x3ff/. - - <sect1> - <heading>Will FreeBSD ever support other architectures?</heading> - - <p> - Several different groups have expressed interest in working on - multi-architecture support for FreeBSD and some people are - currently working on a port of FreeBSD to the ALPHA, with the - cooperation of DEC. For general discussion on new architectures, - use the <tt><platforms@FreeBSD.ORG></tt> - <ref id="mailing" name="mailing list">. - - <sect1> - <heading>I need a major number for a device driver I've written.</heading> - - <p> - This depends on whether or not you plan on making the driver - publicly available. If you do, then please send us a copy of the - driver source code, plus the appropriate modifications to - <tt>files.i386</tt>, a sample configuration file entry, and the - appropriate <htmlurl - url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV" - name="MAKEDEV"> code to create any special files - your device uses. If you do not, or are unable to because of - licensing restrictions, then character major number 32 and block - major number 8 have been reserved specifically for this purpose; - please use them. In any case, we'd appreciate hearing about your - driver on <tt><hackers@FreeBSD.ORG></tt>. - - <sect> - <heading>ACKNOWLEDGMENTS</heading> + <p>FreeBSD comes from the "classic" camp and uses the + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" + name="a.out"> format, a technology tried and proven through + many generations of BSD releases. Though it has also been possible + for some time to build and run native <tt/ELF/ binaries (and + kernels) on a FreeBSD system, no official "push" to switch to + ELF as the default format has, as yet, been made. Why? Well, + when the Linux camp made their painful transition to <tt/ELF/, it + was not so much to flee the <tt/a.out/ executable format + as it was their inflexible jump-table based shared library + mechanism, which made the construction of shared libraries + very difficult for vendors and developers alike. Since the <tt/ELF/ + tools available offered a solution to the shared library + problem and were generally seen as "the way forward" anyway, the + migration cost was accepted as necessary and the transition + made. + + <p>In FreeBSD's case, it's not quite so simple since our shared + library mechanism is based more closely on Sun's + <tt>SunOS</tt>-style shared library mechanism and, as such, is very + easy to use. The only thing we actually lack with <tt/a.out/ + which <tt/ELF/ would give us is cleaner support for C++ constructors + and destructors, among other similarly esoteric things, and it + simply hasn't become much of a problem yet (and there is quite + a bit of C++ code in FreeBSD's source tree). Should that change, + a migration may, at some point, be more seriously contemplated. - <p> - <verb> - If you see a problem with this FAQ, or wish to submit an entry, - please mail us at <FAQ@FreeBSD.ORG>. We appreciate your - feedback, and cannot make this a better FAQ without your help! + <sect1> + <heading>Why doesn't chmod change the permissions on symlinks?</heading> + + <p>You have to use either ``<tt/-H/'' or ``<tt/-L/'' together with + the ``<tt/-R/'' option to make this work. See the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> and + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?symlink" name="symlink"> + man pages for more info. + + <p><bf/WARNING/ the ``<tt/-R/'' option does a <bf/RECURSIVE/ + <tt/chmod/. Be careful about specifying directories or symlinks + to directories to <tt/chmod/. If you want to change the + permissions of a directory referenced by a symlink, use + <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> + without any options and follow the symlink with a trailing slash + (``<tt>/</tt>''). For example, if ``<tt/foo/'' is a symlink to + directory ``<tt/bar/'', and you want to change the permissions of + ``<tt/foo/'' (actually ``<tt/bar/''), you would do something like: + <verb> + chmod 555 foo/ + </verb> - FreeBSD Core Team - </verb> + <p>With the trailing slash, <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> will + follow the symlink, ``<tt/foo/'', to change the permissions of the + directory, ``<tt/bar/''. + + <sect1> + <heading> + Why are login names <bf/still/ resticted to 8 characters + </heading> + + <p>You'd think it'd be easy enough to change <bf/UT_NAMESIZE/ and rebuild + the whole world, and everything would just work. Unfortunately there's + scads of applications and utilities (including system tools) that have + hard-coded small numbers (not always "8" or "9", but oddball ones + like "15" and "20") in structures and buffers... and it would break + Sun's NIS clients and no doubt cause other problems in interacting + with other UNIX systems. + + <sect1> + <heading>Can I run DOS binaries under FreeBSD?</heading> + + <p>Not yet, though BSDI has just donated their <tt/rundos/ DOS emulation + subsystem which we're now working on integrating and enhancing. Send + mail to <url url="mailto:emulation@freebsd.org" + name="The FreeBSD emulation discussion list"> if you're interested in + joining this effort! + + <p>For now, there is a neat utility called + <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" name="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 (provided as XFree86). + + <sect1> + <heading> + What is this thing called ``<tt/sup/'', and how do I use it? + </heading> + + <p><htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^sup" name="SUP"> + stands for Software Update Protocol, and was developed by CMU + for keeping their development trees in sync. We used it to keep + remote sites in sync with our central development sources. + + <p>SUP is not bandwidth friendly, and has been retired. The current + recommended method to keep your sources up to date is + <url url="../handbook/cvsup.html" name="Handbook entry on CVSup"> + + <sect1> + <heading>How cool is FreeBSD?</heading> + + <p>Q. Has anyone done any temperature testing while running FreeBSD? + I know Linux runs cooler than dos, but have never seen a mention of + FreeBSD. It seems to run really hot. + + <p>A. No, but we have done numerous taste tests on blindfolded + volunteers who have also had 250 micrograms of LSD-25 + administered beforehand. 35% of the volunteers said that FreeBSD + tasted sort of orange, whereas Linux tasted like purple haze. + Neither group mentioned any particular variances in temperature + that I can remember. We eventually had to throw the results of + this survey out entirely anyway when we found that too many + volunteers were wandering out of the room during the tests, thus + skewing the results. I think most of the volunteers are at Apple + now, working on their new ``scratch and sniff'' GUI. It's a + funny old business we're in! + + <p>Seriously, both FreeBSD and Linux uses the ``<tt/HLT/'' (halt) + instruction when the system is idle thus lowering its energy + consumption and therefore the heat it generates. Also if you + have APM (automatic power management) configured, then FreeBSD + can also put the CPU into a low power mode. + + <sect1> + <heading>Who's scratching in my memory banks??</heading> + + <p>Q. Is there anything "odd" that FreeBSD does when compiling the + kernel which would cause the memory to make a scratchy sound? When + compiling (and for a brief moment after recognizing the floppy drive + upon startup, as well), a strange scratchy sound emanates from what + appears to be the memory banks. + + <p>A. Yes! You'll see frequent references to ``daemons'' in the BSD + documentation, and what most people don't know is that this + refers to genuine, non-corporeal entities that now possess your + computer. The scratchy sound coming from your memory is actually + high-pitched whispering exchanged among the daemons as they best + decide how to deal with various system administration tasks. + + <p>If the noise gets to you, a good ``<tt>fdisk /mbr</tt>'' from DOS + will get rid of them, but don't be surprised if they react + adversely and try to stop you. In fact, if at any point during + the exercise you hear the satanic voice of Bill Gates coming from + the built-in speaker, take off running and don't ever look back! + Freed from the counterbalancing influence of the BSD daemons, the + twin demons of DOS and Windows are often able to re-assert total + control over your machine to the eternal damnation of your soul. + Given a choice, I think I'd prefer to get used to the scratchy + noises, myself! + + <sect> + <heading>For serious FreeBSD hackers only</heading> + + <sect1> + <heading> + What's with all these SNAPshot, RELENG and RELEASE releases? + </heading> + + <p>There are currently three active/semi-active branches in the FreeBSD + <url url="http://www.freebsd.org/cgi/cvsweb.cgi" name="CVS Repository">: + + <itemize> + <item><bf/RELENG_2_1_0/ AKA <bf/2.1-stable/ AKA <bf/"2.1 branch"/ + <item><bf/RELENG_2_2/ AKA <bf/2.2-stable/ AKA <bf/"2.2 branch"/ + <item><bf/HEAD/ AKA <bf/-current/ AKA <bf/3.0-current/ + </itemize> + + <p><bf/HEAD/ is not an actual branch tag, like the other two, it's + simply a symbolic constant for + <em/"the current, non-branched development stream"/ which we simply + refer to as <bf/-current/. + + <p>Right now, <bf/-current/ is the 3.0 development stream and the + <bf/2.2-stable/ branch, <bf/RELENG_2_2/, forked off from + <bf/-current/ in November 1996. + + <p>The <bf/2.1-stable/ branch, <bf/RELENG_2_1_0/, departed -current in + September of 1994. + + <sect1> + <heading> + How do I make my own custom release?<label id="custrel"> + </heading> + + <p>To make a release you need to do three things: First, you need to + be running a kernel with the <htmlurl + url="http://www.freebsd.org/cgi/man.cgi?vn" name="vn"> driver configured + in. Add this to your kernel config file and build a new kernel: + + <verb> + pseudo-device vn #Vnode driver (turns a file into a device) + </verb> + + <p>Second, you have to have the whole CVS repository at hand. + To get this you can use <url url="../handbook/cvsup.html" name="CVSUP"> + but your tag value, if any, should be `.' and your release name + should be cvs: + + <verb> + *default prefix=/home/ncvs + *default base=/a + *default host=cvsup.FreeBSD.org + *default release=cvs + *default delete compress use-rel-suffix + + ## Main Source Tree + src-all + src-eBones + src-secure + + # Other stuff + ports-all + www + doc-all + </verb> + + <p>Then run <tt/cvsup -g supfile/ to suck all the good bits onto your + box... + + <p>Finally, you need a chunk of empty space to build into. Let's + say it's in <tt>/some/big/filesystem</tt>, and from the example + above you've got the CVS repository in <tt>/home/ncvs</tt>: + + <verb> + setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs + cd /usr/src/release + make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release + </verb> + + <p>An entire release will be built in + <tt>/some/big/filesystem/release</tt> and you will have a full FTP-type + installation in <tt>/some/big/filesystem/release/R/ftp</tt> when you're + done. If you want to build your SNAP along some other branch than + -current, you can also add <tt/RELEASETAG=SOMETAG/ to + the make release command line above, e.g. <tt/RELEASETAG=RELENG_2_2/ + would build an up-to-the- minute 2.2 GAMMA snapshot. + + <sect1> + <heading>How do I create customized installation disks?</heading> + + <p>The entire process of creating installation disks and source and + binary archives is automated by various targets in + <tt>/usr/src/release/Makefile</tt>. The information there should + be enough to get you started. However, it should be said that this + involves doing a ``make world'' and will therefore take up a lot of + time and disk space. + + <sect1> + <heading>``make world'' clobbers my existing installed binaries.</heading> + + <p>Yes, this is the general idea; as its name might suggest, + ``make world'' rebuilds every system binary from scratch, so you can be + certain of having a clean and consistent environment at the end (which + is why it takes so long). + + <p>If the environment variable <tt/DESTDIR/ is defined while running + ``<tt/make world/'' or ``<tt/make install/'', the newly-created + binaries will be deposited in a directory tree identical to the + installed one, rooted at <tt>${DESTDIR}</tt>. + Some random combination of shared libraries modifications and + program rebuilds can cause this to fail in ``<tt/make world/'', + however. + + <sect1> + <heading> + When my system boots, it says ``(bus speed defaulted)''. + </heading> + + <p>The Adaptec 1542 SCSI host adapters allow the user to configure + their bus access speed in software. Previous versions of the + 1542 driver tried to determine the fastest usable speed and set + the adapter to that. We found that this breaks some users' + systems, so you now have to define the ``<tt/TUNE_1542/'' kernel + configuration option in order to have this take place. Using it + on those systems where it works may make your disks run faster, + but on those systems where it doesn't, your data could be + corrupted. + + <sect1> + <heading> + Can I follow current with limited Internet access?<label id="ctm"> + </heading> + + <p>Yes, you can do this <tt /without/ downloading the whole source tree + by using the <url url="../handbook/ctm.html" name="CTM facility."> + + <sect1> + <heading>How did you split the distribution up into 240k files?</heading> + + <p>Newer BSD based systems have a ``<tt/-b/'' option to split that + allows them to split files on arbitrary byte boundaries. + + <p>Here is an example from <tt>/usr/src/Makefile</tt>. + + <verb> + bin-tarball: + (cd ${DISTDIR}; \ + tar cf - . \ + gzip --no-name -9 -c | \ + split -b 240640 - \ + ${RELEASEDIR}/tarballs/bindist/bin_tgz.) + </verb> + + <sect1> + <heading>I've written a kernel extension, who do I send it to?</heading> + + <p>Please take a look at <url url="../handbook/contrib.html" + name="The Handbook entry on how to submit code."> + + <p>And thanks for the thought! + + <sect1> + <heading>How are Plug N Play ISA cards detected and initialised?</heading> + + <p>By: <url url="mailto:uhclem@nemesis.lonestar.org" + name="Frank Durda IV"> + + <p>In a nutshell, there a few I/O ports that all of the PnP boards + respond to when the host asks if anyone is out there. So when + the PnP probe routine starts, he asks if there are any PnP boards + present, and all the PnP boards respond with their model # to + a I/O read of the same port, so the probe routine gets a wired-OR + ``yes'' to that question. At least one bit will be on in that + reply. Then the probe code is able to cause boards with board + model IDs (assigned by Microsoft/Intel) lower than X to go + ``off-line''. It then looks to see if any boards are still + responding to the query. If the answer was ``<tt/0/'', then + there are no boards with IDs above X. Now probe asks if there + are any boards below ``X''. If so, probe knows there are boards + with a model numbers below X. Probe then asks for boards greater + than X-(limit/4) to go off-line. If repeats the query. By + repeating this semi-binary search of IDs-in-range enough times, + the probing code will eventually identify all PnP boards present + in a given machine with a number of iterations that is much lower + than what 2^64 would take. + + <p>The IDs are two 32-bit fields (hence 2ˆ64) + 8 bit checksum. + The first 32 bits are a vendor identifier. They never come out + and say it, but it appears to be assumed that different types of + boards from the same vendor could have different 32-bit vendor + ids. The idea of needing 32 bits just for unique manufacturers + is a bit excessive. + + <p>The lower 32 bits are a serial #, ethernet address, something + that makes this one board unique. The vendor must never produce + a second board that has the same lower 32 bits unless the upper + 32 bits are also different. So you can have multiple boards of + the same type in the machine and the full 64 bits will still be + unique. + + <p>The 32 bit groups can never be all zero. This allows the + wired-OR to show non-zero bits during the initial binary search. + + <p>Once the system has identified all the board IDs present, it will + reactivate each board, one at a time (via the same I/O ports), + and find out what resources the given board needs, what interrupt + choices are available, etc. A scan is made over all the boards + to collect this information. + + <p>This info is then combined with info from any ECU files on the + hard disk or wired into the MLB BIOS. The ECU and BIOS PnP + support for hardware on the MLB is usually synthetic, and the + peripherals don't really do genuine PnP. However by examining + the BIOS info plus the ECU info, the probe routines can cause the + devices that are PnP to avoid those devices the probe code cannot + relocate. + + <p>Then the PnP devices are visited once more and given their I/O, + DMA, IRQ and Memory-map address assignments. The devices will + then appear at those locations and remain there until the next + reboot, although there is nothing that says you can't move them + around whenever you want. + + <p>There is a lot of oversimplification above, but you should get + the general idea. + + <p>Microsoft took over some of the primary printer status ports to + do PnP, on the logic that no boards decoded those addresses for + the opposing I/O cycles. I found a genuine IBM printer board + that did decode writes of the status port during the early PnP + proposal review period, but MS said ``tough''. So they do a + write to the printer status port for setting addresses, plus that + use that address + <tt/0x800/, and a third I/O port for reading + that can be located anywhere between <tt/0x200/ and <tt/0x3ff/. + + <sect1> + <heading>Will FreeBSD ever support other architectures?</heading> + + <p>Several different groups have expressed interest in working on + multi-architecture support for FreeBSD and some people are + currently working on a port of FreeBSD to the ALPHA, with the + cooperation of DEC. For general discussion on new architectures, + use the <tt><platforms@FreeBSD.ORG></tt> + <ref id="mailing" name="mailing list">. + + <sect1> + <heading>I need a major number for a device driver I've written.</heading> + + <p>This depends on whether or not you plan on making the driver + publicly available. If you do, then please send us a copy of the + driver source code, plus the appropriate modifications to + <tt>files.i386</tt>, a sample configuration file entry, and the + appropriate <htmlurl url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV" + name="MAKEDEV"> code to create any special files your device uses. If + you do not, or are unable to because of licensing restrictions, then + character major number 32 and block major number 8 have been reserved + specifically for this purpose; please use them. In any case, we'd + appreciate hearing about your driver on + <tt><hackers@FreeBSD.ORG></tt>. + + <sect> + <heading>ACKNOWLEDGMENTS</heading> + + <p> + <verb> + If you see a problem with this FAQ, or wish to submit an entry, + please mail us at <FAQ@FreeBSD.ORG>. We appreciate your + feedback, and cannot make this a better FAQ without your help! + + + FreeBSD Core Team + </verb> + + <descrip> + <tag/Jordan Hubbard/ + Occasional fits of FAQ-reshuffling and updating. + + <tag/Doug White/ + Services above and beyond the call of duty on freebsd-questions + + <tag/Joerg Wunsch/ + Services above and beyond the call of duty on Usenet + + <tag/Garrett Wollman/ + Networking and formatting + + <tag/Jim Lowe/ + Multicast information + + <tag/Peter da Silva/ + FreeBSD FAQ typing machine slavey + + <tag/The FreeBSD Team/ + Kvetching, moaning, submitting data + </descrip> - <descrip> - <tag/Jordan Hubbard/ - Occasional fits of FAQ-reshuffling and updating. - <tag/Doug White/ - Services above and beyond the call of duty on freebsd-questions - <tag/Joerg Wunsch/ - Services above and beyond the call of duty on Usenet - <tag/Garrett Wollman/ - Networking and formatting - <tag/Jim Lowe/ - Multicast information - <tag/Peter da Silva/ - FreeBSD FAQ typing machine slavey - <tag/The FreeBSD Team/ - Kvetching, moaning, submitting data - </descrip> - - And to any others we've forgotten, apologies and heartfelt thanks! + <p>And to any others we've forgotten, apologies and heartfelt thanks! </article> |