构建和安装自定义内核
首先,使内核建立目录的快速视图。所有目录,这里所说的在/ usr / src / sys目录;它也可以通过/ sys.the许多子目录包含了内核在不同的部分,但是我们需要完成的任务最重要的目录拱门/会议您将编辑定制的内核配置和编译,在编译过程中的文件将被放置在这里。拱是i386,α,AMD64,IA64,PowerPC,SPARC64,或PC98(在日本的PC硬件发展的另一种受欢迎的分支),具体的硬件目录中的文件只有特定的硬件相关的,而其余的都是独立于机器的代码。这些代码可以在所有平台上,已经或将被移植和运行在FreeBSD共享文件目录是逻辑组织,通过硬件设备,支持的文件系统,以及可选的组件通常是在他们自己的目录。
例如提供本章假定你使用i386体系结构的计算机。如果不是这样的话,只要调整该目录的名称。
注意:如果你没有目录 / usr / src /系统在您的系统,您不必安装内核源码来安装它的最简单的方法是运行sysinstall的身份的根,选择配置,然后分布,然后SRC,系统。如果你不喜欢sysinstall的你可以用官方FreeBSD的光盘也可以通过命令行安装:
#安装 /光盘
# mkdir -p / usr / src /系统
LN的 / usr / / /系统SRC系统#
猫 / / /时尚元素的src光盘。{ A-D } *焦油- xzvf | #
下一步,进入拱门/ conf目录,复制通用配置文件,并把文件一个容易识别的名字,这是你的内核的名字。例如:
# CD / usr / / / i386 SRC系统/会议
# CP通用mykernel
通常,这个名称是大写的。如果你保持与不同的硬件多FreeBSD机器,命名你的机器的域名是一个好主意。这就是为什么我们叫它mykernel。
提示:可以不保存内核配置文件直接在/ usr / src.if你有一个问题是一个好主意,删除/ usr / SRC和重新开始可能是一个有吸引力的选择。一旦你开始这样做,你可能会意识到,你会删除自定义内核配置文件在同一时间,几秒钟后。另外,不要编辑一般直接,因为下次更新代码将被覆盖,和您的更改将丢失。
你也可以在不同的地方考虑内核的配置文件,然后在i386目录下创建一个符号链接到它。
例如:
# CD / usr / / / i386 SRC系统/会议
# mkdir /根/粒
# CP通用/根/核/ mykernel
# LN的 / / / mykernel内核根
注意:必须以root身份执行这些和下一个命令,否则将收到错误的权限提示。
现在你可以用你喜欢的文本编辑器编辑mykernel。如果你刚刚开始使用FreeBSD,唯一可用的编辑器,它的使用可能是相当复杂的,有限的空间。这里不介绍。你可以在目录的章找到许多相关的书籍。然而,FreeBSD也提供了一个更好的编辑器,称为EE,可能是新手的一个很好的选择。你可以修改配置文件中的注释来反映你的配置,或其他地方,不同于一般的。
如果您有定制的内核sunostrade或其他的BSD系统下,这个文件的绝大多数都是非常熟悉的。如果你使用的是像DOS系统,通用配置文件看起来很难,所以下面的配置文件部分将介绍慢慢地小心地。
注意:如果你有FreeBSD项目代码同步,你必须看看 / usr / src /更新在任何更新完成。该文件描述了在更新代码的一个主要问题或者你需要注意它。 / usr / src /更新总是对应于你的FreeBSD源代码,所以它可以提供新的内容,比手工更具有时效性。
内核的源代码将被编译了,有两种方法可以做到这一点,这取决于你为什么要重新编译内核和FreeBSD版本,你跑。
如果只安装内核源代码,请使用方法1。
如果你编译一个新内核源代码在没有提升的情况下(也许你只是想添加的内核,如ipfirewall新选项),你可以使用任何方法。
如果你打算重建内核的buildworld过程的一部分,你应该使用方法2。
如果从你的buildworld installworld没有升级代码的最后成功完成的时间(这是不是运行cvsup,CTM,或anoncvs),你可以放心的使用配置,使靠制作,安装。
联合核
进入 / usr / src目录:
# CD / usr / SRC
编译内核:
#使buildkernel kernconf = mykernel
安装新内核:
#使installkernel kernconf = mykernel
注意:当使用此方法结合内核,您需要安装完整的FreeBSD源代码。
提示:默认情况下,所有的内核模块也将建成,同时当你定制的内核。如果你想升级内核更快,或者只是想加入你需要的模块,编辑 / / make.conf前联盟等:
modules_override = Linux ACPI的声音/声音/司机/ DS1 NTFS
这个变量的内容是模块的列表,你想建立的。如果你想更多的了解,对核心建筑相关的变量,看make.conf(5)在线手册。
新的内核将被复制到 / /内核启动目录 / / /启动内核的内核和旧将搬到 / /内核启动。老/ kernel.now关闭系统和启动计算机的一个新的内核。如果有问题,一些以下故障排除的方法会帮助你摆脱困境。如果你的内核不能启动,请参阅第。
注意:在启动过程中相关的其他文件,如装载机(8)和它的配置,都放在boot.the /第三方或自定义的模块也可以放在/启动/内核,但它是维护模块和内核之间的同步非常重要,否则会导致不稳定和错误。