doc/FAQ/kernelconfig.sgml
Nik Clayton 03747c0ea6 Any variant on "freebsd.org" (all cases) mapped to "FreeBSD.org".
PR:             docs/12843
Submitted by:   Chris Costello <chris@calldei.com>
1999-07-28 20:26:09 +00:00

96 lines
3.7 KiB
Text

<!-- $Id: kernelconfig.sgml,v 1.3 1999-07-28 20:26:07 nik Exp $ -->
<!-- The FreeBSD Documentation Project -->
<sect>
<heading>Kernel Configuration<label id="kernelconfig"></heading>
<sect1>
<heading>
I'd like to customize my kernel. Is it difficult?
<label id="make-kernel">
</heading>
<p>Not at all! Check out the <url url="../handbook/kernelconfig.html"
name="kernel config section of the Handbook">.
<p><bf/NOTE:/ I recommend making a dated snapshot of your kernel
in <tt/kernel.YYMMDD/ after you get it all working, that way if
you do something dire the next time you play with your configuration
you can boot that kernel instead of having to go all the way back
to <tt/kernel.GENERIC/. This is particularly important if you're
now booting off a controller that isn't supported in the GENERIC
kernel (yes, personal experience).
<sect1>
<heading>
My kernel compiles fail because <tt/&lowbar;hw&lowbar;float/ is missing.
</heading>
<p>Let me guess. You removed <htmlurl
url="http://www.FreeBSD.org/cgi/man.cgi?npx(4)" name="npx0"> from your
kernel configuration file because you don't have a math co-processor,
right? Wrong! :-) The <tt/npx0/ is <bf/MANDATORY/. Even if you don't
have a mathematic co-processor, you <bf/must/ include the <tt/npx0/
device.
<sect1>
<heading>Interrupt conflicts with multi-port serial code.</heading>
<p><bf/Q./ When I compile a kernel with multi-port serial code, it
tells me that only the first port is probed and the rest skipped due to
interrupt conflicts. How do I fix this?
<p><bf/A./ The problem here is that FreeBSD has code built-in to keep
the kernel from getting trashed due to hardware or software
conflicts. The way to fix this is to leave out the IRQ settings
on all but one port. Here is a example:
<verb>
#
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
</verb>
<sect1>
<heading>How do I enable support for QIC-40/80 drives?</heading>
<p>You need to uncomment the following line in the generic config
file (or add it to your config file), add a ``<tt/flags 0x1/''
on the <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)"
name="fdc"> line and recompile.
<verb>
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
disk fd0 at fdc0 drive 0 ^^^^^^^^^
disk fd1 at fdc0 drive 1
#tape ft0 at fdc0 drive 2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
</verb>
<p>Next, you create a device called <tt>/dev/ft0</tt> by going into
<tt>/dev</tt> and run the following command:
<verb>
sh ./MAKEDEV ft0
</verb>
<p>for the first device. <tt/ft1/ for a second one and so on.
<p>You will have a device called <tt>/dev/ft0</tt>, which you can
write to through a special program to manage it called
``<tt/ft/'' - see the man page on <htmlurl
url="http://www.FreeBSD.org/cgi/man.cgi?ft" name="ft">
for further details.
<p>Versions previous to <tt/-current/ also had some trouble dealing
with bad tape media; if you have trouble where <tt/ft/ seems to
go back and forth over the same spot, try grabbing the latest
version of <tt/ft/ from <tt>/usr/src/sbin/ft</tt> in
<tt/-current/ and try that.
</sect>