config.8

CONFIG(8)

CONFIG(8)

FreeBSD System Manager's Manual

CONFIG(8)

config

构建系统配置文件

config [-CVgp] [-I path] [-d destdir] [-s srcdir] SYSTEM_NAME config [-x kernel]

config 实用程序从描述要配置的系统的文件 SYSTEM_NAME 构建一组系统配置文件。 第二个文件告诉 config 生成系统需要哪些文件,并且可以通过配置特定文件集进行扩充,这些文件为特定机器提供备用文件(请参阅下面的 FILES 部分)。

可用选项和操作数:

-V

打印 config 版本号。

-C

如果 INCLUDE_CONFIG_FILE 存在于配置文件中,内核映像将包含完整的配置文件(保留注释)。 保留此标志是为了向后兼容。

-I path

在 path 中搜索 include 指令包含的任何文件。 可以多次指定此选项。

-d destdir

使用 destdir 作为输出目录,而不是默认目录。 请注意, config 不会将 SYSTEM_NAME 附加到给定的目录。

-s srcdir

使用 srcdir 作为源目录,而不是默认目录。

-m

打印此内核的 MACHINE 和 MACHINE_ARCH 值并退出。

-g

配置系统进行调试。

-x kernel

打印内核配置文件嵌入到内核文件中。 仅当配置文件中存在 options INCLUDE_CONFIG_FILE 条目时,此选项才有意义。

-p

配置系统进行分析;例如, kgmon(8) 和 gprof(1) 。 如果提供了两个或更多 -p 选项,则 config 将系统配置为进行高分辨率分析。

SYSTEM_NAME

为一个系统配置指定包含设备规格、配置选项和其他系统参数的系统配置文件的名称。

config 实用程序应该从系统源代码的 conf 子目录(通常是 /sys/ARCH/conf )运行,其中 ARCH 代表 FreeBSD 支持的架构之一。 config 实用程序创建目录 ../compile/SYSTEM_NAME 或根据需要使用 -d 选项指定的目录,并将所有输出文件放在那里。 config 的输出由许多文件组成;对于 i386 ,它们是: Makefile, 由 make(1) 用于构建系统;头文件,定义将编译到系统中的各种设备的数量。

config 实用程序在目录 ../.. 或使用 -s 选项给出的内核源代码中查找内核源代码。

运行 config 后,需要在创建新 makefile 的目录中运行 “make depend” 。 config 实用程序在完成时会打印此提醒。

如果 config 产生任何其他错误消息,则应更正配置文件中的问题并再次运行 config 。 尝试编译具有配置错误的系统可能会失败。

由于在编译 “debug” 内核时系统负载过重,传统的 BSD 内核编译时没有符号。 调试内核包含所有源文件的完整符号,使有经验的内核程序员能够分析问题的原因。 4.4BSD-Lite 之前可用的调试器能够从普通内核中找到一些信息; gdb(1) 对普通内核的支持很少,任何有意义的分析都需要调试内核。

由于历史、时间和空间的原因,构建调试内核并不是 FreeBSD 的默认设置:构建调试内核需要多 30% 的时间,并且在构建目录中需要大约 30 MB 的磁盘存储空间,而在构建目录中大约需要 6 MB。非调试内核。 调试内核的大小约为 11 MB,而非调试内核的大小约为 2 MB。 这个空间在根文件系统和运行时都在内存中使用。 使用 -g 选项构建调试内核。 使用此选项, config 会在内核构建目录中构建两个内核文件:

  • kernel.debug 是完整的调试内核。

  • kernel 是去掉了调试符号的内核副本。 这相当于普通的非调试内核。

目前从调试内核安装和引导几乎没有意义,因为使用这些符号的唯一可用工具不能在线运行。 因此,安装调试内核有两种选择:

  • make install” 在根文件系统中安装 kernel 。

  • make install.debug” 在根文件系统中安装 kernel.debug 。

/sys/conf/files

通用文件系统列表是从

/sys/conf/Makefile.ARCH

ARCH 的通用 makefile

/sys/conf/files.ARCH

ARCH 特定文件列表

/sys/ARCH/compile/SYSTEM_NAME

ARCH 上系统 SYSTEM_NAME 的默认内核构建目录。

config(5)

第 4 节中每个设备的 SYNOPSIS 部分。 Building 4.3 BSD UNIX System with Config.

config 实用程序出现在 4.1BSD 中。

在引入对 -x 的支持之前, options INCLUDE_CONFIG_FILE 包含了整个配置文件,该配置文件曾经嵌入到新内核中。 这意味着可以使用 strings(1) 从内核中提取它:要提取配置信息,您必须使用以下命令:

strings -n 3 kernel | sed -n 's/^___//p'

错误消息中报告的行号通常减一。

June 29, 2020

FreeBSD 13.1-RELEASE

最后更新于

FreeBSD 中文社区