这篇文章将展示如何在 FreeBSD 中编译自定义内核,使其包含 ALTQ 功能:
准备 :
- 检查当前加载程序的内核版本的命令:
uname -a
- 基于处理器架构的内核配置文件存储在
/usr/src/sys/(arch)/conf/
其中 (arch) 可以是 i386、alpha、amd64、ia64、powerpc、sparc64 或者 pc98.
- 内核选项存储在文件 /usr/src/sys/conf/NOTES 中
- 确保内核源代码存在于 /usr/src 中。如果没有,请参考教程FreeBSD如何使用 ezjail 设置和配置 jail
自定义内核编译从这里开始:
- 备份当前的可引导内核:
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