configure->Distributions->src->sys 。要是你不喜欢用sysinstall,但有freebsd
的官方安装盘,那么你可 以用以下的命令安装源代码:
# mount /cdrom
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
接着,切换到arch/conf 目录,拷贝GENERIC 文件,并命名成你所希望的内核的名称 。
例如:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
通常,这个名称是大写的,如果正维护着多台不同硬件的FreeBSD 机器,以你机器的域
名来命名是非常好的主意 。我们把它命名为MYKERNEL做为例子 。
技巧:把内核配置文件保存在/usr/src目录下不是一个好的习惯 。因为如果定制内核
出错的话,只需要删除/usr/src目录,然后从新开始 。但当你这样做之后,你会意识到
你已经删除了你的内核定制文件 。不要直接编辑GENERIC,因为它可能会在下次同步
源码树时被覆写,自然你的内核的更改也就没啦 。
你该把你的配置文件放在别处,然后在i386中建个符号链接指向该配置文件;
例如:
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL
注意:必须要以root身份执行以上还有以下的命令,否则会出现权限不够的错误 。
现在,用你喜欢的文本编辑器编辑MYKERNEL。如果你是初学者,那唯一能用的编辑器
可能就是vi,在这儿介绍它的使用就太复杂,不介绍了,但在参考书目中有许多书会介绍
到它 。然而,FreeBSD 提供了更易使用的编辑器是ee,ee是初学者的上选 。你可以
很自由地改变注释行来反映你的配置情况,或和GERNERIC 的不同之处 。
如果你定制Sunos 或其它BSD 系统内核的经验,那么这个文件中的很多内容你可能非常
熟悉 。如果你以前使用的是诸如Dos 之类的系统,那GENERIC 配置文件就看起来非常困难,
所以在下面的配置文件章节将慢慢地、仔细地进行介绍 。
注意: 在执行任何更新之前,在要用最新发布的源代码来同步你的源代码树时,确信
始终检查/usr/src/UPDATING文件 。在这个文件中升级freebsd所有重要问题都指出来了 。
/sur/src/UPDATING 总是适合你FreeBSD 源代码的版本,因此对于新信息比手册所说更加
准确 。
现在该开始编译内核代码了 。有两种方法实现内核的编译,使用哪一种方法依赖于你重建
内核的原因以及你的freebsd的版本 。
* 如果仅安装了内核源代码,那么时候使用方法1.
* 如果你使用的FreeBSD 是4.0 之前的版本,并且没有使用make world procedure升级
到4 。0或以上版本,则使用方法1.
* 如果编译内核,而没有升级源代码(多半是仅仅为增加一个新的特性,如IPFIREWALL)
,那么你可以随便用哪种方法
* 如果你正重建的内核是make world过程的一部分,那么使用方法2 。
方法1:使用传统方法构建内核
1. 运行config来产生内核代码 。
# /usr/sbin/config MYKERNEL
2. 进入构建目录 。它在运行上述命令后产生 。
# cd ../compile/MYKERNEL
对5 。0之前版本的freebsd,使用以下命令:
# cd ../../compile/MYKERNEL
3. 编译内核 。
# make depend
# make
4. 安装新内核
# make install
方法2. 使用新近的方法构建内核 。
1. 进入 /usr/src目录.
# cd /usr/src
2. 编译内核.
# make buildkernel KERNCONF=MYKERNEL
3. 安装新内核
# make installkernel KERNCONF=MYKERNEL
注意: 在freebsd4 。2及之前版本里,需要用KERNEL=. 4.2-STABLE代替KERNCONF=;
在2001年2月2日之前不能识别KERNCONF= 。
如果你还没有通过任何方法升级你的源代码树(没有运行CVSup, CTM, 没有使用anoncvs),
推荐阅读
- FreeBSD编译内核详解
- FreeBSD命令 lastcomm介绍 3.实际操作
- FreeBSD 4.0 Kernel Hacking Guide--vm/vm_page.c
- FreeBSD 5.3下安装Jail
- freebsd 权限的符号化表示
- FreeBSD和Linux共享swap区
- FreeBSD系统优化部分内核参数调整中文注释
- FreeBSD 5 内核源代码分析之中断处理
- 1、系统安装 FreeBSD网站平台建设全过程
- 用FREEBSD作开发的一些实现方式
