セルフ開発環境の導入 Edit

  • インストール
    bash-2.05b# yum install rpm-build gcc gcc-c++ make ncurses-devel
    
    ビルドディレクトリの修正。
    bash-2.05b# cd /usr/src
    bash-2.05b# mv unknown redhat
    
  • rpm式のビルド方法
    • パッケージをそのままビルドする方法
      bash-2.05b# rpmbuild --rebuild package.src.rpm
      
      /usr/src/redhat/RPMS/sh4等の下にパッケージが生成される。

  • パッケージを修正、または変更してビルドする方法
    bash-2.05b# rpm -ivh package.src.rpm
    
    そうすると、/usr/src/redhat/SOURCEと、/usr/src/redhat/SPECSにパッケージが展開される。
    該当ディレクトリのファイルを修正し、
    bash-2.05b# cd /usr/src/redhat/SPECS
    bash-2.05b# rpmbuild -ba package.spec
    
    /usr/src/redhat/RPMS/sh4等の下にバイナリパッケージが生成され、
    /usr/src/redhat/SRPMSの下へ修正後のソースパッケージが生成される。

kernelのセルフビルド Edit

  • 概略
    kernel2.6では、ソースコード以外のディレクトリでビルドすることが可能になっています。
    ここでは、次のようなディレクトリ構成でカーネルをビルドする例を記します。
    /home/landisk/kernel/linux-2.6.11/      …… カーネルソース
    /home/landisk/kernel/build/             …… ビルドディレクトリ
    
  • ソースコードの取得
    次の場所等からソースコードを取得します。
    http://eggplant.ddo.jp/www/download/kernel26/

  • 展開
    〜/kernel/linux-2.6.11/....というディレクトリに展開されます。
    landisk:~/kernel$ tar vxfz linux-2.6.11-kogiidena-v0.1.src.tgz
    
  • build ディレクトリの作成
    buildディレクトリを作り、そこへ.configファイルを用意します。
    landisk:~/kernel$ mkdir build 
    landisk:~/kernel$ cp linux-2.6.11/arch/sh/configs/julian_defconfig build/.config
    
  • Makefileの修正
    linux-2.6.11/Makefileの該当行を次のように修正します。
    CROSS_COMPILE	?=  
    HOSTCC  	= gcc
    HOSTCXX  	= g++
    
  • make menuconfig
    ビルドパラメータをお好みで応じて設定してください。
    (最初は触らないほうが無難ですが・・・)
    landisk:~/kernel$ cd linux-2.6.11
    landisk:~/kernel/linux-2.6.11$ make O=~/kernel/build menuconfig
    
  • make
    先ほど作成したbuildディレクトリにcdしてmakeします。
    (kernel2.6からmake depは不必要になりました。)
    landisk:~/kernel$ cd ~/kernel/build
    landisk:~/kernel/build$ make
    
  • ビルド終了
    zImageは、~/kernel/build/arch/sh/boot/zImage にできます。
    カーネルモジュールもこの段階でビルドされています。

  • カーネルmoduleのインストール
    landisk:~/kernel/build$ su         # suでrootになって、
    landisk:~/kernel/build$ make modules_install
    
  • その他
    makeの所で、"make rpm"とするとrpmパッケージ化されたカーネルが生成されるらしい。(未検証)


    Counter: 1734, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-13 (火) 20:02:27 (6609d)