Bring 2.1 changes back into the head.
This commit is contained in:
parent
2621436e46
commit
4a8644e9a3
@ -1,105 +1,511 @@
|
||||
<!-- $Id$ -->
|
||||
<!-- $Id: dma.sgml,v 1.1.2.2 1995/11/01 16:40:14 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<sect><heading>PC DMA<label id="dma"></heading>
|
||||
<!--
|
||||
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
|
||||
|
||||
<p><em>Contributed by &a.uhclem;.<newline>
|
||||
31 August 1995.</em>
|
||||
<!ENTITY % authors SYSTEM "authors.sgml">
|
||||
%authors;
|
||||
|
||||
Posted to <htmlurl url="mailto:hackers@freebsd.org"
|
||||
name="freebsd-hackers@freebsd.org">:
|
||||
<quote>
|
||||
<p><em>Yes, as long as `single mode' is appropriate for you, there's no need
|
||||
to worry about TC. TC is intented for continuous mode. Well, i've
|
||||
just noticed that the PC DMAC cannot even generate an interrupt when
|
||||
ready... hmm, go figure, the Z80 DMAC did it.</em>
|
||||
<p><em>And yes, for `single mode', the masking trick will do it. The
|
||||
peripheral device will issue a DRQ signal for each transfered
|
||||
byte/word, and masking would prevent the DMAC from accepting new DRQs
|
||||
for this channel. Aborting a continuous mode transfer would not be so
|
||||
easy (or even impossible at all).</em>
|
||||
</quote>
|
||||
]>
|
||||
-->
|
||||
<sect><heading>DMA: What it is and how it works<label id="dma"></heading>
|
||||
|
||||
Actually, masking is the correct procedure for all transfer modes on the
|
||||
8237, even autoinit mode, which is frequently used for audio operations
|
||||
since it allows seamless DMA transfers with no under/overruns.
|
||||
<p><em>Copyright © 1995 &a.uhclem;, All Rights Reserved.<newline>
|
||||
18 October 1995.</em>
|
||||
|
||||
You are generally correct about TC. All the TC signal does is
|
||||
when the counter on any channel in the DMA controller goes from
|
||||
one to zero, TC is asserted. What the peripherals are supposed
|
||||
to if they want to generate an interrupt when the transfer is
|
||||
through, is that peripheral device is supposed to look at
|
||||
<tt>(-DACK%d && TC && DEVICE_DMA_ACTIVE)</tt> and then
|
||||
latch an <tt>IRQ%d</tt> for the 8259 interrupt controller. Since there is
|
||||
only one TC signal, it is important that only the peripheral who
|
||||
is transferring data at that moment honor the TC signal.
|
||||
<!-- Version 1(2) -->
|
||||
|
||||
The host CPU will eventually investigate the interrupt by having some driver
|
||||
poll the hardware associated with the peripheral, NOT the DMA controller.
|
||||
If a peripheral doesn't want an interrupt associated with the DMA counter
|
||||
reaching zero, it doesn't implement the circuitry to monitor TC.
|
||||
Direct Memory Access (DMA) is a method of allowing data to
|
||||
be moved from one location to another in a computer without
|
||||
intervention from the central processor (CPU).
|
||||
|
||||
Some sound cards realize that when the TC hits zero it means the DMA
|
||||
is now idle and that is really too late, so they don't use TC and
|
||||
instead allow the driver to program in a local counter value, which
|
||||
is usually set lower than the value programmed into the DMA. This means
|
||||
the peripheral can interrupt the CPU in advance of the DMA "running dry",
|
||||
allowing the CPU to be ready to reprogram the DMA the instant it finishes
|
||||
what it is doing, rather than incurring the latency later.
|
||||
The way that the DMA function is implemented varies between
|
||||
computer architectures, so this discussion will limit
|
||||
itself to the implementation and workings of the DMA
|
||||
subsystem on the IBM Personal Computer (PC), the IBM PC/AT
|
||||
and all of its successors and clones.
|
||||
|
||||
This also means that two or more different devices could share a
|
||||
DMA channel, by tristating <tt>DRQ%d</tt> when idle and only
|
||||
honoring <tt>-DACK%d</tt> when the device knows it is expecting
|
||||
the DMA to go active. (Iomega PC2B boards forgot this minor
|
||||
point and will transfer data even if they are not supposed to.)
|
||||
The PC DMA subsystem is based on the Intel 8237 DMA
|
||||
controller. The 8237 contains four DMA channels that can
|
||||
be programmed independently and any of the channels may be
|
||||
active at any moment. These channels are numbered 0, 1, 2
|
||||
and 3. Starting with the PC/AT, IBM added a second 8237
|
||||
chip, and numbered those channels 4, 5, 6 and 7.
|
||||
|
||||
The original DMA controller (0, 1, 2 and 3) moves one byte
|
||||
in each transfer. The second DMA controller (4, 5, 6, and
|
||||
7) moves 16-bits in each transfer. The two controllers are
|
||||
identical and the difference in transfer size is caused by
|
||||
the way the second controller is wired into the system.
|
||||
|
||||
The 8237 has two electrical signals for each channel, named
|
||||
DRQ and -DACK. There are additional signals with the
|
||||
names HRQ (Hold Request), HLDA (Hold Acknowledge), -EOP
|
||||
(End of Process), and the bus control signals -MEMR (Memory
|
||||
Read), -MEMW (Memory Write), -IOR (I/O Read), and -IOW (I/O
|
||||
Write).
|
||||
|
||||
The 8237 DMA is known as a ``fly-by'' DMA controller. This
|
||||
means that the data being moved from one location to
|
||||
another does not pass through the DMA chip and is not
|
||||
stored in the DMA chip. Subsequently, the DMA can only
|
||||
transfer data between an I/O port and a memory address, but
|
||||
not between two I/O ports or two memory locations.
|
||||
|
||||
<quote><em>Note:</em> The 8237 does allow two channels to
|
||||
be connected together to allow memory-to-memory DMA
|
||||
operations in a non-``fly-by'' mode, but nobody in the PC
|
||||
industry uses this scarce resource this way since it is
|
||||
faster to move data between memory locations using the
|
||||
CPU.</quote>
|
||||
|
||||
In the PC architecture, each DMA channel is normally
|
||||
activated only when the hardware that uses that DMA
|
||||
requests a transfer by asserting the DRQ line for that
|
||||
channel.
|
||||
|
||||
|
||||
So, if you want to abort a 8237 DMA transfer of any kind, simply mask the
|
||||
bit for that DMA channel in the 8237. Note: You can't interrupt an individual
|
||||
transfer (byte or burst) in progress. Think about it... if the DMA is
|
||||
running, how is your OUT instruction going to be performed?
|
||||
The CPU has to be bus master for the OUT to be performed.
|
||||
<sect1><heading>A Sample DMA transfer</heading>
|
||||
|
||||
Since the 8237 DMA re-evaluates DMA channel priorities constantly, even if
|
||||
the DMA had already asserted HOLD (to request the bus from the CPU) when
|
||||
the OUT actually took place, the processor would still grant the bus to the
|
||||
DMA controller. The DMA controller would look for the highest-priority
|
||||
DMA source remaining (your interrupt is masked now) at that instant,
|
||||
and if none remained, the DMA will release HOLD and the processor will
|
||||
get the bus back after a few clocks.
|
||||
<p>Here is an example of the steps that occur to cause a
|
||||
DMA transfer. In this example, the floppy disk
|
||||
controller (FDC) has just read a byte from a diskette and
|
||||
wants the DMA to place it in memory at location
|
||||
0x00123456. The process begins by the FDC asserting the
|
||||
DRQ2 signal to alert the DMA controller.
|
||||
|
||||
There is a deadly race condition in this area, but if I remember right,
|
||||
you can't get into it via mis-programming the DMA, UNLESS you cause the DMA
|
||||
controller to be RESET. You should not do this. Effectively the CPU
|
||||
can give up the bus and the DMA doesn't do anything, including giving the
|
||||
bus back. Very annoying and after 16msec or so, all is over since
|
||||
refresh on main memory has started failing.
|
||||
The DMA controller will note that the DRQ2 signal is asserted.
|
||||
The DMA controller will then make sure that DMA channel 2
|
||||
has been programmed and is enabled. The DMA controller
|
||||
also makes sure that none of the other DMA channels are active
|
||||
or have a higher priority. Once these checks are
|
||||
complete, the DMA asks the CPU to release the bus so that
|
||||
the DMA may use the bus. The DMA requests the bus by
|
||||
asserting the HRQ signal which goes to the CPU.
|
||||
|
||||
So, mask the DMA controller, then go do what you have to do to get the
|
||||
transfer aborted in the peripheral hardware. In some extremely stupid
|
||||
hardware (I could mention a few), you may have to program the DMA to
|
||||
transfer one more byte to a garbage target to get the peripheral hardware
|
||||
to go back to an idle state. Most hardware these days isn't that
|
||||
stupid.
|
||||
The CPU detects the HRQ signal, and will complete
|
||||
executing the current instruction. Once the processor
|
||||
has reached a state where it can release the bus, it
|
||||
will. Now all of the signals normally generated by the
|
||||
CPU (-MEMR, -MEMW, -IOR, -IOW and a few others) are
|
||||
placed in a tri-stated condition (neither high or low)
|
||||
and then the CPU asserts the HLDA signal which tells the
|
||||
DMA controller that it is now in charge of the bus.
|
||||
|
||||
Technically, you are supposed to mask the DMA channel, program the other
|
||||
settings (direction, address, length, etc), issue commands to the
|
||||
peripheral and then unmask the DMA channel once the peripheral commands have
|
||||
been accepted. The last two steps can be done out of order without
|
||||
harm, but you must always program the DMA channel while it is masked to
|
||||
avoid spraying data all over the place in the event the peripheral
|
||||
unexpected asserts <tt>DRQ%d</tt>.
|
||||
Depending on the processor, the CPU may be able to
|
||||
execute a few additional instructions now that it no
|
||||
longer has the bus, but the CPU will eventually have to
|
||||
wait when it reaches an instruction that must read
|
||||
something from memory that is not in the internal
|
||||
processor cache or pipeline.
|
||||
|
||||
If you need to pad-out an aborted buffer, once you have masked the
|
||||
DMA, you can ask it how many bytes it still had to go and what
|
||||
address it was to write to next. Your driver can then fill in the
|
||||
remaining area or do what needs to be done.
|
||||
Now that the DMA ``is in charge'', the DMA activates its
|
||||
-MEMR, -MEMW, -IOR, -IOW output signals, and the address
|
||||
outputs from the DMA are set to 0x3456, which will be
|
||||
used to direct the byte that is about to transferred to a
|
||||
specific memory location.
|
||||
|
||||
The DMA will then let the device that requested the DMA
|
||||
transfer know that the transfer is commencing. This is
|
||||
done by asserting the -DACK signal, or in the case of the
|
||||
floppy disk controller, -DACK2 is asserted.
|
||||
|
||||
The floppy disk controller is now responsible for placing
|
||||
the byte to be transferred on the bus Data lines. Unless
|
||||
the floppy controller needs more time to get the data
|
||||
byte on the bus (and if the peripheral needs more time it
|
||||
alerts the DMA via the READY signal), the DMA will wait
|
||||
one DMA clock, and then de-assert the -MEMW and -IOR
|
||||
signals so that the memory will latch and store the byte
|
||||
that was on the bus, and the FDC will know that the byte
|
||||
has been transferred.
|
||||
|
||||
Since the DMA cycle only transfers a single byte at a
|
||||
time, the FDC now drops the DRQ2 signal, so that the DMA
|
||||
knows it is no longer needed. The DMA will de-assert the
|
||||
-DACK2 signal, so that the FDC knows it must stop placing
|
||||
data on the bus.
|
||||
|
||||
The DMA will now check to see if any of the other DMA
|
||||
channels have any work to do. If none of the channels
|
||||
have their DRQ lines asserted, the DMA controller has
|
||||
completed its work and will now tri-state the -MEMR,
|
||||
-MEMW, -IOR, -IOW and address signals.
|
||||
|
||||
Finally, the DMA will de-assert the HRQ signal. The CPU
|
||||
sees this, and de-asserts the HOLDA signal. Now the CPU
|
||||
activates its -MEMR, -MEMW, -IOR, -IOW and address lines,
|
||||
and it resumes executing instructions and accessing main
|
||||
memory and the peripherals.
|
||||
|
||||
For a typical floppy disk sector, the above process is
|
||||
repeated 512 times, once for each byte. Each time a byte
|
||||
is transferred, the address register in the DMA is
|
||||
incremented and the counter that shows how many bytes are
|
||||
to be transferred is decremented.
|
||||
|
||||
When the counter reaches zero, the DMA asserts the EOP
|
||||
signal, which indicates that the counter has reached zero
|
||||
and no more data will be transferred until the DMA
|
||||
controller is reprogrammed by the CPU. This event is
|
||||
also called the Terminal Count (TC). There is only one
|
||||
EOP signal, because only one DMA channel can be active at
|
||||
any instant.
|
||||
|
||||
If a peripheral wants to generate an interrupt when the
|
||||
transfer of a buffer is complete, it can test for its
|
||||
-DACK signal and the EOP signal both being asserted at
|
||||
the same time. When that happens, it means the DMA won't
|
||||
transfer any more information for that peripheral without
|
||||
intervention by the CPU. The peripheral can then assert
|
||||
one of the interrupt signals to get the processors'
|
||||
attention. The DMA chip itself is not capable of
|
||||
generating an interrupt. The peripheral and its
|
||||
associated hardware is responsible for generating any
|
||||
interrupt that occurs.
|
||||
|
||||
It is important to understand that although the CPU
|
||||
always releases the bus to the DMA when the DMA makes the
|
||||
request, this action is invisible to both applications
|
||||
and the operating systems, except for slight changes in
|
||||
the amount of time the processor takes to execute
|
||||
instructions when the DMA is active. Subsequently, the
|
||||
processor must poll the peripheral, poll the registers in
|
||||
the DMA chip, or receive an interrupt from the peripheral
|
||||
to know for certain when a DMA transfer has completed.
|
||||
|
||||
|
||||
Don't forget that the 8237 was designed for use with the 8085 and
|
||||
really isn't suited to the job that IBM gave it in the original PC.
|
||||
That's why the upper eight bits of DMA addressing appear to be lashed-on.
|
||||
They are. Look at the schematics of the original PC and you will
|
||||
the upper bits are kept in external latches that are enabled whenever
|
||||
the DMA is too. Very kludgy.
|
||||
<sect1><heading>DMA Page Registers and 16Meg address space limitations</heading>
|
||||
|
||||
<p>You may have noticed earlier that instead of the DMA
|
||||
setting the address lines to 0x00123456 as we said
|
||||
earlier, the DMA only set 0x3456. The reason for this
|
||||
takes a bit of explaining.
|
||||
|
||||
When the original IBM PC was designed, IBM elected to use
|
||||
both DMA and interrupt controller chips that were
|
||||
designed for use with the 8085, an 8-bit processor with
|
||||
an address space of 16 bits (64K). Since the IBM PC
|
||||
supported more than 64K of memory, something had to be
|
||||
done to allow the DMA to read or write memory locations
|
||||
above the 64K mark. What IBM did to solve this problem
|
||||
was to add a latch for each DMA channel, that holds the
|
||||
upper bits of the address to be read to or written from.
|
||||
Whenever a DMA channel is active, the contents of that
|
||||
latch is written to the address bus and kept there until
|
||||
the DMA operation for the channel ends. These latches
|
||||
are called ``Page Registers''.
|
||||
|
||||
So for our example above, the DMA would put the 0x3456
|
||||
part of the address on the bus, and the Page Register for
|
||||
DMA channel 2 would put 0x0012xxxx on the bus. Together,
|
||||
these two values form the complete address in memory that
|
||||
is to be accessed.
|
||||
|
||||
Because the Page Register latch is independent of the DMA
|
||||
chip, the area of memory to be read or written must not
|
||||
span a 64K physical boundary. If the DMA accesses memory
|
||||
location 0xffff, the DMA will then increment the address
|
||||
register and it will access the next byte at 0x0000, not
|
||||
0x10000. The results of letting this happen are probably not intended.
|
||||
|
||||
<quote><em>Note:</em> ``Physical'' 64K boundaries should
|
||||
not be confused with 8086-mode 64K ``Segments'', which
|
||||
are created by adding a segment register with an offset
|
||||
register. Page Registers have no address overlap.</quote>
|
||||
|
||||
To further complicate matters, the external DMA address
|
||||
latches on the PC/AT hold only eight bits, so that gives
|
||||
us 8+16=24 bits, which means that the DMA can only point
|
||||
at memory locations between 0 and 16Meg. For newer
|
||||
computers that allow more than 16Meg of memory, the
|
||||
PC-compatible DMA cannot access locations above 16Meg.
|
||||
|
||||
To get around this restriction, operating systems will
|
||||
reserve a buffer in an area below 16Meg that also doesn't
|
||||
span a physical 64K boundary. Then the DMA will be
|
||||
programmed to read data to that buffer. Once the DMA has
|
||||
moved the data into this buffer, the operating system
|
||||
will then copy the data from the buffer to the address
|
||||
where the data is really supposed to be stored.
|
||||
|
||||
When writing data from an address above 16Meg to a
|
||||
DMA-based peripheral, the data must be first copied from
|
||||
where it resides into a buffer located below 16Meg, and
|
||||
then the DMA can copy the data from the buffer to the
|
||||
hardware. In FreeBSD, these reserved buffers are called
|
||||
``Bounce Buffers''. In the MS-DOS world, they are
|
||||
sometimes called ``Smart Buffers''.
|
||||
|
||||
|
||||
<sect1><heading>DMA Operational Modes and Settings</heading>
|
||||
|
||||
<p>The 8237 DMA can be operated in several modes. The main
|
||||
ones are:
|
||||
|
||||
<descrip>
|
||||
|
||||
<tag/Single/ A single byte (or word) is transferred.
|
||||
The DMA must release and re-acquire the bus for each
|
||||
additional byte. This is commonly-used by devices
|
||||
that cannot transfer the entire block of data
|
||||
immediately. The peripheral will request the DMA
|
||||
each time it is ready for another transfer.
|
||||
|
||||
The floppy disk controller only has a one-byte
|
||||
buffer, so it uses this mode.
|
||||
|
||||
|
||||
<tag>Block/Demand</tag> Once the DMA acquires the
|
||||
system bus, an entire block of data is transferred,
|
||||
up to a maximum of 64K. If the peripheral needs
|
||||
additional time, it can assert the READY signal.
|
||||
READY should not be used excessively, and for slow
|
||||
peripheral transfers, the Single Transfer Mode should
|
||||
be used instead.
|
||||
|
||||
The difference between Block and Demand is the once a
|
||||
Block transfer is started, it runs until the transfer
|
||||
count reaches zero. DRQ only needs to be asserted
|
||||
until -DACK is asserted. Demand Mode will transfer
|
||||
one more bytes until DRQ is de-asserted, then when
|
||||
DRQ is asserted later, the transfer resumes where it
|
||||
was suspended.
|
||||
|
||||
Older hard disk controllers used Demand Mode until
|
||||
CPU speeds increased to the point that it was more
|
||||
efficient to read the data using the CPU.
|
||||
|
||||
|
||||
<tag>Cascade</tag> This mechanism allows a DMA channel
|
||||
to request the bus, but then the attached peripheral
|
||||
device is responsible for placing addressing
|
||||
information on the bus. This is also known as ``Bus
|
||||
Mastering''.
|
||||
|
||||
When a DMA channel in Cascade Mode receives control
|
||||
of the bus, the DMA does not place addresses and I/O
|
||||
control signals on the bus like it normally does.
|
||||
Instead, the DMA only asserts the -DACK signal for
|
||||
this channel.
|
||||
|
||||
Now it is up to the device connected to that DMA
|
||||
channel to provide address and bus control signals.
|
||||
The peripheral has complete control over the system
|
||||
bus, and can do reads and/or writes to any address
|
||||
below 16Meg. When the peripheral is finished with
|
||||
bus, it de-asserts the DRQ line, and the DMA
|
||||
controller can return control to the CPU or to some
|
||||
other DMA channel.
|
||||
|
||||
Cascade Mode can be used to chain multiple DMA
|
||||
controllers together, and this is exactly what DMA
|
||||
Channel 4 is used for in the PC. When a peripheral
|
||||
requests the bus on DMA channels 0, 1, 2 or 3, the
|
||||
slave DMA controller asserts HLDREQ, but this wire is
|
||||
actually connected to DRQ4 on the primary DMA
|
||||
controller. The primary DMA controller then requests
|
||||
the bus from the CPU using HLDREQ. Once the bus is
|
||||
granted, -DACK4 is asserted, and that wire is
|
||||
actually connected to the HLDA signal on the slave
|
||||
DMA controller. The slave DMA controller then
|
||||
transfers data for the DMA channel that requested it,
|
||||
or the slave DMA may grant the bus to a peripheral
|
||||
that wants to perform its own bus-mastering.
|
||||
|
||||
Because of this wiring arrangement, only DMA channels
|
||||
0, 1, 2, 3, 5, 6 and 7 are usable on PC/AT systems.
|
||||
|
||||
<quote><em>Note:</em> DMA channel 0 was reserved for
|
||||
refresh operations in early IBM PC computers, but
|
||||
is generally available for use by peripherals in
|
||||
modern systems.</quote>
|
||||
|
||||
When a peripheral is performing Bus Mastering, it is
|
||||
important that the peripheral transmit data to or
|
||||
from memory constantly while it holds the system bus.
|
||||
If the peripheral cannot do this, it must release the
|
||||
bus frequently so that the system can perform refresh
|
||||
operations on memory.
|
||||
|
||||
Since memory read and write cycles ``count'' as refresh
|
||||
cycles (a refresh cycle is actually an incomplete
|
||||
memory read cycle), as long as the peripheral
|
||||
controller continues reading or writing data to
|
||||
sequential memory locations, that action will refresh
|
||||
all of memory.
|
||||
|
||||
Bus-mastering is found in some SCSI adapters and
|
||||
other high-performance peripheral cards.
|
||||
|
||||
|
||||
<tag>Autoinitialize</tag> This mode causes the DMA to
|
||||
perform Byte, Block or Demand transfers, but when the
|
||||
DMA transfer counter reaches zero, the counter and
|
||||
address is set back to where they were when the DMA
|
||||
channel was originally programmed. This means that
|
||||
as long as the device requests transfers, they will
|
||||
be granted. It is up to the CPU to move new data
|
||||
into the fixed buffer ahead of where the DMA is about
|
||||
to transfer it for output operations, and read new
|
||||
data out of the buffer behind where the DMA is
|
||||
writing on input operations. This technique is
|
||||
frequently used on audio devices that have small or
|
||||
no hardware ``sample'' buffers. There is additional
|
||||
CPU overhead to manage this ``circular'' buffer, but in
|
||||
some cases this may be the only way to eliminate the
|
||||
latency that occurs when the DMA counter reaches zero
|
||||
and the DMA stops until it is reprogrammed.
|
||||
</descrip>
|
||||
|
||||
<sect1><heading>Programming the DMA</heading>
|
||||
|
||||
<p>The DMA channel that is to be programmed should always
|
||||
be ``masked'' before loading any settings. This is because
|
||||
the hardware might assert DRQ, and the DMA might respond,
|
||||
even though not all of the parameters have been loaded or
|
||||
updated.
|
||||
|
||||
Once masked, the host must specify the direction of the
|
||||
transfer (memory-to-I/O or I/O-to-memory), what mode of
|
||||
DMA operation is to be used for the transfer (Single,
|
||||
Block, Demand, Cascade, etc), and finally the address and
|
||||
length of the transfer are loaded. The length that is
|
||||
loaded is one less than the amount you expect the DMA to
|
||||
transfer. The LSB and MSB of the address and length are
|
||||
written to the same 8-bit I/O port, so another port must
|
||||
be written to first to guarantee that the DMA accepts the
|
||||
first byte as the LSB and the second byte as the MSB.
|
||||
|
||||
Then, be sure to update the Page Register, which is
|
||||
external to the DMA and is accessed through a different
|
||||
set of I/O ports.
|
||||
|
||||
Once all the settings are ready, the DMA channel can be
|
||||
un-masked. That DMA channel is now considered to be
|
||||
``armed'', and will respond when DRQ is asserted.
|
||||
|
||||
Refer to a hardware databook for precise programming
|
||||
details for the 8237. You will also need to refer to the
|
||||
I/O port map for the PC system. This map describes where
|
||||
the DMA and Page Register ports are located. A complete
|
||||
table is located below.
|
||||
|
||||
|
||||
<sect1><heading>DMA Port Map</heading>
|
||||
|
||||
<p>All systems based on the IBM-PC and PC/AT have the DMA
|
||||
hardware located at the same I/O ports. The complete
|
||||
list is provided below. Ports assigned to DMA Controller
|
||||
#2 are undefined on non-AT designs.
|
||||
|
||||
<sect2><heading>0x00 - 0x1f DMA Controller #1 (Channels 0, 1, 2 and 3)</heading>
|
||||
|
||||
<p>DMA Address and Count Registers
|
||||
|
||||
<verb>
|
||||
0x00 write Channel 0 starting address
|
||||
0x00 read Channel 0 current address
|
||||
0x02 write Channel 0 starting word count
|
||||
0x02 read Channel 0 remaining word count
|
||||
|
||||
0x04 write Channel 1 starting address
|
||||
0x04 read Channel 1 current address
|
||||
0x06 write Channel 1 starting word count
|
||||
0x06 read Channel 1 remaining word count
|
||||
|
||||
0x08 write Channel 2 starting address
|
||||
0x08 read Channel 2 current address
|
||||
0x0a write Channel 2 starting word count
|
||||
0x0a read Channel 2 remaining word count
|
||||
|
||||
0x0c write Channel 3 starting address
|
||||
0x0c read Channel 3 current address
|
||||
0x0e write Channel 3 starting word count
|
||||
0x0e read Channel 3 remaining word count
|
||||
</verb>
|
||||
|
||||
DMA Command Registers
|
||||
|
||||
<verb>
|
||||
0x10 write Command Register
|
||||
0x10 read Status Register
|
||||
0x12 write Request Register
|
||||
0x12 read -
|
||||
0x14 write Single Mask Register Bit
|
||||
0x14 read -
|
||||
0x16 write Mode Register
|
||||
0x16 read -
|
||||
0x18 write Clear LSB/MSB Flip-Flop
|
||||
0x18 read -
|
||||
0x1a write Master Clear/Reset
|
||||
0x1a read Temporary Register
|
||||
0x1c write Clear Mask Register
|
||||
0x1c read -
|
||||
0x1e write Write All Mask Register Bits
|
||||
0x1e read -
|
||||
</verb>
|
||||
|
||||
<sect2><heading>0xc0 - 0xdf DMA Controller #2 (Channels 4, 5, 6 and 7)</heading>
|
||||
|
||||
<p>DMA Address and Count Registers
|
||||
|
||||
<verb>
|
||||
0xc0 write Channel 4 starting address
|
||||
0xc0 read Channel 4 current address
|
||||
0xc2 write Channel 4 starting word count
|
||||
0xc2 read Channel 4 remaining word count
|
||||
|
||||
0xc4 write Channel 5 starting address
|
||||
0xc4 read Channel 5 current address
|
||||
0xc6 write Channel 5 starting word count
|
||||
0xc6 read Channel 5 remaining word count
|
||||
|
||||
0xc8 write Channel 6 starting address
|
||||
0xc8 read Channel 6 current address
|
||||
0xca write Channel 6 starting word count
|
||||
0xca read Channel 6 remaining word count
|
||||
|
||||
0xcc write Channel 7 starting address
|
||||
0xcc read Channel 7 current address
|
||||
0xce write Channel 7 starting word count
|
||||
0xce read Channel 7 remaining word count
|
||||
</verb>
|
||||
|
||||
DMA Command Registers
|
||||
|
||||
<verb>
|
||||
0xd0 write Command Register
|
||||
0xd0 read Status Register
|
||||
0xd2 write Request Register
|
||||
0xd2 read -
|
||||
0xd4 write Single Mask Register Bit
|
||||
0xd4 read -
|
||||
0xd6 write Mode Register
|
||||
0xd6 read -
|
||||
0xd8 write Clear LSB/MSB Flip-Flop
|
||||
0xd8 read -
|
||||
0xda write Master Clear/Reset
|
||||
0xda read Temporary Register
|
||||
0xdc write Clear Mask Register
|
||||
0xdc read -
|
||||
0xde write Write All Mask Register Bits
|
||||
0xde read -
|
||||
</verb>
|
||||
|
||||
<sect2><heading>0x80 - 0x9f DMA Page Registers</heading>
|
||||
|
||||
<p><verb>
|
||||
0x87 r/w DMA Channel 0
|
||||
0x83 r/w DMA Channel 1
|
||||
0x81 r/w DMA Channel 2
|
||||
0x82 r/w DMA Channel 3
|
||||
|
||||
0x8b r/w DMA Channel 5
|
||||
0x89 r/w DMA Channel 6
|
||||
0x8a r/w DMA Channel 7
|
||||
|
||||
0x8f Refresh
|
||||
</verb>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Id: eresources.sgml,v 1.13 1995/10/03 21:38:20 jfieber Exp $ -->
|
||||
<!-- $Id: eresources.sgml,v 1.2.4.3 1995/11/07 18:24:44 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<chapt>
|
||||
@ -34,7 +34,7 @@ keep the signal to noise ratio of the lists high, especially in
|
||||
the technical lists.
|
||||
|
||||
Archives are kept for all of the mailing lists and can be searched
|
||||
using the the <url url="http://www.freebsd.org/How/mail-archive.html"
|
||||
using the the <url url="http://www.freebsd.org/"
|
||||
name="FreeBSD World Wide Web server">. The keyword searchable archive
|
||||
offers an excellent way to find answers to frequently asked questions
|
||||
and should be consulted before posting a question.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Id: handbook.sgml,v 1.32 1995/10/07 04:31:23 jfieber Exp $ -->
|
||||
<!-- $Id: handbook.sgml,v 1.7.4.5 1995/10/30 17:48:17 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
|
||||
@ -24,11 +24,11 @@
|
||||
<author>
|
||||
<name>The FreeBSD Documentation Project</name>
|
||||
</author>
|
||||
<date>October 14, 1995</date>
|
||||
<date>October 30, 1995</date>
|
||||
|
||||
<abstract>Welcome to FreeBSD! This handbook covers the
|
||||
installation and day to day use of <bf>FreeBSD Release
|
||||
2.0.5</bf>.
|
||||
2.1</bf>.
|
||||
|
||||
This manual is a <bf>work in progress</bf> and is the
|
||||
work of many individuals. Many sections do not yet exist
|
||||
@ -113,12 +113,6 @@ Web server">.
|
||||
&slips;
|
||||
|
||||
<chapt><heading>Advanced networking</heading>
|
||||
<!--
|
||||
<sect><heading>Gateways and routing</heading>
|
||||
<p>This section is in progress. Please contact
|
||||
Coranth Gryphon <htmlurl url="mailto:gryphon@healer.com"
|
||||
name="<gryphon@healer.com>"> for more information.
|
||||
-->
|
||||
&routing;
|
||||
&nfs;
|
||||
&diskless;
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Id: install.sgml,v 1.14 1995/10/18 04:05:16 jfieber Exp $ -->
|
||||
<!-- $Id: install.sgml,v 1.9.2.5 1995/10/30 17:48:19 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<!--
|
||||
@ -41,7 +41,7 @@
|
||||
(IRQ) and IO port addresses. </item>
|
||||
|
||||
<item>Download the <url
|
||||
url="ftp://ftp.freebsd.org/pub/FreeBSD/2.0.5-RELEASE/UPDATES/boot.flp"
|
||||
url="ftp://ftp.freebsd.org/pub/FreeBSD/2.1.0-RELEASE/floppies/boot.flp"
|
||||
name="installation boot disk image"> file to your hard
|
||||
drive, and be sure to tell your browser to
|
||||
<em>save</em> rather than <em>display</em>.
|
||||
@ -54,8 +54,7 @@
|
||||
<item>If you are using MS-DOS download
|
||||
<url
|
||||
url="ftp://ftp.freebsd.org/pub/FreeBSD/tools/dos-tools/rawrite.exe"
|
||||
name="rawrite.exe"> (tell your browser to <em>save</em> rather than
|
||||
<em>display</em>!), then run it:
|
||||
name="rawrite.exe">, then run it:
|
||||
<tscreen><verb>
|
||||
C:\> rawrite
|
||||
</verb></tscreen> The
|
||||
@ -66,12 +65,12 @@ C:\> rawrite
|
||||
|
||||
<item>If you are using a UNIX system:
|
||||
<tscreen>
|
||||
% dd if=boot.flp of=<em>disk_device</em> bs=18k
|
||||
% dd if=boot.flp of=<em>disk_device</em>
|
||||
</tscreen>
|
||||
where <em>disk_device</em> is the <tt>/dev</tt>
|
||||
entry for the floppy drive. On FreeBSD systems, this
|
||||
is <tt>/dev/rfd0</tt> for the A: drive and
|
||||
<tt>/dev/rfd1</tt> for the B: drive.
|
||||
is <tt>/dev/fd0</tt> for the A: drive and
|
||||
<tt>/dev/fd1</tt> for the B: drive.
|
||||
</item>
|
||||
</itemize>
|
||||
|
||||
@ -148,72 +147,6 @@ Boot:
|
||||
name="Kernel configuration"> for more information on
|
||||
creating custom kernels.
|
||||
|
||||
<sect><heading>MS-DOS user's Questions and Answers</heading>
|
||||
|
||||
<p>Many FreeBSD users wish to install FreeBSD on PCs inhabited
|
||||
by MS-DOS. Here are some commonly asked questions about
|
||||
installing FreeBSD on such systems.
|
||||
|
||||
<p><bf>Help! I have no space! Do I need to delete
|
||||
everything first?</bf>
|
||||
|
||||
If your machine is already running MS-DOS and has little
|
||||
or no free space available for FreeBSD's installation,
|
||||
all is not lost! You may find the FIPS utility, provided
|
||||
in the <tt>tools</tt> directory on the FreeBSD CDROM or
|
||||
on the various FreeBSD ftp sites, to be quite useful.
|
||||
|
||||
FIPS allows you to split an existing MS-DOS partition
|
||||
into two pieces, preserving the original partition and
|
||||
allowing you to install onto the second free piece. You
|
||||
first defragment your MS-DOS partition, using the DOS
|
||||
6.xx DEFRAG utility or the Norton Disk tools, then run
|
||||
FIPS. It will prompt you for the rest of the information
|
||||
it needs. Afterwards, you can reboot and install FreeBSD
|
||||
on the new free slice. See the <em>Distributions</em>
|
||||
menu for an estimation of how much free space you'll need
|
||||
for the kind of installation you want.
|
||||
|
||||
|
||||
<bf>Can I use compressed MS-DOS filesystems from
|
||||
FreeBSD?</bf>
|
||||
|
||||
No. If you are using a utility such as Stacker(tm) or
|
||||
DoubleSpace(tm), FreeBSD will only be able to use
|
||||
whatever portion of the filesystem you leave
|
||||
uncompressed. The rest of the filesystem will show up as
|
||||
one large file (the stacked/dblspaced file!). <bf>Do not
|
||||
remove that file!</bf> You will probably regret it
|
||||
greatly!
|
||||
|
||||
It is probably better to create another uncompressed
|
||||
MS-DOS primary partition and use this for communications
|
||||
between MS-DOS and FreeBSD.
|
||||
|
||||
|
||||
<bf>Can I mount my MS-DOS extended partitions?</bf>
|
||||
|
||||
This feature isn't in FreeBSD 2.0.5 but should be in 2.1.
|
||||
We've laid all the groundwork for making this happen, now
|
||||
we just need to do the last 1 percent of the work involved.
|
||||
|
||||
|
||||
<bf>Can I run MS-DOS binaries under FreeBSD?</bf>
|
||||
|
||||
Not yet! We'd like to add support for this someday, but
|
||||
are still lacking anyone to actually do the work.
|
||||
Ongoing work with Linux's DOSEMU utility may bring this
|
||||
much closer to being a reality sometime soon. Send mail
|
||||
to hackers@freebsd.org if you're interested in joining
|
||||
this effort!
|
||||
|
||||
However, there's a nice application available in the
|
||||
<ref id="ports" name="The Ports Collection"> called pcemu,
|
||||
that allows you to run many basic MS-DOS text-mode binaries
|
||||
by entirely emulating an 8088 CPU.
|
||||
|
||||
|
||||
|
||||
<sect><heading>Supported Configurations<label id="install:hw"></heading>
|
||||
|
||||
<p>FreeBSD currently runs on a wide variety of ISA, VLB,
|
||||
@ -238,7 +171,6 @@ Boot:
|
||||
<itemize>
|
||||
<item>WD1003 (any generic MFM/RLL)
|
||||
<item>WD1007 (any generic IDE/ESDI)
|
||||
<item>WD7000
|
||||
<item>IDE
|
||||
<item>ATA
|
||||
|
||||
@ -246,7 +178,7 @@ Boot:
|
||||
<item>Adaptec 154x series ISA SCSI controllers
|
||||
<item>Adaptec 174x series EISA SCSI controller in
|
||||
standard and enhanced mode.
|
||||
<item>Adaptec 274X/284X/2940 <!-- 3940 (in 2.1) -->
|
||||
<item>Adaptec 274x/284x/2940/3940
|
||||
(Narrow/Wide/Twin)
|
||||
series EISA/VLB/PCI SCSI controllers
|
||||
<item>Adaptec
|
||||
@ -275,7 +207,7 @@ Boot:
|
||||
<item>Buslogic 956c PCI SCSI controller
|
||||
|
||||
<item>NCR 53C810 and 53C825 PCI SCSI controller.
|
||||
<item>NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller.
|
||||
<item>NCR5380/NCR53400 (``ProAudio Spectrum'') SCSI controller.
|
||||
|
||||
<item>DTC 3290 EISA SCSI controller in 1542 emulation mode.
|
||||
|
||||
@ -284,6 +216,9 @@ Boot:
|
||||
<item>Seagate ST01/02 SCSI controllers.
|
||||
|
||||
<item>Future Domain 8xx/950 series SCSI controllers.
|
||||
|
||||
<item>WD7000 SCSI controllers.
|
||||
|
||||
</itemize>
|
||||
|
||||
With all supported SCSI controllers, full support is
|
||||
@ -295,39 +230,23 @@ Boot:
|
||||
time:
|
||||
|
||||
<itemize>
|
||||
<item>Soundblaster SCSI and ProAudio Spectrum SCSI (cd)
|
||||
<item>Mitsumi (all models) proprietary interface (mcd)
|
||||
<item>Soundblaster SCSI and ProAudio Spectrum SCSI (<tt>cd</tt>)
|
||||
<item>Mitsumi (all models) proprietary interface (<tt>mcd</tt>)
|
||||
<item>Matsushita/Panasonic (Creative)
|
||||
CR-562/CR-563 proprietary interface (matcd)
|
||||
<item>Sony proprietary interface (scd)
|
||||
CR-562/CR-563 proprietary interface (<tt>matcd</tt>)
|
||||
<item>Sony proprietary interface (<tt>scd</tt>)
|
||||
<item>ATAPI IDE interface
|
||||
(experimental and should be considered ALPHA quality!)
|
||||
(<tt>wcd</tt>)
|
||||
</itemize>
|
||||
|
||||
<bf>Note:</bf> CD-Drives with IDE interfaces are not
|
||||
supported at this time.
|
||||
|
||||
Some controllers have limitations with the way they
|
||||
deal with >16MB of memory, due to the fact that the
|
||||
ISA bus only has a DMA address space of 24 bits. If
|
||||
you do your arithmetic, you'll see that this makes it
|
||||
impossible to do direct DMA to any address >16MB.
|
||||
This limitation is even true of some EISA controllers
|
||||
(which are normally 32 bit) when they're configured to
|
||||
emulate an ISA card, which they then do in *all*
|
||||
respects. This problem is avoided entirely by IDE
|
||||
controllers (which do not use DMA), true EISA
|
||||
controllers (like the UltraStor, Adaptec 1742A or
|
||||
Adaptec 2742) and most VLB (local bus) controllers. In
|
||||
the cases where it's necessary, the system will use
|
||||
"bounce buffers" to talk to the controller so that you
|
||||
can still use more than 16Mb of memory without
|
||||
difficulty.
|
||||
|
||||
|
||||
<sect1><heading>Ethernet cards</heading>
|
||||
|
||||
<p>
|
||||
<itemize>
|
||||
|
||||
<item>Allied-Telesis AT1700 and RE2000 cards
|
||||
|
||||
<item>SMC Elite 16 WD8013 ethernet interface, and
|
||||
most other WD8003E, WD8003EBT, WD8003W, WD8013W,
|
||||
WD8003S, WD8003SBT and WD8013EBT based clones. SMC
|
||||
@ -338,7 +257,7 @@ Boot:
|
||||
<item>DEC DC21140 based NICs (SMC???? DE???)
|
||||
<item>DEC FDDI (DEFPA/DEFEA) NICs
|
||||
|
||||
<item>Fujitsu MB86960A family of NICs
|
||||
<item>Fujitsu FMV-181 and FMV-182
|
||||
|
||||
<item>Intel EtherExpress
|
||||
|
||||
@ -363,6 +282,10 @@ Boot:
|
||||
Semiconductor are also supported.
|
||||
</itemize>
|
||||
|
||||
<p><em>Note:</em> FreeBSD does not currently suppport
|
||||
PnP (plug-n-play) features present on some ethernet
|
||||
cards. If your card has PnP, it should be disabled.
|
||||
|
||||
<sect1><heading>Miscellaneous devices</heading>
|
||||
|
||||
<p>
|
||||
@ -387,7 +310,7 @@ Boot:
|
||||
|
||||
</itemize>
|
||||
|
||||
FreeBSD currently does NOT support IBM's microchannel
|
||||
FreeBSD currently does not support IBM's microchannel
|
||||
(MCA) bus, but support is apparently close to
|
||||
materializing. Details will be posted as the situation
|
||||
develops.
|
||||
@ -401,47 +324,78 @@ Boot:
|
||||
<sect1><heading>Before installing from CDROM</heading>
|
||||
|
||||
<p>If your CDROM is of an unsupported type, such as an
|
||||
IDE CDROM, then please skip to section 2.3: MS-DOS
|
||||
Preparation.
|
||||
IDE CDROM, then please skip to <ref id="install:msdos"
|
||||
name="MS-DOS Preparation">.
|
||||
|
||||
There is not a lot of preparatory work that needs to be
|
||||
done to successfully install from one of Walnut Creek's
|
||||
FreeBSD CDROMs (other CDROM distributions may work as
|
||||
well, but I can't say for sure as I have no hand or say
|
||||
in their creation). You can either boot into the CD
|
||||
installation directly from MS-DOS using Walnut Creek's
|
||||
supplied "install" batch file or you can make a boot
|
||||
floppy by writing the supplied image
|
||||
(floppies/boot.flp) onto a floppy with the "go"
|
||||
command, which invokes the rawrite.exe command found in
|
||||
the tools/ subdirectory.
|
||||
well, we simply cannot say as we have no hand or say in
|
||||
their creation). You can either boot into the CD
|
||||
installation directly from DOS using Walnut Creek's
|
||||
supplied ``install.bat'' batch file or you can make a
|
||||
boot floppy with the ``makeflp.bat'' command.
|
||||
|
||||
If you're creating the boot floppy from a UNIX machine,
|
||||
you may find that ``dd if=floppies/boot.flp
|
||||
of=/dev/rfd0'' or ``dd if=floppies/boot.flp
|
||||
of=/dev/floppy'' works well, depending on your hardware
|
||||
and operating system environment.
|
||||
For the easiest interface of all (from DOS), type
|
||||
``view''. This will bring up a DOS menu utility that
|
||||
leads you through all the available options.
|
||||
|
||||
Once you've booted from MS-DOS or floppy, you should be
|
||||
able to select CDROM as the media type in the Media
|
||||
If you are creating the boot floppy from a UNIX machine,
|
||||
see <ref id="install" name="the beginning of this
|
||||
guide"> for examples. of how to create the boot floppy.
|
||||
|
||||
Once you have booted from DOS or floppy, you should then
|
||||
be able to select CDROM as the media type in the Media
|
||||
menu and load the entire distribution from CDROM. No
|
||||
other types of installation media should be required.
|
||||
|
||||
After your system is fully installed and you have
|
||||
rebooted from the hard disk, you should find the CD
|
||||
mounted on the directory /cdrom. A utility called
|
||||
`lndir' comes with the XFree86 distribution which you
|
||||
may also find useful: It allows you to create "link
|
||||
tree" directories to things on Read-Only media like
|
||||
CDROM. One example might be something like this:
|
||||
<tscreen>mkdir /usr/ports<newline>lndir /cdrom/ports
|
||||
/usr/ports</tscreen>
|
||||
mounted on the directory <bf>/cdrom</bf>. A utility
|
||||
called `lndir' comes with the XFree86 distribution
|
||||
which you may also find useful: It allows you to create
|
||||
"link tree" directories to things on Read-Only media
|
||||
like CDROM. One example might be something like this:
|
||||
|
||||
Which would allow you to then "cd /usr/ports; make" and
|
||||
get all the sources from the CD, but yet create all the
|
||||
intermediate files in /usr/ports, which is presumably
|
||||
on a more writable media!
|
||||
<tscreen><verb>
|
||||
mkdir /usr/ports
|
||||
lndir /cdrom/ports /usr/ports
|
||||
</verb></tscreen>
|
||||
|
||||
Which would allow you to then ``cd /usr/ports; make''
|
||||
and get all the sources from the CD, but yet create all
|
||||
the intermediate files in <bf>/usr/ports</bf>, which is
|
||||
presumably on a more writable media.
|
||||
|
||||
This is, in fact, what the Ports entry in the
|
||||
Configuration menu does at installation time if you
|
||||
select it.
|
||||
|
||||
<quote><bf>Special note:</bf> Before invoking the
|
||||
installation, be sure that the CDROM is in the drive
|
||||
so that the install probe can find it. This is also
|
||||
true if you wish the CDROM to be added to the default
|
||||
system configuration automatically during the install
|
||||
(whether or not you actually use it as the
|
||||
installation media). <!-- XXX This will be fixed for
|
||||
2.1, but for now this simple work-around will ensure
|
||||
that your CDROM is detected properly. --></quote>
|
||||
|
||||
Finally, if you would like people to be able to FTP
|
||||
install FreeBSD directly from the CDROM in your
|
||||
machine, you will find it quite easy. After the machine
|
||||
is fully installed, you simply need to add the
|
||||
following line to the password file (using the vipw
|
||||
command):
|
||||
|
||||
<tscreen><verb>
|
||||
ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
|
||||
</verb></tscreen>
|
||||
|
||||
No further work is necessary. The other installers
|
||||
will now be able to chose a Media type of FTP and type
|
||||
in: <tt>ftp://<em>your machine</em></tt> after picking ``Other''
|
||||
in the ftp sites menu.
|
||||
|
||||
<sect1><heading>Before installing from Floppy</heading>
|
||||
|
||||
@ -450,44 +404,46 @@ Boot:
|
||||
things the hard way, you must first prepare some
|
||||
floppies for the install.
|
||||
|
||||
The first floppy you'll need is ``floppies/root.flp'',
|
||||
which is somewhat special in that it's not a MS-DOS
|
||||
filesystem floppy at all, but rather an "image" floppy
|
||||
(it's actually a gzip'd cpio file). You can use the
|
||||
rawrite.exe program to do this under DOS, or ``dd'' to
|
||||
do it on a UNIX Workstation (see notes in section 2.1
|
||||
concerning the ``floppies/boot.flp'' image). Once this
|
||||
floppy is made, put it aside. You'll be asked for it
|
||||
later.
|
||||
The first floppy you will need is ``floppies/root.flp'',
|
||||
which is somewhat special in that it is not a DOS
|
||||
filesystem floppy at all, but rather an ``image''
|
||||
floppy (it is actually a gzip'd cpio file). You can use
|
||||
the rawrite.exe program to do this under DOS, or dd to
|
||||
do it on a UNIX Workstation. See <ref id="install"
|
||||
name="the beginning of this guide"> for examples. of
|
||||
how to create the boot floppy. Once this floppy is
|
||||
made, go on to make the distribution set floppies:
|
||||
|
||||
You will also need, at minimum, as many 1.44MB or 1.2MB
|
||||
You will need, at minimum, as many 1.44MB or 1.2MB
|
||||
floppies as it takes to hold all files in the bin
|
||||
(binary distribution) directory. THESE floppies <bf>must</bf>
|
||||
be formatted using MS-DOS, using with the FORMAT
|
||||
command in MS-DOS or the File Manager format command in
|
||||
Microsoft Windows(tm). Factory preformatted floppies
|
||||
will also work well, provided that they haven't been
|
||||
previously used for something else. Note that only media
|
||||
without any defects are usable for these floppies; there
|
||||
is no kind of bad sector remapping available for them.
|
||||
(binary distribution) directory. These floppies
|
||||
<em>must</em> be formatted using MS-DOS, using the
|
||||
FORMAT command in MS-DOS or the File Manager format
|
||||
command in Microsoft Windows(tm). Do <em>not</em>
|
||||
trust Factory Preformatted floppies. Format them again
|
||||
yourself, just to make sure.
|
||||
|
||||
Many problems reported by our users in the past have
|
||||
resulted from the use of improperly formatted media, so
|
||||
we simply take special care to mention it here!
|
||||
|
||||
After you've MS-DOS formatted the floppies, you'll need
|
||||
to copy the files onto them. The distribution files
|
||||
are split into chunks conveniently sized so that 5 of
|
||||
them will fit on a conventional 1.44MB floppy. Go
|
||||
After you have DOS formatted the floppies, you will
|
||||
need to copy the files onto them. The distribution
|
||||
files are split into chunks conveniently sized so that
|
||||
5 of them will fit on a conventional 1.44MB floppy. Go
|
||||
through all your floppies, packing as many files as
|
||||
will fit on each one, until you've got all the
|
||||
distributions you want packed up in this fashion.
|
||||
Select ``Floppy'' from the Media menu at installation
|
||||
time and you will be prompted for everything after
|
||||
that.
|
||||
will fit on each one, until you have got all the
|
||||
distributions you want packed up in this fashion. Each
|
||||
distribution should go into a subdirectory on the
|
||||
floppy, e.g.: <bf>a:\bin\bin.aa</bf>,
|
||||
<bf>a:\bin\bin.ab</bf>, and so on.
|
||||
|
||||
Once you come to the Media screen of the install,
|
||||
select ``Floppy'' and you will be prompted for the rest.
|
||||
|
||||
|
||||
<sect1><heading>Before installing from a MS-DOS partition</heading>
|
||||
|
||||
<sect1><heading>Before installing from a MS-DOS partition<label id="install:msdos"></heading>
|
||||
|
||||
<p>To prepare for installation from an MS-DOS partition,
|
||||
copy the files from the distribution into a directory
|
||||
@ -498,8 +454,8 @@ Boot:
|
||||
FreeBSD:
|
||||
<tscreen><verb>
|
||||
C> MD C:\FREEBSD
|
||||
C> XCOPY /S E:\FLOPPIES C:\FREEBSD\FLOPPIES\
|
||||
C> XCOPY /S E:\DISTS\BIN C:\FREEBSD\BIN\
|
||||
C> XCOPY /S E:\FLOPPIES C:\FREEBSD\FLOPPIES\
|
||||
</verb></tscreen>
|
||||
assuming that <tt>C:</tt> is where you have free space
|
||||
and <tt>E:</tt> is where your CDROM is mounted. Note
|
||||
@ -525,26 +481,31 @@ C> XCOPY /S E:\DISTS C:\FREEBSD\
|
||||
short of an on-line install using FTP or a CDROM
|
||||
install. The installation program expects the files to
|
||||
be simply tar'ed onto the tape, so after getting all of
|
||||
the files for distribution you're interested in, simply
|
||||
the files for distribution you are interested in, simply
|
||||
tar them onto the tape with a command like:
|
||||
<tscreen>
|
||||
cd /freebsd/distdir<newline>
|
||||
tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
|
||||
</tscreen>
|
||||
cd /freebsd/distdir<newline>
|
||||
tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
|
||||
</tscreen>
|
||||
Make sure that the `floppies/' directory is one of the
|
||||
"dists" given above, since the installation will look
|
||||
``dists'' given above, since the installation will look
|
||||
for `floppies/root.flp' on the tape.
|
||||
|
||||
When you go to do the installation, you should also
|
||||
make sure that you leave enough room in some temporary
|
||||
directory (which you'll be allowed to choose) to
|
||||
accommodate the FULL contents of the tape you've
|
||||
directory (which you will be allowed to choose) to
|
||||
accommodate the <bf>full</bf> contents of the tape you have
|
||||
created. Due to the non-random access nature of tapes,
|
||||
this method of installation requires quite a bit of
|
||||
temporary storage! You should expect to require as
|
||||
temporary storage. You should expect to require as
|
||||
much temporary storage as you have stuff written on
|
||||
tape.
|
||||
|
||||
<quote><bf>Note:</bf> When going to do the
|
||||
installation, the tape must be in the drive
|
||||
<em>before</em> booting from the boot floppy. The
|
||||
installation probe may otherwise fail to find it.</quote>
|
||||
|
||||
|
||||
<sect1><heading>Before installing over a network</heading>
|
||||
|
||||
@ -557,68 +518,69 @@ C> XCOPY /S E:\DISTS C:\FREEBSD\
|
||||
standard ethernet controller (includes some PCMCIA).
|
||||
</descrip>
|
||||
|
||||
SLIP support is rather primitive, and limited primarily
|
||||
to hard-wired links, such as a serial cable running
|
||||
between a laptop computer and another computer. The link
|
||||
should be hard-wired as the SLIP installation doesn't
|
||||
currently offer a dialing capability; that facility is
|
||||
provided with the PPP utility, which should be used in
|
||||
preference to SLIP whenever possible.
|
||||
SLIP support is rather primitive, and limited primarily
|
||||
to hard-wired links, such as a serial cable running
|
||||
between a laptop computer and another computer. The
|
||||
link should be hard-wired as the SLIP installation
|
||||
does not currently offer a dialing capability; that
|
||||
facility is provided with the PPP utility, which should
|
||||
be used in preference to SLIP whenever possible.
|
||||
|
||||
If you're using a modem, then PPP is almost certainly
|
||||
your only choice. Make sure that you have your service
|
||||
provider's information handy as you'll need to know it
|
||||
fairly soon in the installation process. You will need
|
||||
to know, at the minimum, your service provider's IP
|
||||
address and possibly your own (though you can also leave
|
||||
it blank and allow PPP to negotiate it with your ISP).
|
||||
You also need to know how to use the various "AT
|
||||
commands" to dial the ISP with your particular modem as
|
||||
the PPP dialer provides only a very simple terminal
|
||||
emulator.
|
||||
If you are using a modem, then PPP is almost certainly
|
||||
your only choice. Make sure that you have your service
|
||||
provider's information handy as you will need to know it
|
||||
fairly soon in the installation process. You will need
|
||||
to know, at the minimum, your service provider's IP
|
||||
address and possibly your own (though you can also
|
||||
leave it blank and allow PPP to negotiate it with your
|
||||
ISP). You also need to know how to use the various ``AT
|
||||
commands'' to dial the ISP with your particular modem as
|
||||
the PPP dialer provides only a very simple terminal
|
||||
emulator.
|
||||
|
||||
If a hard-wired connection to another FreeBSD (2.0R or
|
||||
later) machine is available, you might also consider
|
||||
installing over a "laplink" parallel port cable. The
|
||||
data rate over the parallel port is much higher than is
|
||||
what's typically possible over a serial line (up to
|
||||
50k/sec), thus resulting in a quicker installation.
|
||||
If a hard-wired connection to another FreeBSD (2.0R or
|
||||
later) machine is available, you might also consider
|
||||
installing over a ``laplink'' parallel port cable. The
|
||||
data rate over the parallel port is much higher than
|
||||
what is typically possible over a serial line (up to
|
||||
50k/sec), thus resulting in a quicker installation.
|
||||
|
||||
Finally, for the fastest possible network installation,
|
||||
an ethernet adaptor is always a good choice! FreeBSD
|
||||
supports most common PC ethernet cards, a table of
|
||||
supported cards (and their required settings) provided as
|
||||
part of the FreeBSD Hardware Guide - see the
|
||||
Documentation menu on the boot floppy. If you are using
|
||||
one of the supported PCMCIA ethernet cards, also be sure
|
||||
that it's plugged in _before_ the laptop is powered on!
|
||||
FreeBSD does not, unfortunately, currently support "hot
|
||||
insertion" of PCMCIA cards.
|
||||
Finally, for the fastest possible network installation,
|
||||
an ethernet adaptor is always a good choice! FreeBSD
|
||||
supports most common PC ethernet cards, a table of
|
||||
supported cards (and their required settings) is
|
||||
provided in <ref id="install:hw" name="Supported
|
||||
Hardware">. If you are using one of the supported
|
||||
PCMCIA ethernet cards, also be sure that it is plugged
|
||||
in <em>before</em> the laptop is powered on! FreeBSD
|
||||
does not, unfortunately, currently support hot
|
||||
insertion of PCMCIA cards.
|
||||
|
||||
You will also need to know your IP address on the
|
||||
network, the "netmask" value for your address class and
|
||||
the name of your machine. Your system administrator can
|
||||
tell you which values to use for your particular network
|
||||
setup. If you will be referring to other hosts by name
|
||||
rather than IP address, you'll also need a name server
|
||||
and possibly the address of a gateway (if you're using
|
||||
PPP, it's your provider's IP address) to use in talking
|
||||
to it. If you do not know the answers to all or most of
|
||||
these questions, then you should really probably talk to
|
||||
your system administrator _first_ before trying this type
|
||||
of installation!
|
||||
You will also need to know your IP address on the
|
||||
network, the netmask value for your address class,
|
||||
and the name of your machine. Your system
|
||||
administrator can tell you which values to use for your
|
||||
particular network setup. If you will be referring to
|
||||
other hosts by name rather than IP address, you will also
|
||||
need a name server and possibly the address of a
|
||||
gateway (if you are using PPP, it is your provider's IP
|
||||
address) to use in talking to it. If you do not know
|
||||
the answers to all or most of these questions, then you
|
||||
should really probably talk to your system
|
||||
administrator <em>first</em> before trying this type of
|
||||
installation.
|
||||
|
||||
Once you have a network link of some sort working, the
|
||||
installation can continue over NFS or FTP.
|
||||
Once you have a network link of some sort working, the
|
||||
installation can continue over NFS or FTP.
|
||||
|
||||
<sect2><heading>Preparing for NFS installation</heading>
|
||||
|
||||
<p>NFS installation is fairly straight-forward: Simply
|
||||
copy the FreeBSD distribution files you're interested
|
||||
onto a server somewhere and then point the NFS media
|
||||
copy the FreeBSD distribution files you want onto a
|
||||
server somewhere and then point the NFS media
|
||||
selection at it.
|
||||
|
||||
If this server supports only "privileged port" access
|
||||
If this server supports only ``privileged port'' access
|
||||
(as is generally the default for Sun workstations),
|
||||
you will need to set this option in the Options menu
|
||||
before installation can proceed.
|
||||
@ -628,27 +590,26 @@ C> XCOPY /S E:\DISTS C:\FREEBSD\
|
||||
wish to toggle the appropriate Options flag.
|
||||
|
||||
In order for NFS installation to work, the server
|
||||
must support "subdir mounts", e.g. if your FreeBSD
|
||||
2.0.5 distribution directory lives on:
|
||||
ziggy:/usr/archive/stuff/FreeBSD Then ziggy will have
|
||||
must support subdir mounts, e.g., if your FreeBSD
|
||||
2.1 distribution directory lives on:
|
||||
<bf>ziggy:/usr/archive/stuff/FreeBSD</bf> Then ziggy will have
|
||||
to allow the direct mounting of
|
||||
/usr/archive/stuff/FreeBSD, not just /usr or
|
||||
/usr/archive/stuff.
|
||||
<bf>/usr/archive/stuff/FreeBSD</bf>, not just <bf>/usr</bf> or
|
||||
<bf>/usr/archive/stuff</bf>.
|
||||
|
||||
In FreeBSD's /etc/exports file, this is controlled by
|
||||
the ``-alldirs'' option. Other NFS servers may have
|
||||
In FreeBSD's <bf>/etc/exports</bf> file, this is controlled by
|
||||
the ``<tt>-alldirs</tt>'' option. Other NFS servers may have
|
||||
different conventions. If you are getting
|
||||
`Permission Denied' messages from the server then
|
||||
it's likely that you don't have this enabled
|
||||
properly!
|
||||
|
||||
it is likely that you do not have this enabled
|
||||
properly.
|
||||
|
||||
<sect2><heading>Preparing for FTP Installation</heading>
|
||||
|
||||
<p>FTP installation may be done from any mirror site
|
||||
containing a reasonably up-to-date version of FreeBSD
|
||||
2.0.5, a full menu of reasonable choices from almost
|
||||
anywhere in the world being provided by the FTP site
|
||||
2.1. A full menu of reasonable choices from almost
|
||||
anywhere in the world is provided by the FTP site
|
||||
menu.
|
||||
|
||||
If you are installing from some other FTP site not
|
||||
@ -657,101 +618,131 @@ C> XCOPY /S E:\DISTS C:\FREEBSD\
|
||||
also specify your own URL by selecting the ``Other''
|
||||
choice in that menu. A URL can also be a direct IP
|
||||
address, so the following would work in the absence
|
||||
of a name server: <tscreen>
|
||||
ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE</tscreen>
|
||||
of a name server:
|
||||
|
||||
<tscreen><verb>
|
||||
ftp://192.216.222.4/pub/FreeBSD/2.1.0-RELEASE
|
||||
</verb></tscreen>
|
||||
|
||||
<em><bf>NOTE:</bf> Substitute "ALPHA" for "RELEASE"
|
||||
during the ALPHA test period!</em>
|
||||
There are two FTP installation modes you can use:
|
||||
|
||||
If you are installing through a firewall then you
|
||||
should probably select ``Passive mode'' ftp, which is
|
||||
the default. If you are talking to a server which
|
||||
does not support passive mode for some reason, see
|
||||
the Options menu to select Active mode transfers.
|
||||
<descrip>
|
||||
<tag>FTP Active</tag>
|
||||
|
||||
For all FTP transfers, use ``Active'' mode. This
|
||||
will not work through firewalls, but will often
|
||||
work with older ftp servers that do not support
|
||||
passive mode. If your connection hangs with
|
||||
passive mode (the default), try active!
|
||||
|
||||
<tag>FTP Passive</tag>
|
||||
|
||||
For all FTP transfers, use ``Passive'' mode. This
|
||||
allows the user to pass through firewalls that do
|
||||
not allow incoming connections on random port
|
||||
addresses.
|
||||
|
||||
</descrip>
|
||||
|
||||
<quote><bf>Note:</bf> ACTIVE AND PASSIVE MODES ARE
|
||||
NOT THE SAME AS A `PROXY' CONNECTION, WHERE A PROXY
|
||||
FTP SERVER IS LISTENING ON A DIFFERENT PORT!</quote>
|
||||
|
||||
In such instances, you should specify the URL as something like:
|
||||
<tscreen><verb>
|
||||
ftp://foo.bar.com:1234/pub/FreeBSD
|
||||
</verb></tscreen>
|
||||
|
||||
Where ``1234'' is the port number of the proxy ftp server.
|
||||
|
||||
<sect><heading>Installing FreeBSD</heading>
|
||||
|
||||
<p>Once you've taken note of the appropriate
|
||||
<p>Once you have taken note of the appropriate
|
||||
preinstallation steps, you should be able to install
|
||||
FreeBSD without any further trouble.
|
||||
|
||||
Should this not be true, then you may wish to go back and
|
||||
re-read the relevant preparation section (section 2.x)
|
||||
for the installation media type you're trying to use -
|
||||
perhaps there's a helpful hint there that you missed the
|
||||
first time? If you're having hardware trouble, or
|
||||
re-read the relevant preparation section above
|
||||
for the installation media type you are trying to use,
|
||||
perhaps there is a helpful hint there that you missed the
|
||||
first time? If you are having hardware trouble, or
|
||||
FreeBSD refuses to boot at all, read the Hardware Guide
|
||||
provided on the boot floppy for a list of possible
|
||||
solutions.
|
||||
|
||||
The FreeBSD boot floppy contains all the on-line
|
||||
documentation you should need to be able to navigate
|
||||
through an installation and if it doesn't then I'd like
|
||||
to know what you found most confusing! It is the
|
||||
objective of the FreeBSD installation program
|
||||
(sysinstall) to be self-documenting enough that painful
|
||||
"step-by-step" guides are no longer necessary. It may
|
||||
take us a little while to reach that objective, but
|
||||
that's the objective!
|
||||
through an installation and if it does not then we would
|
||||
like to know what you found most confusing. Send your
|
||||
comments to <htmlurl url="mailto:doc@freebsd.org"
|
||||
name="doc@freebsd.org">. It is the objective of the
|
||||
FreeBSD installation program (sysinstall) to be
|
||||
self-documenting enough that painful ``step-by-step''
|
||||
guides are no longer necessary. It may take us a little
|
||||
while to reach that objective, but that is the objective!
|
||||
|
||||
Meanwhile, you may also find the following "typical
|
||||
installation sequence" to be helpful:
|
||||
Meanwhile, you may also find the following ``typical
|
||||
installation sequence'' to be helpful:
|
||||
|
||||
<enum>
|
||||
|
||||
<item>Boot the boot floppy. After a boot sequence
|
||||
which can take anywhere from from 30 seconds to 3
|
||||
minutes, depending on your hardware, you should be
|
||||
presented with a menu of initial choices. If the
|
||||
floppy doesn't boot at all, or the boot hangs at some
|
||||
floppy does not boot at all, or the boot hangs at some
|
||||
stage, go read the Q&A section of the Hardware Guide
|
||||
for possible causes.
|
||||
|
||||
<item>Press F1. You should see some basic usage
|
||||
instructions on the menu system and general
|
||||
navigation. If you haven't used this menu system
|
||||
navigation. If you have not used this menu system
|
||||
before then PLEASE read this thoroughly!
|
||||
|
||||
<item>If English is not your native language, you may
|
||||
wish to proceed directly to the Language option and
|
||||
set your preferred language. This will bring up some
|
||||
of the documentation in that language instead of
|
||||
English.
|
||||
|
||||
<item>Select the Options item and set any special
|
||||
preferences you may have.
|
||||
|
||||
<item>Select Proceed, bringing you to the Installation Menu.
|
||||
<item>Select a Custom or Express install, depending on
|
||||
whether or not you would like the installation to give
|
||||
you a high degree of control over each step of the
|
||||
installation or simply lead you through it, chosing
|
||||
reasonable defaults when possible. See details on
|
||||
both installation types below.
|
||||
|
||||
<item>The Configure menu choice allows you to furthur
|
||||
configure your FreeBSD installation by giving you
|
||||
menu-driven access to various system defaults. Some
|
||||
items, like networking, may be especially important
|
||||
if you did a CDROM/Tape/Floppy installation and have
|
||||
not yet configured your network interfaces (assuming
|
||||
you have any). Properly configuring such interfaces
|
||||
here will allow FreeBSD to come up on the network
|
||||
when you first reboot from the hard disk.
|
||||
</enum>
|
||||
|
||||
<sect1><heading>The installation menu</heading>
|
||||
<sect1><heading>Express installation</heading>
|
||||
|
||||
<p>You can do anything you like in this menu without
|
||||
altering your system <em>except</em> for "Commit",
|
||||
which will perform any requests to alter your system
|
||||
you may have made.
|
||||
|
||||
If you're confused at any point, the F1 key usually
|
||||
pulls up the right information for the screen you're
|
||||
in.
|
||||
<p>The express installation is not too much different than
|
||||
the Custom one except that it leads you through the
|
||||
required stages in the proper order and presents you
|
||||
with various helpful prompts along the way.
|
||||
|
||||
<enum>
|
||||
|
||||
<item>The first step is generally `Partition', which
|
||||
<item>The first step is the `Partition Editor', which
|
||||
allows you to chose how your drives will be used
|
||||
for FreeBSD.
|
||||
for FreeBSD. If you are dedicating an entire drive
|
||||
to FreeBSD, the `A' command is probably all you
|
||||
need to type here.
|
||||
|
||||
<item>Next, with the `Label' editor, you can specify
|
||||
<item>Next, with the `Label Editor', you can specify
|
||||
how the space in any allocated FreeBSD partitions
|
||||
should be used by FreeBSD, or where to mount a
|
||||
non-FreeBSD partition (such as DOS).
|
||||
non-FreeBSD partition (such as DOS). If you want
|
||||
the standard layout, simply type `A' here.
|
||||
|
||||
<item>Next, the `Distributions' menu allows you to
|
||||
specify which parts of FreeBSD you wish to load. A
|
||||
good choice is "User" for a small system or
|
||||
"Developer" for someone wanting a bit more out of
|
||||
good choice is ``User'' for a small system or
|
||||
``Developer'' for someone wanting a bit more out of
|
||||
FreeBSD. If none of the existing collections sound
|
||||
applicable, select Custom.
|
||||
|
||||
@ -759,43 +750,115 @@ C> XCOPY /S E:\DISTS C:\FREEBSD\
|
||||
what kind of media you wish to install from. If a
|
||||
desired media choice is found and configured
|
||||
automatically then this menu will simply return,
|
||||
otherwise you'll be asked for additional details on
|
||||
otherwise you will be asked for additional details on
|
||||
the media device type.
|
||||
|
||||
<item>Finally, the Commit command will actually
|
||||
perform all the actions at once (nothing has been
|
||||
written to your disk so far, nor will it until you
|
||||
give the final confirmation). All new or changed
|
||||
partition information will be written out, file
|
||||
systems will be created and/or non-destructively
|
||||
labelled (depending on how you set their newfs
|
||||
flags in the Label editor) and all selected
|
||||
distributions will be extracted.
|
||||
|
||||
<item>The Configure menu choice allows you to further
|
||||
configure your FreeBSD installation by giving you
|
||||
menu-driven access to various system defaults.
|
||||
Some items, like networking, may be especially
|
||||
important if you did a CDROM/Tape/Floppy
|
||||
installation and have not yet configured your
|
||||
network interfaces (assuming you have some).
|
||||
Properly configuring your network here will allow
|
||||
FreeBSD to come up on the network when you first
|
||||
reboot from the hard disk.
|
||||
|
||||
<item>Exit returns you to the top menu.
|
||||
|
||||
<item>Finally, you will be prompted to commit all of
|
||||
these actions at once (nothing has been written to
|
||||
your disk so far, nor will it until you give the
|
||||
final confirmation). All new or changed partition
|
||||
information will be written out, file systems will
|
||||
be created and/or non-destructively labelled
|
||||
(depending on how you set their newfs flags in the
|
||||
Label Editor) and all selected distributions will
|
||||
be extracted.
|
||||
</enum>
|
||||
|
||||
At this point, you're generally done with the
|
||||
At this point, you are generally done with the
|
||||
sysinstall utility and can select the final `Quit'. If
|
||||
you're running it as an installer (e.g. before the
|
||||
you are running it as an installer (e.g., before the
|
||||
system is all the way up) then the system will now
|
||||
reboot. If you selected the boot manager option, you
|
||||
will see a small boot menu with an `F?' prompt. Press
|
||||
the function key for BSD (it will be shown) and you
|
||||
should boot up into FreeBSD off the hard disk.
|
||||
reboot after you press return one last time. If you
|
||||
selected the boot manager option, you will see a small
|
||||
boot menu with an `F?' prompt. Press the function key
|
||||
for BSD (it will be shown) and you should boot up into
|
||||
FreeBSD off the hard disk.
|
||||
|
||||
If this fails to happen for some reason, see the Q&A
|
||||
section of the Hardware Guide for possible clues!
|
||||
|
||||
<sect1><heading>Custom installation</heading>
|
||||
|
||||
<p>You can do anything you like in this menu without
|
||||
altering your system <em>except</em> for ``Commit'',
|
||||
which will perform any requests to alter your system
|
||||
you may have made. Some of the menu options will also
|
||||
have direct `Write' commands available for commiting an
|
||||
operation immediately, but they should only be used if
|
||||
you are absolutely sure it is necessary. It is generally
|
||||
better to make your changes and then commit them all at
|
||||
once so that you are left with the option of changing
|
||||
your mind up to the very last minute.
|
||||
|
||||
If you are confused at any point, the F1 key usually
|
||||
pulls up the right information for the screen you are
|
||||
in.
|
||||
|
||||
|
||||
<sect><heading>MS-DOS user's Questions and Answers</heading>
|
||||
|
||||
<p>Many FreeBSD users wish to install FreeBSD on PCs inhabited
|
||||
by MS-DOS. Here are some commonly asked questions about
|
||||
installing FreeBSD on such systems.
|
||||
|
||||
<p><bf>Help! I have no space! Do I need to delete
|
||||
everything first?</bf>
|
||||
|
||||
If your machine is already running MS-DOS and has little
|
||||
or no free space available for FreeBSD's installation,
|
||||
all is not lost! You may find the FIPS utility, provided
|
||||
in the <tt>tools</tt> directory on the FreeBSD CDROM or
|
||||
on the various FreeBSD ftp sites, to be quite useful.
|
||||
|
||||
FIPS allows you to split an existing MS-DOS partition
|
||||
into two pieces, preserving the original partition and
|
||||
allowing you to install onto the second free piece. You
|
||||
first defragment your MS-DOS partition, using the DOS
|
||||
6.xx DEFRAG utility or the Norton Disk tools, then run
|
||||
FIPS. It will prompt you for the rest of the information
|
||||
it needs. Afterwards, you can reboot and install FreeBSD
|
||||
on the new free slice. See the <em>Distributions</em>
|
||||
menu for an estimation of how much free space you will need
|
||||
for the kind of installation you want.
|
||||
|
||||
|
||||
<bf>Can I use compressed MS-DOS filesystems from
|
||||
FreeBSD?</bf>
|
||||
|
||||
No. If you are using a utility such as Stacker(tm) or
|
||||
DoubleSpace(tm), FreeBSD will only be able to use
|
||||
whatever portion of the filesystem you leave
|
||||
uncompressed. The rest of the filesystem will show up as
|
||||
one large file (the stacked/dblspaced file!). <bf>Do not
|
||||
remove that file!</bf> You will probably regret it
|
||||
greatly!
|
||||
|
||||
It is probably better to create another uncompressed
|
||||
MS-DOS primary partition and use this for communications
|
||||
between MS-DOS and FreeBSD.
|
||||
|
||||
|
||||
<!-- XXX Status???
|
||||
<bf>Can I mount my MS-DOS extended partitions?</bf>
|
||||
|
||||
This feature is not in FreeBSD 2.0.5 but should be in 2.1.
|
||||
We have laid all the groundwork for making this happen, now
|
||||
we just need to do the last 1 percent of the work involved.
|
||||
-->
|
||||
|
||||
<bf>Can I run MS-DOS binaries under FreeBSD?</bf>
|
||||
|
||||
Not yet! We would like to add support for this someday, but
|
||||
are still lacking anyone to actually do the work.
|
||||
Ongoing work with Linux's DOSEMU utility may bring this
|
||||
much closer to being a reality sometime soon. Send mail
|
||||
to hackers@freebsd.org if you're interested in joining
|
||||
this effort!
|
||||
|
||||
However, there is a nice application available in the
|
||||
<ref id="ports" name="The Ports Collection"> called pcemu,
|
||||
that allows you to run many basic MS-DOS text-mode binaries
|
||||
by entirely emulating an 8088 CPU.
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Id: mirrors.sgml,v 1.6 1995/11/19 19:40:18 jkh Exp $ -->
|
||||
<!-- $Id: mirrors.sgml,v 1.1.2.2 1995/10/18 04:36:31 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<!--
|
||||
@ -123,8 +123,8 @@ and on CD-ROM from Walnut Creek CDROM:
|
||||
<itemize>
|
||||
|
||||
<item>
|
||||
<htmlurl url="ftp://ftp.hk.super.net/pub/mirror/FreeBSD"
|
||||
name="g ftp://ftp.hk.super.net/pub/mirror/FreeBSD"><newline>
|
||||
<htmlurl url="ftp://ftp.hk.super.net/pub/FreeBSD"
|
||||
name="g ftp://ftp.hk.super.net/pub/FreeBSD"><newline>
|
||||
Contact: <htmlurl url="mailto:ftp-admin@HK.Super.NET"
|
||||
name="ftp-admin@HK.Super.NET">.
|
||||
|
||||
@ -178,18 +178,6 @@ and on CD-ROM from Walnut Creek CDROM:
|
||||
|
||||
</itemize>
|
||||
|
||||
<tag>Poland</tag>
|
||||
|
||||
<itemize>
|
||||
|
||||
<item>
|
||||
<htmlurl url="ftp://SunSITE.icm.edu.pl/pub/FreeBSD/ftp.freebsd.org"
|
||||
name="ftp://SunSITE.icm.edu.pl/pub/FreeBSD/ftp.freebsd.org"><newline>
|
||||
Contact: <htmlurl url="mailto:archive@nl.net"
|
||||
name="archive@nl.net">.
|
||||
|
||||
</itemize>
|
||||
|
||||
<tag>Russia</tag>
|
||||
|
||||
<itemize>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Id: relnotes.sgml,v 1.5 1995/10/07 04:31:38 jfieber Exp $ -->
|
||||
<!-- $Id: relnotes.sgml,v 1.4.2.4 1995/11/07 18:24:45 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<!--
|
||||
@ -7,6 +7,95 @@
|
||||
-->
|
||||
<sect><heading>About this release<label id="relnotes"></heading>
|
||||
|
||||
<p>FreeBSD is a freely available, full source 4.4 BSD
|
||||
Lite based release for Intel i386/i486/Pentium (or
|
||||
compatible) based PC's. It is based primarily on
|
||||
software from U.C. Berkeley's CSRG group, with some
|
||||
enhancements from NetBSD, 386BSD, and the Free Software
|
||||
Foundation.
|
||||
|
||||
Since our release of FreeBSD 2.0 one year ago, the
|
||||
performance, feature set, and stability of FreeBSD has
|
||||
improved dramatically. The largest change is a
|
||||
revamped VM system with a merged VM/file buffer cache
|
||||
that not only increases performance, but reduces
|
||||
FreeBSD's memory footprint, making a 5MB configuration
|
||||
a more acceptable minimum. Other enhancements include
|
||||
full NIS client and server support, transaction TCP
|
||||
support, dial-on-demand PPP, an improved SCSI
|
||||
subsystem, early ISDN support, support for FDDI and
|
||||
Fast Ethernet (100Mbit) adapters, improved support for
|
||||
the Adaptec 2940 (WIDE and narrow) and many hundreds of
|
||||
bug fixes.
|
||||
|
||||
We've also taken the comments and suggestions of many
|
||||
of our users to heart and have attempted to provide
|
||||
what we hope is a more sane and easily understood
|
||||
installation process. Your feedback on this
|
||||
(constantly evolving) process is especially welcome!
|
||||
|
||||
In addition to the base distributions, FreeBSD offers a
|
||||
new ported software collection with some 350 commonly
|
||||
sought-after programs. The list of ports ranges from
|
||||
http (WWW) servers, to games, languages, editors and
|
||||
almost everything in between. The entire ports
|
||||
collection requires only 10MB of storage, all ports
|
||||
being expressed as ``deltas'' to their original sources.
|
||||
This makes it much easier for us to update ports, and
|
||||
greatly reduces the disk space demands made by the
|
||||
older 1.0 ports collection. To compile a port, you
|
||||
simply change to the directory of the program you wish
|
||||
to install, type make and let the system do the rest.
|
||||
The full original distribution for each port you build
|
||||
is retrieved dynamically off of CDROM or a local ftp
|
||||
site, so you need only enough disk space to build the
|
||||
ports you want. (Almost) every port is also provided
|
||||
as a pre-compiled "package" which can be installed with
|
||||
a simple command (pkg_add) by those who do not wish to
|
||||
compile their own ports from source.
|
||||
|
||||
A number of additional documents which you may find
|
||||
very helpful in the process of installing and using
|
||||
FreeBSD may now also be found in the
|
||||
<bf>/usr/share/doc</bf> directory. You may view the
|
||||
manuals with any HTML capable browser with the
|
||||
following URLs:
|
||||
|
||||
<descrip>
|
||||
<tag>The FreeBSD handbook</tag>
|
||||
<htmlurl url="file:/usr/share/doc/handbook/handbook.html">
|
||||
|
||||
<tag>The FreeBSD FAQ</tag>
|
||||
<htmlurl url="file:/usr/share/doc/FAQ/freebsd-faq.html">
|
||||
</descrip>
|
||||
|
||||
You can also visit the master (and most frequently
|
||||
updated) copies at <htmlurl
|
||||
url="http://www.freebsd.org"
|
||||
name="http://www.freebsd.org">.
|
||||
|
||||
The core of FreeBSD does not contain DES code which
|
||||
would inhibit its being exported outside the United
|
||||
States. There is an add-on package to the core
|
||||
distribution, for use only in the United States, that
|
||||
contains the programs that normally use DES. The
|
||||
auxiliary packages provided separately can be used by
|
||||
anyone. A freely (from outside the U.S.) exportable
|
||||
European distribution of DES for our non-U.S. users
|
||||
also exists and is described in the <htmlurl
|
||||
url="../FAQ/freebsd-faq.html" name="FreeBSD FAQ">.
|
||||
|
||||
If password security for FreeBSD is all you need, and
|
||||
you have no requirement for copying encrypted passwords
|
||||
from different hosts (Suns, DEC machines, etc) into
|
||||
FreeBSD password entries, then FreeBSD's MD5 based
|
||||
security may be all you require! We feel that our
|
||||
default security model is more than a match for DES,
|
||||
and without any messy export issues to deal with. If
|
||||
you're outside (or even inside) the U.S., give it a
|
||||
try!
|
||||
|
||||
<![ IGNORE [
|
||||
<p>Since our first release of FreeBSD 1.0 nearly two
|
||||
years ago, FreeBSD has changed dramatically. Since
|
||||
release 2.0, FreeBSD has been based on the Berkeley BSD
|
||||
@ -75,7 +164,7 @@
|
||||
by anyone. A freely exportable European distribution
|
||||
of DES for our non-U.S. users also exists and is
|
||||
described in the <url
|
||||
url="http://www.freebsd.org/How/faq" name="FreeBSD
|
||||
url="http://www.freebsd.org/FAQ" name="FreeBSD
|
||||
FAQ">. If password security for FreeBSD is all you
|
||||
need, and you have no requirement for copying encrypted
|
||||
passwords from other hosts using DES into FreeBSD
|
||||
@ -501,3 +590,4 @@
|
||||
ask about them!
|
||||
|
||||
-->
|
||||
]]>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $Id: scsi.sgml,v 1.5 1995/09/27 00:46:28 jmz Exp $ -->
|
||||
<!-- $Id: scsi.sgml,v 1.1.1.1.4.3 1995/10/30 15:23:57 jfieber Exp $ -->
|
||||
<!-- The FreeBSD Documentation Project -->
|
||||
|
||||
<!--
|
||||
@ -464,7 +464,7 @@ Feb 9 19:33:46 yedi /386bsd: sd0: 636MB (1303250 total sec), 1632 cyl, 15 head,
|
||||
|
||||
The multi level design allows a decoupling of low-level bit
|
||||
banging and more high level stuff. Adding support for another
|
||||
piece of hardware is a much more manageable problem.
|
||||
piece of hardware is a much more managable problem.
|
||||
|
||||
<sect2><heading>Kernel configuration</heading>
|
||||
<p>
|
||||
@ -484,7 +484,7 @@ Feb 9 19:33:46 yedi /386bsd: sd0: 636MB (1303250 total sec), 1632 cyl, 15 head,
|
||||
system boot messages will be displayed to indicate whether
|
||||
the configured hardware was actually found.
|
||||
|
||||
An example based on the FreeBSD 2.0.5-Release kernel config
|
||||
An example loosely based on the FreeBSD 2.0.5-Release kernel config
|
||||
file LINT with some added comments (between []):
|
||||
|
||||
<verb>
|
||||
@ -501,12 +501,6 @@ Feb 9 19:33:46 yedi /386bsd: sd0: 636MB (1303250 total sec), 1632 cyl, 15 head,
|
||||
# sea: Seagate ST01/02 8 bit controller (slow!)
|
||||
# wds: Western Digital WD7000 controller (no scatter/gather!).
|
||||
#
|
||||
# Note that the order is important in order for Buslogic cards to be
|
||||
# probed correctly.
|
||||
#
|
||||
|
||||
[For a Bustek controller]
|
||||
controller bt0 at isa? port "IO_BT0" bio irq ? vector btintr
|
||||
|
||||
[For an Adaptec AHA274x, 284x etc controller]
|
||||
controller ahc0 at isa? bio irq ? vector ahcintr # port??? iomem?
|
||||
@ -514,29 +508,30 @@ controller ahc0 at isa? bio irq ? vector ahcintr # port??? iomem?
|
||||
[For an Adaptec AHA174x controller]
|
||||
controller ahb0 at isa? bio irq ? vector ahbintr
|
||||
|
||||
[For an Adaptec AHA154x controller]
|
||||
controller aha0 at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
|
||||
|
||||
[For an Ultrastor adapter]
|
||||
controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
|
||||
|
||||
controller scbus0 #base SCSI code
|
||||
# Map SCSI buses to specific SCSI adapters
|
||||
controller scbus0 at ahc0
|
||||
controller scbus2 at ahb0
|
||||
controller scbus1 at uha0
|
||||
|
||||
# The actual SCSI devices
|
||||
disk sd0 at scbus0 target 0 unit 0 [SCSI disk 0 is at scbus 0, LUN 0]
|
||||
disk sd1 at scbus0 target 1 [implicit LUN 0 if omitted]
|
||||
disk sd2 at scbus0 target 3
|
||||
disk sd3 at scbus0 target 4
|
||||
disk sd2 at scbus1 target 3 [SCSI disk on the uha0]
|
||||
disk sd3 at scbus2 target 4 [SCSI disk on the ahb0]
|
||||
tape st1 at scbus0 target 6 [SCSI tape at target 6]
|
||||
device cd0 at scbus? [the first ever CDROM found, no wiring]
|
||||
|
||||
</verb>
|
||||
|
||||
The example above tells the kernel to look for a bt (Bustek)
|
||||
controller, then for an Adaptec 274x, 284x etc board, and
|
||||
The example above tells the kernel to look for a ahc (Adaptec 274x)
|
||||
controller, then for an Adaptec 174x board, and
|
||||
so on. The lines following the controller specifications
|
||||
tell the kernel to configure specific devices but
|
||||
<em>only</em> attach them when they match the target ID and
|
||||
LUN specified.
|
||||
LUN specified on the corresponding bus.
|
||||
|
||||
So, if you had a SCSI tape at target ID 2 it would not be
|
||||
configured, but it will attach when it is at target ID 6.
|
||||
|
@ -54,7 +54,7 @@ configured the appropriate system files to allow logins through your
|
||||
modems. If you haven't prepared your system for this yet, please see
|
||||
the tutorial for configuring dialup services; if you have a World-Wide
|
||||
Web browser available, browse the list of tutorials at
|
||||
<tt>http://www.freebsd.org/How</tt>; otherwise, check the place
|
||||
<tt>http://www.freebsd.org/</tt>; otherwise, check the place
|
||||
where you found this document for a document named <tt/dialup.txt/ or
|
||||
something similar. You may also want to check the manual pages for
|
||||
<tt/sio(4)/ for information on the serial port device driver and
|
||||
|
Loading…
Reference in New Issue
Block a user