Boot-time Kernel Configuration
This section describes the boot-time configuration of the
&os; kernel.
Default Configuration
The following table contains a list of all of the devices
that are present in the GENERIC kernel. This
is the essential part of the operating system that is placed in
your root partition during the 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:
Port
The starting I/O port used by the device, 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.
IOMem
The lowest (or starting) memory address used by the device,
also shown in hexadecimal.
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 and that you
don't need to worry about it.
If an entry is marked with an *, it means that support is
currently not available for it but should be back as soon as
someone converts the driver to work within the new (post-4.0)
framework.
Device
Port
IRQ
DRQ
IOMem
Description
fdc0
3f0
6
2
n/a
Floppy disk controller
ata0
170
14
n/a
n/a
ATA/ATAPI controller
ata1
170
15
n/a
n/a
ATA/ATAPI controller
atadisk0
n/a
n/a
n/a
n/a
ATA disk drives
atapicd0
n/a
n/a
n/a
n/a
ATAPI CDROM drives
atapifd0
n/a
n/a
n/a
n/a
ATAPI floppy drives
atapist0
n/a
n/a
n/a
n/a
ATAPI tape drives
adv0
n/a
n/a
n/a
n/a
AdvanSys Narrow SCSI controllers
adw0
n/a
n/a
n/a
n/a
AdvanSys Wide SCSI controllers
amd0
n/a
n/a
n/a
n/a
AMD 53C974 (Tekram DC390(T))
ncr0
n/a
n/a
n/a
n/a
NCR PCI SCSI controller
bt0
330
dyn
dyn
dyn
Buslogic SCSI controller
aha0
330
dyn
5
dyn
Adaptec 154x/1535 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/AIC-6260 SCSI controller
isp0
dyn
dyn
dyn
dyn
QLogic 10X0, 1240 Ultra SCSI, 1080/1280 Ultra2 SCSI, 12160 Ultra3 SCSI, 2X00 Fibre Channel SCSI controller
dpt0
dyn
dyn
n/a
n/a
DPT RAID SCSI controllers
amr0
dyn
dyn
n/a
n/a
AMI MegaRAID controllers
mlx0
dyn
dyn
n/a
dyn
Mylex DAC960 RAID controllers
twe0
dyn
dyn
n/a
n/a
3ware Escalade RAID controllers
asr0
dyn
dyn
dyn
dyn
DPT SmartRaid V, VI, and Adaptec SCSI RAID
mly0
dyn
dyn
dyn
dyn
Mylex AcceleRAID/eXtremeRAID
aac
dyn
dyn
dyn
dyn
Adaptec FSA family PCI SCSI RAID
ncv
dyn
dyn
n/a
n/a
NCR 53C500 based PC-Card SCSI
nsp
dyn
dyn
n/a
dyn
Workbit Ninja SCSI-3 based PC-Card SCSI
stg
dyn
dyn
n/a
n/a
TMC 18C30/50 based ISA/PC-Card SCSI
wt0
300
5
1
dyn
Wangtek and Archive QIC-02/QIC-36
psm0
60
12
n/a
n/a
PS/2 Mouse
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)
ppc0
dyn
7
n/a
n/a
Printer ports
dc0
n/a
n/a
n/a
n/a
DEC/Intel 21143 cards and workalikes
de0
n/a
n/a
n/a
n/a
DEC DC21x40 PCI based cards (including 21140 100bT cards)
ed0
280
10
dyn
d8000
WD & SMC 80xx; Novell NE1000 & NE2000; 3Com 3C503; HP PC Lan+
ep0
300
10
dyn
dyn
3Com 3C509, 3C529, 3C556, 3C562D, 3C563D, 3C572, 3C574X, 3C579, 3C589
ex0
dyn
dyn
dyn
n/a
Intel EtherExpress Pro/10 cards
fe0
300
dyn
n/a
n/a
Allied-Telesyn AT1700, RE2000 and Fujitsu FMV-180 series cards.
fxp0
dyn
dyn
n/a
dyn
Intel EtherExpress Pro/100B and Intel PRO/100+ Management Adapter
ie0
300
10
dyn
d0000
AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210; Intel EtherExpress (8/16,16[TP]) 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, some PCnet-PCI cards)
pcn0
dyn
dyn
n/a
dyn
AMD PCnet/FAST, PCnet/FAST+, PCnet/FAST III, PCnet/PRO, PCnet/Home, and HomePNA cards
rl0
dyn
dyn
n/a
dyn
RealTek 8129/8139 fast ethernet
sf0
dyn
dyn
n/a
dyn
Adaptec AIC-6915 fast ethernet
sis0
dyn
dyn
n/a
dyn
SiS 900/SiS 7016 fast ethernet
sn0
0x300
10
n/a
n/a
SMC 91xx ethernet
ste0
dyn
dyn
n/a
dyn
Sundance ST201 fast ethernet
tl0
dyn
dyn
n/a
dyn
TI TNET100 'ThunderLAN' cards.
tx0
dyn
dyn
n/a
dyn
SMC 9432 'Epic' fast ethernet
wb0
dyn
dyn
n/a
dyn
Winbond W89C840F PCI based cards.
vr0
dyn
dyn
n/a
dyn
VIA VT3043/VT86C100A PCI based cards.
vx0
dyn
dyn
n/a
dyn
3Com 3c59x ((Fast) Etherlink III)
xe0
dyn
dyn
n/a
dyn
Xircom CreditCard adapters (16 bit)
xl0
dyn
dyn
n/a
dyn
3Com 3c900, 3c905, 3c905B, 3c905C, 3c980, 3cSOHO100 ((Fast) Etherlink XL)
cs0
0x300
dyn
n/a
n/a
Crystal Semiconductor CS89x0-based cards.
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.
Using UserConfig to change FreeBSD kernel settings
The markup for this section leaves a lot to be desired.
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 tool 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 :
---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, Microchannel and EISA devices can be probed
reliably, therefore they are not shown in the table above nor can
their settings be changed using UserConfig.