03747c0ea6
PR: docs/12843 Submitted by: Chris Costello <chris@calldei.com>
96 lines
3.7 KiB
Text
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/_hw_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>
|
|
|