Opensolaris 内核编译

来源:chinaunix 作者:skyadmin
  
Opensolaris 做为solaris的开源版本已经流行很久。由于其绝大部分代码都可以看到源码,所以在使用中由于使用问题,进行kernel源码的修改,重新编译就成了需要
让我们开始介绍opensolaris的内核编译
1.下载Solaris Express release 版本
http://opensolaris.org/os/downloads/ 下载最新的iso,一般官方站点提供的是2个压缩过的iso文件,需要解压后合并
合并成iso文件
例如://cat file-a.iso file-b.iso file-c.iso file-d.iso file-e.iso > sxcr.iso//
刻录成光盘
安装要点
a. 磁盘需要最少10G空间
b. 最好建立单独的分区为编译做准备 分区需要4G以上空间
c. 建立单独的opt 分区 ,编译的工具都一般都安装在opt下面

========================================================================

2.下载和安装 Sun Studio 12 编译工具
对于snv99以后最好都使用studio12 进行编译
下载如果是pkg包的话直接安装即可
最新的Sun Studio12 则是 tar包,不需要安装,解压后即可使用 为了管理统一,解压后的文件在opt下建立link  SUNWspro -> sunstuido


# cd /opt
# mkdir sunstuido
# cd sunstuido
# gzcat -zxf $HOME/sunstudio11-ii-x86.tar.gz |tar -xf -
# ln -s sunstuido SUNWspro
# /opt/SUNWspro/bin/cc -V
cc: Sun C 5.9 SunOS_i386 Patch 124868-07 2008/10/07
usage: cc [ options] files.  Use ‘cc -flags’ for details
# /opt/SUNWspro/bin/CC -V
CC: Sun C++ 5.9 SunOS_i386 Patch 124864-07 2008/08/22
无论是cc 还是C++ 请确保有 Patch 124864

3.下载源码,解压,安装onbld等
当前流通版本
http://dlc.sun.com/osol/on/downloads/current/
载x86 平台
需要下载 至少3个文件
a.ON Specific Build Tools  工具包
b.ON Binary-Only Components (non-debug) 还没完全开源的二进制包
c.ON Source 源码
解压刚才下载的这些文件
# cd /export/mybuild
$ bzcat $HOME/snv-20060918/on-src*.tar.bz2 | tar -xf -
$ bzcat $HOME/snv-20060918/on-closed-bins*.i386.tar.bz2 | tar -xf -

安装onbld 工具包
# cd /tmp
#bzcat $HOME/SUNWonbld-*.i386.tar.bz2 | tar -xf -
# pkgadd -d onbld SUNWonbld

4.修改 opensolaris.sh 脚本,Makefile.master文件

$ cd /export/mybuild
$ cp usr/src/tools/env/opensolaris.sh .
修改opensolaris.sh 文件
a.修改GATE=testws;                    export GATE
为GATE=mybuild;                    export GATE
b.修改编译时候的进程数 ,根据直接cpu的核来计算,例如4核的cpu一般改为
maxjobs() {
        ncpu=`/usr/sbin/psrinfo -p`
        expr $ncpu \* 4 + 2
}

检查其他环境变量是是否和自己的环境一致
重点 如下几个变量
BUILD_TOOLS=/opt;                               export BUILD_TOOLS
ONBLD_TOOLS=/opt/onbld;                 export ONBLD_TOOLS
SPRO_ROOT=/opt/SUNWspro;                        export SPRO_ROOT
SPRO_VROOT=$SPRO_ROOT;                          export SPRO_VROOT
修usr/src/Makefile.master文件
将#__SSNEXT=      $(POUND_SIGN)
__SSNEXT=
设置为空

修改为
BUILD_TOOLS=            /opt
至于其他关于版本等变量请大家根据情况自己修改即可

5.build开始

修改环境变量,使之生效
$ PATH=/opt/SUNWspro/bin:/opt/onbld/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/ccs/bin
$ export PATH
$ TERM=vt100;LINES=24;COLUMNS=80;EDITOR=vi;LANG=C;LC_ALL=C
$ export TERM LINES COLUMNS EDITOR LANG LC_ALL
$ cd /export/mybuild

使编译需要的环境变量生效
# bldenv opensolaris.sh
# env
请确保 SCM_TYPE 为空
# export SCM_TYPE=

开始真正的编译工作
/opt/onbld/bin/nightly ./opensolaris.sh &

检查编译中的错误
tail -f logs/nightly.log |egrep “Error code|Warning”

如果出现Error code一般编译不能成功

编译是一个漫长的过程,你可以去。。。或者等待
一般编译完成后会在/export/mybuild 下有一个log文件,里面会有相信的编译log和一个编译总结的mail文件,请直接查看即可
cat mail_msg

6.安装新内核

# PATH=/opt/SUNWspro/bin:/opt/onbld/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
# export PATH
# FASTFS=/opt/onbld/bin/`uname -p`/fastfs;export FASTFS
# BFULD=/opt/onbld/bin/`uname -p`/bfuld;export BFULD
# GZIPBIN=/usr/bin/gzip;export GZIPBIN
#
# env
BFULD=/opt/onbld/bin/i386/bfuld
FASTFS=/opt/onbld/bin/i386/fastfs
GZIPBIN=/usr/bin/gzip
HOME=/
HZ=
LANG=C
LC_ALL=C
LOGNAME=root
MAIL=/var/mail/root
PATH=/opt/SUNWspro/bin:/opt/onbld/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
SHELL=/sbin/sh
TERM=vt100
TZ=Canada/Eastern
# /opt/onbld/bin/bfu /export/mybuild/archives/`uname -p`/nightly-ng/
结束后出现buf# kbfu#
检查编译结果更新配置文件在buf#提示符号 下执行 ksh /opt/onbld/bin/acrr
reboot
如果一切顺利的话将从新的kernel启动。。。。。
如果你不想编译整个kerenel的话也可以编译部分

大体过程如下
解压好源码
Building the kernel
1. bldenv -d ./opensolaris.sh
2. cd usr/src/uts
3. dmake all

Building the tools
1. cd usr/src/tools
2. dmake all

Booting
在 usr/src/uts下
1. Install -G my.kernel -k i86pc
2. su
3. cd /
4. tar xf /tmp/Install.my.kernel .
5. gedit /boot/solaris/filelist.ramdisk
6. add /platform/i86pc/my.kernel to the end
7. gedit /boot/grub/menu.lst
8. add an entry pointing kernel to my.kernel
9. reboot

时间:2009-07-05 09:25 来源:chinaunix 作者:skyadmin 原文链接

好文,顶一下
(12)
92.3%
文章真差,踩一下
(1)
7.7%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量