xref: /dragonfly/usr.sbin/config/config.8 (revision 19fe1c42)
1.\" Copyright (c) 1980, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. All advertising materials mentioning features or use of this software
13.\"    must display the following acknowledgement:
14.\"	This product includes software developed by the University of
15.\"	California, Berkeley and its contributors.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"     @(#)config.8	8.2 (Berkeley) 4/19/94
33.\" $FreeBSD: src/usr.sbin/config/config.8,v 1.21.2.7 2003/04/23 07:32:39 brueffer Exp $
34.\" $DragonFly: src/usr.sbin/config/config.8,v 1.10 2008/07/10 00:46:57 thomas Exp $
35.\"
36.Dd July 4, 2001
37.Dt CONFIG 8
38.Os
39.Sh NAME
40.Nm config
41.Nd build system configuration files
42.Sh SYNOPSIS
43.Nm
44.Op Fl gpr
45.Op Fl d Ar destdir
46.Ar SYSTEM_NAME
47.Sh DESCRIPTION
48The
49.Nm
50utility builds a set of system configuration files from the file
51.Ar SYSTEM_NAME
52which describes
53the system to configure.
54A second file
55tells
56.Nm
57what files are needed to generate a system and
58can be augmented by configuration specific set of files
59that give alternate files for a specific machine
60(see the
61.Sx FILES
62section below).
63.Pp
64Available options and operands:
65.Bl -tag -width ".Ar SYSTEM_NAME"
66.It Fl d Ar destdir
67Use
68.Ar destdir
69as the output directory, instead of the default one.
70Note that
71.Nm
72does not append
73.Ar SYSTEM_NAME
74to the directory given.
75.It Fl g
76Configure a system for debugging.
77.It Fl p
78Configure a system for profiling; for example,
79.Xr kgmon 8
80and
81.Xr gprof 1 .
82If two or more
83.Fl p
84options are supplied,
85.Nm
86configures a system for high resolution profiling.
87.It Fl r
88Remove the old compile directory (see below).
89.It Ar SYSTEM_NAME
90Specify the name of the system configuration file
91containing device specifications, configuration options
92and other system parameters for one system configuration.
93.El
94.Pp
95.Nm
96should be run from the
97.Pa config
98subdirectory of the system source (usually
99.Pa /sys/config ) .
100.Nm
101creates the directory
102.Pa ../compile/ Ns Ar SYSTEM_NAME
103or the one given with the
104.Fl d
105option
106as necessary and places all output files there.
107If the output directory already exists and the
108.Fl r
109flag was specified, it will be removed first.
110The output of
111.Nm
112consists of a number of files; for the
113.Tn i386 ,
114they are:
115.Pa ioconf.c ,
116a description
117of what I/O devices are attached to the system;
118.Pa Makefile ,
119used by
120.Xr make 1
121in building the system;
122header files,
123definitions of
124the number of various devices that will be compiled into the system.
125.Pp
126After running
127.Nm ,
128it is necessary to run
129.Dq Li make depend
130in the directory where the new makefile
131was created.
132.Pp
133If any other error messages are produced by
134.Nm ,
135the problems in the configuration file should be corrected and
136.Nm
137should be run again.
138Attempts to compile a system that had configuration errors
139are likely to fail.
140.Pp
141If the
142.Cd "options INCLUDE_CONFIG_FILE"
143is used in the configuration file the
144entire input file is embedded in the new kernel.
145This means that
146.Xr strings 1
147can be used to extract it from a kernel:
148to extract the configuration information, use the command
149.Pp
150.Dl "strings -n 3 kernel | sed -n 's/^___//p'"
151.Sh DEBUG KERNELS
152Traditional
153.Bx
154kernels are compiled without symbols due to the heavy load on the
155system when compiling a
156.Dq debug
157kernel.
158A debug kernel contains complete symbols for all the source files, and
159enables an experienced kernel programmer to analyse the cause of a problem.
160The
161debuggers available prior to
162.Bx 4.4 Lite
163were able to find some information
164from a normal kernel;
165.Xr kgdb 1
166provides very little support for normal kernels, and a debug kernel is needed
167for any meaningful analysis.
168.Pp
169In order to ease posting bug reports for inexperienced users and
170make the debugging environment more uniform,
171.Dx
172installs kernel and modules unstripped.
173Debug information is not loaded into memory, so the only impact is
174a growth in root file-system consumption by 60MB.
175Those wishing to install stripped down kernel and modules can specify two new
176makeoptions in their kernel config file or when they run the
177kernel-related targets to make:
178.Bl -tag -width ".Va INSTALLSTRIPPEDMODULES=1"
179.It Va INSTALLSTRIPPED=1
180The installed kernel and modules will be stripped of debug info.
181.It Va INSTALLSTRIPPEDMODULES=1
182The installed modules will be stripped of debug info. The kernel will
183be left with debug info intact.
184.El
185.Pp
186Backup copies of the kernel and modules are automatically stripped of
187their debug information by
188.Xr objcopy 1 .
189.Sh FILES
190.Bl -tag -width ".It Pa /sys/platform/ Ns Va PLATFORM Ns Pa /conf/Makefile" -compact
191.It Pa /sys/conf/files
192list of common files system is built from
193.It Pa /sys/platform/ Ns Va PLATFORM Ns Pa /conf/Makefile
194generic makefile for the
195.Va PLATFORM
196.It Pa /sys/platform/ Ns Va PLATFORM Ns Pa /conf/files
197list of
198.Va PLATFORM
199specific files
200.It Pa /sys/config/ Ns Ar SYSTEM_NAME
201default location for kernel configuration file
202.It Pa /sys/config/GENERIC
203default kernel configuration file
204.It Pa /sys/config/VKERNEL
205default
206.Xr vkernel 7
207kernel configuration file
208.It Pa /sys/config/LINT
209kernel configuration file for checking all the sources
210.It Pa /sys/compile/ Ns Ar SYSTEM_NAME
211default kernel build directory for system
212.Ar SYSTEM_NAME .
213.El
214.Sh SEE ALSO
215.Xr kernconf 5 ,
216.Xr build 7 ,
217.Xr vkernel 7
218.Pp
219The
220.Sx SYNOPSIS
221portion of each device in section 4.
222.Rs
223.%T "Building 4.3 BSD UNIX System with Config"
224.Re
225.Sh HISTORY
226The
227.Nm
228utility appeared in
229.Bx 4.1 .
230.Sh BUGS
231The line numbers reported in error messages are usually off by one.
232