LANDISK オレ的メモ
開発環境
最終更新:
linuxlandisk
-
view
ほぼ kogiidena さんのページどおりですが、gcc などのバージョンに違いがあり、少々苦労しました・・・
PC環境
Provider---Router-+ | +- LANDISK(開発機…distccクライアント) | [192.168.1.x] | +- Windows XP -+ [192.168.1.y]| +-colinux (distccサーバ) [192.168.40.2]
colinux の立ち上げ
- もともと debian26/sarge 用に debian/sarge が(クリーン)インストールしてあった
- それを etch にアップグレードして使うことにした
-
環境立ち上げ後、WindowsXP のポート 3632 を colinux 側にフォワード
- [コントロールパネル] の [Windows ファイアウォール] を選択
- [詳細設定] タブにある [ネットワーク接続] の設定から WindowsXP が使用している接続を選択して [設定] ボタンを押す
- [サービス] タグを表示させ [追加] ボタンを押す
- [サービスの名前] は適当に・・・
- [ネットワークでこのサービスを・・・] はフォワード先の IP アドレスを記述(自分は 192.168.40.2 を記述した)
- [このサービスの外部ポート番号], [このサービスの内部ポート番号] はどちらも [3632]
- [ TCP/UDP ] は [ TCP ] を選択
colinux上にクロス開発環境を構築
-
deiban/etch 環境の準備
- Landisk の debian は etch になっているので colinux 側も etch で構築
-
i386 の開発環境を入れる
-
Landisk にインストール済みの gcc, g++ などのバージョンにあわせる必要がある(?)ので http://snapshot.debian.net/ を利用して過去のバージョンをインストールする
下記の項目を /etc/apt/souce.list に追加#archive deb http://snapshot.debian.net/archive pool gcc-3.4 deb-src http://snapshot.debian.net/archive pool gcc-3.4 deb http://snapshot.debian.net/archive pool gcc-4.0 deb-src http://snapshot.debian.net/archive pool gcc-4.0
- dpkg-dev,gcc,g++,gcc-3.4-base … 開発環境基本セット
- binutils-multiarch … マルチアーキテクチャ対応のbinutils
-
dpkg-cross … クロス環境サポートのdpkg
# aptitude install dpkg-dev gcc g++ gcc-3.4-base binutils-multiarch dpkg-cross
-
/etc/dpkg-cross/cross-compile の編集
次の1行を加えるdefault_arch = sh4
-
Landisk にインストール済みの gcc, g++ などのバージョンにあわせる必要がある(?)ので http://snapshot.debian.net/ を利用して過去のバージョンをインストールする
-
sh4のクロスコンパイラセットのインストール
http://iohack.sourceforge.jp/kogiidena/debian26/CROSS/sh4-cross-20051023.tgz
を取得して中身を全てdpkg -i でインストールする-
中身
binutils-sh4-linux_2.16.1-2_i386.deb cpp-3.4-sh4-linux_3.4.4-5_i386.deb cpp-4.0-sh4-linux_4.0.2-2_i386.deb g++-3.4-sh4-linux_3.4.4-5_i386.deb g++-4.0-sh4-linux_4.0.2-2_i386.deb gcc-3.4-sh4-linux_3.4.4-5_i386.deb gcc-4.0-sh4-linux_4.0.2-2_i386.deb libc6-dev-sh4-cross_2.3.5-7_all.deb libc6-sh4-cross_2.3.5-7_all.deb libdb1-compat-sh4-cross_2.1.3-7_all.deb libgcc1-sh4-cross_4.0.2-2_all.deb libncurses5-dev-sh4-cross_5.4-4_all.deb libncurses5-sh4-cross_5.4-4_all.deb libstdc++6-4.0-dev-sh4-cross_4.0.2-2_all.deb libstdc++6-dev-sh4-cross_3.4.4-5_all.deb libstdc++6-sh4-cross_3.4.4-5_all.deb libstdc++6-sh4-cross_4.0.2-2_all.deb linux-kernel-headers-sh4-cross_2.6.13+0rc3-2_all.deb
-
中身
- 以上でクロス開発環境の構築が終了
distcc環境の構築
colinux 側の設定
-
distcc のインストール
colinux:~# aptitude install distcc
-
/etc/default/distcc の編集
STARTDISTCC="true" #ALLOWEDNETS= 接続を許可するクライアントの IP アドレスを指定 ALLOWEDNETS="192.168.1.0/24 127.0.0.1" #PATH= クロスコンパイラのパス設定 PATH=/usr/sh4-linux/distcc/bin:$PATH LISTENER="0.0.0.0"
-
パス上にクロスコンパイラを用意
パスのトップに /usr/sh4-linux/distcc/bin を追加したのでその場所に優先して呼び出したいコンパイラを用意するcolinux:~# mkdir -p /usr/sh4-linux/distcc/bin colinux:~# cd /usr/sh4-linux/distcc/bin/ colinux:/usr/sh4-linux/distcc/bin# ln -s /usr/bin/sh4-linux-gcc gcc colinux:/usr/sh4-linux/distcc/bin# ln -s /usr/bin/sh4-linux-gcc cc colinux:/usr/sh4-linux/distcc/bin# ln -s /usr/bin/sh4-linux-gcc sh4-linux-gcc colinux:/usr/sh4-linux/distcc/bin# ln -s /usr/bin/sh4-linux-g++ g++ colinux:/usr/sh4-linux/distcc/bin# ln -s /usr/bin/sh4-linux-g++ c++ colinux:/usr/sh4-linux/distcc/bin# ln -s /usr/bin/sh4-linux-g++ sh4-linux-g++ colinux:/usr/sh4-linux/distcc/bin# ls -l c++ cc g++ gcc sh4-linux-g++ sh4-linux-gcc
-
distccサーバdistccdの起動
colinux:~# /etc/init.d/distcc start Starting Distributed Compiler Daemon: distccd.
Landisk 側の設定
-
distccのインストール
(クライアント側なのでサーバは起動させない)landisk:~# aptitude install distcc
-
~/.distcc/hosts の作成
ホームディレクトリに ~/.distcc/hosts を用意し、そこに distcc サーバの IP アドレスを記述
colinux の例では、ポートフォワードを行う WindowsXP の IP アドレスを記述192.168.1.y ↑distcc サーバの IP アドレス
-
コンパイラの指定
・・・これはすでにあったんだっけな(==;忘れた orz.. とりあえずこんな感じにできていればいいと思うlandisk:~# ls -l /usr/lib/distcc 合計 0 lrwxrwxrwx 1 root root 16 2008-05-23 21:29 c++ -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 cc -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++ -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++-2.95 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++-3.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++-3.2 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++-3.3 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++-3.4 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 g++-4.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc-2.95 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc-3.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc-3.2 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc-3.3 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc-3.4 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 gcc-4.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++ -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++-2.95 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++-3.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++-3.2 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++-3.3 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++-3.4 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-g++-4.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc-2.95 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc-3.0 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc-3.2 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc-3.3 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc-3.4 -> ../../bin/distcc lrwxrwxrwx 1 root root 16 2008-05-23 21:29 sh4-linux-gnu-gcc-4.0 -> ../../bin/distcc
すげぇいっぱいあるな-
パスの設定
Landisk 側で、先ほどリンクしたコンパイラが優先して呼ばれるように、パス設定を行うexport PATH=/usr/lib/distcc:$PATH ※ make する前に必ずこのパス設定を行うこと!
-
パスの設定
以上で準備完了