过去编译过Linux的内核,发现挺容易的。现在爱上了FreeBSD,发现编译FreeBSD的内核更加简单,时间更快
第一步是需要看看在现有的系统上是否存在有源码
# ls /usr/src/sys若出现的结果是 ls: /usr/src/sys: No such file or directory,则需要先下载到FreeBSD的源码,可以使用两种方式:
- 是使用sysinstall的方式下载当前内核配套的源码
- 使用svn从FreeBSD的版本控制服务器上下载最新的版本
第二步执行下面的命令
# cd /usr/src/sys/i386/conf
然后
# cp GENERIC SUNRISE
下面再编辑SUNRISE文件
vi SUNRISE
里面包括一些选项,根据自己的需要来定制内核的功能、驱动、模块等,在整个过程中可以参考文档
http://www.freebsd.org/doc/en/books/handbook/kernelconfig.html
第三步是开始编译了
# cd /usr/src/sys/i386/conf # /usr/sbin/config SUNRISE # cd ../compile/SUNRISE # make depend # make # make install
到现在为止,如果没有出错那么就是编译安装内核成功了,只需要重新启动机器,就加载刚刚编译的内核了.新的内核存放在目录/boot/kernel下,旧的内核存在/boot/kernel.old/下
第四步,如果在加载新的内核出问题的话,可以在启动等待10秒的时候输入如下命令
选择Escape to a loader prompt,第6项,然后输入unload kernel,再加载旧的内核
boot /boot/kernel.old/kernel
最后需要提醒的是,每一次编译都是将新编译的内核覆盖/boot/kernel目录,过去/boot/kernel覆盖/boot/kernel.old,但是不能够保证每一次编译都没有问题,所以有必要在/boot下保存一份好的内核,如
# cp /boot/kernel /boot/kernel_good