As previous commit, to line 15126

This commit is contained in:
Nik Clayton 1998-10-21 22:02:39 +00:00
parent 6d7e38c02a
commit eb020dff6d
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=3651
4 changed files with 288 additions and 247 deletions

View file

@ -450,9 +450,11 @@ for example,
* <symbol> -> <replaceable> * <symbol> -> <replaceable>
There are very few whitespace changes, although a few have probably There are very few whitespace changes, although a few have probably
cropped up. The vast majority of the whitespace changes will happen in cropped up. The vast majority of the whitespace changes will happen in
one megacommit, hopefully some time next week. one megacommit, hopefully some time next week.
38. As above, to line 11490. 38. As above, to line 11490.
39. . . . to line 15126 . . .

View file

@ -11512,11 +11512,13 @@ total 337.00 154 $ 6.74</screen>
<para>Before attempting to use disk quotas it is necessary to make <para>Before attempting to use disk quotas it is necessary to make
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:</para>
<programlisting> <programlisting>
options QUOTA options QUOTA
</programlisting> The </programlisting>
<para>The
stock <filename>GENERIC</filename> kernel does not have this enabled stock <filename>GENERIC</filename> kernel does not have this enabled
by default, so you will have to configure, build and install a by default, so you will have to configure, build and install a
custom kernel in order to use disk quotas. Please refer to the custom kernel in order to use disk quotas. Please refer to the
@ -11526,6 +11528,7 @@ options QUOTA
<para>Next you will need to enable disk quotas in <para>Next you will need to enable disk quotas in
<filename>/etc/sysconfig</filename>. This is done by changing the <filename>/etc/sysconfig</filename>. This is done by changing the
line: line:
<programlisting> <programlisting>
quotas=NO quotas=NO
</programlisting>to: </programlisting>to:
@ -11537,6 +11540,7 @@ quotas=YES
<para>If you are running FreeBSD 2.2.2 or later, the configuration <para>If you are running FreeBSD 2.2.2 or later, the configuration
file will be <filename>/etc/rc.conf</filename> instead and the file will be <filename>/etc/rc.conf</filename> instead and the
variable name changed to variable name changed to
<programlisting> <programlisting>
check_quotas=YES check_quotas=YES
</programlisting></para> </programlisting></para>
@ -11546,28 +11550,26 @@ check_quotas=YES
can either enable user or group quotas or both for all of your file can either enable user or group quotas or both for all of your file
systems.</para> systems.</para>
<para>To enable per-user quotas on a file system, add the <emphasis <para>To enable per-user quotas on a file system, add the <literal>userquota</literal> option to the options field in the
remap=tt>userquota</emphasis> option to the options field in the
<filename>/etc/fstab</filename> entry for the file system you want <filename>/etc/fstab</filename> entry for the file system you want
to to enable quotas on. For example: to to enable quotas on. For example:</para>
<programlisting> <programlisting>
/dev/sd1s2g /home ufs rw,userquota 1 2 /dev/sd1s2g /home ufs rw,userquota 1 2
</programlisting></para> </programlisting>
<para>Similarly, to enable group quotas, use the <emphasis <para>Similarly, to enable group quotas, use the
remap=tt>groupquota</emphasis> option instead of the <emphasis <literal>groupquota</literal> option instead of the <literal>userquota</literal> keyword. To enable both user and
remap=tt>userquota</emphasis> keyword. To enable both user and group quotas, change the entry as follows:</para>
group quotas, change the entry as follows:
<programlisting> <programlisting>
/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2 /dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
</programlisting></para> </programlisting>
<para>By default the quota files are stored in the root directory of <para>By default the quota files are stored in the root directory of
the file system with the names <filename>quota.user</filename> and the file system with the names <filename>quota.user</filename> and
<filename>quota.group</filename> for user and group quotas <filename>quota.group</filename> for user and group quotas
respectively. See <emphasis remap=tt>man fstab</emphasis> for more respectively. See <command>man fstab</command> for more
information. Even though that man page says that you can specify an information. Even though that man page says that you can specify an
alternate location for the quota files, this is not recommended alternate location for the quota files, this is not recommended
since all of the various quota utilities do not seem to handle this since all of the various quota utilities do not seem to handle this
@ -11590,12 +11592,13 @@ check_quotas=YES
<title>Setting Quota Limits</title> <title>Setting Quota Limits</title>
<para>Once you have configured your system to enable quotas, verify <para>Once you have configured your system to enable quotas, verify
that they really are enabled. An easy way to do this is to run that they really are enabled. An easy way to do this is to run</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>quota -v</userinput></screen> <screen>&prompt.root; <userinput>quota -v</userinput></screen>
</informalexample> </informalexample>
You should see a one line summary of
<para>You should see a one line summary of
disk usage and current quota limits for each file system that quotas disk usage and current quota limits for each file system that quotas
are enabled on.</para> are enabled on.</para>
@ -11630,7 +11633,7 @@ check_quotas=YES
placed into the editor specified by the <envar>EDITOR</envar> placed into the editor specified by the <envar>EDITOR</envar>
environment variable, or in the <command>vi</command> environment variable, or in the <command>vi</command>
editor if the <envar>EDITOR</envar> variable is not set, to editor if the <envar>EDITOR</envar> variable is not set, to
allow you to edit the quota limits. allow you to edit the quota limits.</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>edquota -u test</userinput></screen> <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
@ -11642,7 +11645,9 @@ Quotas for user test:
inodes in use: 7, limits (soft = 50, hard = 60) inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) /usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60) inodes in use: 0, limits (soft = 50, hard = 60)
</programlisting> You will </programlisting>
<para>You will
normally see two lines for each file system that has quotas enabled. normally see two lines for each file system that has quotas enabled.
One line for the block limits, and one line for inode limits. One line for the block limits, and one line for inode limits.
Simply change the value you want updated to modify the quota limit. Simply change the value you want updated to modify the quota limit.
@ -11656,7 +11661,9 @@ Quotas for user test:
<programlisting> <programlisting>
/usr: blocks in use: 65, limits (soft = 500, hard = 600) /usr: blocks in use: 65, limits (soft = 500, hard = 600)
</programlisting> The new </programlisting></para>
<para>The new
quota limits will be in place when you exit the editor.</para> quota limits will be in place when you exit the editor.</para>
<para>Sometimes it is desirable to set quota limits on a range of <para>Sometimes it is desirable to set quota limits on a range of
@ -11664,19 +11671,19 @@ Quotas for user test:
the <command>edquota</command> command. First, assign the <command>edquota</command> command. First, assign
the desired quota limit to a user, and then run <command>edquota -p the desired quota limit to a user, and then run <command>edquota -p
protouser startuid-enduid</command>. For example, if user protouser startuid-enduid</command>. For example, if user
<emphasis remap=tt>test</emphasis> has the desired quota limits, the <username>test</username> has the desired quota limits, the
following command can be used to duplicate those quota limits for following command can be used to duplicate those quota limits for
uids 10,000 through 19,999: uids 10,000 through 19,999:</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen> <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
</informalexample></para> </informalexample>
<para>The ability to specify uid ranges was added to the system after <para>The ability to specify uid ranges was added to the system after
2.1 was released. If you need this feature on a 2.1 system, you 2.1 was released. If you need this feature on a 2.1 system, you
will need to obtain a newer copy of edquota.</para> will need to obtain a newer copy of edquota.</para>
<para>See <emphasis remap=tt>man edquota</emphasis> for more detailed <para>See <command>man edquota</command> for more detailed
information.</para> information.</para>
</sect1> </sect1>
@ -11698,14 +11705,17 @@ Quotas for user test:
-v</command> command for a user that has quota limits on two file -v</command> command for a user that has quota limits on two file
systems.</para> systems.</para>
<para>
<programlisting>Disk quotas for user test (uid 1002): <programlisting>
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60 /usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60 /usr/var 0 50 75 0 50 60
</programlisting> On the /usr file system in the above example this </programlisting>
<para>On the <filename>/usr</filename> file system in the above example this
user is currently 15 blocks over their soft limit of 50 blocks and user is currently 15 blocks over their soft limit of 50 blocks and
has 5 days of their grace period left. Note the asterisk (*) which has 5 days of their grace period left. Note the asterisk <literal>*</literal> which
indicates that the user is currently over their quota limit.</para> indicates that the user is currently over their quota limit.</para>
<para>Normally file systems that the user is not using any disk space <para>Normally file systems that the user is not using any disk space
@ -12096,7 +12106,7 @@ Quotas for user test:
various types of known-brokenness and the degree of breakage, various types of known-brokenness and the degree of breakage,
listed from worst to best.</para> listed from worst to best.</para>
<para>
<variablelist> <variablelist>
<varlistentry><term>Mercury:</term> <varlistentry><term>Mercury:</term>
<listitem> <listitem>
@ -12183,7 +12193,7 @@ Quotas for user test:
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect3> </sect3>
</sect2> </sect2>
@ -12214,8 +12224,7 @@ Quotas for user test:
Cyrix/IBM 6x86MX processors are all reported to work with Cyrix/IBM 6x86MX processors are all reported to work with
FreeBSD. I will not go into details of which processor is FreeBSD. I will not go into details of which processor is
faster than what, there are zillions of web sites on the faster than what, there are zillions of web sites on the
Internet that tells you one way or another. <emphasis Internet that tells you one way or another. <!-- smiley --><emphasis>:)</emphasis></para>
remap=tt>:)</emphasis></para>
<note> <note>
<para>Various CPUs have different voltage/cooling requirements. <para>Various CPUs have different voltage/cooling requirements.
@ -12410,7 +12419,7 @@ Quotas for user test:
<para>The minimum amount of memory you must have to install FreeBSD <para>The minimum amount of memory you must have to install FreeBSD
is 5 MB. Once your system is up and running you can <xref is 5 MB. Once your system is up and running you can <xref
linkend="kernelconfig-building" remap="build a custom kernel"> linkend="kernelconfig-building" remap="build a custom kernel">
that will use less memory. If you use the boot4.flp you can get that will use less memory. If you use the <filename>boot4.flp</filename> you can get
away with having only 4 MB.</para> away with having only 4 MB.</para>
</sect2> </sect2>
@ -12616,7 +12625,7 @@ Quotas for user test:
<para>In RS232-C, a value of <literal>1</literal> is called a <literal>Mark</literal> and a <para>In RS232-C, a value of <literal>1</literal> is called a <literal>Mark</literal> and a
value of <literal>0</literal> is called a <literal>Space</literal>. When a communication line value of <literal>0</literal> is called a <literal>Space</literal>. When a communication line
is idle, the line is said to be "Marking", or transmitting is idle, the line is said to be <quote>Marking</quote>, or transmitting
continuous <literal>1</literal> values.</para> continuous <literal>1</literal> values.</para>
<para>The Start bit always has a value of <literal>0</literal> (a Space). The <para>The Start bit always has a value of <literal>0</literal> (a Space). The
@ -13147,7 +13156,7 @@ INS8250 -&gt; INS8250B
\-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D \-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D
</programlisting> </programlisting>
<para>
<variablelist> <variablelist>
<varlistentry><term>INS8250</term> <varlistentry><term>INS8250</term>
<listitem> <listitem>
@ -13255,7 +13264,7 @@ INS8250 -&gt; INS8250B
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect5> </sect5>
@ -13295,15 +13304,15 @@ INS8250 -&gt; INS8250B
<sect5> <sect5>
<title>National Semiconductor Part Numbering System</title> <title>National Semiconductor Part Numbering System</title>
<para>The older NS<emphasis>nnnnnrqp</emphasis> part numbers <para>The older NS<replaceable>nnnnnrqp</replaceable> part numbers
are now of the format are now of the format
PC<emphasis>nnnnnrgp</emphasis>.</para> PC<replaceable>nnnnnrgp</replaceable>.</para>
<para>The <emphasis>r</emphasis> is the revision field. The <para>The <replaceable>r</replaceable> is the revision field. The
current revision of the 16550 from National Semiconductor is current revision of the 16550 from National Semiconductor is
<literal>D</literal>.</para> <literal>D</literal>.</para>
<para>The <emphasis>p</emphasis> is the package-type field. <para>The <replaceable>p</replaceable> is the package-type field.
The types are: The types are:
<informaltable frame="none"> <informaltable frame="none">
@ -13331,7 +13340,7 @@ INS8250 -&gt; INS8250B
</tgroup> </tgroup>
</informaltable></para> </informaltable></para>
<para>The "<emphasis>g</emphasis>" is the product grade field. <para>The <replaceable>g</replaceable> is the product grade field.
If an <literal>I</literal> precedes the package-type letter, it indicates an If an <literal>I</literal> precedes the package-type letter, it indicates an
<quote>industrial</quote> grade part, which has higher specs than a <quote>industrial</quote> grade part, which has higher specs than a
standard part but not as high as Military Specification standard part but not as high as Military Specification
@ -13370,7 +13379,7 @@ INS8250 -&gt; INS8250B
market comparisons even though the effective performance may market comparisons even though the effective performance may
be lowered by this action.</para> be lowered by this action.</para>
<para>A common misconception is that all parts with <QUOTE>16550A</QUOTE> <para>A common misconception is that all parts with <quote>16550A</quote>
written on them are identical in performance. There are written on them are identical in performance. There are
differences, and in some cases, outright flaws in most of differences, and in some cases, outright flaws in most of
these 16550A clones.</para> these 16550A clones.</para>
@ -13401,7 +13410,7 @@ INS8250 -&gt; INS8250B
components.</para> components.</para>
<para>National Semiconductor has made available a program named <para>National Semiconductor has made available a program named
COMTEST that performs compatibility tests independent of any <application>COMTEST</application> that performs compatibility tests independent of any
OS drivers. It should be remembered that the purpose of this OS drivers. It should be remembered that the purpose of this
type of program is to demonstrate the flaws in the products of type of program is to demonstrate the flaws in the products of
the competition, so the program will report major as well as the competition, so the program will report major as well as
@ -13568,7 +13577,7 @@ INS8250 -&gt; INS8250B
<para>A description of the I/O ports of the 8250/16450/16550 <para>A description of the I/O ports of the 8250/16450/16550
UART is provided below.</para> UART is provided below.</para>
<informaltable> <informaltable frame="none">
<tgroup cols="3"> <tgroup cols="3">
<thead> <thead>
<row> <row>
@ -14328,7 +14337,7 @@ INS8250 -&gt; INS8250B
operating systems do not support features beyond those operating systems do not support features beyond those
provided by the 16550.</para> provided by the 16550.</para>
<para>
<variablelist> <variablelist>
<varlistentry><term>ST16650</term> <varlistentry><term>ST16650</term>
<listitem> <listitem>
@ -14358,7 +14367,7 @@ INS8250 -&gt; INS8250B
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
<para>In addition to these <quote>dumb</quote> UARTs, many vendors produce <para>In addition to these <quote>dumb</quote> UARTs, many vendors produce
intelligent serial communication boards. This type of design intelligent serial communication boards. This type of design
@ -14425,7 +14434,7 @@ device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
are pretty straightforward, but you will need a couple things are pretty straightforward, but you will need a couple things
to make it work:</para> to make it work:</para>
<para>
<orderedlist> <orderedlist>
<listitem> <listitem>
@ -14444,7 +14453,7 @@ device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
</listitem> </listitem>
</orderedlist> </orderedlist>
</para>
<para>One important note - the actual UART chips for the Boca 16 <para>One important note - the actual UART chips for the Boca 16
are in the connector box, not on the internal board itself. So are in the connector box, not on the internal board itself. So
@ -14479,7 +14488,7 @@ options COM_MULTIPORT
to why.) The following example is for a Boca Board with to why.) The following example is for a Boca Board with
an interrupt of 3, and a base IO address 100h. The IO an interrupt of 3, and a base IO address 100h. The IO
address for Each port is +8 hexadecimal from the address for Each port is +8 hexadecimal from the
previous port, thus the 100h, 108h, 110h... addresses. previous port, thus the 100h, 108h, 110h... addresses.</para>
<programlisting> <programlisting>
device sio1 at isa? port 0x100 tty flags 0x1005 device sio1 at isa? port 0x100 tty flags 0x1005
@ -14489,10 +14498,12 @@ device sio4 at isa? port 0x118 tty flags 0x1005
&hellip; &hellip;
device sio15 at isa? port 0x170 tty flags 0x1005 device sio15 at isa? port 0x170 tty flags 0x1005
device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr
</programlisting> The flags entry </programlisting>
<para>The flags entry
<emphasis>must</emphasis> be changed from this example <emphasis>must</emphasis> be changed from this example
unless you are using the exact same sio assignments. unless you are using the exact same sio assignments.
Flags are set according to 0x<option><replaceable>M</replaceable><replaceable>YY</replaceable></option> Flags are set according to 0x<replaceable>M</replaceable><replaceable>YY</replaceable>
where <replaceable>M</replaceable> indicates the minor number where <replaceable>M</replaceable> indicates the minor number
of the master port (the last port on a Boca 16) and of the master port (the last port on a Boca 16) and
<replaceable>YY</replaceable> indicates if FIFO is enabled or <replaceable>YY</replaceable> indicates if FIFO is enabled or
@ -14517,7 +14528,7 @@ flags 0x1005
set to the correct address and IRQ, your boot message set to the correct address and IRQ, your boot message
should indicate the successful probe of the Boca ports should indicate the successful probe of the Boca ports
as follows: (obviously the sio numbers, IO and IRQ could as follows: (obviously the sio numbers, IO and IRQ could
be different) be different)</para>
<informalexample> <informalexample>
<screen>sio1 at 0x100-0x107 flags 0x1005 on isa <screen>sio1 at 0x100-0x107 flags 0x1005 on isa
@ -14552,7 +14563,9 @@ sio15 at 0x170-0x177 flags 0x1005 on isa
sio15: type 16550A (multiport) sio15: type 16550A (multiport)
sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
sio16: type 16550A (multiport master)</screen> sio16: type 16550A (multiport master)</screen>
</informalexample> If the messages go by too fast to </informalexample>
<para>If the messages go by too fast to
see, see,
<informalexample> <informalexample>
@ -14565,7 +14578,8 @@ sio16: type 16550A (multiport master)</screen>
<para>Next, appropriate entries in <para>Next, appropriate entries in
<filename>/dev</filename> for the devices must be made <filename>/dev</filename> for the devices must be made
using the <filename>/dev/MAKEDEV</filename> script. using the <filename>/dev/MAKEDEV</filename> script.
After becoming root: After becoming root:</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>cd /dev</userinput> <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV tty1</userinput> &prompt.root; <userinput>./MAKEDEV tty1</userinput>
@ -14573,7 +14587,9 @@ sio16: type 16550A (multiport master)</screen>
<emphasis>(everything in between)</emphasis> <emphasis>(everything in between)</emphasis>
&prompt.root; <userinput>./MAKEDEV ttyg</userinput> &prompt.root; <userinput>./MAKEDEV ttyg</userinput>
&prompt.root; <userinput>./MAKEDEV cuag</userinput></screen> &prompt.root; <userinput>./MAKEDEV cuag</userinput></screen>
</informalexample> If you do not want or need callout </informalexample>
<para>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 <filename>cua*</filename> devices.</para> the <filename>cua*</filename> devices.</para>
</step> </step>
@ -14638,7 +14654,7 @@ device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr
<para>If appropriate, add <xref linkend="dialup" <para>If appropriate, add <xref linkend="dialup"
remap="dialup"> entries to <xref linkend="dialup-ttys" remap="dialup"> entries to <xref linkend="dialup-ttys"
remap="/etc/ttys"> remap="/etc/ttys">
by duplicating serial device (<literal>ttyd</literal>) entries and using <literal>ttyc</literal> in place of <literal>ttyd</literal>. For example: by duplicating serial device (<literal>ttyd</literal>) entries and using <literal>ttyc</literal> in place of <literal>ttyd</literal>. For example:</para>
<programlisting> <programlisting>
ttyc0 "/usr/libexec/getty std.38400" unknown on insecure ttyc0 "/usr/libexec/getty std.38400" unknown on insecure
@ -14646,7 +14662,7 @@ ttyc1 "/usr/libexec/getty std.38400" unknown on insecure
ttyc2 "/usr/libexec/getty std.38400" unknown on insecure ttyc2 "/usr/libexec/getty std.38400" unknown on insecure
&hellip; &hellip;
ttyc7 "/usr/libexec/getty std.38400" unknown on insecure ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
</programlisting></para> </programlisting>
</step> </step>
<step> <step>
@ -14815,8 +14831,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>It is not hard to imagine that 15 Mbits/second drive cause <para>It is not hard to imagine that 15 Mbits/second drive cause
problems on controllers laid out for 10 Mbits/second. As problems on controllers laid out for 10 Mbits/second. As
always, consult your controller <emphasis always, consult your controller <emphasis>and</emphasis> drive documentation to see if
remap=it>and</emphasis> drive documentation to see if
things match.</para> things match.</para>
</sect4> </sect4>
@ -14935,10 +14950,12 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
usually have a user-defined drive type (in most cases this is usually have a user-defined drive type (in most cases this is
drive type 47).</para> drive type 47).</para>
<para><emphasis>Whatever you do to translations after reading <warning>
<para>Whatever you do to translations after reading
this document, keep in mind that if you have multiple this document, keep in mind that if you have multiple
operating systems on the same disk, all must use the same operating systems on the same disk, all must use the same
translation</emphasis></para> translation</para>
</warning>
<para>While on the subject of translations, I have seen one <para>While on the subject of translations, I have seen one
controller type (but there are probably more like this) offer controller type (but there are probably more like this) offer
@ -14965,9 +14982,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
operating system sees a 'perfect' disk without bad sectors. In operating system sees a 'perfect' disk without bad sectors. In
the case of FreeBSD this concept is not usable.</para> the case of FreeBSD this concept is not usable.</para>
<para>The problem is that the translation from <emphasis <para>The problem is that the translation from <emphasis>bad</emphasis> to <emphasis>good</emphasis> is performed by the BIOS of the
remap=it>bad</emphasis> to <emphasis
remap=it>good</emphasis> is performed by the BIOS of the
ESDI controller. FreeBSD, being a true 32 bit operating ESDI controller. FreeBSD, being a true 32 bit operating
system, does not use the BIOS after it has been booted. system, does not use the BIOS after it has been booted.
Instead, it has device drivers that talk directly to the Instead, it has device drivers that talk directly to the
@ -14986,8 +15001,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>The preceding section leaves us with a problem. The <para>The preceding section leaves us with a problem. The
controller's bad block handling is not usable and still controller's bad block handling is not usable and still
FreeBSD's filesystems assume perfect media without any flaws. FreeBSD's filesystems assume perfect media without any flaws.
To solve this problem, FreeBSD use the <emphasis To solve this problem, FreeBSD use the <command>bad144</command> tool. Bad144 (named after a
remap=it>bad144</emphasis> tool. Bad144 (named after a
Digital Equipment standard for bad block handling) scans a Digital Equipment standard for bad block handling) scans a
FreeBSD slice for bad blocks. Having found these bad blocks, FreeBSD slice for bad blocks. Having found these bad blocks,
it writes a table with the offending block numbers to the end it writes a table with the offending block numbers to the end
@ -14995,13 +15009,13 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>When the disk is in operation, the disk accesses are <para>When the disk is in operation, the disk accesses are
checked against the table read from the disk. Whenever a checked against the table read from the disk. Whenever a
block number is requested that is in the bad144 list, a block number is requested that is in the <command>bad144</command> list, a
replacement block (also from the end of the FreeBSD slice) is replacement block (also from the end of the FreeBSD slice) is
used. In this way, the bad144 replacement scheme presents used. In this way, the <command>bad144</command> replacement scheme presents
'perfect' media to the FreeBSD filesystems.</para> 'perfect' media to the FreeBSD filesystems.</para>
<para>There are a number of potential pitfalls associated with <para>There are a number of potential pitfalls associated with
the use of bad144. First of all, the slice cannot have more the use of <command>bad144</command>. First of all, the slice cannot have more
than 126 bad sectors. If your drive has a high number of bad than 126 bad sectors. If your drive has a high number of bad
sectors, you might need to divide it into multiple FreeBSD sectors, you might need to divide it into multiple FreeBSD
slices each containing less than 126 bad sectors. Stay away slices each containing less than 126 bad sectors. Stay away
@ -15029,9 +15043,8 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<sect4> <sect4>
<title>Kernel configuration</title> <title>Kernel configuration</title>
<para>ESDI disks are handled by the same <emphasis <para>ESDI disks are handled by the same <literal>wd</literal>driver as IDE and ST412 MFM disks. The
remap=it>wd</emphasis>driver as IDE and ST412 MFM disks. The <literal>wd</literal> driver should work for all
<emphasis remap=it>wd</emphasis> driver should work for all
WD1003 compatible interfaces.</para> WD1003 compatible interfaces.</para>
<para>Most hardware is jumperable for one of two different I/O <para>Most hardware is jumperable for one of two different I/O
@ -15069,25 +15082,25 @@ disk wd3 at wdc1 drive 1
controlled by a ACB-2320. No other operating system was controlled by a ACB-2320. No other operating system was
present on the disk.</para> present on the disk.</para>
<para>To do so I low level formatted the disk using NEFMT.EXE <para>To do so I low level formatted the disk using <command>NEFMT.EXE</command>
(<emphasis remap=it>ftp</emphasis>able from (<command>ftp</command>able from
<filename>www.adaptec.com</filename>) and answered NO to the <hostid role="fqdn">www.adaptec.com</hostid>) and answered NO to the
question whether the disk should be formatted with a spare question whether the disk should be formatted with a spare
sector on each track. The BIOS on the ACD-2320 was disabled. I sector on each track. The BIOS on the ACD-2320 was disabled. I
used the 'free configurable' option in the system BIOS to used the <literal>free configurable</literal> option in the system BIOS to
allow the BIOS to boot it.</para> allow the BIOS to boot it.</para>
<para>Before using NEFMT.EXE I tried to format the disk using <para>Before using <command>NEFMT.EXE</command> I tried to format the disk using
the ACB-2320 BIOS builtin formatter. This proved to be a show the ACB-2320 BIOS builtin formatter. This proved to be a show
stopper, because it did not give me an option to disable spare stopper, because it did not give me an option to disable spare
sectoring. With spare sectoring enabled the FreeBSD sectoring. With spare sectoring enabled the FreeBSD
installation process broke down on the bad144 run.</para> installation process broke down on the <command>bad144</command> run.</para>
<para>Please check carefully which ACB-232xy variant you have. <para>Please check carefully which ACB-232<replaceable>xy</replaceable> variant you have.
The x is either 0 or 2, indicating a controller without or The <replaceable>x</replaceable> is either <literal>0</literal> or <literal>2</literal>, indicating a controller without or
with a floppy controller on board.</para> with a floppy controller on board.</para>
<para>The y is more interesting. It can either be a blank, a <para>The <literal>y</literal> is more interesting. It can either be a blank, a
<literal>A-8</literal> or a <literal>D</literal>. A blank indicates a plain 10 Mbits/second <literal>A-8</literal> or a <literal>D</literal>. A blank indicates a plain 10 Mbits/second
controller. An <literal>A-8</literal> indicates a 15 Mbits/second controller controller. An <literal>A-8</literal> indicates a 15 Mbits/second controller
capable of handling 52 sectors/track. A <literal>D</literal> means a 15 capable of handling 52 sectors/track. A <literal>D</literal> means a 15
@ -15110,7 +15123,7 @@ disk wd3 at wdc1 drive 1
<para>To get it to work, I had to disable the sector translation <para>To get it to work, I had to disable the sector translation
and the WD1007's onboard BIOS. This implied I could not use and the WD1007's onboard BIOS. This implied I could not use
the low-level formatter built into this BIOS. Instead, I the low-level formatter built into this BIOS. Instead, I
grabbed WDFMT.EXE from www.wdc.com Running this formatted my grabbed <command>WDFMT.EXE</command> from <hostid role="fqdn">www.wdc.com</hostid> Running this formatted my
drive just fine.</para> drive just fine.</para>
</sect4> </sect4>
@ -28067,7 +28080,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Date created: 5 December 1994 # Date created: 5 December 1994
# Whom: asami # Whom: asami
# #
# $Id: handbook.sgml,v 1.38 1998-10-21 22:00:19 nik Exp $ # $Id: handbook.sgml,v 1.39 1998-10-21 22:02:39 nik Exp $
# #
DISTNAME= oneko-1.1b DISTNAME= oneko-1.1b

