1130b656e5
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
447 lines
19 KiB
Plaintext
447 lines
19 KiB
Plaintext
ardware Documentation Guide: $FreeBSD$
|
|
|
|
Contents last changed: July 4th, 1996
|
|
|
|
Table of Contents
|
|
-----------------
|
|
0. Document Conventions
|
|
1. Default Configuration (GENERIC kernel)
|
|
2. Using UserConfig to change FreeBSD kernel settings
|
|
3. LINT - other possible configurations.
|
|
4. Known Hardware Problems.
|
|
|
|
=========================================================================
|
|
|
|
0. Document Conventions
|
|
-- --------------------
|
|
|
|
We have `underlined' text which represents user input with `-' symbols
|
|
throughout this document to differentiate it from the machine output.
|
|
|
|
1. Default (GENERIC) Configuration
|
|
-- -------------------------------
|
|
|
|
The following table contains a list of all of the devices that are
|
|
present in the GENERIC kernel, that being the kernel (the operating
|
|
system) that was placed in your root partition during the FreeBSD
|
|
installation process. A compressed version of the GENERIC kernel is
|
|
also used on the installation floppy diskette and DOS boot image.
|
|
|
|
The table describes the various parameters used by the driver to
|
|
communicate with the hardware in your system. There are four
|
|
parameters in the table, though not all are used by each and every
|
|
device.
|
|
|
|
Detail:
|
|
|
|
Port The starting I/O port used by the device, shown in hexadecimal.
|
|
|
|
IOMem The lowest (or starting) memory address used by the device,
|
|
also shown in hexadecimal.
|
|
|
|
IRQ The interrupt the device uses to alert the driver to an event,
|
|
given in decimal.
|
|
|
|
DRQ The DMA (direct memory access) channel the device uses to move
|
|
data to and from main memory, also given in decimal.
|
|
|
|
If an entry in the table has `n/a' for a value then it means that the
|
|
parameter in question does not apply to that device. A value of `dyn'
|
|
means that the correct value should be determined automatically by the
|
|
kernel when the system boots.
|
|
|
|
|
|
FreeBSD GENERIC kernel:
|
|
|
|
Port IRQ DRQ IOMem Description
|
|
---- --- --- ----- ---------------------------------
|
|
fdc0 3f0 6 2 n/a Floppy disk controller
|
|
wdc0 1f0 14 n/a n/a IDE/MFM/RLL disk controller
|
|
wdc1 170 15 n/a n/a IDE/MFM/RLL disk controller
|
|
|
|
ncr0 n/a n/a n/a n/a NCR PCI SCSI controller
|
|
bt0 330 dyn dyn dyn Buslogic SCSI controller
|
|
uha0 330 dyn 6 dyn Ultrastore 14f
|
|
aha0 330 dyn 5 dyn Adaptec 154x SCSI controller
|
|
ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller
|
|
ahc0 dyn dyn dyn dyn Adaptec 274x/284x/294x SCSI controller
|
|
aic0 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI
|
|
controller
|
|
nca0 1f88 10 dyn dyn ProAudioSpectrum cards
|
|
sea0 dyn 5 dyn c8000 Seagate ST01/02 8 bit controller
|
|
|
|
wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36
|
|
|
|
mse0 23c 5 n/a n/a Microsoft Bus Mouse
|
|
psm0 60 12 n/a n/a PS/2 Mouse (disabled by default)
|
|
|
|
mcd0 300 10 n/a n/a Mitsumi CD-ROM
|
|
matcd0 230 n/a n/a n/a Matsushita/Panasonic CD-ROM
|
|
scd0 230 n/a n/a n/a Sony CD-ROM
|
|
|
|
sio0 3f8 4 n/a n/a Serial Port 0 (COM1)
|
|
sio1 2f8 3 n/a n/a Serial Port 1 (COM2)
|
|
|
|
lpt0 dyn 7 n/a n/a Printer Port 0
|
|
lpt1 dyn dyn n/a n/a Printer Port 1
|
|
|
|
de0 n/a n/a n/a n/a DEC DC21x40 PCI based cards
|
|
(including 21140 100bT cards)
|
|
ed0 280 5 dyn d8000 WD & SMC 80xx; Novell NE1000 &
|
|
NE2000; 3Com 3C503; HP PC Lan+
|
|
ed1 300 5 dyn d8000 Same as ed0
|
|
eg0 310 5 dyn dyn 3Com 3C505
|
|
ep0 300 10 dyn dyn 3Com 3C509
|
|
fe0 300 dyn n/a n/a Allied-Telesis AT1700, RE2000 and
|
|
Fujitsu FMV-180 series cards.
|
|
fxp0 dyn dyn n/a dyn Intel EtherExpress Pro/100B
|
|
ie0 360 7 dyn d0000 AT&T StarLAN 10 and EN100;
|
|
3Com 3C507; NI5210
|
|
ix0 300 10 dyn d0000 Intel EtherExpress cards
|
|
le0 300 5 dyn d0000 Digital Equipment EtherWorks
|
|
2 and EtherWorks 3
|
|
lnc0 280 10 n/a dyn Lance/PCnet cards
|
|
(Isolan, Novell NE2100, NE32-VL)
|
|
vx0 dyn dyn n/a dyn 3Com 3c59x / 3c9xx
|
|
ze0 300 5 dyn d8000 IBM/National Semiconductor
|
|
PCMCIA Ethernet Controller
|
|
zp0 300 10 dyn d8000 3Com PCMCIA Etherlink III
|
|
Ethernet Controller
|
|
--- End of table ---
|
|
|
|
|
|
If the hardware in your computer is not set to the same settings as
|
|
those shown in the table and the item in conflict is not marked 'dyn',
|
|
you will have to either reconfigure your hardware or use UserConfig
|
|
to reconfigure the kernel to match the way your hardware is currently set
|
|
(see the next section).
|
|
|
|
If the settings do not match, the kernel may be unable to locate
|
|
or reliably access the devices in your system.
|
|
|
|
|
|
2. Using UserConfig to change FreeBSD kernel settings
|
|
-- --------------------------------------------------
|
|
|
|
The FreeBSD kernel on the install floppy contains drivers for every
|
|
piece of hardware that could conceivably be used to install the rest
|
|
of the system with. Unfortunately, PC hardware being what it is, some
|
|
of these devices can be difficult to detect accurately, and for some,
|
|
the process of detecting another can cause irreversible confusion.
|
|
|
|
To make this process easier, FreeBSD provides UserConfig. With this
|
|
UserConfig, the user can configure and disable device drivers before
|
|
the kernel is loaded, avoiding potential conflicts, and eliminating
|
|
the need to reconfigure hardware to suit the default driver settings.
|
|
|
|
Once FreeBSD is installed, it will remember the changes made using
|
|
UserConfig, so that they only need be made once.
|
|
|
|
It is important to disable drivers that are not relevant to a system
|
|
in order to minimize the possibility of interference, which can cause
|
|
problems that are difficult to track down.
|
|
|
|
UserConfig features a command line interface for users with serial
|
|
consoles or a need to type commands, and a full screen 'visual'
|
|
interface, which provides point-and-shoot configuration functionality.
|
|
|
|
Here is a sample UserConfig screen shot in 'visual' mode:
|
|
|
|
---Active Drivers---------------------------10 Conflicts------Dev---IRQ--Port--
|
|
Storage : (Collapsed)
|
|
Network :
|
|
NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters CONF ed0 5 0x280
|
|
NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters CONF ed1 5 0x300
|
|
Communications : (Collapsed)
|
|
Input : (Collapsed)
|
|
Multimedia :
|
|
---Inactive Drivers-------------------------------------------Dev--------------
|
|
Storage :
|
|
Network : (Collapsed)
|
|
Communications :
|
|
Input :
|
|
Multimedia :
|
|
PCI :
|
|
|
|
---Parameters-for-device-ed0---------------------------------------------------
|
|
Port address : 0x280 Memory address : 0xd8000
|
|
IRQ number : 5 Memory size : 0x2000
|
|
Flags : 0x0000
|
|
-------------------------------------------------------------------------------
|
|
IO Port address (Hexadecimal, 0x1-0x2000)
|
|
[TAB] Change fields [Q] Save device parameters
|
|
|
|
|
|
The screen is divided into four sections :
|
|
|
|
- Active Drivers. Listed here are the device drivers that are currently
|
|
enabled, and their basic parameters.
|
|
- Inactive Drivers. These drivers are present, but are disabled.
|
|
- Parameter edit field. This area is used for editing driver parameters.
|
|
- Help area. Keystroke help is displayed here.
|
|
|
|
One of the Active and Inactive lists is always in use, and the current
|
|
entry in the list will be shown with a highlight bar. If there are
|
|
more entries in a list than can be shown, it will scroll. The bar can
|
|
be moved up and down using the cursor keys, and moved between lists
|
|
with the TAB key.
|
|
|
|
Drivers in the Active list may be marked "CONF". This indicates that
|
|
one or more of their parameters conflicts with another device, and
|
|
indicates a potential for problems. The total number of conflicts is
|
|
displayed at the top of the screen.
|
|
|
|
As a general rule, conflicts should be avoided, either by disabling
|
|
conflicting devices that are not present in the system, or by altering
|
|
their configuration so that they match the installed hardware.
|
|
|
|
In the list areas, drivers are grouped by their basic function.
|
|
Groups can be 'Collapsed' to simplify the display (this is the default
|
|
state for all groups). If a group is collapsed, it will be shown with
|
|
'(Collapsed)' in the list, as above. To Expand a Collapsed group,
|
|
position the highlight bar over the group heading and press Enter. To
|
|
Collapse it again, repeat the process.
|
|
|
|
When a device driver in the Active list is highlighted, its full
|
|
parameters are displayed in the Parameter edit area. Note that not
|
|
all drivers use all possible parameters, and some hardware supported
|
|
by drivers may not use all the parameters the driver supports.
|
|
|
|
To disable a driver, go to the Active list, Expand the group it is in,
|
|
highlight the driver and press Del. The driver will move to its group
|
|
in the Inactive list. (If the group is collapsed or off the screen,
|
|
you may not see the driver in its new location.)
|
|
|
|
To enable a driver, go to the Inactive list, Expand the group it is
|
|
in, highlight the driver and press Enter. The highlight will move to
|
|
the Active list, and the driver you have just enabled will be
|
|
highlighted, ready to be configured.
|
|
|
|
To configure a driver, go to the Active list, Expand the group it is
|
|
in, highlight the driver and press Enter. The cursor will move to the
|
|
Parameter edit area, and the device's parameters may be edited.
|
|
|
|
While editing parameters, the TAB and cursor keys can be used to move
|
|
between fields. Most numeric values (except IRQ) are entered in
|
|
hexadecimal, as indicated by the '0x' at the beginning of the field.
|
|
The allowable values for a given field are show in the Key Help area
|
|
when the field is active.
|
|
|
|
To finish configuring a driver, press 'Q'.
|
|
|
|
Note that PCI and EISA devices can be probed reliably, therefore are
|
|
not shown in the table above, nor can be changed using UserConfig.
|
|
|
|
|
|
3. LINT - other possible configurations
|
|
-- ------------------------------------
|
|
|
|
The following drivers are not in the GENERIC kernel but remain
|
|
available to those who do not mind compiling a custom kernel (see
|
|
section 6 of FreeBSD.FAQ). The LINT configuration file
|
|
(/sys/i386/conf/LINT) also contains prototype entries for just about
|
|
every device supported by FreeBSD and is a good general reference.
|
|
|
|
The device names and a short description of each are listed below. The port
|
|
numbers, etc, are not meaningful here since you will need to compile a
|
|
custom kernel to gain access to these devices anyway and can thus
|
|
adjust the addresses to match the hardware in your computer in the process.
|
|
The LINT file contains prototype entries for all of the below which you
|
|
can easily cut-and-paste into your own file (or simply copy LINT and edit
|
|
it to taste):
|
|
|
|
ctx: Cortex-I frame grabber
|
|
cx: Cronyx/Sigma multiport sync/async
|
|
cy: Cyclades high-speed serial driver
|
|
el: 3Com 3C501
|
|
fea: DEV DEFEA EISA FDDI adater
|
|
fpa: DEC DEFPA PCI FDDI adapter
|
|
gp: National Instruments AT-GPIB and AT-GPIB/TNT board
|
|
gsc: Genius GS-4500 hand scanner
|
|
gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
|
|
gusxvi: Gravis Ultrasound 16-bit PCM
|
|
joy: Joystick
|
|
labpc: National Instrument's Lab-PC and Lab-PC+
|
|
meteor: Matrox Meteor frame-grabber card
|
|
mpu: Roland MPU-401 stand-alone card
|
|
mse: Logitech & ATI InPort bus mouse ports
|
|
mss: Microsoft Sound System
|
|
nic: Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards
|
|
opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
|
|
pas: ProAudioSpectrum PCM and MIDI
|
|
pca: PCM audio ("/dev/audio") through your PC speaker
|
|
psm: PS/2 mouse port
|
|
rc: RISCom/8 multiport card
|
|
sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
|
|
sbmidi: SoundBlaster 16 MIDI interface
|
|
sbxvi: SoundBlaster 16
|
|
spigot: Creative Labs Video Spigot video-acquisition board
|
|
uart: Stand-alone 6850 UART for MIDI
|
|
wds: Western Digital WD7000 IDE
|
|
|
|
--- end of list ---
|
|
|
|
|
|
4. Known Hardware Problems, Q & A:
|
|
-- -------------------------------
|
|
|
|
Q: mcd0 keeps thinking that it has found a device and this stops my Intel
|
|
EtherExpress card from working.
|
|
|
|
A: Use the UserConfig utility (see section 1.0) and disable the probing of
|
|
the mcd0 and mcd1 devices. Generally speaking, you should only leave
|
|
the devices that you will be using enabled in your kernel.
|
|
|
|
|
|
Q: The system finds my ed network card, but I keep getting device
|
|
timeout errors.
|
|
|
|
A: Your card is probably on a different IRQ from what is specified in the
|
|
kernel configuration. The ed driver does not use the `soft' configuration
|
|
by default (values entered using EZSETUP in DOS), but it will use the
|
|
software configuration if you specify `?' in the IRQ field of your kernel
|
|
config file.
|
|
|
|
Either move the jumper on the card to a hard configuration setting
|
|
(altering the kernel settings if necessary), or specify the IRQ as
|
|
`-1' in UserConfig or `?' in your kernel config file. This will
|
|
tell the kernel to use the soft configuration.
|
|
|
|
Another possibility is that your card is at IRQ 9, which is shared
|
|
by IRQ 2 and frequently a cause of problems (especially when you
|
|
have a VGA card using IRQ 2! :). You should not use IRQ 2 or 9 if at
|
|
all possible.
|
|
|
|
|
|
Q: I go to boot from the hard disk for the first time after installing
|
|
FreeBSD, but the Boot Manager prompt just prints `F?' at the boot menu
|
|
each time but the boot won't go any further.
|
|
|
|
A: The hard disk geometry was set incorrectly in the Partition editor when
|
|
you installed FreeBSD. Go back into the partition editor and specify
|
|
the actual geometry of your hard disk. You must reinstall FreeBSD
|
|
again from the beginning with the correct geometry.
|
|
|
|
If you are failing entirely in figuring out the correct geometry for
|
|
your machine, here's a tip: Install a small DOS partition at the
|
|
beginning of the disk and install FreeBSD after that. The install
|
|
program will see the DOS partition and try to infer the correct
|
|
geometry from it, which usually works.
|
|
|
|
If you are setting up a truly dedicated FreeBSD server or work-
|
|
station where you don't care for (future) compatibility with DOS,
|
|
Linux or another operating system, you've also got the option to use
|
|
the entire disk (`A' in the partition editor), selecting the
|
|
non-standard option where FreeBSD occupies the entire disk from
|
|
the very first to the very last sector. This will leave all geometry
|
|
considerations aside, but is somewhat limiting unless you're never
|
|
going to run anything other than FreeBSD on a disk.
|
|
|
|
Q: I have a Matsushita/Panasonic drive but it isn't recognized by the
|
|
system.
|
|
|
|
A: Make certain that the I/O port that the matcd driver is set to is
|
|
correct for the host interface card you have. (Some SoundBlaster DOS
|
|
drivers report a hardware I/O port address for the CD-ROM interface
|
|
that is 0x10 lower than it really is.)
|
|
|
|
If you are unable to determine the settings for the card by examining
|
|
the board or documentation, you can use UserConfig to change the 'port'
|
|
address (I/O port) to -1 and start the system. This setting causes the
|
|
driver to look at a number of I/O ports that various manufacturers
|
|
use for their Matsushita/Panasonic/Creative CD-ROM interfaces.
|
|
Once the driver locates the address, you should run UserConfig again
|
|
and specify the correct address. Leaving the 'port' parameter set to -1
|
|
increases the amount of time that it takes the system to boot, and
|
|
this could interfere with other devices.
|
|
|
|
The double-speed Matsushita CR-562 and CR-563 are the only drives
|
|
that are supported.
|
|
|
|
|
|
Q: I booted the install floppy on my IBM ThinkPad (tm) laptop, and the
|
|
keyboard is all messed up.
|
|
|
|
A: Older IBM laptops use a non-standard keyboard controller, so you must
|
|
tell the console driver (sc0) to go into a special mode which works
|
|
on the ThinkPads. Change the sc0 'Flags' to 0x10 in UserConfig and
|
|
it should work fine. (Look in the Input Menu for 'Syscons Console
|
|
Driver'.)
|
|
|
|
|
|
Q: I have a Matsushita/Panasonic CR-522, a Matsushita/Panasonic CR-523 or
|
|
a TEAC CD55a drive, but it is not recognized even when the correct I/O
|
|
port is set.
|
|
|
|
A: These CD-ROM drives are currently not supported by FreeBSD. The command
|
|
sets for these drives are not compatible with the double-speed CR-562
|
|
and CR-563 drives.
|
|
|
|
The single-speed CR-522 and CR-523 drives can be identified by their
|
|
use of a CD-caddy.
|
|
|
|
|
|
Q: I'm trying to install from a tape drive but all I get is something like:
|
|
st0(aha0:1:0) NOT READY csi 40,0,0,0
|
|
on the screen. Help!
|
|
|
|
A: There's a limitation in the current sysinstall that the tape MUST
|
|
be in the drive while sysinstall is started or it won't be detected.
|
|
Try again with the tape in the drive the whole time.
|
|
|
|
|
|
Q: I've installed FreeBSD onto my system, but it hangs when booting from
|
|
the hard drive with the message: ``Changing root to /dev/sd0a''.
|
|
|
|
A: This problem may occur in a system with a 3com 3c509 Ethernet adaptor.
|
|
The ep0 device driver appears to be sensitive to probes for other
|
|
devices that also use address 0x300. Boot your FreeBSD system by power
|
|
cycling the machine (turn off and on). At the ``Boot:'' prompt specify
|
|
the ``-c''. This will invoke UserConfig (see Section 1. above). Use
|
|
the ``disable'' command to disable the device probes for all devices
|
|
at address 0x300 except the ep0 driver. On exit, your machine should
|
|
successfully boot FreeBSD.
|
|
|
|
|
|
Q: My system hangs during boot, right after the "fd0: [my floppy drive]"
|
|
line.
|
|
|
|
A: This is not actually a hang, simply a very LONG "wdc0" probe that
|
|
often takes a long time to complete on certain systems (where there
|
|
usually _isn't_ a WD controller). Be patient, your system will boot!
|
|
To eliminate the problem, boot with the -c flag and eliminate the wdc0
|
|
device, or compile a custom kernel.
|
|
|
|
|
|
Q: My system can not find my Intel EtherExpress 16 card.
|
|
|
|
A: You must set your Intel EtherExpress 16 card to be memory mapped at
|
|
address 0xD0000, and set the amount of mapped memory to 32K using
|
|
the Intel supplied softset.exe program.
|
|
|
|
|
|
Q: When installing on an EISA HP Netserver, my on-board AIC-7xxx
|
|
SCSI controller isn't detected.
|
|
|
|
A: This is a known problem, and will hopefully be fixed in the future.
|
|
In order to get your system installed at all, boot with the -c
|
|
option into UserConfig, but _don't_ use the pretty visual mode but
|
|
the plain old CLI mode. Type
|
|
|
|
eisa 12
|
|
quit
|
|
|
|
there at the prompt. (Instead of `quit', you might also type
|
|
`visual', and continue the rest of the configuration session in
|
|
visual mode.) Don't forget to install the kernel source code
|
|
distribution, you will need to install a custom kernel on those
|
|
systems.
|
|
|
|
Refer to the FAQ topic 3.16 for an explanation of the problem, and
|
|
for how to continue. Remember that you can find the FAQ on your
|
|
local system in /usr/share/doc/FAQ, provided you have installed the
|
|
`doc' distribution.
|
|
|
|
[ Please add more hardware tips to this Q&A section! ]
|
|
|