home

Last updated -- 2000/Mar./20
クロスコンパイルの方法
x86 な PC/AT マシン上で Linux-VR 用のカーネル/ユーザランドバイナリを クロスコンパイルするための簡単な設定方法などを書いてみました。

クロスコンパイルに必要なマシン構成
昔は RedHat6.0 以降のマシン(glibc-2.1?)でないとうまくコンパイルできなかった ようですが、最近は glibc-2.0 でも大丈夫なようです。
私もさきほど Vine1.1 (glibc-2.0ベース)で以下の方法で環境を構築してみましたが 無事にカーネルが生成され、動作しました。

クロスコンパイル環境の構築
/usr 以下に、最低でも20M バイトくらいの空き領域が必要です。
  1. binutils をインストール
        ftp://linux-vr.sourceforge.net/pub/linux-vr/RPMS/i386/
    から、
        binutils-mipsel-linux-2.8.1-1.i386.rpm 
    をゲット。(1.2M バイトくらい)
        rpm -ivh binutils-mipsel-linux-2.8.1-1.i386.rpm
    する。
    

  2. egcs をインストール
        ftp://linux-vr.sourceforge.net/pub/linux-vr/RPMS/i386/
    から、
        egcs-mipsel-linux-1.0.3a-2.i386.rpm
    をゲット。(1M バイトくらい)
        rpm -ivh egcs-mipsel-linux-1.0.3a-2.i386.rpm
    する。
    

  3. glibcをインストール
        ftp://linux-vr.sourceforge.net/pub/linux-vr/tars/
    から、
        glibc-mipsel-linux-softfloat-2.0.7-crossdev-bin.tar.gz
    をゲット。(6M バイトくらい)
        cd /usr ; tar xfz glibc-mipsel-linux-softfloat-2.0.7-crossdev-bin.tar.gz
    する。
    
  4. /usr/mipsel-linux のパーミッションがおかしいので、
        cd /usr ; chmod -R a+rX mipsel-linux
    を実行する。
    


カーネルソースを CVS からゲットする
ファイアーウオールの中からは難しいので割愛(私もまだうまくいってません。)
現在のカーネルのコンパイルには、最低でも 100M バイト以上の空き領域が 必要です。十分に容量のあるパーティションを用意してください。
以下では、パスワードを尋ねてきたら単にリターンキーを叩いてください。 (anonymous アクセスにはパスワードは設定されていません。)
  1. 初めてのとき
    まず、
        cvs -d:pserver:anonymous@cvs.linux-vr.sourceforge.net:/cvsroot/linux-vr login
    を実行。
    次に、
        cvs -z3 -d:pserver:anonymous@cvs.linux-vr.sourceforge.net:/cvsroot/linux-vr co linux
    を実行。
    

  2. 2回目以降
        cvs -z3 -d:pserver:anonymous@cvs.linux-vr.sourceforge.net:/cvsroot/linux-vr update -PAd linux
    を実行。変更されたファイルだけがアップデートされます。
    

カーネルをコンパイルする
以下は、/usr/local/linux-vr 以下に カーネルソースを展開した例です。
  1. 初めてカーネルをコンパイルする時には、
        cd /usr/mipsel-linux/include
        ln -s /usr/local/linux-vr/include/linux linux
        ln -s /usr/local/linux-vr/include/asm-mips asm
    を実行しておきます。
    

  2. カーネルをカスタマイズする。
    カーネルのカスタマイズ/設定には:
        cd /usr/local/linux-vr/linux
        make menuconfig
    を実行します。
    設定の詳細に関しては、
    Mikeさんのページを参照してください。
    設定した結果は、.config というファイルに格納されています。
    
    設定を完了したら、
        make
    を実行すると、
        vmlinux
    ができあがります。
    このままだとシンボルテーブルが含まれているためサイズが大きいので、
        mipsel-linux-strip vmlinux
    を実行すると小さくなります。