rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 操作系统 » FreeBSD

编译FreeBSD7内核

第一步:编译内核

我是用的最小化安装,所以没有/usr/src/sys,要编译内核,需要先装上,按装办法
选行sysinstall 选择 [Configure] -> [Distribution] -> [src] -> [sys]及[base] #cd /usr/src/sys/i386/conf
#cp GENGERIC DYITKERNEL
这里的DYITKERNEL是自己起的名子,因为我维护dyit这个域名,所以起了这个名子
上边这样子做有个坏处,就是可能因为硬盘空间不够,删除/usr/src目录,结果把DYITKERNEL也删除了,
所以常用的做法是把DYITKERNEL放到别的地方,然后在i386下建议一个符号链接
# mkdir /root/kernels
# cp GENERIC /root/kernels/DYITKERNEL  
# ln -s /root/kernels/DYITKERNEL
把GENERIC放以/root/kernels下,然后在当前目录下建立一个符号链接

第二步:编辑内核配置文件
#vi DYITKERNEL或#ee DYITKERNEL
至于保留或注解掉哪些选择,一下根据自己的硬件,二是参见

我这里主要做的是:

#cpu            I486_CPU
#cpu            I586_CPU
cpu             I686_CPU
ident           DYITKERNEL
//核心名称,自己随便起

#options SCHED_4BSD options SCHED_ULE
其它的参考上边两个文章改了一些

第三步:编译
# cd /usr/src # make buildkernel KERNCONF=DYITKERNEL
编译过程中有时候会出错,复制下错误信息在google找下就解决了,一般就是就是有些device需要另一个device,你删除了 # make installkernel KERNCONF=DYITKERNEL
#reboot
注意: 使用这种方法联编内核时,需要安装完整的 FreeBSD 源代码
那什么是安装完整的 FreeBSD 源代码呢,就是上边我们装的src/base src/sys,如果这两个没都装上, 内核将会被复制到 /boot/kernel 目录中成为 /boot/kernel/kernel 而旧的则被移到 /boot/kernel.old/kernel。
现在关闭系统, 然后用新的内核启动计算机,如果不能启动,参照
http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/kernelconfig-trouble.html

第二:编译内核是我不会参考这里,只是区别,弄明白一些东西。
如果要从freebsd6.2升级到7.0就要这样子做
找freebsd编译内核的教程时经常会发现,需要make world或make buildworld什么的,这些是做什么的呢?
我们知道,要编译最新的apache等应用软件的时候,先cvsup下ports树,然后编译。
实际上freebsd的核心源代码,就是freebsd本身,也可以通过cvsup来更新的。更新后只是源码更新了。想以这些新源码编译内核
和上边说的第一步就有区别了,就要用的make buildworld这些东西了
freebsd手册中的相关部分:http://www.freebsd.org/doc/zh_CN/books/handbook/makeworld.html

具体的操作步骤:
文章参考http://blog.chinaunix.net/u/26264/showart_409375.html
2.1更新/usr/src下的源码
#cd /usr/share/examples/cvsup/
#cvsup -L 2 -h cvsup2.cn.freebsd.org standard-supfile
#make buildworld
2.2 #cd /usr/src
#make buildkernel KERNCONF=DYITKERNEL
#make installkernel KERNCONF=DYITKERNEL #cd /usr/src
#make buildkernel
#make installkernel 进入单用户模式
#mergemaster -p
#make installworld
#mergemaster
#reboot

顶一下
(0)
踩一下
(0)