第一步:编译内核
我是用的最小化安装,所以没有/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
至于保留或注解掉哪些选择,一下根据自己的硬件,二是参见
http://hi.baidu.com/ken%5Func/blog/item/6ef56b22aa878cf6d6cae25c.html
http://hi.baidu.com/my219/blog/item/792b9e117e64647ccb80c430.html
我这里主要做的是:
#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
相关推荐
在"freebsd7.0"版本中,SCTP的源码提供了深入理解这一协议工作原理的机会。源码分析对于开发者、研究人员以及系统管理员来说是非常有价值的,因为它可以揭示协议的内部机制,如错误处理、流控制、拥塞控制和重传策略...
3. **conf**:这个目录可能包含配置文件,这些文件用于设置内核编译时的选项,比如启用哪些功能,如何优化特定硬件的性能,以及内核模块的加载顺序等。 4. **compat**:兼容性层,FreeBSD为了与其他系统(如Linux、...
在 FreeBSD 7.0 版本中,内核源代码的深入理解对于开发者和系统管理员至关重要,因为这可以帮助他们定制和优化系统以满足特定需求。 标题提及的"FreeBSD 7.0 内核源代码2"表明这是该版本内核源代码的第二部分,由于...
### FreeBSD 7.0 特性预览:深入探索 SMPng 项目与重大新功能 #### 引言 随着计算技术的不断进步和发展,多核处理器已成为标准配置,操作系统也必须随之演进以充分利用硬件资源。FreeBSD 7.0 的发布标志着其在对称...
- **内核配置**:深入探讨 FreeBSD 内核定制的方法,包括编译自定义内核等。 - **软件包管理**:讲解如何使用 `pkg` 命令来安装、升级和卸载软件包。 - **安全措施**:提供增强系统安全性的实用建议和技术。 3. ...
- **ZFS文件系统**: 自FreeBSD 7.0引入,提供了高级特性,如快照、镜像和RAID-Z。 6. **进程管理** - **ps命令**: 查看系统中的进程状态,分析资源使用情况。 - **kill和killall**: 终止或发送信号到进程,以...
X64上的执行程序编译程序在顶层目录执行以下命令,在FreeBSD10、CentOS6.2、CentOS7.0上已经确认操作。 $ make一段时间后,您将拥有一个名为 kernel.elf 的文件。执行程序该程序是在用户端检查任务开关操作的示例,...