View file

@ -11512,11 +11512,13 @@ total 337.00 154 $ 6.74</screen>
<para>Before attempting to use disk quotas it is necessary to make <para>Before attempting to use disk quotas it is necessary to make
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:</para>
<programlisting> <programlisting>
options QUOTA options QUOTA
</programlisting> The </programlisting>
<para>The
stock <filename>GENERIC</filename> kernel does not have this enabled stock <filename>GENERIC</filename> kernel does not have this enabled
by default, so you will have to configure, build and install a by default, so you will have to configure, build and install a
custom kernel in order to use disk quotas. Please refer to the custom kernel in order to use disk quotas. Please refer to the
@ -11526,6 +11528,7 @@ options QUOTA
<para>Next you will need to enable disk quotas in <para>Next you will need to enable disk quotas in
<filename>/etc/sysconfig</filename>. This is done by changing the <filename>/etc/sysconfig</filename>. This is done by changing the
line: line:
<programlisting> <programlisting>
quotas=NO quotas=NO
</programlisting>to: </programlisting>to:
@ -11537,6 +11540,7 @@ quotas=YES
<para>If you are running FreeBSD 2.2.2 or later, the configuration <para>If you are running FreeBSD 2.2.2 or later, the configuration
file will be <filename>/etc/rc.conf</filename> instead and the file will be <filename>/etc/rc.conf</filename> instead and the
variable name changed to variable name changed to
<programlisting> <programlisting>
check_quotas=YES check_quotas=YES
</programlisting></para> </programlisting></para>
@ -11546,28 +11550,26 @@ check_quotas=YES
can either enable user or group quotas or both for all of your file can either enable user or group quotas or both for all of your file
systems.</para> systems.</para>
<para>To enable per-user quotas on a file system, add the <emphasis <para>To enable per-user quotas on a file system, add the <literal>userquota</literal> option to the options field in the
remap=tt>userquota</emphasis> option to the options field in the
<filename>/etc/fstab</filename> entry for the file system you want <filename>/etc/fstab</filename> entry for the file system you want
to to enable quotas on. For example: to to enable quotas on. For example:</para>
<programlisting> <programlisting>
/dev/sd1s2g /home ufs rw,userquota 1 2 /dev/sd1s2g /home ufs rw,userquota 1 2
</programlisting></para> </programlisting>
<para>Similarly, to enable group quotas, use the <emphasis <para>Similarly, to enable group quotas, use the
remap=tt>groupquota</emphasis> option instead of the <emphasis <literal>groupquota</literal> option instead of the <literal>userquota</literal> keyword. To enable both user and
remap=tt>userquota</emphasis> keyword. To enable both user and group quotas, change the entry as follows:</para>
group quotas, change the entry as follows:
<programlisting> <programlisting>
/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2 /dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
</programlisting></para> </programlisting>
<para>By default the quota files are stored in the root directory of <para>By default the quota files are stored in the root directory of
the file system with the names <filename>quota.user</filename> and the file system with the names <filename>quota.user</filename> and
<filename>quota.group</filename> for user and group quotas <filename>quota.group</filename> for user and group quotas
respectively. See <emphasis remap=tt>man fstab</emphasis> for more respectively. See <command>man fstab</command> for more
information. Even though that man page says that you can specify an information. Even though that man page says that you can specify an
alternate location for the quota files, this is not recommended alternate location for the quota files, this is not recommended
since all of the various quota utilities do not seem to handle this since all of the various quota utilities do not seem to handle this
@ -11590,12 +11592,13 @@ check_quotas=YES
<title>Setting Quota Limits</title> <title>Setting Quota Limits</title>
<para>Once you have configured your system to enable quotas, verify <para>Once you have configured your system to enable quotas, verify
that they really are enabled. An easy way to do this is to run that they really are enabled. An easy way to do this is to run</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>quota -v</userinput></screen> <screen>&prompt.root; <userinput>quota -v</userinput></screen>
</informalexample> </informalexample>
You should see a one line summary of
<para>You should see a one line summary of
disk usage and current quota limits for each file system that quotas disk usage and current quota limits for each file system that quotas
are enabled on.</para> are enabled on.</para>
@ -11630,7 +11633,7 @@ check_quotas=YES
placed into the editor specified by the <envar>EDITOR</envar> placed into the editor specified by the <envar>EDITOR</envar>
environment variable, or in the <command>vi</command> environment variable, or in the <command>vi</command>
editor if the <envar>EDITOR</envar> variable is not set, to editor if the <envar>EDITOR</envar> variable is not set, to
allow you to edit the quota limits. allow you to edit the quota limits.</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>edquota -u test</userinput></screen> <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
@ -11642,7 +11645,9 @@ Quotas for user test:
inodes in use: 7, limits (soft = 50, hard = 60) inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) /usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60) inodes in use: 0, limits (soft = 50, hard = 60)
</programlisting> You will </programlisting>
<para>You will
normally see two lines for each file system that has quotas enabled. normally see two lines for each file system that has quotas enabled.
One line for the block limits, and one line for inode limits. One line for the block limits, and one line for inode limits.
Simply change the value you want updated to modify the quota limit. Simply change the value you want updated to modify the quota limit.
@ -11656,7 +11661,9 @@ Quotas for user test:
<programlisting> <programlisting>
/usr: blocks in use: 65, limits (soft = 500, hard = 600) /usr: blocks in use: 65, limits (soft = 500, hard = 600)
</programlisting> The new </programlisting></para>
<para>The new
quota limits will be in place when you exit the editor.</para> quota limits will be in place when you exit the editor.</para>
<para>Sometimes it is desirable to set quota limits on a range of <para>Sometimes it is desirable to set quota limits on a range of
@ -11664,19 +11671,19 @@ Quotas for user test:
the <command>edquota</command> command. First, assign the <command>edquota</command> command. First, assign
the desired quota limit to a user, and then run <command>edquota -p the desired quota limit to a user, and then run <command>edquota -p
protouser startuid-enduid</command>. For example, if user protouser startuid-enduid</command>. For example, if user
<emphasis remap=tt>test</emphasis> has the desired quota limits, the <username>test</username> has the desired quota limits, the
following command can be used to duplicate those quota limits for following command can be used to duplicate those quota limits for
uids 10,000 through 19,999: uids 10,000 through 19,999:</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen> <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
</informalexample></para> </informalexample>
<para>The ability to specify uid ranges was added to the system after <para>The ability to specify uid ranges was added to the system after
2.1 was released. If you need this feature on a 2.1 system, you 2.1 was released. If you need this feature on a 2.1 system, you
will need to obtain a newer copy of edquota.</para> will need to obtain a newer copy of edquota.</para>
<para>See <emphasis remap=tt>man edquota</emphasis> for more detailed <para>See <command>man edquota</command> for more detailed
information.</para> information.</para>
</sect1> </sect1>
@ -11698,14 +11705,17 @@ Quotas for user test:
-v</command> command for a user that has quota limits on two file -v</command> command for a user that has quota limits on two file
systems.</para> systems.</para>
<para>
<programlisting>Disk quotas for user test (uid 1002): <programlisting>
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60 /usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60 /usr/var 0 50 75 0 50 60
</programlisting> On the /usr file system in the above example this </programlisting>
<para>On the <filename>/usr</filename> file system in the above example this
user is currently 15 blocks over their soft limit of 50 blocks and user is currently 15 blocks over their soft limit of 50 blocks and
has 5 days of their grace period left. Note the asterisk (*) which has 5 days of their grace period left. Note the asterisk <literal>*</literal> which
indicates that the user is currently over their quota limit.</para> indicates that the user is currently over their quota limit.</para>
<para>Normally file systems that the user is not using any disk space <para>Normally file systems that the user is not using any disk space
@ -12096,7 +12106,7 @@ Quotas for user test:
various types of known-brokenness and the degree of breakage, various types of known-brokenness and the degree of breakage,
listed from worst to best.</para> listed from worst to best.</para>
<para>
<variablelist> <variablelist>
<varlistentry><term>Mercury:</term> <varlistentry><term>Mercury:</term>
<listitem> <listitem>
@ -12183,7 +12193,7 @@ Quotas for user test:
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect3> </sect3>
</sect2> </sect2>
@ -12214,8 +12224,7 @@ Quotas for user test:
Cyrix/IBM 6x86MX processors are all reported to work with Cyrix/IBM 6x86MX processors are all reported to work with
FreeBSD. I will not go into details of which processor is FreeBSD. I will not go into details of which processor is
faster than what, there are zillions of web sites on the faster than what, there are zillions of web sites on the
Internet that tells you one way or another. <emphasis Internet that tells you one way or another. <!-- smiley --><emphasis>:)</emphasis></para>
remap=tt>:)</emphasis></para>
<note> <note>
<para>Various CPUs have different voltage/cooling requirements. <para>Various CPUs have different voltage/cooling requirements.
@ -12410,7 +12419,7 @@ Quotas for user test:
<para>The minimum amount of memory you must have to install FreeBSD <para>The minimum amount of memory you must have to install FreeBSD
is 5 MB. Once your system is up and running you can <xref is 5 MB. Once your system is up and running you can <xref
linkend="kernelconfig-building" remap="build a custom kernel"> linkend="kernelconfig-building" remap="build a custom kernel">
that will use less memory. If you use the boot4.flp you can get that will use less memory. If you use the <filename>boot4.flp</filename> you can get
away with having only 4 MB.</para> away with having only 4 MB.</para>
</sect2> </sect2>
@ -12616,7 +12625,7 @@ Quotas for user test:
<para>In RS232-C, a value of <literal>1</literal> is called a <literal>Mark</literal> and a <para>In RS232-C, a value of <literal>1</literal> is called a <literal>Mark</literal> and a
value of <literal>0</literal> is called a <literal>Space</literal>. When a communication line value of <literal>0</literal> is called a <literal>Space</literal>. When a communication line
is idle, the line is said to be "Marking", or transmitting is idle, the line is said to be <quote>Marking</quote>, or transmitting
continuous <literal>1</literal> values.</para> continuous <literal>1</literal> values.</para>
<para>The Start bit always has a value of <literal>0</literal> (a Space). The <para>The Start bit always has a value of <literal>0</literal> (a Space). The
@ -13147,7 +13156,7 @@ INS8250 -&gt; INS8250B
\-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D \-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D
</programlisting> </programlisting>
<para>
<variablelist> <variablelist>
<varlistentry><term>INS8250</term> <varlistentry><term>INS8250</term>
<listitem> <listitem>
@ -13255,7 +13264,7 @@ INS8250 -&gt; INS8250B
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect5> </sect5>
@ -13295,15 +13304,15 @@ INS8250 -&gt; INS8250B
<sect5> <sect5>
<title>National Semiconductor Part Numbering System</title> <title>National Semiconductor Part Numbering System</title>
<para>The older NS<emphasis>nnnnnrqp</emphasis> part numbers <para>The older NS<replaceable>nnnnnrqp</replaceable> part numbers
are now of the format are now of the format
PC<emphasis>nnnnnrgp</emphasis>.</para> PC<replaceable>nnnnnrgp</replaceable>.</para>
<para>The <emphasis>r</emphasis> is the revision field. The <para>The <replaceable>r</replaceable> is the revision field. The
current revision of the 16550 from National Semiconductor is current revision of the 16550 from National Semiconductor is
<literal>D</literal>.</para> <literal>D</literal>.</para>
<para>The <emphasis>p</emphasis> is the package-type field. <para>The <replaceable>p</replaceable> is the package-type field.
The types are: The types are:
<informaltable frame="none"> <informaltable frame="none">
@ -13331,7 +13340,7 @@ INS8250 -&gt; INS8250B
</tgroup> </tgroup>
</informaltable></para> </informaltable></para>
<para>The "<emphasis>g</emphasis>" is the product grade field. <para>The <replaceable>g</replaceable> is the product grade field.
If an <literal>I</literal> precedes the package-type letter, it indicates an If an <literal>I</literal> precedes the package-type letter, it indicates an
<quote>industrial</quote> grade part, which has higher specs than a <quote>industrial</quote> grade part, which has higher specs than a
standard part but not as high as Military Specification standard part but not as high as Military Specification
@ -13370,7 +13379,7 @@ INS8250 -&gt; INS8250B
market comparisons even though the effective performance may market comparisons even though the effective performance may
be lowered by this action.</para> be lowered by this action.</para>
<para>A common misconception is that all parts with <QUOTE>16550A</QUOTE> <para>A common misconception is that all parts with <quote>16550A</quote>
written on them are identical in performance. There are written on them are identical in performance. There are
differences, and in some cases, outright flaws in most of differences, and in some cases, outright flaws in most of
these 16550A clones.</para> these 16550A clones.</para>
@ -13401,7 +13410,7 @@ INS8250 -&gt; INS8250B
components.</para> components.</para>
<para>National Semiconductor has made available a program named <para>National Semiconductor has made available a program named
COMTEST that performs compatibility tests independent of any <application>COMTEST</application> that performs compatibility tests independent of any
OS drivers. It should be remembered that the purpose of this OS drivers. It should be remembered that the purpose of this
type of program is to demonstrate the flaws in the products of type of program is to demonstrate the flaws in the products of
the competition, so the program will report major as well as the competition, so the program will report major as well as
@ -13568,7 +13577,7 @@ INS8250 -&gt; INS8250B
<para>A description of the I/O ports of the 8250/16450/16550 <para>A description of the I/O ports of the 8250/16450/16550
UART is provided below.</para> UART is provided below.</para>
<informaltable> <informaltable frame="none">
<tgroup cols="3"> <tgroup cols="3">
<thead> <thead>
<row> <row>
@ -14328,7 +14337,7 @@ INS8250 -&gt; INS8250B
operating systems do not support features beyond those operating systems do not support features beyond those
provided by the 16550.</para> provided by the 16550.</para>
<para>
<variablelist> <variablelist>
<varlistentry><term>ST16650</term> <varlistentry><term>ST16650</term>
<listitem> <listitem>
@ -14358,7 +14367,7 @@ INS8250 -&gt; INS8250B
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
<para>In addition to these <quote>dumb</quote> UARTs, many vendors produce <para>In addition to these <quote>dumb</quote> UARTs, many vendors produce
intelligent serial communication boards. This type of design intelligent serial communication boards. This type of design
@ -14425,7 +14434,7 @@ device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
are pretty straightforward, but you will need a couple things are pretty straightforward, but you will need a couple things
to make it work:</para> to make it work:</para>
<para>
<orderedlist> <orderedlist>
<listitem> <listitem>
@ -14444,7 +14453,7 @@ device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
</listitem> </listitem>
</orderedlist> </orderedlist>
</para>
<para>One important note - the actual UART chips for the Boca 16 <para>One important note - the actual UART chips for the Boca 16
are in the connector box, not on the internal board itself. So are in the connector box, not on the internal board itself. So
@ -14479,7 +14488,7 @@ options COM_MULTIPORT
to why.) The following example is for a Boca Board with to why.) The following example is for a Boca Board with
an interrupt of 3, and a base IO address 100h. The IO an interrupt of 3, and a base IO address 100h. The IO
address for Each port is +8 hexadecimal from the address for Each port is +8 hexadecimal from the
previous port, thus the 100h, 108h, 110h... addresses. previous port, thus the 100h, 108h, 110h... addresses.</para>
<programlisting> <programlisting>
device sio1 at isa? port 0x100 tty flags 0x1005 device sio1 at isa? port 0x100 tty flags 0x1005
@ -14489,10 +14498,12 @@ device sio4 at isa? port 0x118 tty flags 0x1005
&hellip; &hellip;
device sio15 at isa? port 0x170 tty flags 0x1005 device sio15 at isa? port 0x170 tty flags 0x1005
device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr
</programlisting> The flags entry </programlisting>
<para>The flags entry
<emphasis>must</emphasis> be changed from this example <emphasis>must</emphasis> be changed from this example
unless you are using the exact same sio assignments. unless you are using the exact same sio assignments.
Flags are set according to 0x<option><replaceable>M</replaceable><replaceable>YY</replaceable></option> Flags are set according to 0x<replaceable>M</replaceable><replaceable>YY</replaceable>
where <replaceable>M</replaceable> indicates the minor number where <replaceable>M</replaceable> indicates the minor number
of the master port (the last port on a Boca 16) and of the master port (the last port on a Boca 16) and
<replaceable>YY</replaceable> indicates if FIFO is enabled or <replaceable>YY</replaceable> indicates if FIFO is enabled or
@ -14517,7 +14528,7 @@ flags 0x1005
set to the correct address and IRQ, your boot message set to the correct address and IRQ, your boot message
should indicate the successful probe of the Boca ports should indicate the successful probe of the Boca ports
as follows: (obviously the sio numbers, IO and IRQ could as follows: (obviously the sio numbers, IO and IRQ could
be different) be different)</para>
<informalexample> <informalexample>
<screen>sio1 at 0x100-0x107 flags 0x1005 on isa <screen>sio1 at 0x100-0x107 flags 0x1005 on isa
@ -14552,7 +14563,9 @@ sio15 at 0x170-0x177 flags 0x1005 on isa
sio15: type 16550A (multiport) sio15: type 16550A (multiport)
sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
sio16: type 16550A (multiport master)</screen> sio16: type 16550A (multiport master)</screen>
</informalexample> If the messages go by too fast to </informalexample>
<para>If the messages go by too fast to
see, see,
<informalexample> <informalexample>
@ -14565,7 +14578,8 @@ sio16: type 16550A (multiport master)</screen>
<para>Next, appropriate entries in <para>Next, appropriate entries in
<filename>/dev</filename> for the devices must be made <filename>/dev</filename> for the devices must be made
using the <filename>/dev/MAKEDEV</filename> script. using the <filename>/dev/MAKEDEV</filename> script.
After becoming root: After becoming root:</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>cd /dev</userinput> <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV tty1</userinput> &prompt.root; <userinput>./MAKEDEV tty1</userinput>
@ -14573,7 +14587,9 @@ sio16: type 16550A (multiport master)</screen>
<emphasis>(everything in between)</emphasis> <emphasis>(everything in between)</emphasis>
&prompt.root; <userinput>./MAKEDEV ttyg</userinput> &prompt.root; <userinput>./MAKEDEV ttyg</userinput>
&prompt.root; <userinput>./MAKEDEV cuag</userinput></screen> &prompt.root; <userinput>./MAKEDEV cuag</userinput></screen>
</informalexample> If you do not want or need callout </informalexample>
<para>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 <filename>cua*</filename> devices.</para> the <filename>cua*</filename> devices.</para>
</step> </step>
@ -14638,7 +14654,7 @@ device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr
<para>If appropriate, add <xref linkend="dialup" <para>If appropriate, add <xref linkend="dialup"
remap="dialup"> entries to <xref linkend="dialup-ttys" remap="dialup"> entries to <xref linkend="dialup-ttys"
remap="/etc/ttys"> remap="/etc/ttys">
by duplicating serial device (<literal>ttyd</literal>) entries and using <literal>ttyc</literal> in place of <literal>ttyd</literal>. For example: by duplicating serial device (<literal>ttyd</literal>) entries and using <literal>ttyc</literal> in place of <literal>ttyd</literal>. For example:</para>
<programlisting> <programlisting>
ttyc0 "/usr/libexec/getty std.38400" unknown on insecure ttyc0 "/usr/libexec/getty std.38400" unknown on insecure
@ -14646,7 +14662,7 @@ ttyc1 "/usr/libexec/getty std.38400" unknown on insecure
ttyc2 "/usr/libexec/getty std.38400" unknown on insecure ttyc2 "/usr/libexec/getty std.38400" unknown on insecure
&hellip; &hellip;
ttyc7 "/usr/libexec/getty std.38400" unknown on insecure ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
</programlisting></para> </programlisting>
</step> </step>
<step> <step>
@ -14815,8 +14831,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>It is not hard to imagine that 15 Mbits/second drive cause <para>It is not hard to imagine that 15 Mbits/second drive cause
problems on controllers laid out for 10 Mbits/second. As problems on controllers laid out for 10 Mbits/second. As
always, consult your controller <emphasis always, consult your controller <emphasis>and</emphasis> drive documentation to see if
remap=it>and</emphasis> drive documentation to see if
things match.</para> things match.</para>
</sect4> </sect4>
@ -14935,10 +14950,12 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
usually have a user-defined drive type (in most cases this is usually have a user-defined drive type (in most cases this is
drive type 47).</para> drive type 47).</para>
<para><emphasis>Whatever you do to translations after reading <warning>
<para>Whatever you do to translations after reading
this document, keep in mind that if you have multiple this document, keep in mind that if you have multiple
operating systems on the same disk, all must use the same operating systems on the same disk, all must use the same
translation</emphasis></para> translation</para>
</warning>
<para>While on the subject of translations, I have seen one <para>While on the subject of translations, I have seen one
controller type (but there are probably more like this) offer controller type (but there are probably more like this) offer
@ -14965,9 +14982,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
operating system sees a 'perfect' disk without bad sectors. In operating system sees a 'perfect' disk without bad sectors. In
the case of FreeBSD this concept is not usable.</para> the case of FreeBSD this concept is not usable.</para>
<para>The problem is that the translation from <emphasis <para>The problem is that the translation from <emphasis>bad</emphasis> to <emphasis>good</emphasis> is performed by the BIOS of the
remap=it>bad</emphasis> to <emphasis
remap=it>good</emphasis> is performed by the BIOS of the
ESDI controller. FreeBSD, being a true 32 bit operating ESDI controller. FreeBSD, being a true 32 bit operating
system, does not use the BIOS after it has been booted. system, does not use the BIOS after it has been booted.
Instead, it has device drivers that talk directly to the Instead, it has device drivers that talk directly to the
@ -14986,8 +15001,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>The preceding section leaves us with a problem. The <para>The preceding section leaves us with a problem. The
controller's bad block handling is not usable and still controller's bad block handling is not usable and still
FreeBSD's filesystems assume perfect media without any flaws. FreeBSD's filesystems assume perfect media without any flaws.
To solve this problem, FreeBSD use the <emphasis To solve this problem, FreeBSD use the <command>bad144</command> tool. Bad144 (named after a
remap=it>bad144</emphasis> tool. Bad144 (named after a
Digital Equipment standard for bad block handling) scans a Digital Equipment standard for bad block handling) scans a
FreeBSD slice for bad blocks. Having found these bad blocks, FreeBSD slice for bad blocks. Having found these bad blocks,
it writes a table with the offending block numbers to the end it writes a table with the offending block numbers to the end
@ -14995,13 +15009,13 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>When the disk is in operation, the disk accesses are <para>When the disk is in operation, the disk accesses are
checked against the table read from the disk. Whenever a checked against the table read from the disk. Whenever a
block number is requested that is in the bad144 list, a block number is requested that is in the <command>bad144</command> list, a
replacement block (also from the end of the FreeBSD slice) is replacement block (also from the end of the FreeBSD slice) is
used. In this way, the bad144 replacement scheme presents used. In this way, the <command>bad144</command> replacement scheme presents
'perfect' media to the FreeBSD filesystems.</para> 'perfect' media to the FreeBSD filesystems.</para>
<para>There are a number of potential pitfalls associated with <para>There are a number of potential pitfalls associated with
the use of bad144. First of all, the slice cannot have more the use of <command>bad144</command>. First of all, the slice cannot have more
than 126 bad sectors. If your drive has a high number of bad than 126 bad sectors. If your drive has a high number of bad
sectors, you might need to divide it into multiple FreeBSD sectors, you might need to divide it into multiple FreeBSD
slices each containing less than 126 bad sectors. Stay away slices each containing less than 126 bad sectors. Stay away
@ -15029,9 +15043,8 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<sect4> <sect4>
<title>Kernel configuration</title> <title>Kernel configuration</title>
<para>ESDI disks are handled by the same <emphasis <para>ESDI disks are handled by the same <literal>wd</literal>driver as IDE and ST412 MFM disks. The
remap=it>wd</emphasis>driver as IDE and ST412 MFM disks. The <literal>wd</literal> driver should work for all
<emphasis remap=it>wd</emphasis> driver should work for all
WD1003 compatible interfaces.</para> WD1003 compatible interfaces.</para>
<para>Most hardware is jumperable for one of two different I/O <para>Most hardware is jumperable for one of two different I/O
@ -15069,25 +15082,25 @@ disk wd3 at wdc1 drive 1
controlled by a ACB-2320. No other operating system was controlled by a ACB-2320. No other operating system was
present on the disk.</para> present on the disk.</para>
<para>To do so I low level formatted the disk using NEFMT.EXE <para>To do so I low level formatted the disk using <command>NEFMT.EXE</command>
(<emphasis remap=it>ftp</emphasis>able from (<command>ftp</command>able from
<filename>www.adaptec.com</filename>) and answered NO to the <hostid role="fqdn">www.adaptec.com</hostid>) and answered NO to the
question whether the disk should be formatted with a spare question whether the disk should be formatted with a spare
sector on each track. The BIOS on the ACD-2320 was disabled. I sector on each track. The BIOS on the ACD-2320 was disabled. I
used the 'free configurable' option in the system BIOS to used the <literal>free configurable</literal> option in the system BIOS to
allow the BIOS to boot it.</para> allow the BIOS to boot it.</para>
<para>Before using NEFMT.EXE I tried to format the disk using <para>Before using <command>NEFMT.EXE</command> I tried to format the disk using
the ACB-2320 BIOS builtin formatter. This proved to be a show the ACB-2320 BIOS builtin formatter. This proved to be a show
stopper, because it did not give me an option to disable spare stopper, because it did not give me an option to disable spare
sectoring. With spare sectoring enabled the FreeBSD sectoring. With spare sectoring enabled the FreeBSD
installation process broke down on the bad144 run.</para> installation process broke down on the <command>bad144</command> run.</para>
<para>Please check carefully which ACB-232xy variant you have. <para>Please check carefully which ACB-232<replaceable>xy</replaceable> variant you have.
The x is either 0 or 2, indicating a controller without or The <replaceable>x</replaceable> is either <literal>0</literal> or <literal>2</literal>, indicating a controller without or
with a floppy controller on board.</para> with a floppy controller on board.</para>
<para>The y is more interesting. It can either be a blank, a <para>The <literal>y</literal> is more interesting. It can either be a blank, a
<literal>A-8</literal> or a <literal>D</literal>. A blank indicates a plain 10 Mbits/second <literal>A-8</literal> or a <literal>D</literal>. A blank indicates a plain 10 Mbits/second
controller. An <literal>A-8</literal> indicates a 15 Mbits/second controller controller. An <literal>A-8</literal> indicates a 15 Mbits/second controller
capable of handling 52 sectors/track. A <literal>D</literal> means a 15 capable of handling 52 sectors/track. A <literal>D</literal> means a 15
@ -15110,7 +15123,7 @@ disk wd3 at wdc1 drive 1
<para>To get it to work, I had to disable the sector translation <para>To get it to work, I had to disable the sector translation
and the WD1007's onboard BIOS. This implied I could not use and the WD1007's onboard BIOS. This implied I could not use
the low-level formatter built into this BIOS. Instead, I the low-level formatter built into this BIOS. Instead, I
grabbed WDFMT.EXE from www.wdc.com Running this formatted my grabbed <command>WDFMT.EXE</command> from <hostid role="fqdn">www.wdc.com</hostid> Running this formatted my
drive just fine.</para> drive just fine.</para>
</sect4> </sect4>
@ -28067,7 +28080,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Date created: 5 December 1994 # Date created: 5 December 1994
# Whom: asami # Whom: asami
# #
# $Id: book.sgml,v 1.38 1998-10-21 22:00:19 nik Exp $ # $Id: book.sgml,v 1.39 1998-10-21 22:02:39 nik Exp $
# #
DISTNAME= oneko-1.1b DISTNAME= oneko-1.1b

