OpenBSD3.6编译内核的方法
首先要下载安装所需的包
在官方发布的openbsd光盘上可以获取源代码,当然也可以从网上下载src.tar.gz、sys.tar.gz、ports.tar.gz文档
cp /home/jjp/src.tar.gz /usr/src/
tar zxvf src.tar.gz
cp /home/jjp/sys.tar.gz /usr/src/
tar zxvf sys.tar.gz
cp /home/jjp/ports.tar.gz /usr/
tar xzvf ports.tar.gz
可以cvsup到最新的文件,首先要安装cvsup。
pkg_add cvsup-16.1g-no_x11.tgz
装完以后需要自己手工生成配置文件,不象freebsd那样可以拷贝一个example。
cd /usr
mkdir cvsup
cd cvsup
编辑cvsup-supfile
mg cvsup-supfile
#注意需要用mg,不是vi什么的
[code:1:e1bf538bc9]
#defaults that apply to all the collections
*default release=cvs
*default delete use-rel-suffix
*default umask=002
*default host=cvsup.uk.openbsd.org
*default base=/usr
*default prefix=/usr/cvsup
#if your network link is t1 or faster, comment out the following line.
*default compress
openbsd-all
#openbsd-src
#openbsd-www
#openbsd-ports
#openbsd-x11
#openbsd-xf4
[/code:1:e1bf538bc9]
然后执行cvsup
cvsup -g -l 2 cvsup-supfile
openbsd的内核配置文件因为支持多平台,所以相应平台的配置
文件就存放在/usr/src/sys/arch/$arch/conf/里,这里的$arch就是你所用的平台名称。以i386为例介绍对内核有优化作用的选项。
cd /usr/src/sys/arch/i386/conf
cp generic mine
vi mine
处理器及i/o部分有:
option i686_cpu
这个很简单,与freebsd一样
#option gpl_math_emulate
别把它打开除非你的机器老得连fpu都没有
option dummy_nops
把开机延迟关掉
option uvm
高级虚拟内存系统,在系统进行交换时提高速度所用
#option mfs
这个也与freebsd含义一样,用于建立内存盘以提升数据访问速度
网络部分有:
option nmbclusters="8192"
与freebsd含义一样,提升高流量时的网络操作速度并提高内核稳定性。如流量低可用1024或2048
另外,把不需要的网卡设备都注释掉,这样可以减小内核容量提升启动速度。
磁盘设备部分有:
option bufcachepercent=45
保留45%的系统内存作为文件系统的缓存,顾名思义,根据实际系统内存数来取值,推荐取低一些的值
另外,与网络部分一样,把不需要的磁盘设备(scsi、ide)都注释掉。
配完了内核,依次打:
cd /usr/src/sys/arch/i386/conf ;
config mine
cd ../compile/mine ;
make depend && make
cp /bsd /bsd-old ; cp bsd /bsd
重启后就可以直接用刚才编译好的新内核了,如果它有任何问题,可以重启后在boot>的提示符上输入刚才换名的旧内核,命令格式为:
boot> boot device:/kernelold
把device换成你存放旧内核的盘设备即可。顺便提一下,你可以在上述命令后加上一个-c选项进入user kernel config界面,它提供与freebsd下一样的配置功能。