1准備工作
1.1 安裝SunStudio
默認的,OpenSolaris會在/opt/SUNWspro目錄下安裝SunStudio。如果沒有安裝,在Sun官網上下載並安裝即可,相關教程網上有很多,我就不再贅述了。
1.2安裝OnBld
使用以下命令解壓onbld:
bzip2 -d SUNWonbld.i386.tar.bz2
tar xvf SUNWonbld.i386.tar
然後進入到onbld目錄下,切換到root用戶進行安裝:
su
pkgadd -d ./ SUNWonbld
然後修改PATH環境變量,加入onbld的路徑(默認的,onbld會被安裝到/opt/onbld目錄下):
PATH=/opt/onbld/bin:/opt/onbld/bin/i386:$PATH
1.3下載源代碼和暫未開源的二進制包
注意,一定要下載和onbld版本相同的源代碼和二進制包,否則可能出現意外情況!源代碼為ON Source,二進制包為ON Binary-Only Component。可以根據需要下載debug版或非debug版的二進制包。
ps 二進制包的存在是由於版權問題。SUN暫時未能獲得Solaris系統內核中所有代碼的完整版權,故其中部分只能以二進制包的形式發布。
源代碼和二進制包可以放在任意位置,但必須是同一目錄下。例如,我將源代碼放在/usr/src/b79目錄下,二進制包放在/usr/src/b79/closed目錄下。
2配置編譯環境
將源代碼中的opensolaris.sh文件(在本例中,位於/usr/src/b79/tools/env目錄下)拷貝到/usr/src/b79目錄下,然後編輯以下幾項:
GATE=/usr/src/b79; export GATE
CODEMGR_WS="$GATE"; export CODEMGR_WS
SRC="$CODEMGR_WS"; export SRC
#BUILD_TOOLS=/opt; export BUILD_TOOLS
ONBLD_TOOLS=/opt/onbld; export ONBLD_TOOLS
SPRO_ROOT=/opt/SUNWspro; export SPRO_ROOT
然後,使用如下命令進入編譯環境:
bldenv ./opensolaris.sh
3編譯OpenSolaris內核
3.1安裝頭文件
在/usr/src/b79目錄下執行命令安裝最新的頭文件(第一次編譯時就忘了這事):
dmake setup
3.2編譯指定模塊
進入需要編譯的模塊目錄,例如$SRC/cmd/init,然後使用如下命令進行編譯:
dmake all
3.3編譯全部代碼
進入$SRC目錄,使用如下命令進行編譯:
$nightly -ni ./opensolaris.sh &