技巧:把内核配置文件保存在/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),那你应当按如下顺序执行:config,make depend,make,make install
新的内核将会被拷贝到根(/)目录下,文件名为kernel,而旧的内核将会被重命名为kernel.old 。现在,重新系统以使用新的内核。如果发生错误,在这章结尾会有一些故障的解决办法。一旦你的新内核不能启动,请务必读有关如何恢复的章节。
注意:从freebsd5。0起,内核和它们的模块一起被安装在 /boot/kernel,旧内核被备份成/boot/kernel.old。 其它和启动进程相关的文件如loader(8) 及配置也被放在/boot里。 第三方模块或 定制的模块被放在/boot/modules里, 用户应该意识到保持模块和编译的内核的同步非常重要. 模块不和编译的内核同步,可以会引起不稳定或错误。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 配置 内核 使用 支持 系统 如果 文件 一个 device 这个 |
注册
个人空间
