FreeBSD - 如何编译自定义内核

这篇文章将展示如何在 FreeBSD 中编译自定义内核,使其包含 ALTQ 功能:
准备 :

  • 检查当前加载程序的内核版本的命令:
uname -a
  • 基于处理器架构的内核配置文件存储在
/usr/src/sys/(arch)/conf/

其中 (arch) 可以是 i386、alpha、amd64、ia64、powerpc、sparc64 或者 pc98.

自定义内核编译从这里开始:

  • 备份当前的可引导内核:
cp -r /boot/kernel /boot/kernel.BOOTABLE
  • 将目录更改为内核配置文件目录:
cd /usr/src/sys/i386/conf/
  • 创建一个新文件(例如 CUSTOMKERNEL)并将内核选项放入其中。例如,这篇文章正在将 ALTQ(服务质量)函数编译到内核中,因此以下是所需的内核选项:
include GENERIC
ident kernel_with_ALTQ
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
  • 使用我们刚刚创建的内核选项文件 (CUSTOMKERNEL) 编译和构建客户内核:
cd /usr/src; make buildkernel KERNCONF=CUSTOMKERNEL
  • 将内核和配置文件安装到适当的位置:
cd /usr/src; make installkernel KERNCONF=CUSTOMKERNEL

重新启动服务器,以便加载新内核。
如果新内核无法启动,这是恢复到旧内核(我们只是备份)的方法:

  • 重启服务器。当 Boot Menu 出现时,选择选项 6,“Escape to a loader prompt”。
  • 当出现“ok”提示时,执行
boot /boot/kernel.BOOTABLE/kernel

它现在应该引导到旧内核。
或者修复问题,或者重新编译并安装内核,但改用“GENERIC”内核选项文件。

顺便说一句,为了将 PAE 内核选项编译成自定义内核,只需在内核选项文件中包含

options            PAE

重新启动服务器,它将识别 4GB 以上的内存。

日期:2020-06-02 22:18:38 来源:oir作者:oir