For the complete documentation index, see llms.txt. This page is also available as Markdown.

config(8)

config — 构建系统配置文件

名称

config

概要

config [-CVgpv] [-I path] [-d destdir] [-s srcdir] SYSTEM_NAME

config [-x kernel]

描述

config 工具根据描述待配置系统的 SYSTEM_NAME 文件来构建一组系统配置文件。另一个文件告诉 config 生成系统需要哪些文件,并且可以通过特定于配置的文件集合进行扩充,这些文件为特定机器提供替代文件(参见下文的文件章节)。

可用选项和操作数如下:

-V 打印 config 版本号。

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

-I pathpath 中搜索由 include 指令包含的任何文件。此选项可多次指定。

-d destdir 使用 destdir 作为输出目录,而非默认目录。注意,config 不会将 SYSTEM_NAME 追加到给定目录中。

-s srcdir 使用 srcdir 作为源代码目录,而非默认目录。

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

-g 为调试配置系统。

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

-v 开启详细输出。

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。尝试编译存在配置错误的系统很可能会失败。

调试内核

传统的 BSD 内核编译时不带符号,因为编译 “调试” 内核会给系统带来沉重负担。调试内核包含所有源文件的完整符号,使有经验的内核程序员能够分析问题的原因。4.4BSD Lite 之前可用的调试器能够从普通内核中找到一些信息;gdb(1)(ports/devel/gdb)对普通内核的支持很少,要进行任何有意义的分析需要调试内核。

由于历史、时间和空间的原因,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 节中每个设备的概要部分。

S. J. Leffler, M. J. Karels, "Building 4.3 BSD UNIX System with Config", 4.4BSD System Manager's Manual (SMM).

历史

config 工具出现于 4.1BSD。

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

缺陷

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

最后更新于

这有帮助吗?