70a84f9ef2
Frank Durda's revision of the hardware guide.
341 lines
14 KiB
Plaintext
341 lines
14 KiB
Plaintext
Hardware Documentation Guide: $Id: hardware.hlp,v 1.1 1995/06/04 02:33:02 jkh Exp $
|
|
|
|
Table of Contents
|
|
-----------------
|
|
|
|
1. Using UserConfig to change FreeBSD kernel settings
|
|
2. Default Configuration (GENERIC kernel)
|
|
3. LINT - other possible configurations.
|
|
4. Known Hardware Problems.
|
|
|
|
=========================================================================
|
|
|
|
|
|
1. Using UserConfig to change FreeBSD kernel settings
|
|
-- --------------------------------------------------
|
|
|
|
The UserConfig utility allows you to override various settings of
|
|
the FreeBSD kernel when the system is booting. This allows you to
|
|
make minor adjustments to the drivers in the system without having to
|
|
recompile the kernel.
|
|
|
|
UserConfig is activated by including the '-c' flag at the initial
|
|
boot prompt. For example:
|
|
|
|
>> FreeBSD BOOT @ 0x10000: 640/7168 k of memory
|
|
Use hd(1,a)/kernel to boot sd0 when wd0 is also installed.
|
|
Usage: [[wd(0,a)]/kernel][-abcCdhrsv]
|
|
Use ? for file list or press Enter for defaults
|
|
|
|
Boot: -c
|
|
--
|
|
|
|
This command causes the system to boot the default kernel ("/kernel") and
|
|
the UserConfig utility will be started once the kernel is loaded into memory.
|
|
|
|
The '-c' flag follows any other parameters that you may need to provide
|
|
for the system to boot properly. For example, to boot off the second of
|
|
two SCSI drives installed and run UserConfig, you would type:
|
|
|
|
Boot: sd(1,a)/kernel -c
|
|
-----------------
|
|
|
|
As always, the kernel will report some information on your processor
|
|
and how much memory your system has. Then UserConfig will be invoked
|
|
and you will see the prompt:
|
|
|
|
config>
|
|
|
|
To see the list of commands that UserConfig accepts, you may type '?' and
|
|
press [ENTER]. The help message looks something like this:
|
|
|
|
Command Description
|
|
------- -----------
|
|
attach <devname> Return results of device attach
|
|
ls List currently configured devices
|
|
port <devname> <addr> Set device port (i/o address)
|
|
irq <devname> <number> Set device irq
|
|
drq <devname> <number> Set device drq (DMA Request)
|
|
iomem <devname> <addr> Set device maddr (memory address)
|
|
iosize <devname> <size> Set device memory size
|
|
flags <devname> <mask> Set device flags
|
|
enable <devname> Enable device
|
|
probe <devname> Return results of device probe
|
|
disable <devname> Disable device (will not be probed)
|
|
quit Exit this configuration utility
|
|
help This message
|
|
|
|
|
|
You may alter nearly all of the default settings present in the FreeBSD
|
|
generic kernel. This includes reassigning IRQs, disabling troublesome
|
|
devices (or drivers that conflict with the hardware your system has),
|
|
setting special device flags, etc.
|
|
|
|
The first thing most people do is determine the current settings for
|
|
a driver that they are having trouble with. The "ls" command displays
|
|
the current settings for all the drivers present in the kernel that
|
|
is loaded in memory.
|
|
|
|
Once you have located the entry in question, you will use the device
|
|
name to change settings or even disable the driver completely.
|
|
For example, to change the address of network adapter 'ed0' to the
|
|
address 0xd4000, you would type
|
|
|
|
config> iomem ed0 0xd4000
|
|
-----------------
|
|
|
|
You might also want to disable a driver you are not using. In this
|
|
example, you might want to disable device 'ie0', so you would type:
|
|
|
|
config> disable ie0
|
|
-----------
|
|
|
|
You can use the 'ls' command to verify your changes and you can correct
|
|
any mistyped commands at any time.
|
|
|
|
|
|
Once you are happy with a given configuration you may use the `quit'
|
|
command. This will cause the kernel to boot with the new settings you
|
|
have specified.
|
|
|
|
|
|
Once you have a fully installed system (e.g. the filesystems have been
|
|
partitioned and the bin distribution successfully extracted), any changes
|
|
you make in UserConfig are permanently stored in the '/kernel' file on
|
|
the root filesystem. This action is performed by the utility 'dset'.
|
|
These settings will remain in effect until you replace the kernel
|
|
a different one. If you do not want your changes to be permanently
|
|
stored, remove 'dset' from the /etc/rc file before you make any
|
|
changes.
|
|
|
|
If you accidentally change a setting for a device that you did not mean
|
|
to change, the safest thing to do is to reset the computer and start
|
|
over. Do not allow the boot to proceed (do not type 'quit') with settings
|
|
you are not happy with because the settings may be permanently stored and
|
|
may leave your system in a state where it will not run properly anymore.
|
|
|
|
|
|
We suggest as a general rule that you disable any drivers that are not
|
|
used by your particular hardware configuration. There are known problems
|
|
with certain device drivers (see section 4.0) for devices that your
|
|
system may not have, yet they still conflict with some other device that
|
|
your system does have, residing at the same port/IRQ addresses. These
|
|
drivers will eventually be fixed or replaced in some future release
|
|
of the operating system, but until that time it is quite a bit simpler
|
|
to use the `disable' command to remove them from consideration entirely.
|
|
|
|
You can also remove drivers that are not needed by building yourself a
|
|
custom kernel that contains only the device deviers which your system
|
|
really needs (see section 6.0 of the FreeBSD.FAQ). If your system has
|
|
sufficient free disk space to store and compile the kernel sources,
|
|
this is the option we recommend.
|
|
|
|
|
|
|
|
2. Default (GENERIC) Configuration
|
|
-- -------------------------------
|
|
|
|
The following table contains a list of all of the devices that are present
|
|
in the GENERIC kernel, which is the kernel (the operating system) that was
|
|
placed on your computer during the FreeBSD installation process.
|
|
(A compressed version of the GENERIC kernel is also used on the
|
|
installation floppy diskettes.)
|
|
|
|
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, but not all are used by each device. They are:
|
|
|
|
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 the value, it means that the
|
|
parameter does not apply to that device. A value of `dyn' means that the
|
|
correct value is 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
|
|
ahc0 n/a n/a n/a n/a Adaptec 294x PCI SCSI controller
|
|
bt0 330 dyn dyn dyn Buslogic SCSI controller
|
|
uha0 330 dyn 6 dyn Ultrastore 14f
|
|
ahc1 dyn dyn dyn dyn Adaptec 274x/284x SCSI controller
|
|
ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller
|
|
aha0 330 dyn 5 dyn Adaptec 154x SCSI controller
|
|
aic0 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI
|
|
controller
|
|
nca0 1f88 10 dyn dyn ProAudioSpectrum cards
|
|
nca1 350 5 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
|
|
|
|
mcd0 300 10 n/a n/a Mitsumi CD-ROM
|
|
mcd1 340 11 n/a n/a Mitsumi CD-ROM
|
|
|
|
matcd0 dyn 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)
|
|
sio2 3e8 5 n/a n/a Serial Port 2 (COM3)
|
|
sio3 2e8 9 n/a n/a Serial Port 3 (COM4)
|
|
|
|
lpt0 dyn 7 n/a n/a Printer Port 0
|
|
lpt1 dyn dyn n/a n/a Printer Port 1
|
|
lpt2 dyn dyn n/a n/a Printer Port 2
|
|
|
|
de0 DEC DC21x40 PCI based cards
|
|
(including 21140 100bT cards)
|
|
ed0 280 5 dyn d8000 WD & SMC 80xx; Novell NE1000 &
|
|
NE2000; 3Com 3C503
|
|
ed1 300 5 dyn d8000 Same as ed0
|
|
eg0 310 5 dyn dyn 3Com 3C505
|
|
ep0 300 10 dyn dyn 3Com 3C509
|
|
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)
|
|
lnc1 300 10 n/a dyn See lnc0
|
|
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 this table and the item is not marked 'dyn', you will
|
|
have to either reconfigure your hardware, or use UserConfig ('-c boot
|
|
option) to reconfigure the kernel to match the way your hardware is
|
|
currently set (see section 1.0).
|
|
|
|
If the settings do not match, the kernel may be unable to locate
|
|
or reliably access the devices in your system.
|
|
|
|
|
|
|
|
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):
|
|
|
|
apm: Laptop Advanced Power Management (experimental)
|
|
ctx: Cortex-I frame grabber
|
|
cx: Cronyx/Sigma multiport sync/async
|
|
cy: Cyclades high-speed serial driver
|
|
el: 3Com 3C501
|
|
fe: Fujitsu MB86960A/MB86965A Ethernet cards
|
|
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
|
|
gusmax: Gravis Ultrasound MAX (currently broken)
|
|
gusxvi: Gravis Ultrasound 16-bit PCM
|
|
joy: Joystick
|
|
labpc: National Instrument's Lab-PC and Lab-PC+
|
|
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 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: Create Labs Video Spigot video-acquisition board
|
|
uart: Stand-alone 6850 UART for MIDI
|
|
wds: Western Digital WD7000 IDE
|
|
|
|
--- end of list ---
|
|
|
|
|
|
4.0 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 will no longer 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. The reason for the change is because the
|
|
ed driver used to read and try to use the soft configuration information
|
|
even when the card was jumpered to use a hard configuration, and this
|
|
caused problems.
|
|
|
|
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.
|
|
|
|
|
|
Q: I go to boot from the hard disk for the first time after installing
|
|
FreeBSD, but the Boot Manger prompt just prints `F?' and the boot menu
|
|
each time and the system 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.
|
|
|
|
<< XXX Hints here about determining correct geometry? XXX >>
|
|
|
|
|
|
Q: I have a Matsushita/Panasonic CD-ROM drive but it isn't recognized
|
|
by the system, even if I use UserConfig to change the Port address to
|
|
630, which is what my card uses.
|
|
|
|
A: Not all of the companies that sell the Matsushita/Panasonic CR-562
|
|
and CR-563 drives use the same I/O ports and interface that the
|
|
matcd driver in FreeBSD expects. The only adapters that are supported
|
|
at this time are those that are 100% compatible with the Creative
|
|
Labs (SoundBlaster) host interface. See matcd.4 documentation for a
|
|
list of host adapters that are known to work.
|
|
|
|
[ Please add more hardware tips to this Q&A section! ]
|