View file

@ -11512,11 +11512,13 @@ total 337.00 154 $ 6.74</screen>
<para>Before attempting to use disk quotas it is necessary to make <para>Before attempting to use disk quotas it is necessary to make
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:</para>
<programlisting> <programlisting>
options QUOTA options QUOTA
</programlisting> The </programlisting>
<para>The
stock <filename>GENERIC</filename> kernel does not have this enabled stock <filename>GENERIC</filename> kernel does not have this enabled
by default, so you will have to configure, build and install a by default, so you will have to configure, build and install a
custom kernel in order to use disk quotas. Please refer to the custom kernel in order to use disk quotas. Please refer to the
@ -11526,6 +11528,7 @@ options QUOTA
<para>Next you will need to enable disk quotas in <para>Next you will need to enable disk quotas in
<filename>/etc/sysconfig</filename>. This is done by changing the <filename>/etc/sysconfig</filename>. This is done by changing the
line: line:
<programlisting> <programlisting>
quotas=NO quotas=NO
</programlisting>to: </programlisting>to:
@ -11537,6 +11540,7 @@ quotas=YES
<para>If you are running FreeBSD 2.2.2 or later, the configuration <para>If you are running FreeBSD 2.2.2 or later, the configuration
file will be <filename>/etc/rc.conf</filename> instead and the file will be <filename>/etc/rc.conf</filename> instead and the
variable name changed to variable name changed to
<programlisting> <programlisting>
check_quotas=YES check_quotas=YES
</programlisting></para> </programlisting></para>
@ -11546,28 +11550,26 @@ check_quotas=YES
can either enable user or group quotas or both for all of your file can either enable user or group quotas or both for all of your file
systems.</para> systems.</para>
<para>To enable per-user quotas on a file system, add the <emphasis <para>To enable per-user quotas on a file system, add the <literal>userquota</literal> option to the options field in the
remap=tt>userquota</emphasis> option to the options field in the
<filename>/etc/fstab</filename> entry for the file system you want <filename>/etc/fstab</filename> entry for the file system you want
to to enable quotas on. For example: to to enable quotas on. For example:</para>
<programlisting> <programlisting>
/dev/sd1s2g /home ufs rw,userquota 1 2 /dev/sd1s2g /home ufs rw,userquota 1 2
</programlisting></para> </programlisting>
<para>Similarly, to enable group quotas, use the <emphasis <para>Similarly, to enable group quotas, use the
remap=tt>groupquota</emphasis> option instead of the <emphasis <literal>groupquota</literal> option instead of the <literal>userquota</literal> keyword. To enable both user and
remap=tt>userquota</emphasis> keyword. To enable both user and group quotas, change the entry as follows:</para>
group quotas, change the entry as follows:
<programlisting> <programlisting>
/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2 /dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
</programlisting></para> </programlisting>
<para>By default the quota files are stored in the root directory of <para>By default the quota files are stored in the root directory of
the file system with the names <filename>quota.user</filename> and the file system with the names <filename>quota.user</filename> and
<filename>quota.group</filename> for user and group quotas <filename>quota.group</filename> for user and group quotas
respectively. See <emphasis remap=tt>man fstab</emphasis> for more respectively. See <command>man fstab</command> for more
information. Even though that man page says that you can specify an information. Even though that man page says that you can specify an
alternate location for the quota files, this is not recommended alternate location for the quota files, this is not recommended
since all of the various quota utilities do not seem to handle this since all of the various quota utilities do not seem to handle this
@ -11590,12 +11592,13 @@ check_quotas=YES
<title>Setting Quota Limits</title> <title>Setting Quota Limits</title>
<para>Once you have configured your system to enable quotas, verify <para>Once you have configured your system to enable quotas, verify
that they really are enabled. An easy way to do this is to run that they really are enabled. An easy way to do this is to run</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>quota -v</userinput></screen> <screen>&prompt.root; <userinput>quota -v</userinput></screen>
</informalexample> </informalexample>
You should see a one line summary of
<para>You should see a one line summary of
disk usage and current quota limits for each file system that quotas disk usage and current quota limits for each file system that quotas
are enabled on.</para> are enabled on.</para>
@ -11630,7 +11633,7 @@ check_quotas=YES
placed into the editor specified by the <envar>EDITOR</envar> placed into the editor specified by the <envar>EDITOR</envar>
environment variable, or in the <command>vi</command> environment variable, or in the <command>vi</command>
editor if the <envar>EDITOR</envar> variable is not set, to editor if the <envar>EDITOR</envar> variable is not set, to
allow you to edit the quota limits. allow you to edit the quota limits.</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>edquota -u test</userinput></screen> <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
@ -11642,7 +11645,9 @@ Quotas for user test:
inodes in use: 7, limits (soft = 50, hard = 60) inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) /usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60) inodes in use: 0, limits (soft = 50, hard = 60)
</programlisting> You will </programlisting>
<para>You will
normally see two lines for each file system that has quotas enabled. normally see two lines for each file system that has quotas enabled.
One line for the block limits, and one line for inode limits. One line for the block limits, and one line for inode limits.
Simply change the value you want updated to modify the quota limit. Simply change the value you want updated to modify the quota limit.
@ -11656,7 +11661,9 @@ Quotas for user test:
<programlisting> <programlisting>
/usr: blocks in use: 65, limits (soft = 500, hard = 600) /usr: blocks in use: 65, limits (soft = 500, hard = 600)
</programlisting> The new </programlisting></para>
<para>The new
quota limits will be in place when you exit the editor.</para> quota limits will be in place when you exit the editor.</para>
<para>Sometimes it is desirable to set quota limits on a range of <para>Sometimes it is desirable to set quota limits on a range of
@ -11664,19 +11671,19 @@ Quotas for user test:
the <command>edquota</command> command. First, assign the <command>edquota</command> command. First, assign
the desired quota limit to a user, and then run <command>edquota -p the desired quota limit to a user, and then run <command>edquota -p
protouser startuid-enduid</command>. For example, if user protouser startuid-enduid</command>. For example, if user
<emphasis remap=tt>test</emphasis> has the desired quota limits, the <username>test</username> has the desired quota limits, the
following command can be used to duplicate those quota limits for following command can be used to duplicate those quota limits for
uids 10,000 through 19,999: uids 10,000 through 19,999:</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen> <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
</informalexample></para> </informalexample>
<para>The ability to specify uid ranges was added to the system after <para>The ability to specify uid ranges was added to the system after
2.1 was released. If you need this feature on a 2.1 system, you 2.1 was released. If you need this feature on a 2.1 system, you
will need to obtain a newer copy of edquota.</para> will need to obtain a newer copy of edquota.</para>
<para>See <emphasis remap=tt>man edquota</emphasis> for more detailed <para>See <command>man edquota</command> for more detailed
information.</para> information.</para>
</sect1> </sect1>
@ -11698,14 +11705,17 @@ Quotas for user test:
-v</command> command for a user that has quota limits on two file -v</command> command for a user that has quota limits on two file
systems.</para> systems.</para>
<para>
<programlisting>Disk quotas for user test (uid 1002): <programlisting>
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60 /usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60 /usr/var 0 50 75 0 50 60
</programlisting> On the /usr file system in the above example this </programlisting>
<para>On the <filename>/usr</filename> file system in the above example this
user is currently 15 blocks over their soft limit of 50 blocks and user is currently 15 blocks over their soft limit of 50 blocks and
has 5 days of their grace period left. Note the asterisk (*) which has 5 days of their grace period left. Note the asterisk <literal>*</literal> which
indicates that the user is currently over their quota limit.</para> indicates that the user is currently over their quota limit.</para>
<para>Normally file systems that the user is not using any disk space <para>Normally file systems that the user is not using any disk space
@ -12096,7 +12106,7 @@ Quotas for user test:
various types of known-brokenness and the degree of breakage, various types of known-brokenness and the degree of breakage,
listed from worst to best.</para> listed from worst to best.</para>
<para>
<variablelist> <variablelist>
<varlistentry><term>Mercury:</term> <varlistentry><term>Mercury:</term>
<listitem> <listitem>
@ -12183,7 +12193,7 @@ Quotas for user test:
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect3> </sect3>
</sect2> </sect2>
@ -12214,8 +12224,7 @@ Quotas for user test:
Cyrix/IBM 6x86MX processors are all reported to work with Cyrix/IBM 6x86MX processors are all reported to work with
FreeBSD. I will not go into details of which processor is FreeBSD. I will not go into details of which processor is
faster than what, there are zillions of web sites on the faster than what, there are zillions of web sites on the
Internet that tells you one way or another. <emphasis Internet that tells you one way or another. <!-- smiley --><emphasis>:)</emphasis></para>
remap=tt>:)</emphasis></para>
<note> <note>
<para>Various CPUs have different voltage/cooling requirements. <para>Various CPUs have different voltage/cooling requirements.
@ -12410,7 +12419,7 @@ Quotas for user test:
<para>The minimum amount of memory you must have to install FreeBSD <para>The minimum amount of memory you must have to install FreeBSD
is 5 MB. Once your system is up and running you can <xref is 5 MB. Once your system is up and running you can <xref
linkend="kernelconfig-building" remap="build a custom kernel"> linkend="kernelconfig-building" remap="build a custom kernel">
that will use less memory. If you use the boot4.flp you can get that will use less memory. If you use the <filename>boot4.flp</filename> you can get
away with having only 4 MB.</para> away with having only 4 MB.</para>
</sect2> </sect2>
@ -12616,7 +12625,7 @@ Quotas for user test:
<para>In RS232-C, a value of <literal>1</literal> is called a <literal>Mark</literal> and a <para>In RS232-C, a value of <literal>1</literal> is called a <literal>Mark</literal> and a
value of <literal>0</literal> is called a <literal>Space</literal>. When a communication line value of <literal>0</literal> is called a <literal>Space</literal>. When a communication line
is idle, the line is said to be "Marking", or transmitting is idle, the line is said to be <quote>Marking</quote>, or transmitting
continuous <literal>1</literal> values.</para> continuous <literal>1</literal> values.</para>
<para>The Start bit always has a value of <literal>0</literal> (a Space). The <para>The Start bit always has a value of <literal>0</literal> (a Space). The
@ -13147,7 +13156,7 @@ INS8250 -&gt; INS8250B
\-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D \-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D
</programlisting> </programlisting>
<para>
<variablelist> <variablelist>
<varlistentry><term>INS8250</term> <varlistentry><term>INS8250</term>
<listitem> <listitem>
@ -13255,7 +13264,7 @@ INS8250 -&gt; INS8250B
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
</sect5> </sect5>
@ -13295,15 +13304,15 @@ INS8250 -&gt; INS8250B
<sect5> <sect5>
<title>National Semiconductor Part Numbering System</title> <title>National Semiconductor Part Numbering System</title>
<para>The older NS<emphasis>nnnnnrqp</emphasis> part numbers <para>The older NS<replaceable>nnnnnrqp</replaceable> part numbers
are now of the format are now of the format
PC<emphasis>nnnnnrgp</emphasis>.</para> PC<replaceable>nnnnnrgp</replaceable>.</para>
<para>The <emphasis>r</emphasis> is the revision field. The <para>The <replaceable>r</replaceable> is the revision field. The
current revision of the 16550 from National Semiconductor is current revision of the 16550 from National Semiconductor is
<literal>D</literal>.</para> <literal>D</literal>.</para>
<para>The <emphasis>p</emphasis> is the package-type field. <para>The <replaceable>p</replaceable> is the package-type field.
The types are: The types are:
<informaltable frame="none"> <informaltable frame="none">
@ -13331,7 +13340,7 @@ INS8250 -&gt; INS8250B
</tgroup> </tgroup>
</informaltable></para> </informaltable></para>
<para>The "<emphasis>g</emphasis>" is the product grade field. <para>The <replaceable>g</replaceable> is the product grade field.
If an <literal>I</literal> precedes the package-type letter, it indicates an If an <literal>I</literal> precedes the package-type letter, it indicates an
<quote>industrial</quote> grade part, which has higher specs than a <quote>industrial</quote> grade part, which has higher specs than a
standard part but not as high as Military Specification standard part but not as high as Military Specification
@ -13370,7 +13379,7 @@ INS8250 -&gt; INS8250B
market comparisons even though the effective performance may market comparisons even though the effective performance may
be lowered by this action.</para> be lowered by this action.</para>
<para>A common misconception is that all parts with <QUOTE>16550A</QUOTE> <para>A common misconception is that all parts with <quote>16550A</quote>
written on them are identical in performance. There are written on them are identical in performance. There are
differences, and in some cases, outright flaws in most of differences, and in some cases, outright flaws in most of
these 16550A clones.</para> these 16550A clones.</para>
@ -13401,7 +13410,7 @@ INS8250 -&gt; INS8250B
components.</para> components.</para>
<para>National Semiconductor has made available a program named <para>National Semiconductor has made available a program named
COMTEST that performs compatibility tests independent of any <application>COMTEST</application> that performs compatibility tests independent of any
OS drivers. It should be remembered that the purpose of this OS drivers. It should be remembered that the purpose of this
type of program is to demonstrate the flaws in the products of type of program is to demonstrate the flaws in the products of
the competition, so the program will report major as well as the competition, so the program will report major as well as
@ -13568,7 +13577,7 @@ INS8250 -&gt; INS8250B
<para>A description of the I/O ports of the 8250/16450/16550 <para>A description of the I/O ports of the 8250/16450/16550
UART is provided below.</para> UART is provided below.</para>
<informaltable> <informaltable frame="none">
<tgroup cols="3"> <tgroup cols="3">
<thead> <thead>
<row> <row>
@ -14328,7 +14337,7 @@ INS8250 -&gt; INS8250B
operating systems do not support features beyond those operating systems do not support features beyond those
provided by the 16550.</para> provided by the 16550.</para>
<para>
<variablelist> <variablelist>
<varlistentry><term>ST16650</term> <varlistentry><term>ST16650</term>
<listitem> <listitem>
@ -14358,7 +14367,7 @@ INS8250 -&gt; INS8250B
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para>
<para>In addition to these <quote>dumb</quote> UARTs, many vendors produce <para>In addition to these <quote>dumb</quote> UARTs, many vendors produce
intelligent serial communication boards. This type of design intelligent serial communication boards. This type of design
@ -14425,7 +14434,7 @@ device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
are pretty straightforward, but you will need a couple things are pretty straightforward, but you will need a couple things
to make it work:</para> to make it work:</para>
<para>
<orderedlist> <orderedlist>
<listitem> <listitem>
@ -14444,7 +14453,7 @@ device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
</listitem> </listitem>
</orderedlist> </orderedlist>
</para>
<para>One important note - the actual UART chips for the Boca 16 <para>One important note - the actual UART chips for the Boca 16
are in the connector box, not on the internal board itself. So are in the connector box, not on the internal board itself. So
@ -14479,7 +14488,7 @@ options COM_MULTIPORT
to why.) The following example is for a Boca Board with to why.) The following example is for a Boca Board with
an interrupt of 3, and a base IO address 100h. The IO an interrupt of 3, and a base IO address 100h. The IO
address for Each port is +8 hexadecimal from the address for Each port is +8 hexadecimal from the
previous port, thus the 100h, 108h, 110h... addresses. previous port, thus the 100h, 108h, 110h... addresses.</para>
<programlisting> <programlisting>
device sio1 at isa? port 0x100 tty flags 0x1005 device sio1 at isa? port 0x100 tty flags 0x1005
@ -14489,10 +14498,12 @@ device sio4 at isa? port 0x118 tty flags 0x1005
&hellip; &hellip;
device sio15 at isa? port 0x170 tty flags 0x1005 device sio15 at isa? port 0x170 tty flags 0x1005
device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr
</programlisting> The flags entry </programlisting>
<para>The flags entry
<emphasis>must</emphasis> be changed from this example <emphasis>must</emphasis> be changed from this example
unless you are using the exact same sio assignments. unless you are using the exact same sio assignments.
Flags are set according to 0x<option><replaceable>M</replaceable><replaceable>YY</replaceable></option> Flags are set according to 0x<replaceable>M</replaceable><replaceable>YY</replaceable>
where <replaceable>M</replaceable> indicates the minor number where <replaceable>M</replaceable> indicates the minor number
of the master port (the last port on a Boca 16) and of the master port (the last port on a Boca 16) and
<replaceable>YY</replaceable> indicates if FIFO is enabled or <replaceable>YY</replaceable> indicates if FIFO is enabled or
@ -14517,7 +14528,7 @@ flags 0x1005
set to the correct address and IRQ, your boot message set to the correct address and IRQ, your boot message
should indicate the successful probe of the Boca ports should indicate the successful probe of the Boca ports
as follows: (obviously the sio numbers, IO and IRQ could as follows: (obviously the sio numbers, IO and IRQ could
be different) be different)</para>
<informalexample> <informalexample>
<screen>sio1 at 0x100-0x107 flags 0x1005 on isa <screen>sio1 at 0x100-0x107 flags 0x1005 on isa
@ -14552,7 +14563,9 @@ sio15 at 0x170-0x177 flags 0x1005 on isa
sio15: type 16550A (multiport) sio15: type 16550A (multiport)
sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
sio16: type 16550A (multiport master)</screen> sio16: type 16550A (multiport master)</screen>
</informalexample> If the messages go by too fast to </informalexample>
<para>If the messages go by too fast to
see, see,
<informalexample> <informalexample>
@ -14565,7 +14578,8 @@ sio16: type 16550A (multiport master)</screen>
<para>Next, appropriate entries in <para>Next, appropriate entries in
<filename>/dev</filename> for the devices must be made <filename>/dev</filename> for the devices must be made
using the <filename>/dev/MAKEDEV</filename> script. using the <filename>/dev/MAKEDEV</filename> script.
After becoming root: After becoming root:</para>
<informalexample> <informalexample>
<screen>&prompt.root; <userinput>cd /dev</userinput> <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV tty1</userinput> &prompt.root; <userinput>./MAKEDEV tty1</userinput>
@ -14573,7 +14587,9 @@ sio16: type 16550A (multiport master)</screen>
<emphasis>(everything in between)</emphasis> <emphasis>(everything in between)</emphasis>
&prompt.root; <userinput>./MAKEDEV ttyg</userinput> &prompt.root; <userinput>./MAKEDEV ttyg</userinput>
&prompt.root; <userinput>./MAKEDEV cuag</userinput></screen> &prompt.root; <userinput>./MAKEDEV cuag</userinput></screen>
</informalexample> If you do not want or need callout </informalexample>
<para>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 <filename>cua*</filename> devices.</para> the <filename>cua*</filename> devices.</para>
</step> </step>
@ -14638,7 +14654,7 @@ device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr
<para>If appropriate, add <xref linkend="dialup" <para>If appropriate, add <xref linkend="dialup"
remap="dialup"> entries to <xref linkend="dialup-ttys" remap="dialup"> entries to <xref linkend="dialup-ttys"
remap="/etc/ttys"> remap="/etc/ttys">
by duplicating serial device (<literal>ttyd</literal>) entries and using <literal>ttyc</literal> in place of <literal>ttyd</literal>. For example: by duplicating serial device (<literal>ttyd</literal>) entries and using <literal>ttyc</literal> in place of <literal>ttyd</literal>. For example:</para>
<programlisting> <programlisting>
ttyc0 "/usr/libexec/getty std.38400" unknown on insecure ttyc0 "/usr/libexec/getty std.38400" unknown on insecure
@ -14646,7 +14662,7 @@ ttyc1 "/usr/libexec/getty std.38400" unknown on insecure
ttyc2 "/usr/libexec/getty std.38400" unknown on insecure ttyc2 "/usr/libexec/getty std.38400" unknown on insecure
&hellip; &hellip;
ttyc7 "/usr/libexec/getty std.38400" unknown on insecure ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
</programlisting></para> </programlisting>
</step> </step>
<step> <step>
@ -14815,8 +14831,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>It is not hard to imagine that 15 Mbits/second drive cause <para>It is not hard to imagine that 15 Mbits/second drive cause
problems on controllers laid out for 10 Mbits/second. As problems on controllers laid out for 10 Mbits/second. As
always, consult your controller <emphasis always, consult your controller <emphasis>and</emphasis> drive documentation to see if
remap=it>and</emphasis> drive documentation to see if
things match.</para> things match.</para>
</sect4> </sect4>
@ -14935,10 +14950,12 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
usually have a user-defined drive type (in most cases this is usually have a user-defined drive type (in most cases this is
drive type 47).</para> drive type 47).</para>
<para><emphasis>Whatever you do to translations after reading <warning>
<para>Whatever you do to translations after reading
this document, keep in mind that if you have multiple this document, keep in mind that if you have multiple
operating systems on the same disk, all must use the same operating systems on the same disk, all must use the same
translation</emphasis></para> translation</para>
</warning>
<para>While on the subject of translations, I have seen one <para>While on the subject of translations, I have seen one
controller type (but there are probably more like this) offer controller type (but there are probably more like this) offer
@ -14965,9 +14982,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
operating system sees a 'perfect' disk without bad sectors. In operating system sees a 'perfect' disk without bad sectors. In
the case of FreeBSD this concept is not usable.</para> the case of FreeBSD this concept is not usable.</para>
<para>The problem is that the translation from <emphasis <para>The problem is that the translation from <emphasis>bad</emphasis> to <emphasis>good</emphasis> is performed by the BIOS of the
remap=it>bad</emphasis> to <emphasis
remap=it>good</emphasis> is performed by the BIOS of the
ESDI controller. FreeBSD, being a true 32 bit operating ESDI controller. FreeBSD, being a true 32 bit operating
system, does not use the BIOS after it has been booted. system, does not use the BIOS after it has been booted.
Instead, it has device drivers that talk directly to the Instead, it has device drivers that talk directly to the
@ -14986,8 +15001,7 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>The preceding section leaves us with a problem. The <para>The preceding section leaves us with a problem. The
controller's bad block handling is not usable and still controller's bad block handling is not usable and still
FreeBSD's filesystems assume perfect media without any flaws. FreeBSD's filesystems assume perfect media without any flaws.
To solve this problem, FreeBSD use the <emphasis To solve this problem, FreeBSD use the <command>bad144</command> tool. Bad144 (named after a
remap=it>bad144</emphasis> tool. Bad144 (named after a
Digital Equipment standard for bad block handling) scans a Digital Equipment standard for bad block handling) scans a
FreeBSD slice for bad blocks. Having found these bad blocks, FreeBSD slice for bad blocks. Having found these bad blocks,
it writes a table with the offending block numbers to the end it writes a table with the offending block numbers to the end
@ -14995,13 +15009,13 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<para>When the disk is in operation, the disk accesses are <para>When the disk is in operation, the disk accesses are
checked against the table read from the disk. Whenever a checked against the table read from the disk. Whenever a
block number is requested that is in the bad144 list, a block number is requested that is in the <command>bad144</command> list, a
replacement block (also from the end of the FreeBSD slice) is replacement block (also from the end of the FreeBSD slice) is
used. In this way, the bad144 replacement scheme presents used. In this way, the <command>bad144</command> replacement scheme presents
'perfect' media to the FreeBSD filesystems.</para> 'perfect' media to the FreeBSD filesystems.</para>
<para>There are a number of potential pitfalls associated with <para>There are a number of potential pitfalls associated with
the use of bad144. First of all, the slice cannot have more the use of <command>bad144</command>. First of all, the slice cannot have more
than 126 bad sectors. If your drive has a high number of bad than 126 bad sectors. If your drive has a high number of bad
sectors, you might need to divide it into multiple FreeBSD sectors, you might need to divide it into multiple FreeBSD
slices each containing less than 126 bad sectors. Stay away slices each containing less than 126 bad sectors. Stay away
@ -15029,9 +15043,8 @@ ttyc7 "/usr/libexec/getty std.38400" unknown on insecure
<sect4> <sect4>
<title>Kernel configuration</title> <title>Kernel configuration</title>
<para>ESDI disks are handled by the same <emphasis <para>ESDI disks are handled by the same <literal>wd</literal>driver as IDE and ST412 MFM disks. The
remap=it>wd</emphasis>driver as IDE and ST412 MFM disks. The <literal>wd</literal> driver should work for all
<emphasis remap=it>wd</emphasis> driver should work for all
WD1003 compatible interfaces.</para> WD1003 compatible interfaces.</para>
<para>Most hardware is jumperable for one of two different I/O <para>Most hardware is jumperable for one of two different I/O
@ -15069,25 +15082,25 @@ disk wd3 at wdc1 drive 1
controlled by a ACB-2320. No other operating system was controlled by a ACB-2320. No other operating system was
present on the disk.</para> present on the disk.</para>
<para>To do so I low level formatted the disk using NEFMT.EXE <para>To do so I low level formatted the disk using <command>NEFMT.EXE</command>
(<emphasis remap=it>ftp</emphasis>able from (<command>ftp</command>able from
<filename>www.adaptec.com</filename>) and answered NO to the <hostid role="fqdn">www.adaptec.com</hostid>) and answered NO to the
question whether the disk should be formatted with a spare question whether the disk should be formatted with a spare
sector on each track. The BIOS on the ACD-2320 was disabled. I sector on each track. The BIOS on the ACD-2320 was disabled. I
used the 'free configurable' option in the system BIOS to used the <literal>free configurable</literal> option in the system BIOS to
allow the BIOS to boot it.</para> allow the BIOS to boot it.</para>
<para>Before using NEFMT.EXE I tried to format the disk using <para>Before using <command>NEFMT.EXE</command> I tried to format the disk using
the ACB-2320 BIOS builtin formatter. This proved to be a show the ACB-2320 BIOS builtin formatter. This proved to be a show
stopper, because it did not give me an option to disable spare stopper, because it did not give me an option to disable spare
sectoring. With spare sectoring enabled the FreeBSD sectoring. With spare sectoring enabled the FreeBSD
installation process broke down on the bad144 run.</para> installation process broke down on the <command>bad144</command> run.</para>
<para>Please check carefully which ACB-232xy variant you have. <para>Please check carefully which ACB-232<replaceable>xy</replaceable> variant you have.
The x is either 0 or 2, indicating a controller without or The <replaceable>x</replaceable> is either <literal>0</literal> or <literal>2</literal>, indicating a controller without or
with a floppy controller on board.</para> with a floppy controller on board.</para>
<para>The y is more interesting. It can either be a blank, a <para>The <literal>y</literal> is more interesting. It can either be a blank, a
<literal>A-8</literal> or a <literal>D</literal>. A blank indicates a plain 10 Mbits/second <literal>A-8</literal> or a <literal>D</literal>. A blank indicates a plain 10 Mbits/second
controller. An <literal>A-8</literal> indicates a 15 Mbits/second controller controller. An <literal>A-8</literal> indicates a 15 Mbits/second controller
capable of handling 52 sectors/track. A <literal>D</literal> means a 15 capable of handling 52 sectors/track. A <literal>D</literal> means a 15
@ -15110,7 +15123,7 @@ disk wd3 at wdc1 drive 1
<para>To get it to work, I had to disable the sector translation <para>To get it to work, I had to disable the sector translation
and the WD1007's onboard BIOS. This implied I could not use and the WD1007's onboard BIOS. This implied I could not use
the low-level formatter built into this BIOS. Instead, I the low-level formatter built into this BIOS. Instead, I
grabbed WDFMT.EXE from www.wdc.com Running this formatted my grabbed <command>WDFMT.EXE</command> from <hostid role="fqdn">www.wdc.com</hostid> Running this formatted my
drive just fine.</para> drive just fine.</para>
</sect4> </sect4>
@ -28067,7 +28080,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Date created: 5 December 1994 # Date created: 5 December 1994
# Whom: asami # Whom: asami
# #
# $Id: book.sgml,v 1.38 1998-10-21 22:00:19 nik Exp $ # $Id: book.sgml,v 1.39 1998-10-21 22:02:39 nik Exp $
# #
DISTNAME= oneko-1.1b DISTNAME= oneko-1.1b