OpenBSD编译内核

发表于:2007-06-09来源:作者:点击数: 标签:
曾经装过一次OpenBSD,由于种种原因,没有再继续使用,现在简单的把原来的笔记整理一下吧,这个笔记是以3.6为例,希望不算太过时,估计方法应该没变。 首先要下载安装所需的包 在官方发布的OpenBSD光盘上可以获取源代码,当然也可以从网上下载src.tar.gz、sy

曾经装过一次OpenBSD,由于种种原因,没有再继续使用,现在简单的把原来的笔记整理一下吧,这个笔记是以3.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

O 处理器及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 
另外,把不需要的网卡设备都注释掉,这样可以减小内核容量提升启动速度。 

O 磁盘设备部分有: 
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下一样的配置功能。

其他的内核选项可以参考:
[url=http://www.openbsd.org/cgi-bin/man.cgi?query=options&sektion=4][color=red:e1bf538bc9]http://www.openbsd.org/cgi-bin/man.cgi?query=options&sektion=4[/color:e1bf538bc9][/url]文档
Building the System from Source可参考:
[url=http://www.openbsd.org/faq/faq5.html#Options][color=red:e1bf538bc9]http://www.openbsd.org/faq/faq5.html#Options[/color:e1bf538bc9][/url]

 llzqq 回复于:2005-08-12 08:17:36
好贴!

 剑心通明 回复于:2005-08-12 08:24:14
llzqq 大哥要是能把其他的内核选项翻译一下就太完美了,呵呵

 像把刀子 回复于:2005-08-13 16:48:54
哦上次编译后 和编译前 对比一下 top 基本没多大变化,nnd这次不编译了 
呵呵

 剑心通明 回复于:2005-08-13 16:57:21
又不需要很长时间,让它慢慢编译去吧,呵呵

 congli 回复于:2005-08-13 17:38:23
感觉OpenBSD编绎内核时间不是很长,
不过自己就编绎过一次. :-)
有FreeBSD做基础,OpenBSD的也不难理解.

 天诛 回复于:2005-08-13 20:29:44
编译内核,在编辑配置文件时可以偷懒,不需要自己去手工指定硬件的,有专门的工具,利用dmesg的输出信息自行配置好。

 bluebell 回复于:2005-08-16 20:57:51
:)
make -j4
about 4min.

原文转自:http://www.ltesting.net