This is the first commit that starts changing the markup. All these changes

markup something that looks like a filename as <filename>...</filename>,
rather than <emphasis role="tt">...</emphasis> or whatever.

These changes can not be automated, the Japanese team will need to go
through the diffs to see which bits of markup have changed.

I'm halfway through (line 16704). It's been quite instructive, and I'm
learning lots about printing with FreeBSD :-)

Join me tomorrow, when I'll be doing the same thing to the other half of
the Handbook -- same Bat time, same Bat channel.
This commit is contained in:
Nik Clayton 1998-04-02 21:35:07 +00:00
parent 635b4a340e
commit 5d78f265df
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=2638
4 changed files with 446 additions and 363 deletions

View file

@ -132,5 +132,16 @@ FreeBSD-doc mailing list) if they have specific questions.
and knocked together a quick Perl script to do it. It's ~nik/bin/para.pl and knocked together a quick Perl script to do it. It's ~nik/bin/para.pl
on freefall. on freefall.
5. Got halfway through looking for filenames, and marking them up as such.
There are a lot ( :-( ) of filenames in the Handbook. The conversion
process did a pretty good job of marking them as <filename>...</filename>
but it wasn't perfect.
I'm halfway through (line 16704) going through the Handbook, eyeballing
each line and changing things like <emphasis remap="tt">...</emphasis>
to <filename>...</filename> where appropriate.
The remainder will follow tomorrow evening.

View file

@ -1505,8 +1505,8 @@
<title>Before installing from a MS-DOS partition</title> <title>Before installing from a MS-DOS partition</title>
<para>To prepare for installation from an MS-DOS partition, copy the <para>To prepare for installation from an MS-DOS partition, copy the
files from the distribution into a directory called <emphasis files from the distribution into a directory called
remap=tt>C:\FREEBSD</emphasis>. The directory tree structure of <filename>C:\FREEBSD</filename>. The directory tree structure of
the CDROM must be partially reproduced within this directory so we the CDROM must be partially reproduced within this directory so we
suggest using the DOS <emphasis remap=tt>xcopy</emphasis> command. suggest using the DOS <emphasis remap=tt>xcopy</emphasis> command.
For example, to prepare for a minimal installation of FreeBSD: For example, to prepare for a minimal installation of FreeBSD:
@ -1514,13 +1514,13 @@
<screen>C&gt; MD C:\FREEBSD C&gt; XCOPY /S E:\BIN <screen>C&gt; MD C:\FREEBSD C&gt; XCOPY /S E:\BIN
C:\FREEBSD\BIN\ C&gt; XCOPY /S E:\MANPAGES C:\FREEBSD\BIN\ C&gt; XCOPY /S E:\MANPAGES
C:\FREEBSD\MANPAGES\</screen> C:\FREEBSD\MANPAGES\</screen>
</informalexample> assuming that <emphasis remap=tt>C:</emphasis> </informalexample> assuming that <filename>C:</filename>
is where you have free space and <emphasis remap=tt>E:</emphasis> is where you have free space and <filename>E:</filename>
is where your CDROM is mounted.</para> is where your CDROM is mounted.</para>
<para>For as many `DISTS' you wish to install from MS-DOS (and you <para>For as many `DISTS' you wish to install from MS-DOS (and you
have free space for), install each one under <emphasis have free space for), install each one under
remap=tt>C:\FREEBSD</emphasis> - the <acronym>BIN</acronym> dist <filename>C:\FREEBSD</filename> - the <acronym>BIN</acronym> dist
is only the minimal requirement.</para> is only the minimal requirement.</para>
</sect2> </sect2>
@ -2248,10 +2248,11 @@
<listitem> <listitem>
<para> Install the program executable and other supporting <para> Install the program executable and other supporting
files, man pages, etc. under the /usr/local hierarchy, where files, man pages, etc. under the
they will not get mixed up with system programs. This also <filename>/usr/local</filename> hierarchy, where they will not
makes sure that all the ports you install will go in the same get mixed up with system programs. This also makes sure that
place, instead of being flung all over your system. all the ports you install will go in the same place, instead
of being flung all over your system.
</para> </para>
</listitem> </listitem>
@ -2291,7 +2292,8 @@
the initial setting up will already have been done for you.</para> the initial setting up will already have been done for you.</para>
<para>If not, make sure the <emphasis>FreeBSD</emphasis> CDROM is in <para>If not, make sure the <emphasis>FreeBSD</emphasis> CDROM is in
the drive and mounted on, say, /cdrom. Then do</para> the drive and mounted on, say, <filename>/cdrom</filename>. Then
do</para>
<para> <para>
<literallayout> # mkdir /usr/ports # cd /usr/ports # ln -s <literallayout> # mkdir /usr/ports # cd /usr/ports # ln -s
@ -2299,8 +2301,8 @@
</para> </para>
<para>to enable the ports make mechanism to find the tarballs (it <para>to enable the ports make mechanism to find the tarballs (it
expects to find them in /usr/ports/distfiles, which is why we expects to find them in <filename>/usr/ports/distfiles</filename>,
sym-linked the CDROM's tarball directory to that which is why we sym-linked the CDROM's tarball directory to that
directory).</para> directory).</para>
<para>Now, suppose you want to install the gnats program from the <para>Now, suppose you want to install the gnats program from the
@ -2434,7 +2436,7 @@
<sect2 <sect2
id="ports-makefile"> id="ports-makefile">
<title>Makefile</title> <title><filename>Makefile</filename></title>
<para>The most important component of a skeleton is the Makefile. <para>The most important component of a skeleton is the Makefile.
This contains various statements that specify how the port should This contains various statements that specify how the port should
@ -2480,9 +2482,10 @@
<para>Skipping over the next few lines for a minute, the line <para>Skipping over the next few lines for a minute, the line
<literallayout> .include &lt;bsd.port.mk&gt; </literallayout> says <literallayout> .include &lt;bsd.port.mk&gt; </literallayout> says
that the other statements and commands needed for this port are that the other statements and commands needed for this port are
in a standard file called `bsd.port.mk&quot;. As these are the in a standard file called <filename>bsd.port.mk</filename>. As
same for all ports, there is no point in duplicating them all over these are the same for all ports, there is no point in duplicating
the place, so they are kept in a single standard file.</para> them all over the place, so they are kept in a single standard
file.</para>
<para>This is probably not the place to go into a detailed <para>This is probably not the place to go into a detailed
examination of how Makefiles work; suffice it to say that the line examination of how Makefiles work; suffice it to say that the line
@ -2496,13 +2499,13 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The files directory</title> <title>The <filename>files</filename> directory</title>
<para>The file containing the <xref linkend="ports-checksum" <para>The file containing the <xref linkend="ports-checksum"
remap="checksum"> for the port is called &quot;md5&quot;, after remap="checksum"> for the port is called
the MD5 algorithm used for ports checksums. It lives in a <filename>md5</filename>, after the MD5 algorithm used for ports
directory with the slightly confusing name of checksums. It lives in a directory with the slightly confusing
&quot;files&quot;.</para> name of <filename>files</filename>.</para>
<para>This directory can also contain other miscellaneous files that <para>This directory can also contain other miscellaneous files that
are required by the port and do not belong anywhere else.</para> are required by the port and do not belong anywhere else.</para>
@ -2510,7 +2513,7 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The patches directory</title> <title>The <filename>patches</filename> directory</title>
<para>This directory contains the <xref linkend="ports-patch" <para>This directory contains the <xref linkend="ports-patch"
remap="patches"> needed to make everything work properly under remap="patches"> needed to make everything work properly under
@ -2519,7 +2522,7 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The pkg directory</title> <title>The <filename>pkg</filename> directory</title>
<para>This program contains three quite useful files:-</para> <para>This program contains three quite useful files:-</para>
@ -2527,18 +2530,19 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>COMMENT - a one-line description of the program. <para><filename>COMMENT</filename> - a one-line description of
the program.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>DESCR - a more detailed description. <para><filename>DESCR</filename> - a more detailed description.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>PLIST - a list of all the files that will be created <para><filename>PLIST</filename> - a list of all the files
when the program is installed.</para> that will be created when the program is installed.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -2703,16 +2707,19 @@
tarballs? tarballs?
</para> </para>
<para>A. It is a file ending in .tar or .tar.gz (with variations <para>A. It is a file ending in <filename>.tar</filename> or
like .tar.Z, or even .tgz if you are trying to squeeze the <filename>.tar.gz</filename> (with variations like
names into a DOS filesystem).</para> <filename>.tar.Z</filename>, or even <filename>.tgz</filename>
if you are trying to squeeze the names into a DOS
filesystem).</para>
<para>Basically, it is a directory tree that has been archived <para>Basically, it is a directory tree that has been archived
into a single file (.tar) and optionally compressed (.gz). into a single file (<filename>.tar</filename>) and optionally
This technique was originally used for compressed (<filename>.gz</filename>). This technique was
<emphasis>T</emphasis>ape <acronym>AR</acronym>chives (hence originally used for <emphasis>T</emphasis>ape
the name `tar'), but it is a widely used way of distributing <acronym>AR</acronym>chives (hence the name `tar'), but it is
program source code around the Internet.</para> a widely used way of distributing program source code around
the Internet.</para>
<para>You can see what files are in them, or even extract them <para>You can see what files are in them, or even extract them
yourself, by using the standard Unix tar program, which comes yourself, by using the standard Unix tar program, which comes
@ -2763,15 +2770,15 @@
<listitem> <listitem>
<para>Q. I did that, but when I tried to put it into <para>Q. I did that, but when I tried to put it into
/usr/ports/distfiles I got some error about not having <filename>/usr/ports/distfiles</filename> I got some error
permission. about not having permission.
</para> </para>
<para>A. The ports mechanism looks for the tarball in <para>A. The ports mechanism looks for the tarball in
/usr/ports/distfiles, but you will not be able to copy <filename>/usr/ports/distfiles</filename>, but you will not be
anything there because it is sym-linked to the CDROM, which is able to copy anything there because it is sym-linked to the
read-only. You can tell it to look somewhere else by CDROM, which is read-only. You can tell it to look somewhere
doing</para> else by doing</para>
<para> <para>
<literallayout> DISTDIR=/where/you/put/it make <literallayout> DISTDIR=/where/you/put/it make
@ -2781,9 +2788,10 @@
<listitem> <listitem>
<para>Q. Does the ports scheme only work if you have everything <para>Q. Does the ports scheme only work if you have everything
in /usr/ports? My system administrator says I must put in <filename>/usr/ports</filename>? My system administrator
everything under /u/people/guests/wurzburger, but it does not says I must put everything under
seem to work. <filename>/u/people/guests/wurzburger</filename>, but it does
not seem to work.
</para> </para>
<para>A. You can use the PORTSDIR and PREFIX variables to tell <para>A. You can use the PORTSDIR and PREFIX variables to tell
@ -2796,16 +2804,20 @@
install</literallayout> install</literallayout>
</para> </para>
<para>will compile the port in /u/people/guests/wurzburger/ports <para>will compile the port in
and install everything under /usr/local. </para> <filename>/u/people/guests/wurzburger/ports</filename> and
install everything under <filename>/usr/local</filename>.
</para>
<para> <para>
<literallayout> make PREFIX=/u/people/guests/wurzburger/local <literallayout> make PREFIX=/u/people/guests/wurzburger/local
install</literallayout> install</literallayout>
</para> </para>
<para>will compile it in /usr/ports and install it in <para>will compile it in <filename>/usr/ports</filename> and
/u/people/guests/wurzburger/local. </para> install it in
<filename>/u/people/guests/wurzburger/local</filename>.
</para>
<para>And of course</para> <para>And of course</para>
@ -2912,11 +2924,12 @@
install</literallayout> install</literallayout>
</para> </para>
<para>or by editing /etc/make.conf, but unfortunately not all <para>or by editing <filename>/etc/make.conf</filename>, but
ports respect this. The surest way is to do 'make configure', unfortunately not all ports respect this. The surest way is to
then go into the source directory and inspect the Makefiles by do 'make configure', then go into the source directory and
hand, but this can get tedious if the source has lots of inspect the Makefiles by hand, but this can get tedious if the
sub-directories, each with their own Makefiles.</para> source has lots of sub-directories, each with their own
Makefiles.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -2997,8 +3010,8 @@
<listitem> <listitem>
<para>Q. I tried that and it still left all those tarballs or <para>Q. I tried that and it still left all those tarballs or
whatever you called them in the distfiles directory. Can I whatever you called them in the <filename>distfiles</filename>
delete those as well? directory. Can I delete those as well?
</para> </para>
<para>A. Yes, if you are sure you have finished with them, those <para>A. Yes, if you are sure you have finished with them, those
@ -3078,7 +3091,8 @@
</para> </para>
<para>A. Nothing secret about it at all, just look at the <para>A. Nothing secret about it at all, just look at the
bsd.ports.mk and bsd.ports.subdir.mk files in your <ulink <filename>bsd.ports.mk</filename> and
<filename>bsd.ports.subdir.mk</filename> files in your <ulink
URL="file://localhost/usr/share/mk/">makefiles URL="file://localhost/usr/share/mk/">makefiles
directory.</ulink> (Note: readers with an aversion to directory.</ulink> (Note: readers with an aversion to
intricate shell-scripts are advised not to follow this intricate shell-scripts are advised not to follow this
@ -3171,10 +3185,10 @@
which is the staging area where your kernel will be built. Notice which is the staging area where your kernel will be built. Notice
the logical organization of the directory tree, with each supported the logical organization of the directory tree, with each supported
device, filesystem, and option in its own subdirectory. Also, device, filesystem, and option in its own subdirectory. Also,
anything inside the <emphasis remap=tt>i386</emphasis> directory anything inside the <filename>i386</filename> directory deals with
deals with PC hardware only, while everything outside the <emphasis PC hardware only, while everything outside the
remap=tt>i386</emphasis> directory is common to all platforms <filename>i386</filename> directory is common to all platforms which
which FreeBSD could potentially be ported to.</para> FreeBSD could potentially be ported to.</para>
<para> <para>
<blockquote> <blockquote>
@ -3187,15 +3201,15 @@
</para> </para>
<para>Next, move to the <filename>i386/conf</filename> directory and <para>Next, move to the <filename>i386/conf</filename> directory and
copy the GENERIC configuration file to the name you want to give copy the <filename>GENERIC</filename> configuration file to the name
your kernel. For example: you want to give your kernel. For example:
<informalexample> <informalexample>
<screen># cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL</screen> <screen># cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL</screen>
</informalexample> Traditionally, this name is in all capital </informalexample> Traditionally, this name is in all capital
letters and, if you are maintaining multiple FreeBSD machines with letters and, if you are maintaining multiple FreeBSD machines with
different hardware, it is a good idea to name it after your different hardware, it is a good idea to name it after your
machine's hostname. We will call it MYKERNEL for the purpose of machine's hostname. We will call it <filename>MYKERNEL</filename>
this example.</para> for the purpose of this example.</para>
<para> <para>
<blockquote> <blockquote>
@ -3205,19 +3219,22 @@
</blockquote> </blockquote>
</para> </para>
<para>Now, edit MYKERNEL with your favorite text editor. If you are <para>Now, edit <filename>MYKERNEL</filename> with your favorite text
just starting out, the only editor available will probably be editor. If you are just starting out, the only editor available
<emphasis remap=tt>vi</emphasis>, which is too complex to explain will probably be <emphasis remap=tt>vi</emphasis>, which is too
here, but is covered well in many books in the <xref complex to explain here, but is covered well in many books in the
<xref
linkend="bibliography" remap="bibliography">. Feel free to change linkend="bibliography" remap="bibliography">. Feel free to change
the comment lines at the top to reflect your configuration or the the comment lines at the top to reflect your configuration or the
changes you have made to differentiate it from GENERIC.</para> changes you have made to differentiate it from
<filename>GENERIC</filename>.</para>
<para>If you have build a kernel under SunOS or some other BSD <para>If you have build a kernel under SunOS or some other BSD
operating system, much of this file will be very familiar to you. operating system, much of this file will be very familiar to you. If
If you are coming from some other operating system such as DOS, on you are coming from some other operating system such as DOS, on the
the other hand, the GENERIC configuration file might seem other hand, the <filename>GENERIC</filename> configuration file
overwhelming to you, so follow the descriptions in the <xref might seem overwhelming to you, so follow the descriptions in the
<xref
linkend="kernelconfig-config" linkend="kernelconfig-config"
remap="Configuration File"> section slowly and carefully.</para> remap="Configuration File"> section slowly and carefully.</para>
@ -3269,14 +3286,16 @@
most lines only contain one argument. Anything following a most lines only contain one argument. Anything following a
<emphasis remap=tt>#</emphasis> is considered a comment and ignored. <emphasis remap=tt>#</emphasis> is considered a comment and ignored.
The following sections describe each keyword, generally in the order The following sections describe each keyword, generally in the order
they are listed in GENERIC, although some related keywords have been they are listed in <filename>GENERIC</filename>, although some
grouped together in a single section (such as Networking) even related keywords have been grouped together in a single section
though they are actually scattered throughout the GENERIC file. (such as Networking) even though they are actually scattered
<anchor id="kernelconfig-options"> An throughout the <filename>GENERIC</filename> file.
exhaustive list of options and more detailed explanations of the <anchor id="kernelconfig-options"> An exhaustive list of options and
device lines is present in the LINT configuration file, located in more detailed explanations of the device lines is present in the
the same directory as GENERIC. If you are in doubt as to the <filename>LINT</filename> configuration file, located in the same
purpose or necessity of a line, check first in LINT.</para> directory as <filename>GENERIC</filename>. If you are in doubt as to
the purpose or necessity of a line, check first in
<filename>LINT</filename>.</para>
<para>The kernel is currently being moved to a better organization of <para>The kernel is currently being moved to a better organization of
the option handling. Traditionally, each option in the config file the option handling. Traditionally, each option in the config file
@ -3352,9 +3371,9 @@
remap=tt>cpu</emphasis> line may be present with remap=tt>cpu</emphasis> line may be present with
different values of <emphasis different values of <emphasis
remap=tt><replaceable>cpu_type</replaceable></emphasis> remap=tt><replaceable>cpu_type</replaceable></emphasis>
as are present in the GENERIC kernel. For a custom as are present in the <filename>GENERIC</filename> kernel.
kernel, it is best to specify only the cpu you have. If, For a custom kernel, it is best to specify only the cpu
for example, you have an Intel Pentium, use you have. If, for example, you have an Intel Pentium, use
<symbol>I586_CPU</symbol> for <emphasis <symbol>I586_CPU</symbol> for <emphasis
remap=tt><replaceable>cpu_type</replaceable></emphasis>.</para> remap=tt><replaceable>cpu_type</replaceable></emphasis>.</para>
</listitem> </listitem>
@ -3365,8 +3384,9 @@
<listitem> <listitem>
<para>Next, we have <emphasis remap=tt>ident</emphasis>, <para>Next, we have <emphasis remap=tt>ident</emphasis>,
which is the identification of the kernel. You should which is the identification of the kernel. You should
change this from GENERIC to whatever you named your change this from <filename>GENERIC</filename> to whatever
kernel, in this example, MYKERNEL. The value you put in you named your kernel, in this example,
<filename>MYKERNEL</filename>. The value you put in
<emphasis remap=tt>ident</emphasis> will print when you <emphasis remap=tt>ident</emphasis> will print when you
boot up the kernel, so it is useful to give a kernel a boot up the kernel, so it is useful to give a kernel a
different name if you want to keep it separate from your different name if you want to keep it separate from your
@ -3439,10 +3459,10 @@
<listitem> <listitem>
<para>This line specifies the location and name of the <para>This line specifies the location and name of the
kernel. Traditionally the kernel is called <emphasis kernel. Traditionally the kernel is called
remap=tt>vmunix</emphasis> but in FreeBSD, it is aptly <filename>vmunix</filename> but in FreeBSD, it is aptly
named <emphasis remap=tt>kernel</emphasis>. You should named <filename>kernel</filename>. You should always use
always use <emphasis remap=tt>kernel</emphasis> for <filename>kernel</filename> for
<symbol>kernel_name</symbol> because changing it will <symbol>kernel_name</symbol> because changing it will
render numerous system utilities inoperative. The second render numerous system utilities inoperative. The second
part of the line specifies the disk and partition where part of the line specifies the disk and partition where
@ -3623,9 +3643,9 @@
<listitem> <listitem>
<para>Process filesystem. This is a pretend filesystem <para>Process filesystem. This is a pretend filesystem
mounted on /proc which allows programs like mounted on <filename>/proc</filename> which allows
<command>ps(1)</command> to give you more information on programs like <command>ps(1)</command> to give you more
what processes are running.</para> information on what processes are running.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -5354,8 +5374,8 @@
</informalexample> </informalexample>
</para> </para>
<para>If any additional files (such as <emphasis <para>If any additional files (such as
remap=tt>principal.*</emphasis> or <symbol>master_key</symbol>) <filename>principal.*</filename> or <symbol>master_key</symbol>)
exist, then use the <symbol>kdb_destroy</symbol> command to exist, then use the <symbol>kdb_destroy</symbol> command to
destroy the old Kerberos database, of if Kerberos is not running, destroy the old Kerberos database, of if Kerberos is not running,
simply delete the extra files with <emphasis simply delete the extra files with <emphasis
@ -9762,13 +9782,14 @@
URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> makes the filter <emphasis remap=tt>hpdf</emphasis> quite complex since <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> cannot read from standard input. It wants to work with a filename. What is worse, the filename has to end in <filename>.dvi</filename> so using <filename>/dev/fd/0</filename> for standard input is problematic. We can get around that problem by linking (symbolically) a temporary file name (one that ends in <filename>.dvi</filename>) to <filename>/dev/fd/0</filename>, thereby forcing <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> to read from standard input.</para> URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> makes the filter <emphasis remap=tt>hpdf</emphasis> quite complex since <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> cannot read from standard input. It wants to work with a filename. What is worse, the filename has to end in <filename>.dvi</filename> so using <filename>/dev/fd/0</filename> for standard input is problematic. We can get around that problem by linking (symbolically) a temporary file name (one that ends in <filename>.dvi</filename>) to <filename>/dev/fd/0</filename>, thereby forcing <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> to read from standard input.</para>
<para>The only other fly in the ointment is the fact that we <para>The only other fly in the ointment is the fact that we
cannot use /tmp for the temporary link. Symbolic links are cannot use <filename>/tmp</filename> for the temporary link.
owned by user and group <emphasis remap=tt>bin</emphasis>. Symbolic links are owned by user and group <emphasis
The filter runs as user <emphasis remap=tt>daemon</emphasis>. remap=tt>bin</emphasis>. The filter runs as user <emphasis
And the <filename>/tmp</filename> directory has the sticky bit remap=tt>daemon</emphasis>. And the
set. The filter can create the link, but it will not be able <filename>/tmp</filename> directory has the sticky bit set.
clean up when done and remove it since the link will belong to The filter can create the link, but it will not be able clean
a different user.</para> up when done and remove it since the link will belong to a
different user.</para>
<para>Instead, the filter will make the symbolic link in the <para>Instead, the filter will make the symbolic link in the
current working directory, which is the spooling directory current working directory, which is the spooling directory
@ -10755,8 +10776,8 @@
<listitem> <listitem>
<para>You can control how much free space there needs to <para>You can control how much free space there needs to
remain on the filesystem where a spooling directory remain on the filesystem where a spooling directory
resides. Make a file called <emphasis resides. Make a file called
remap=tt>minfree</emphasis> in the spooling directory <filename>minfree</filename> in the spooling directory
for the local printer. Insert in that file a number for the local printer. Insert in that file a number
representing how many disk blocks (512 bytes) of free representing how many disk blocks (512 bytes) of free
space there has to be for a remote job to be space there has to be for a remote job to be
@ -10766,11 +10787,11 @@
your filesystem. You can also use it to give a certain your filesystem. You can also use it to give a certain
priority to local users: they will be able to queue jobs priority to local users: they will be able to queue jobs
long after the free disk space has fallen below the long after the free disk space has fallen below the
amount specified in the <emphasis amount specified in the <filename>minfree</filename>
remap=tt>minfree</emphasis> file.</para> file.</para>
<para>For example, let us add a <emphasis <para>For example, let us add a
remap=tt>minfree</emphasis> file for the printer <filename>minfree</filename> file for the printer
<emphasis remap=tt>bamboo</emphasis>. We examine <emphasis remap=tt>bamboo</emphasis>. We examine
<filename>/etc/printcap</filename> to find the spooling <filename>/etc/printcap</filename> to find the spooling
directory for this printer; here is <emphasis directory for this printer; here is <emphasis
@ -11266,9 +11287,9 @@
sure that quotas are configured in your kernel. This is done by sure that quotas are configured in your kernel. This is done by
adding the following line to your kernel configuration file: adding the following line to your kernel configuration file:
<literallayout>options QUOTA</literallayout> The <literallayout>options QUOTA</literallayout> The
stock GENERIC kernel does not have this enabled by default, so you stock <filename>GENERIC</filename> kernel does not have this enabled
will have to configure, build and install a custom kernel in order by default, so you will have to configure, build and install a
to use disk quotas. Please refer to the custom kernel in order to use disk quotas. Please refer to the
<xref linkend="kernelconfig" remap="Configuring the FreeBSD Kernel"> <xref linkend="kernelconfig" remap="Configuring the FreeBSD Kernel">
section for more information on kernel configuration.</para> section for more information on kernel configuration.</para>
@ -13294,7 +13315,7 @@
cuag</screen> cuag</screen>
</informalexample> If you do not want or need callout </informalexample> If you do not want or need callout
devices for some reason, you can dispense with making devices for some reason, you can dispense with making
the <emphasis remap=tt>cua*</emphasis> devices.</para> the <filename>cua*</filename> devices.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -14498,10 +14519,12 @@
must contain one or more lines describing your host must contain one or more lines describing your host
adapter(s). This includes I/O addresses, interrupts etc. adapter(s). This includes I/O addresses, interrupts etc.
Consult the man page for your adapter driver to get more info. Consult the man page for your adapter driver to get more info.
Apart from that, check out /sys/i386/conf/LINT for an overview Apart from that, check out
of a kernel config file. LINT contains every possible option <filename>/sys/i386/conf/LINT</filename> for an overview of a
you can dream of. It does <emphasis>not</emphasis> imply LINT kernel config file. <filename>LINT</filename> contains every
will actually get you to a working kernel at all.</para> possible option you can dream of. It does
<emphasis>not</emphasis> imply <filename>LINT</filename> will
actually get you to a working kernel at all.</para>
<para>Although it is probably stating the obvious: the kernel <para>Although it is probably stating the obvious: the kernel
config file should reflect your actual hardware setup. So, config file should reflect your actual hardware setup. So,
@ -14677,8 +14700,9 @@
probed. Because the INQUIRY response also includes the version probed. Because the INQUIRY response also includes the version
number of the device firmware, it is even possible that for number of the device firmware, it is even possible that for
different firmware versions different workarounds are used. different firmware versions different workarounds are used.
See e.g. /sys/scsi/st.c and /sys/scsi/scsiconf.c for more info See e.g. <filename>/sys/scsi/st.c</filename> and
on how this is done.</para> <filename>/sys/scsi/scsiconf.c</filename> for more info on how
this is done.</para>
<para>This scheme works fine, but keep in mind that it of course <para>This scheme works fine, but keep in mind that it of course
only works for devices that are KNOWN to be weird. If you are only works for devices that are KNOWN to be weird. If you are
@ -15353,8 +15377,8 @@
rewoffl.</para> rewoffl.</para>
<para>If you are using the NCR SCSI controllers, patch the file <para>If you are using the NCR SCSI controllers, patch the file
/usr/src/sys/pci/ncr.c (as shown below). Build and install a <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below).
new kernel.</para> Build and install a new kernel.</para>
<para> <para>
<informalexample> <informalexample>

View file

@ -1505,8 +1505,8 @@
<title>Before installing from a MS-DOS partition</title> <title>Before installing from a MS-DOS partition</title>
<para>To prepare for installation from an MS-DOS partition, copy the <para>To prepare for installation from an MS-DOS partition, copy the
files from the distribution into a directory called <emphasis files from the distribution into a directory called
remap=tt>C:\FREEBSD</emphasis>. The directory tree structure of <filename>C:\FREEBSD</filename>. The directory tree structure of
the CDROM must be partially reproduced within this directory so we the CDROM must be partially reproduced within this directory so we
suggest using the DOS <emphasis remap=tt>xcopy</emphasis> command. suggest using the DOS <emphasis remap=tt>xcopy</emphasis> command.
For example, to prepare for a minimal installation of FreeBSD: For example, to prepare for a minimal installation of FreeBSD:
@ -1514,13 +1514,13 @@
<screen>C&gt; MD C:\FREEBSD C&gt; XCOPY /S E:\BIN <screen>C&gt; MD C:\FREEBSD C&gt; XCOPY /S E:\BIN
C:\FREEBSD\BIN\ C&gt; XCOPY /S E:\MANPAGES C:\FREEBSD\BIN\ C&gt; XCOPY /S E:\MANPAGES
C:\FREEBSD\MANPAGES\</screen> C:\FREEBSD\MANPAGES\</screen>
</informalexample> assuming that <emphasis remap=tt>C:</emphasis> </informalexample> assuming that <filename>C:</filename>
is where you have free space and <emphasis remap=tt>E:</emphasis> is where you have free space and <filename>E:</filename>
is where your CDROM is mounted.</para> is where your CDROM is mounted.</para>
<para>For as many `DISTS' you wish to install from MS-DOS (and you <para>For as many `DISTS' you wish to install from MS-DOS (and you
have free space for), install each one under <emphasis have free space for), install each one under
remap=tt>C:\FREEBSD</emphasis> - the <acronym>BIN</acronym> dist <filename>C:\FREEBSD</filename> - the <acronym>BIN</acronym> dist
is only the minimal requirement.</para> is only the minimal requirement.</para>
</sect2> </sect2>
@ -2248,10 +2248,11 @@
<listitem> <listitem>
<para> Install the program executable and other supporting <para> Install the program executable and other supporting
files, man pages, etc. under the /usr/local hierarchy, where files, man pages, etc. under the
they will not get mixed up with system programs. This also <filename>/usr/local</filename> hierarchy, where they will not
makes sure that all the ports you install will go in the same get mixed up with system programs. This also makes sure that
place, instead of being flung all over your system. all the ports you install will go in the same place, instead
of being flung all over your system.
</para> </para>
</listitem> </listitem>
@ -2291,7 +2292,8 @@
the initial setting up will already have been done for you.</para> the initial setting up will already have been done for you.</para>
<para>If not, make sure the <emphasis>FreeBSD</emphasis> CDROM is in <para>If not, make sure the <emphasis>FreeBSD</emphasis> CDROM is in
the drive and mounted on, say, /cdrom. Then do</para> the drive and mounted on, say, <filename>/cdrom</filename>. Then
do</para>
<para> <para>
<literallayout> # mkdir /usr/ports # cd /usr/ports # ln -s <literallayout> # mkdir /usr/ports # cd /usr/ports # ln -s
@ -2299,8 +2301,8 @@
</para> </para>
<para>to enable the ports make mechanism to find the tarballs (it <para>to enable the ports make mechanism to find the tarballs (it
expects to find them in /usr/ports/distfiles, which is why we expects to find them in <filename>/usr/ports/distfiles</filename>,
sym-linked the CDROM's tarball directory to that which is why we sym-linked the CDROM's tarball directory to that
directory).</para> directory).</para>
<para>Now, suppose you want to install the gnats program from the <para>Now, suppose you want to install the gnats program from the
@ -2434,7 +2436,7 @@
<sect2 <sect2
id="ports-makefile"> id="ports-makefile">
<title>Makefile</title> <title><filename>Makefile</filename></title>
<para>The most important component of a skeleton is the Makefile. <para>The most important component of a skeleton is the Makefile.
This contains various statements that specify how the port should This contains various statements that specify how the port should
@ -2480,9 +2482,10 @@
<para>Skipping over the next few lines for a minute, the line <para>Skipping over the next few lines for a minute, the line
<literallayout> .include &lt;bsd.port.mk&gt; </literallayout> says <literallayout> .include &lt;bsd.port.mk&gt; </literallayout> says
that the other statements and commands needed for this port are that the other statements and commands needed for this port are
in a standard file called `bsd.port.mk&quot;. As these are the in a standard file called <filename>bsd.port.mk</filename>. As
same for all ports, there is no point in duplicating them all over these are the same for all ports, there is no point in duplicating
the place, so they are kept in a single standard file.</para> them all over the place, so they are kept in a single standard
file.</para>
<para>This is probably not the place to go into a detailed <para>This is probably not the place to go into a detailed
examination of how Makefiles work; suffice it to say that the line examination of how Makefiles work; suffice it to say that the line
@ -2496,13 +2499,13 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The files directory</title> <title>The <filename>files</filename> directory</title>
<para>The file containing the <xref linkend="ports-checksum" <para>The file containing the <xref linkend="ports-checksum"
remap="checksum"> for the port is called &quot;md5&quot;, after remap="checksum"> for the port is called
the MD5 algorithm used for ports checksums. It lives in a <filename>md5</filename>, after the MD5 algorithm used for ports
directory with the slightly confusing name of checksums. It lives in a directory with the slightly confusing
&quot;files&quot;.</para> name of <filename>files</filename>.</para>
<para>This directory can also contain other miscellaneous files that <para>This directory can also contain other miscellaneous files that
are required by the port and do not belong anywhere else.</para> are required by the port and do not belong anywhere else.</para>
@ -2510,7 +2513,7 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The patches directory</title> <title>The <filename>patches</filename> directory</title>
<para>This directory contains the <xref linkend="ports-patch" <para>This directory contains the <xref linkend="ports-patch"
remap="patches"> needed to make everything work properly under remap="patches"> needed to make everything work properly under
@ -2519,7 +2522,7 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The pkg directory</title> <title>The <filename>pkg</filename> directory</title>
<para>This program contains three quite useful files:-</para> <para>This program contains three quite useful files:-</para>
@ -2527,18 +2530,19 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>COMMENT - a one-line description of the program. <para><filename>COMMENT</filename> - a one-line description of
the program.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>DESCR - a more detailed description. <para><filename>DESCR</filename> - a more detailed description.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>PLIST - a list of all the files that will be created <para><filename>PLIST</filename> - a list of all the files
when the program is installed.</para> that will be created when the program is installed.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -2703,16 +2707,19 @@
tarballs? tarballs?
</para> </para>
<para>A. It is a file ending in .tar or .tar.gz (with variations <para>A. It is a file ending in <filename>.tar</filename> or
like .tar.Z, or even .tgz if you are trying to squeeze the <filename>.tar.gz</filename> (with variations like
names into a DOS filesystem).</para> <filename>.tar.Z</filename>, or even <filename>.tgz</filename>
if you are trying to squeeze the names into a DOS
filesystem).</para>
<para>Basically, it is a directory tree that has been archived <para>Basically, it is a directory tree that has been archived
into a single file (.tar) and optionally compressed (.gz). into a single file (<filename>.tar</filename>) and optionally
This technique was originally used for compressed (<filename>.gz</filename>). This technique was
<emphasis>T</emphasis>ape <acronym>AR</acronym>chives (hence originally used for <emphasis>T</emphasis>ape
the name `tar'), but it is a widely used way of distributing <acronym>AR</acronym>chives (hence the name `tar'), but it is
program source code around the Internet.</para> a widely used way of distributing program source code around
the Internet.</para>
<para>You can see what files are in them, or even extract them <para>You can see what files are in them, or even extract them
yourself, by using the standard Unix tar program, which comes yourself, by using the standard Unix tar program, which comes
@ -2763,15 +2770,15 @@
<listitem> <listitem>
<para>Q. I did that, but when I tried to put it into <para>Q. I did that, but when I tried to put it into
/usr/ports/distfiles I got some error about not having <filename>/usr/ports/distfiles</filename> I got some error
permission. about not having permission.
</para> </para>
<para>A. The ports mechanism looks for the tarball in <para>A. The ports mechanism looks for the tarball in
/usr/ports/distfiles, but you will not be able to copy <filename>/usr/ports/distfiles</filename>, but you will not be
anything there because it is sym-linked to the CDROM, which is able to copy anything there because it is sym-linked to the
read-only. You can tell it to look somewhere else by CDROM, which is read-only. You can tell it to look somewhere
doing</para> else by doing</para>
<para> <para>
<literallayout> DISTDIR=/where/you/put/it make <literallayout> DISTDIR=/where/you/put/it make
@ -2781,9 +2788,10 @@
<listitem> <listitem>
<para>Q. Does the ports scheme only work if you have everything <para>Q. Does the ports scheme only work if you have everything
in /usr/ports? My system administrator says I must put in <filename>/usr/ports</filename>? My system administrator
everything under /u/people/guests/wurzburger, but it does not says I must put everything under
seem to work. <filename>/u/people/guests/wurzburger</filename>, but it does
not seem to work.
</para> </para>
<para>A. You can use the PORTSDIR and PREFIX variables to tell <para>A. You can use the PORTSDIR and PREFIX variables to tell
@ -2796,16 +2804,20 @@
install</literallayout> install</literallayout>
</para> </para>
<para>will compile the port in /u/people/guests/wurzburger/ports <para>will compile the port in
and install everything under /usr/local. </para> <filename>/u/people/guests/wurzburger/ports</filename> and
install everything under <filename>/usr/local</filename>.
</para>
<para> <para>
<literallayout> make PREFIX=/u/people/guests/wurzburger/local <literallayout> make PREFIX=/u/people/guests/wurzburger/local
install</literallayout> install</literallayout>
</para> </para>
<para>will compile it in /usr/ports and install it in <para>will compile it in <filename>/usr/ports</filename> and
/u/people/guests/wurzburger/local. </para> install it in
<filename>/u/people/guests/wurzburger/local</filename>.
</para>
<para>And of course</para> <para>And of course</para>
@ -2912,11 +2924,12 @@
install</literallayout> install</literallayout>
</para> </para>
<para>or by editing /etc/make.conf, but unfortunately not all <para>or by editing <filename>/etc/make.conf</filename>, but
ports respect this. The surest way is to do 'make configure', unfortunately not all ports respect this. The surest way is to
then go into the source directory and inspect the Makefiles by do 'make configure', then go into the source directory and
hand, but this can get tedious if the source has lots of inspect the Makefiles by hand, but this can get tedious if the
sub-directories, each with their own Makefiles.</para> source has lots of sub-directories, each with their own
Makefiles.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -2997,8 +3010,8 @@
<listitem> <listitem>
<para>Q. I tried that and it still left all those tarballs or <para>Q. I tried that and it still left all those tarballs or
whatever you called them in the distfiles directory. Can I whatever you called them in the <filename>distfiles</filename>
delete those as well? directory. Can I delete those as well?
</para> </para>
<para>A. Yes, if you are sure you have finished with them, those <para>A. Yes, if you are sure you have finished with them, those
@ -3078,7 +3091,8 @@
</para> </para>
<para>A. Nothing secret about it at all, just look at the <para>A. Nothing secret about it at all, just look at the
bsd.ports.mk and bsd.ports.subdir.mk files in your <ulink <filename>bsd.ports.mk</filename> and
<filename>bsd.ports.subdir.mk</filename> files in your <ulink
URL="file://localhost/usr/share/mk/">makefiles URL="file://localhost/usr/share/mk/">makefiles
directory.</ulink> (Note: readers with an aversion to directory.</ulink> (Note: readers with an aversion to
intricate shell-scripts are advised not to follow this intricate shell-scripts are advised not to follow this
@ -3171,10 +3185,10 @@
which is the staging area where your kernel will be built. Notice which is the staging area where your kernel will be built. Notice
the logical organization of the directory tree, with each supported the logical organization of the directory tree, with each supported
device, filesystem, and option in its own subdirectory. Also, device, filesystem, and option in its own subdirectory. Also,
anything inside the <emphasis remap=tt>i386</emphasis> directory anything inside the <filename>i386</filename> directory deals with
deals with PC hardware only, while everything outside the <emphasis PC hardware only, while everything outside the
remap=tt>i386</emphasis> directory is common to all platforms <filename>i386</filename> directory is common to all platforms which
which FreeBSD could potentially be ported to.</para> FreeBSD could potentially be ported to.</para>
<para> <para>
<blockquote> <blockquote>
@ -3187,15 +3201,15 @@
</para> </para>
<para>Next, move to the <filename>i386/conf</filename> directory and <para>Next, move to the <filename>i386/conf</filename> directory and
copy the GENERIC configuration file to the name you want to give copy the <filename>GENERIC</filename> configuration file to the name
your kernel. For example: you want to give your kernel. For example:
<informalexample> <informalexample>
<screen># cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL</screen> <screen># cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL</screen>
</informalexample> Traditionally, this name is in all capital </informalexample> Traditionally, this name is in all capital
letters and, if you are maintaining multiple FreeBSD machines with letters and, if you are maintaining multiple FreeBSD machines with
different hardware, it is a good idea to name it after your different hardware, it is a good idea to name it after your
machine's hostname. We will call it MYKERNEL for the purpose of machine's hostname. We will call it <filename>MYKERNEL</filename>
this example.</para> for the purpose of this example.</para>
<para> <para>
<blockquote> <blockquote>
@ -3205,19 +3219,22 @@
</blockquote> </blockquote>
</para> </para>
<para>Now, edit MYKERNEL with your favorite text editor. If you are <para>Now, edit <filename>MYKERNEL</filename> with your favorite text
just starting out, the only editor available will probably be editor. If you are just starting out, the only editor available
<emphasis remap=tt>vi</emphasis>, which is too complex to explain will probably be <emphasis remap=tt>vi</emphasis>, which is too
here, but is covered well in many books in the <xref complex to explain here, but is covered well in many books in the
<xref
linkend="bibliography" remap="bibliography">. Feel free to change linkend="bibliography" remap="bibliography">. Feel free to change
the comment lines at the top to reflect your configuration or the the comment lines at the top to reflect your configuration or the
changes you have made to differentiate it from GENERIC.</para> changes you have made to differentiate it from
<filename>GENERIC</filename>.</para>
<para>If you have build a kernel under SunOS or some other BSD <para>If you have build a kernel under SunOS or some other BSD
operating system, much of this file will be very familiar to you. operating system, much of this file will be very familiar to you. If
If you are coming from some other operating system such as DOS, on you are coming from some other operating system such as DOS, on the
the other hand, the GENERIC configuration file might seem other hand, the <filename>GENERIC</filename> configuration file
overwhelming to you, so follow the descriptions in the <xref might seem overwhelming to you, so follow the descriptions in the
<xref
linkend="kernelconfig-config" linkend="kernelconfig-config"
remap="Configuration File"> section slowly and carefully.</para> remap="Configuration File"> section slowly and carefully.</para>
@ -3269,14 +3286,16 @@
most lines only contain one argument. Anything following a most lines only contain one argument. Anything following a
<emphasis remap=tt>#</emphasis> is considered a comment and ignored. <emphasis remap=tt>#</emphasis> is considered a comment and ignored.
The following sections describe each keyword, generally in the order The following sections describe each keyword, generally in the order
they are listed in GENERIC, although some related keywords have been they are listed in <filename>GENERIC</filename>, although some
grouped together in a single section (such as Networking) even related keywords have been grouped together in a single section
though they are actually scattered throughout the GENERIC file. (such as Networking) even though they are actually scattered
<anchor id="kernelconfig-options"> An throughout the <filename>GENERIC</filename> file.
exhaustive list of options and more detailed explanations of the <anchor id="kernelconfig-options"> An exhaustive list of options and
device lines is present in the LINT configuration file, located in more detailed explanations of the device lines is present in the
the same directory as GENERIC. If you are in doubt as to the <filename>LINT</filename> configuration file, located in the same
purpose or necessity of a line, check first in LINT.</para> directory as <filename>GENERIC</filename>. If you are in doubt as to
the purpose or necessity of a line, check first in
<filename>LINT</filename>.</para>
<para>The kernel is currently being moved to a better organization of <para>The kernel is currently being moved to a better organization of
the option handling. Traditionally, each option in the config file the option handling. Traditionally, each option in the config file
@ -3352,9 +3371,9 @@
remap=tt>cpu</emphasis> line may be present with remap=tt>cpu</emphasis> line may be present with
different values of <emphasis different values of <emphasis
remap=tt><replaceable>cpu_type</replaceable></emphasis> remap=tt><replaceable>cpu_type</replaceable></emphasis>
as are present in the GENERIC kernel. For a custom as are present in the <filename>GENERIC</filename> kernel.
kernel, it is best to specify only the cpu you have. If, For a custom kernel, it is best to specify only the cpu
for example, you have an Intel Pentium, use you have. If, for example, you have an Intel Pentium, use
<symbol>I586_CPU</symbol> for <emphasis <symbol>I586_CPU</symbol> for <emphasis
remap=tt><replaceable>cpu_type</replaceable></emphasis>.</para> remap=tt><replaceable>cpu_type</replaceable></emphasis>.</para>
</listitem> </listitem>
@ -3365,8 +3384,9 @@
<listitem> <listitem>
<para>Next, we have <emphasis remap=tt>ident</emphasis>, <para>Next, we have <emphasis remap=tt>ident</emphasis>,
which is the identification of the kernel. You should which is the identification of the kernel. You should
change this from GENERIC to whatever you named your change this from <filename>GENERIC</filename> to whatever
kernel, in this example, MYKERNEL. The value you put in you named your kernel, in this example,
<filename>MYKERNEL</filename>. The value you put in
<emphasis remap=tt>ident</emphasis> will print when you <emphasis remap=tt>ident</emphasis> will print when you
boot up the kernel, so it is useful to give a kernel a boot up the kernel, so it is useful to give a kernel a
different name if you want to keep it separate from your different name if you want to keep it separate from your
@ -3439,10 +3459,10 @@
<listitem> <listitem>
<para>This line specifies the location and name of the <para>This line specifies the location and name of the
kernel. Traditionally the kernel is called <emphasis kernel. Traditionally the kernel is called
remap=tt>vmunix</emphasis> but in FreeBSD, it is aptly <filename>vmunix</filename> but in FreeBSD, it is aptly
named <emphasis remap=tt>kernel</emphasis>. You should named <filename>kernel</filename>. You should always use
always use <emphasis remap=tt>kernel</emphasis> for <filename>kernel</filename> for
<symbol>kernel_name</symbol> because changing it will <symbol>kernel_name</symbol> because changing it will
render numerous system utilities inoperative. The second render numerous system utilities inoperative. The second
part of the line specifies the disk and partition where part of the line specifies the disk and partition where
@ -3623,9 +3643,9 @@
<listitem> <listitem>
<para>Process filesystem. This is a pretend filesystem <para>Process filesystem. This is a pretend filesystem
mounted on /proc which allows programs like mounted on <filename>/proc</filename> which allows
<command>ps(1)</command> to give you more information on programs like <command>ps(1)</command> to give you more
what processes are running.</para> information on what processes are running.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -5354,8 +5374,8 @@
</informalexample> </informalexample>
</para> </para>
<para>If any additional files (such as <emphasis <para>If any additional files (such as
remap=tt>principal.*</emphasis> or <symbol>master_key</symbol>) <filename>principal.*</filename> or <symbol>master_key</symbol>)
exist, then use the <symbol>kdb_destroy</symbol> command to exist, then use the <symbol>kdb_destroy</symbol> command to
destroy the old Kerberos database, of if Kerberos is not running, destroy the old Kerberos database, of if Kerberos is not running,
simply delete the extra files with <emphasis simply delete the extra files with <emphasis
@ -9762,13 +9782,14 @@
URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> makes the filter <emphasis remap=tt>hpdf</emphasis> quite complex since <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> cannot read from standard input. It wants to work with a filename. What is worse, the filename has to end in <filename>.dvi</filename> so using <filename>/dev/fd/0</filename> for standard input is problematic. We can get around that problem by linking (symbolically) a temporary file name (one that ends in <filename>.dvi</filename>) to <filename>/dev/fd/0</filename>, thereby forcing <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> to read from standard input.</para> URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> makes the filter <emphasis remap=tt>hpdf</emphasis> quite complex since <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> cannot read from standard input. It wants to work with a filename. What is worse, the filename has to end in <filename>.dvi</filename> so using <filename>/dev/fd/0</filename> for standard input is problematic. We can get around that problem by linking (symbolically) a temporary file name (one that ends in <filename>.dvi</filename>) to <filename>/dev/fd/0</filename>, thereby forcing <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> to read from standard input.</para>
<para>The only other fly in the ointment is the fact that we <para>The only other fly in the ointment is the fact that we
cannot use /tmp for the temporary link. Symbolic links are cannot use <filename>/tmp</filename> for the temporary link.
owned by user and group <emphasis remap=tt>bin</emphasis>. Symbolic links are owned by user and group <emphasis
The filter runs as user <emphasis remap=tt>daemon</emphasis>. remap=tt>bin</emphasis>. The filter runs as user <emphasis
And the <filename>/tmp</filename> directory has the sticky bit remap=tt>daemon</emphasis>. And the
set. The filter can create the link, but it will not be able <filename>/tmp</filename> directory has the sticky bit set.
clean up when done and remove it since the link will belong to The filter can create the link, but it will not be able clean
a different user.</para> up when done and remove it since the link will belong to a
different user.</para>
<para>Instead, the filter will make the symbolic link in the <para>Instead, the filter will make the symbolic link in the
current working directory, which is the spooling directory current working directory, which is the spooling directory
@ -10755,8 +10776,8 @@
<listitem> <listitem>
<para>You can control how much free space there needs to <para>You can control how much free space there needs to
remain on the filesystem where a spooling directory remain on the filesystem where a spooling directory
resides. Make a file called <emphasis resides. Make a file called
remap=tt>minfree</emphasis> in the spooling directory <filename>minfree</filename> in the spooling directory
for the local printer. Insert in that file a number for the local printer. Insert in that file a number
representing how many disk blocks (512 bytes) of free representing how many disk blocks (512 bytes) of free
space there has to be for a remote job to be space there has to be for a remote job to be
@ -10766,11 +10787,11 @@
your filesystem. You can also use it to give a certain your filesystem. You can also use it to give a certain
priority to local users: they will be able to queue jobs priority to local users: they will be able to queue jobs
long after the free disk space has fallen below the long after the free disk space has fallen below the
amount specified in the <emphasis amount specified in the <filename>minfree</filename>
remap=tt>minfree</emphasis> file.</para> file.</para>
<para>For example, let us add a <emphasis <para>For example, let us add a
remap=tt>minfree</emphasis> file for the printer <filename>minfree</filename> file for the printer
<emphasis remap=tt>bamboo</emphasis>. We examine <emphasis remap=tt>bamboo</emphasis>. We examine
<filename>/etc/printcap</filename> to find the spooling <filename>/etc/printcap</filename> to find the spooling
directory for this printer; here is <emphasis directory for this printer; here is <emphasis
@ -11266,9 +11287,9 @@
sure that quotas are configured in your kernel. This is done by sure that quotas are configured in your kernel. This is done by
adding the following line to your kernel configuration file: adding the following line to your kernel configuration file:
<literallayout>options QUOTA</literallayout> The <literallayout>options QUOTA</literallayout> The
stock GENERIC kernel does not have this enabled by default, so you stock <filename>GENERIC</filename> kernel does not have this enabled
will have to configure, build and install a custom kernel in order by default, so you will have to configure, build and install a
to use disk quotas. Please refer to the custom kernel in order to use disk quotas. Please refer to the
<xref linkend="kernelconfig" remap="Configuring the FreeBSD Kernel"> <xref linkend="kernelconfig" remap="Configuring the FreeBSD Kernel">
section for more information on kernel configuration.</para> section for more information on kernel configuration.</para>
@ -13294,7 +13315,7 @@
cuag</screen> cuag</screen>
</informalexample> If you do not want or need callout </informalexample> If you do not want or need callout
devices for some reason, you can dispense with making devices for some reason, you can dispense with making
the <emphasis remap=tt>cua*</emphasis> devices.</para> the <filename>cua*</filename> devices.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -14498,10 +14519,12 @@
must contain one or more lines describing your host must contain one or more lines describing your host
adapter(s). This includes I/O addresses, interrupts etc. adapter(s). This includes I/O addresses, interrupts etc.
Consult the man page for your adapter driver to get more info. Consult the man page for your adapter driver to get more info.
Apart from that, check out /sys/i386/conf/LINT for an overview Apart from that, check out
of a kernel config file. LINT contains every possible option <filename>/sys/i386/conf/LINT</filename> for an overview of a
you can dream of. It does <emphasis>not</emphasis> imply LINT kernel config file. <filename>LINT</filename> contains every
will actually get you to a working kernel at all.</para> possible option you can dream of. It does
<emphasis>not</emphasis> imply <filename>LINT</filename> will
actually get you to a working kernel at all.</para>
<para>Although it is probably stating the obvious: the kernel <para>Although it is probably stating the obvious: the kernel
config file should reflect your actual hardware setup. So, config file should reflect your actual hardware setup. So,
@ -14677,8 +14700,9 @@
probed. Because the INQUIRY response also includes the version probed. Because the INQUIRY response also includes the version
number of the device firmware, it is even possible that for number of the device firmware, it is even possible that for
different firmware versions different workarounds are used. different firmware versions different workarounds are used.
See e.g. /sys/scsi/st.c and /sys/scsi/scsiconf.c for more info See e.g. <filename>/sys/scsi/st.c</filename> and
on how this is done.</para> <filename>/sys/scsi/scsiconf.c</filename> for more info on how
this is done.</para>
<para>This scheme works fine, but keep in mind that it of course <para>This scheme works fine, but keep in mind that it of course
only works for devices that are KNOWN to be weird. If you are only works for devices that are KNOWN to be weird. If you are
@ -15353,8 +15377,8 @@
rewoffl.</para> rewoffl.</para>
<para>If you are using the NCR SCSI controllers, patch the file <para>If you are using the NCR SCSI controllers, patch the file
/usr/src/sys/pci/ncr.c (as shown below). Build and install a <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below).
new kernel.</para> Build and install a new kernel.</para>
<para> <para>
<informalexample> <informalexample>

View file

@ -1505,8 +1505,8 @@
<title>Before installing from a MS-DOS partition</title> <title>Before installing from a MS-DOS partition</title>
<para>To prepare for installation from an MS-DOS partition, copy the <para>To prepare for installation from an MS-DOS partition, copy the
files from the distribution into a directory called <emphasis files from the distribution into a directory called
remap=tt>C:\FREEBSD</emphasis>. The directory tree structure of <filename>C:\FREEBSD</filename>. The directory tree structure of
the CDROM must be partially reproduced within this directory so we the CDROM must be partially reproduced within this directory so we
suggest using the DOS <emphasis remap=tt>xcopy</emphasis> command. suggest using the DOS <emphasis remap=tt>xcopy</emphasis> command.
For example, to prepare for a minimal installation of FreeBSD: For example, to prepare for a minimal installation of FreeBSD:
@ -1514,13 +1514,13 @@
<screen>C&gt; MD C:\FREEBSD C&gt; XCOPY /S E:\BIN <screen>C&gt; MD C:\FREEBSD C&gt; XCOPY /S E:\BIN
C:\FREEBSD\BIN\ C&gt; XCOPY /S E:\MANPAGES C:\FREEBSD\BIN\ C&gt; XCOPY /S E:\MANPAGES
C:\FREEBSD\MANPAGES\</screen> C:\FREEBSD\MANPAGES\</screen>
</informalexample> assuming that <emphasis remap=tt>C:</emphasis> </informalexample> assuming that <filename>C:</filename>
is where you have free space and <emphasis remap=tt>E:</emphasis> is where you have free space and <filename>E:</filename>
is where your CDROM is mounted.</para> is where your CDROM is mounted.</para>
<para>For as many `DISTS' you wish to install from MS-DOS (and you <para>For as many `DISTS' you wish to install from MS-DOS (and you
have free space for), install each one under <emphasis have free space for), install each one under
remap=tt>C:\FREEBSD</emphasis> - the <acronym>BIN</acronym> dist <filename>C:\FREEBSD</filename> - the <acronym>BIN</acronym> dist
is only the minimal requirement.</para> is only the minimal requirement.</para>
</sect2> </sect2>
@ -2248,10 +2248,11 @@
<listitem> <listitem>
<para> Install the program executable and other supporting <para> Install the program executable and other supporting
files, man pages, etc. under the /usr/local hierarchy, where files, man pages, etc. under the
they will not get mixed up with system programs. This also <filename>/usr/local</filename> hierarchy, where they will not
makes sure that all the ports you install will go in the same get mixed up with system programs. This also makes sure that
place, instead of being flung all over your system. all the ports you install will go in the same place, instead
of being flung all over your system.
</para> </para>
</listitem> </listitem>
@ -2291,7 +2292,8 @@
the initial setting up will already have been done for you.</para> the initial setting up will already have been done for you.</para>
<para>If not, make sure the <emphasis>FreeBSD</emphasis> CDROM is in <para>If not, make sure the <emphasis>FreeBSD</emphasis> CDROM is in
the drive and mounted on, say, /cdrom. Then do</para> the drive and mounted on, say, <filename>/cdrom</filename>. Then
do</para>
<para> <para>
<literallayout> # mkdir /usr/ports # cd /usr/ports # ln -s <literallayout> # mkdir /usr/ports # cd /usr/ports # ln -s
@ -2299,8 +2301,8 @@
</para> </para>
<para>to enable the ports make mechanism to find the tarballs (it <para>to enable the ports make mechanism to find the tarballs (it
expects to find them in /usr/ports/distfiles, which is why we expects to find them in <filename>/usr/ports/distfiles</filename>,
sym-linked the CDROM's tarball directory to that which is why we sym-linked the CDROM's tarball directory to that
directory).</para> directory).</para>
<para>Now, suppose you want to install the gnats program from the <para>Now, suppose you want to install the gnats program from the
@ -2434,7 +2436,7 @@
<sect2 <sect2
id="ports-makefile"> id="ports-makefile">
<title>Makefile</title> <title><filename>Makefile</filename></title>
<para>The most important component of a skeleton is the Makefile. <para>The most important component of a skeleton is the Makefile.
This contains various statements that specify how the port should This contains various statements that specify how the port should
@ -2480,9 +2482,10 @@
<para>Skipping over the next few lines for a minute, the line <para>Skipping over the next few lines for a minute, the line
<literallayout> .include &lt;bsd.port.mk&gt; </literallayout> says <literallayout> .include &lt;bsd.port.mk&gt; </literallayout> says
that the other statements and commands needed for this port are that the other statements and commands needed for this port are
in a standard file called `bsd.port.mk&quot;. As these are the in a standard file called <filename>bsd.port.mk</filename>. As
same for all ports, there is no point in duplicating them all over these are the same for all ports, there is no point in duplicating
the place, so they are kept in a single standard file.</para> them all over the place, so they are kept in a single standard
file.</para>
<para>This is probably not the place to go into a detailed <para>This is probably not the place to go into a detailed
examination of how Makefiles work; suffice it to say that the line examination of how Makefiles work; suffice it to say that the line
@ -2496,13 +2499,13 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The files directory</title> <title>The <filename>files</filename> directory</title>
<para>The file containing the <xref linkend="ports-checksum" <para>The file containing the <xref linkend="ports-checksum"
remap="checksum"> for the port is called &quot;md5&quot;, after remap="checksum"> for the port is called
the MD5 algorithm used for ports checksums. It lives in a <filename>md5</filename>, after the MD5 algorithm used for ports
directory with the slightly confusing name of checksums. It lives in a directory with the slightly confusing
&quot;files&quot;.</para> name of <filename>files</filename>.</para>
<para>This directory can also contain other miscellaneous files that <para>This directory can also contain other miscellaneous files that
are required by the port and do not belong anywhere else.</para> are required by the port and do not belong anywhere else.</para>
@ -2510,7 +2513,7 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The patches directory</title> <title>The <filename>patches</filename> directory</title>
<para>This directory contains the <xref linkend="ports-patch" <para>This directory contains the <xref linkend="ports-patch"
remap="patches"> needed to make everything work properly under remap="patches"> needed to make everything work properly under
@ -2519,7 +2522,7 @@
</sect2> </sect2>
<sect2> <sect2>
<title>The pkg directory</title> <title>The <filename>pkg</filename> directory</title>
<para>This program contains three quite useful files:-</para> <para>This program contains three quite useful files:-</para>
@ -2527,18 +2530,19 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>COMMENT - a one-line description of the program. <para><filename>COMMENT</filename> - a one-line description of
the program.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>DESCR - a more detailed description. <para><filename>DESCR</filename> - a more detailed description.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>PLIST - a list of all the files that will be created <para><filename>PLIST</filename> - a list of all the files
when the program is installed.</para> that will be created when the program is installed.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -2703,16 +2707,19 @@
tarballs? tarballs?
</para> </para>
<para>A. It is a file ending in .tar or .tar.gz (with variations <para>A. It is a file ending in <filename>.tar</filename> or
like .tar.Z, or even .tgz if you are trying to squeeze the <filename>.tar.gz</filename> (with variations like
names into a DOS filesystem).</para> <filename>.tar.Z</filename>, or even <filename>.tgz</filename>
if you are trying to squeeze the names into a DOS
filesystem).</para>
<para>Basically, it is a directory tree that has been archived <para>Basically, it is a directory tree that has been archived
into a single file (.tar) and optionally compressed (.gz). into a single file (<filename>.tar</filename>) and optionally
This technique was originally used for compressed (<filename>.gz</filename>). This technique was
<emphasis>T</emphasis>ape <acronym>AR</acronym>chives (hence originally used for <emphasis>T</emphasis>ape
the name `tar'), but it is a widely used way of distributing <acronym>AR</acronym>chives (hence the name `tar'), but it is
program source code around the Internet.</para> a widely used way of distributing program source code around
the Internet.</para>
<para>You can see what files are in them, or even extract them <para>You can see what files are in them, or even extract them
yourself, by using the standard Unix tar program, which comes yourself, by using the standard Unix tar program, which comes
@ -2763,15 +2770,15 @@
<listitem> <listitem>
<para>Q. I did that, but when I tried to put it into <para>Q. I did that, but when I tried to put it into
/usr/ports/distfiles I got some error about not having <filename>/usr/ports/distfiles</filename> I got some error
permission. about not having permission.
</para> </para>
<para>A. The ports mechanism looks for the tarball in <para>A. The ports mechanism looks for the tarball in
/usr/ports/distfiles, but you will not be able to copy <filename>/usr/ports/distfiles</filename>, but you will not be
anything there because it is sym-linked to the CDROM, which is able to copy anything there because it is sym-linked to the
read-only. You can tell it to look somewhere else by CDROM, which is read-only. You can tell it to look somewhere
doing</para> else by doing</para>
<para> <para>
<literallayout> DISTDIR=/where/you/put/it make <literallayout> DISTDIR=/where/you/put/it make
@ -2781,9 +2788,10 @@
<listitem> <listitem>
<para>Q. Does the ports scheme only work if you have everything <para>Q. Does the ports scheme only work if you have everything
in /usr/ports? My system administrator says I must put in <filename>/usr/ports</filename>? My system administrator
everything under /u/people/guests/wurzburger, but it does not says I must put everything under
seem to work. <filename>/u/people/guests/wurzburger</filename>, but it does
not seem to work.
</para> </para>
<para>A. You can use the PORTSDIR and PREFIX variables to tell <para>A. You can use the PORTSDIR and PREFIX variables to tell
@ -2796,16 +2804,20 @@
install</literallayout> install</literallayout>
</para> </para>
<para>will compile the port in /u/people/guests/wurzburger/ports <para>will compile the port in
and install everything under /usr/local. </para> <filename>/u/people/guests/wurzburger/ports</filename> and
install everything under <filename>/usr/local</filename>.
</para>
<para> <para>
<literallayout> make PREFIX=/u/people/guests/wurzburger/local <literallayout> make PREFIX=/u/people/guests/wurzburger/local
install</literallayout> install</literallayout>
</para> </para>
<para>will compile it in /usr/ports and install it in <para>will compile it in <filename>/usr/ports</filename> and
/u/people/guests/wurzburger/local. </para> install it in
<filename>/u/people/guests/wurzburger/local</filename>.
</para>
<para>And of course</para> <para>And of course</para>
@ -2912,11 +2924,12 @@
install</literallayout> install</literallayout>
</para> </para>
<para>or by editing /etc/make.conf, but unfortunately not all <para>or by editing <filename>/etc/make.conf</filename>, but
ports respect this. The surest way is to do 'make configure', unfortunately not all ports respect this. The surest way is to
then go into the source directory and inspect the Makefiles by do 'make configure', then go into the source directory and
hand, but this can get tedious if the source has lots of inspect the Makefiles by hand, but this can get tedious if the
sub-directories, each with their own Makefiles.</para> source has lots of sub-directories, each with their own
Makefiles.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -2997,8 +3010,8 @@
<listitem> <listitem>
<para>Q. I tried that and it still left all those tarballs or <para>Q. I tried that and it still left all those tarballs or
whatever you called them in the distfiles directory. Can I whatever you called them in the <filename>distfiles</filename>
delete those as well? directory. Can I delete those as well?
</para> </para>
<para>A. Yes, if you are sure you have finished with them, those <para>A. Yes, if you are sure you have finished with them, those
@ -3078,7 +3091,8 @@
</para> </para>
<para>A. Nothing secret about it at all, just look at the <para>A. Nothing secret about it at all, just look at the
bsd.ports.mk and bsd.ports.subdir.mk files in your <ulink <filename>bsd.ports.mk</filename> and
<filename>bsd.ports.subdir.mk</filename> files in your <ulink
URL="file://localhost/usr/share/mk/">makefiles URL="file://localhost/usr/share/mk/">makefiles
directory.</ulink> (Note: readers with an aversion to directory.</ulink> (Note: readers with an aversion to
intricate shell-scripts are advised not to follow this intricate shell-scripts are advised not to follow this
@ -3171,10 +3185,10 @@
which is the staging area where your kernel will be built. Notice which is the staging area where your kernel will be built. Notice
the logical organization of the directory tree, with each supported the logical organization of the directory tree, with each supported
device, filesystem, and option in its own subdirectory. Also, device, filesystem, and option in its own subdirectory. Also,
anything inside the <emphasis remap=tt>i386</emphasis> directory anything inside the <filename>i386</filename> directory deals with
deals with PC hardware only, while everything outside the <emphasis PC hardware only, while everything outside the
remap=tt>i386</emphasis> directory is common to all platforms <filename>i386</filename> directory is common to all platforms which
which FreeBSD could potentially be ported to.</para> FreeBSD could potentially be ported to.</para>
<para> <para>
<blockquote> <blockquote>
@ -3187,15 +3201,15 @@
</para> </para>
<para>Next, move to the <filename>i386/conf</filename> directory and <para>Next, move to the <filename>i386/conf</filename> directory and
copy the GENERIC configuration file to the name you want to give copy the <filename>GENERIC</filename> configuration file to the name
your kernel. For example: you want to give your kernel. For example:
<informalexample> <informalexample>
<screen># cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL</screen> <screen># cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL</screen>
</informalexample> Traditionally, this name is in all capital </informalexample> Traditionally, this name is in all capital
letters and, if you are maintaining multiple FreeBSD machines with letters and, if you are maintaining multiple FreeBSD machines with
different hardware, it is a good idea to name it after your different hardware, it is a good idea to name it after your
machine's hostname. We will call it MYKERNEL for the purpose of machine's hostname. We will call it <filename>MYKERNEL</filename>
this example.</para> for the purpose of this example.</para>
<para> <para>
<blockquote> <blockquote>
@ -3205,19 +3219,22 @@
</blockquote> </blockquote>
</para> </para>
<para>Now, edit MYKERNEL with your favorite text editor. If you are <para>Now, edit <filename>MYKERNEL</filename> with your favorite text
just starting out, the only editor available will probably be editor. If you are just starting out, the only editor available
<emphasis remap=tt>vi</emphasis>, which is too complex to explain will probably be <emphasis remap=tt>vi</emphasis>, which is too
here, but is covered well in many books in the <xref complex to explain here, but is covered well in many books in the
<xref
linkend="bibliography" remap="bibliography">. Feel free to change linkend="bibliography" remap="bibliography">. Feel free to change
the comment lines at the top to reflect your configuration or the the comment lines at the top to reflect your configuration or the
changes you have made to differentiate it from GENERIC.</para> changes you have made to differentiate it from
<filename>GENERIC</filename>.</para>
<para>If you have build a kernel under SunOS or some other BSD <para>If you have build a kernel under SunOS or some other BSD
operating system, much of this file will be very familiar to you. operating system, much of this file will be very familiar to you. If
If you are coming from some other operating system such as DOS, on you are coming from some other operating system such as DOS, on the
the other hand, the GENERIC configuration file might seem other hand, the <filename>GENERIC</filename> configuration file
overwhelming to you, so follow the descriptions in the <xref might seem overwhelming to you, so follow the descriptions in the
<xref
linkend="kernelconfig-config" linkend="kernelconfig-config"
remap="Configuration File"> section slowly and carefully.</para> remap="Configuration File"> section slowly and carefully.</para>
@ -3269,14 +3286,16 @@
most lines only contain one argument. Anything following a most lines only contain one argument. Anything following a
<emphasis remap=tt>#</emphasis> is considered a comment and ignored. <emphasis remap=tt>#</emphasis> is considered a comment and ignored.
The following sections describe each keyword, generally in the order The following sections describe each keyword, generally in the order
they are listed in GENERIC, although some related keywords have been they are listed in <filename>GENERIC</filename>, although some
grouped together in a single section (such as Networking) even related keywords have been grouped together in a single section
though they are actually scattered throughout the GENERIC file. (such as Networking) even though they are actually scattered
<anchor id="kernelconfig-options"> An throughout the <filename>GENERIC</filename> file.
exhaustive list of options and more detailed explanations of the <anchor id="kernelconfig-options"> An exhaustive list of options and
device lines is present in the LINT configuration file, located in more detailed explanations of the device lines is present in the
the same directory as GENERIC. If you are in doubt as to the <filename>LINT</filename> configuration file, located in the same
purpose or necessity of a line, check first in LINT.</para> directory as <filename>GENERIC</filename>. If you are in doubt as to
the purpose or necessity of a line, check first in
<filename>LINT</filename>.</para>
<para>The kernel is currently being moved to a better organization of <para>The kernel is currently being moved to a better organization of
the option handling. Traditionally, each option in the config file the option handling. Traditionally, each option in the config file
@ -3352,9 +3371,9 @@
remap=tt>cpu</emphasis> line may be present with remap=tt>cpu</emphasis> line may be present with
different values of <emphasis different values of <emphasis
remap=tt><replaceable>cpu_type</replaceable></emphasis> remap=tt><replaceable>cpu_type</replaceable></emphasis>
as are present in the GENERIC kernel. For a custom as are present in the <filename>GENERIC</filename> kernel.
kernel, it is best to specify only the cpu you have. If, For a custom kernel, it is best to specify only the cpu
for example, you have an Intel Pentium, use you have. If, for example, you have an Intel Pentium, use
<symbol>I586_CPU</symbol> for <emphasis <symbol>I586_CPU</symbol> for <emphasis
remap=tt><replaceable>cpu_type</replaceable></emphasis>.</para> remap=tt><replaceable>cpu_type</replaceable></emphasis>.</para>
</listitem> </listitem>
@ -3365,8 +3384,9 @@
<listitem> <listitem>
<para>Next, we have <emphasis remap=tt>ident</emphasis>, <para>Next, we have <emphasis remap=tt>ident</emphasis>,
which is the identification of the kernel. You should which is the identification of the kernel. You should
change this from GENERIC to whatever you named your change this from <filename>GENERIC</filename> to whatever
kernel, in this example, MYKERNEL. The value you put in you named your kernel, in this example,
<filename>MYKERNEL</filename>. The value you put in
<emphasis remap=tt>ident</emphasis> will print when you <emphasis remap=tt>ident</emphasis> will print when you
boot up the kernel, so it is useful to give a kernel a boot up the kernel, so it is useful to give a kernel a
different name if you want to keep it separate from your different name if you want to keep it separate from your
@ -3439,10 +3459,10 @@
<listitem> <listitem>
<para>This line specifies the location and name of the <para>This line specifies the location and name of the
kernel. Traditionally the kernel is called <emphasis kernel. Traditionally the kernel is called
remap=tt>vmunix</emphasis> but in FreeBSD, it is aptly <filename>vmunix</filename> but in FreeBSD, it is aptly
named <emphasis remap=tt>kernel</emphasis>. You should named <filename>kernel</filename>. You should always use
always use <emphasis remap=tt>kernel</emphasis> for <filename>kernel</filename> for
<symbol>kernel_name</symbol> because changing it will <symbol>kernel_name</symbol> because changing it will
render numerous system utilities inoperative. The second render numerous system utilities inoperative. The second
part of the line specifies the disk and partition where part of the line specifies the disk and partition where
@ -3623,9 +3643,9 @@
<listitem> <listitem>
<para>Process filesystem. This is a pretend filesystem <para>Process filesystem. This is a pretend filesystem
mounted on /proc which allows programs like mounted on <filename>/proc</filename> which allows
<command>ps(1)</command> to give you more information on programs like <command>ps(1)</command> to give you more
what processes are running.</para> information on what processes are running.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -5354,8 +5374,8 @@
</informalexample> </informalexample>
</para> </para>
<para>If any additional files (such as <emphasis <para>If any additional files (such as
remap=tt>principal.*</emphasis> or <symbol>master_key</symbol>) <filename>principal.*</filename> or <symbol>master_key</symbol>)
exist, then use the <symbol>kdb_destroy</symbol> command to exist, then use the <symbol>kdb_destroy</symbol> command to
destroy the old Kerberos database, of if Kerberos is not running, destroy the old Kerberos database, of if Kerberos is not running,
simply delete the extra files with <emphasis simply delete the extra files with <emphasis
@ -9762,13 +9782,14 @@
URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> makes the filter <emphasis remap=tt>hpdf</emphasis> quite complex since <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> cannot read from standard input. It wants to work with a filename. What is worse, the filename has to end in <filename>.dvi</filename> so using <filename>/dev/fd/0</filename> for standard input is problematic. We can get around that problem by linking (symbolically) a temporary file name (one that ends in <filename>.dvi</filename>) to <filename>/dev/fd/0</filename>, thereby forcing <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> to read from standard input.</para> URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> makes the filter <emphasis remap=tt>hpdf</emphasis> quite complex since <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> cannot read from standard input. It wants to work with a filename. What is worse, the filename has to end in <filename>.dvi</filename> so using <filename>/dev/fd/0</filename> for standard input is problematic. We can get around that problem by linking (symbolically) a temporary file name (one that ends in <filename>.dvi</filename>) to <filename>/dev/fd/0</filename>, thereby forcing <ulink URL="http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+Ports&amp;query=dvilj2p">dvilj2p</ulink> to read from standard input.</para>
<para>The only other fly in the ointment is the fact that we <para>The only other fly in the ointment is the fact that we
cannot use /tmp for the temporary link. Symbolic links are cannot use <filename>/tmp</filename> for the temporary link.
owned by user and group <emphasis remap=tt>bin</emphasis>. Symbolic links are owned by user and group <emphasis
The filter runs as user <emphasis remap=tt>daemon</emphasis>. remap=tt>bin</emphasis>. The filter runs as user <emphasis
And the <filename>/tmp</filename> directory has the sticky bit remap=tt>daemon</emphasis>. And the
set. The filter can create the link, but it will not be able <filename>/tmp</filename> directory has the sticky bit set.
clean up when done and remove it since the link will belong to The filter can create the link, but it will not be able clean
a different user.</para> up when done and remove it since the link will belong to a
different user.</para>
<para>Instead, the filter will make the symbolic link in the <para>Instead, the filter will make the symbolic link in the
current working directory, which is the spooling directory current working directory, which is the spooling directory
@ -10755,8 +10776,8 @@
<listitem> <listitem>
<para>You can control how much free space there needs to <para>You can control how much free space there needs to
remain on the filesystem where a spooling directory remain on the filesystem where a spooling directory
resides. Make a file called <emphasis resides. Make a file called
remap=tt>minfree</emphasis> in the spooling directory <filename>minfree</filename> in the spooling directory
for the local printer. Insert in that file a number for the local printer. Insert in that file a number
representing how many disk blocks (512 bytes) of free representing how many disk blocks (512 bytes) of free
space there has to be for a remote job to be space there has to be for a remote job to be
@ -10766,11 +10787,11 @@
your filesystem. You can also use it to give a certain your filesystem. You can also use it to give a certain
priority to local users: they will be able to queue jobs priority to local users: they will be able to queue jobs
long after the free disk space has fallen below the long after the free disk space has fallen below the
amount specified in the <emphasis amount specified in the <filename>minfree</filename>
remap=tt>minfree</emphasis> file.</para> file.</para>
<para>For example, let us add a <emphasis <para>For example, let us add a
remap=tt>minfree</emphasis> file for the printer <filename>minfree</filename> file for the printer
<emphasis remap=tt>bamboo</emphasis>. We examine <emphasis remap=tt>bamboo</emphasis>. We examine
<filename>/etc/printcap</filename> to find the spooling <filename>/etc/printcap</filename> to find the spooling
directory for this printer; here is <emphasis directory for this printer; here is <emphasis
@ -11266,9 +11287,9 @@
sure that quotas are configured in your kernel. This is done by sure that quotas are configured in your kernel. This is done by
adding the following line to your kernel configuration file: adding the following line to your kernel configuration file:
<literallayout>options QUOTA</literallayout> The <literallayout>options QUOTA</literallayout> The
stock GENERIC kernel does not have this enabled by default, so you stock <filename>GENERIC</filename> kernel does not have this enabled
will have to configure, build and install a custom kernel in order by default, so you will have to configure, build and install a
to use disk quotas. Please refer to the custom kernel in order to use disk quotas. Please refer to the
<xref linkend="kernelconfig" remap="Configuring the FreeBSD Kernel"> <xref linkend="kernelconfig" remap="Configuring the FreeBSD Kernel">
section for more information on kernel configuration.</para> section for more information on kernel configuration.</para>
@ -13294,7 +13315,7 @@
cuag</screen> cuag</screen>
</informalexample> If you do not want or need callout </informalexample> If you do not want or need callout
devices for some reason, you can dispense with making devices for some reason, you can dispense with making
the <emphasis remap=tt>cua*</emphasis> devices.</para> the <filename>cua*</filename> devices.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -14498,10 +14519,12 @@
must contain one or more lines describing your host must contain one or more lines describing your host
adapter(s). This includes I/O addresses, interrupts etc. adapter(s). This includes I/O addresses, interrupts etc.
Consult the man page for your adapter driver to get more info. Consult the man page for your adapter driver to get more info.
Apart from that, check out /sys/i386/conf/LINT for an overview Apart from that, check out
of a kernel config file. LINT contains every possible option <filename>/sys/i386/conf/LINT</filename> for an overview of a
you can dream of. It does <emphasis>not</emphasis> imply LINT kernel config file. <filename>LINT</filename> contains every
will actually get you to a working kernel at all.</para> possible option you can dream of. It does
<emphasis>not</emphasis> imply <filename>LINT</filename> will
actually get you to a working kernel at all.</para>
<para>Although it is probably stating the obvious: the kernel <para>Although it is probably stating the obvious: the kernel
config file should reflect your actual hardware setup. So, config file should reflect your actual hardware setup. So,
@ -14677,8 +14700,9 @@
probed. Because the INQUIRY response also includes the version probed. Because the INQUIRY response also includes the version
number of the device firmware, it is even possible that for number of the device firmware, it is even possible that for
different firmware versions different workarounds are used. different firmware versions different workarounds are used.
See e.g. /sys/scsi/st.c and /sys/scsi/scsiconf.c for more info See e.g. <filename>/sys/scsi/st.c</filename> and
on how this is done.</para> <filename>/sys/scsi/scsiconf.c</filename> for more info on how
this is done.</para>
<para>This scheme works fine, but keep in mind that it of course <para>This scheme works fine, but keep in mind that it of course
only works for devices that are KNOWN to be weird. If you are only works for devices that are KNOWN to be weird. If you are
@ -15353,8 +15377,8 @@
rewoffl.</para> rewoffl.</para>
<para>If you are using the NCR SCSI controllers, patch the file <para>If you are using the NCR SCSI controllers, patch the file
/usr/src/sys/pci/ncr.c (as shown below). Build and install a <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below).
new kernel.</para> Build and install a new kernel.</para>
<para> <para>
<informalexample> <informalexample>