gem5のインストールと使用方法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
* 対応している計算機サーバー(2017年3月13日現在) [#mca9169e]
- gardeneel
- hp(0〜2)シリーズ
- scylla(0〜2)シリーズ
* 説明で使用する環境 [#dbf83c9c]
計算機サーバをscylla0、実機OSをCentOS7.0、仮想OSをALPHA、...
下記のバージョンでインストールできない場合、本体ファイル...
基本的には計算機サーバ上で実行すれば良いですが、一部ファ...
そのときはviを使うか、一旦ログアウトしてEmacsで書き直すな...
仮想OSをARMにする場合、フルシムテムモードに必要なファイル...
ALPHAをARMに読み替えれば、同じ手順でインストールできると...
X86はsConsビルドでエラーが起こったり、フルシステムモード...
* インストールに必要なファイルやパッケージ [#j3204003]
** 本体ファイル [#h5bf464d]
- stable_2014_02_15(https://github.com/gem5/gem5/releases...
** フルシステムモードに必要なファイル [#ae839c89]
- m5_system_2.0b3.tar.bz2(http://www.gem5.org/DownloadのF...
- vmlinux_2.6.27-gcc_4.3.4(http://www.cs.utexas.edu/~pars...
- linux-parsec-2-1-m5-with-test-inputs.img.bz2(http://www...
** パッケージ [#d6d45450]
- g++-4.4以上(もしくはclang-2.9以上)((しかし実際にSCOnsを...
- Python-2.4以上
- SCons-0.98.1以上
- SWIG-1.4.34以上((ただしSWIG-2.0.9とSWIG-2.0.10はバグが...
- なるべく最新のzlib
- m4
- protobuf-2.1以上
* gem5本体のインストール方法 [#q921877a]
sConsビルドに失敗したり、仮想OSを変えた場合は、一旦gem5の...
+ gem5本体のアーカイブgem5-stable_2014_02_15.tar.gzを展開...
tar zxvf gem5-stable_2014_02_15.tar.gz
+ 展開したgem5のルートディレクトリに移動します。
cd gem5-stable_2014_02_15/
+ gem5をSConsでビルドします(最初は15分以上はかかると思い...
scons build/ALPHA/gem5.opt
* ALPHAのフルシステムモードのインストール手順 [#hef4a1d2]
gem5のルートディレクトリに移動しておいてください。
+ フルシステムに関するアーカイブを展開します。
bzip2 -dc m5_system_2.0b3.tar.bz2 | tar xvf -
bzip2 -d linux-parsec-2-1-m5-with-test-inputs.img.bz2 | ...
+ 展開して作成されたディレクトリbinariesの中にあるvmlinux...
mv vmlinux_2.6.27-gcc_4.3.4 binaries/vmlinux
+ 1.で展開して作成されたディレクトリdisksにあるlinux-late...
mv linux-parsec-2-1-m5-with-test-inputs.img disks/linux-...
+ ディレクトリconfigs/common以下にあるSysPath.pyの53行目...
53行目 : path = [ '/xxxx/gem5-stable_2014_02_15/' ]
+ 出力用ディレクトリを作成します(ここではm5outという名前...
mkdir m5out
新たなサーバでインストールする場合、追加で下記の作業が必...
また、make installするにはスーパユーザモードになる必要が...
+ gem5のルートディレクトリ以下にあるディレクトリutil/term...
cd util/term/
+ m5termをmakeします。
make
+ m5termをインストールします。
make install
* ALPHAのフルシステムモードの起動手順 [#k05ad85f]
端末を2つ開き、それぞれ同じ計算機サーバにログインし、gem5...
+ 端末1で、フルシステムモードでgem5を起動します。
./build/ALPHA/gem5.opt -d m5out configs/example/fs.py
+ 直後に端末2で、m5termを用いてgem5のシミュレータの端末画...
m5term localhost 3456
+ 以降、端末2で作業できます。終了時には、以下のコマンドで...
sbin/m5 exit
* クロス・コンパイル [#k6be1ef6]
自作のプログラムやベンチマークなどは、クロス・コンパイル...
イメージファイルへの登録は、スーパーユーザモードになる必...
** クロス・コンパイラ(X86→ALPHA) [#l8a63a37]
ローカルにインストールする場合は、下記のファイルがオスス...
- alphaev67-unknown-linux-gnu.tar.bz2(http://www.gem5.org...
- libpthread.a(http://www.cs.utexas.edu/~cart/parsec_m5/...
+ ダウンロードしたアーカイブを展開します。
bzip2 -dc alphaev67-unknown-linux-gnu.tar.bz2 | tar xvf -
+ 修正パッチを当てます。
mv libpthread.a alphaev67-unknown-linux-gnu/alphaev67-un...
これでクロス・コンパイルの準備が完了します。
絶対パスを打ち込むのが面倒な場合は、エイリアスを掛けてお...
alias alphacc "/xxxx/alphaev67-unknown-linux-gnu/bin/alp...
** クロス・コンパイル時の注意点 [#x871d28d]
+ クロス・コンパイルして実行ファイルを作成します(以降、実...
alphacc -Wall -O2 -o hoge hoge.c -static -static-libgcc
このとき、共有ライブラリは必ず静的にリンクする必要があり...
また、-lpthreadや-lmといったオプションも、必要であれば忘...
** イメージファイルへの登録から実行方法 [#tc93c74d]
gem5のルートディレクトリに移動しておきます。
初めての場合、マウント用ディレクトリを作成しておきます(以...
mkdir mnt/
+ イメージファイルlinux-latest.imgをマウントします。
mount -o loop,offset=32256 disks/linux-latest.img mnt/
+ マウント用ディレクトリに、クロス・コンパイルした実行フ...
cp hoge mnt/
+ マウント用ディレクトリをアンマウントします。
umount mnt/
+ gem5を起動します。
+ 仮想OS上で、先ほど登録した実行ファイルを実行します。
* (おまけ)パッケージのインストール方法 [#adcb0d20]
** sConsのインストール方法 [#na8aa033]
バージョン2.3.1で説明します。
また、インストールにはPythonが必要です。
+ SConsのアーカイブを展開します。
tar zxvf scons-2.3.1.tar.gz
+ 展開して作成されたディレクトリに移動します。
cd scons-2.3.1
+ インストールします(ローカルにインストールする場合はオプ...
python setup.py install
** protobufのインストール方法 [#e956e86d]
バージョン2.6.0で説明します。
+ protobufのアーカイブを展開します。
bzip2 -dc protobuf-2.6.0.tar.bz2 | tar xvf -
+ ディレクトリprotobuf-2.6.0/src/google/protobuf/以下にあ...
770行目 : const int64 data = 0x100000000L;
+ configureします。
./protobuf-2.6.0/configure
+ makeします。
make
+ エラーが無いか確認します。
make check > check.log
+ インストールします。
make install
終了行:
#contents
* 対応している計算機サーバー(2017年3月13日現在) [#mca9169e]
- gardeneel
- hp(0〜2)シリーズ
- scylla(0〜2)シリーズ
* 説明で使用する環境 [#dbf83c9c]
計算機サーバをscylla0、実機OSをCentOS7.0、仮想OSをALPHA、...
下記のバージョンでインストールできない場合、本体ファイル...
基本的には計算機サーバ上で実行すれば良いですが、一部ファ...
そのときはviを使うか、一旦ログアウトしてEmacsで書き直すな...
仮想OSをARMにする場合、フルシムテムモードに必要なファイル...
ALPHAをARMに読み替えれば、同じ手順でインストールできると...
X86はsConsビルドでエラーが起こったり、フルシステムモード...
* インストールに必要なファイルやパッケージ [#j3204003]
** 本体ファイル [#h5bf464d]
- stable_2014_02_15(https://github.com/gem5/gem5/releases...
** フルシステムモードに必要なファイル [#ae839c89]
- m5_system_2.0b3.tar.bz2(http://www.gem5.org/DownloadのF...
- vmlinux_2.6.27-gcc_4.3.4(http://www.cs.utexas.edu/~pars...
- linux-parsec-2-1-m5-with-test-inputs.img.bz2(http://www...
** パッケージ [#d6d45450]
- g++-4.4以上(もしくはclang-2.9以上)((しかし実際にSCOnsを...
- Python-2.4以上
- SCons-0.98.1以上
- SWIG-1.4.34以上((ただしSWIG-2.0.9とSWIG-2.0.10はバグが...
- なるべく最新のzlib
- m4
- protobuf-2.1以上
* gem5本体のインストール方法 [#q921877a]
sConsビルドに失敗したり、仮想OSを変えた場合は、一旦gem5の...
+ gem5本体のアーカイブgem5-stable_2014_02_15.tar.gzを展開...
tar zxvf gem5-stable_2014_02_15.tar.gz
+ 展開したgem5のルートディレクトリに移動します。
cd gem5-stable_2014_02_15/
+ gem5をSConsでビルドします(最初は15分以上はかかると思い...
scons build/ALPHA/gem5.opt
* ALPHAのフルシステムモードのインストール手順 [#hef4a1d2]
gem5のルートディレクトリに移動しておいてください。
+ フルシステムに関するアーカイブを展開します。
bzip2 -dc m5_system_2.0b3.tar.bz2 | tar xvf -
bzip2 -d linux-parsec-2-1-m5-with-test-inputs.img.bz2 | ...
+ 展開して作成されたディレクトリbinariesの中にあるvmlinux...
mv vmlinux_2.6.27-gcc_4.3.4 binaries/vmlinux
+ 1.で展開して作成されたディレクトリdisksにあるlinux-late...
mv linux-parsec-2-1-m5-with-test-inputs.img disks/linux-...
+ ディレクトリconfigs/common以下にあるSysPath.pyの53行目...
53行目 : path = [ '/xxxx/gem5-stable_2014_02_15/' ]
+ 出力用ディレクトリを作成します(ここではm5outという名前...
mkdir m5out
新たなサーバでインストールする場合、追加で下記の作業が必...
また、make installするにはスーパユーザモードになる必要が...
+ gem5のルートディレクトリ以下にあるディレクトリutil/term...
cd util/term/
+ m5termをmakeします。
make
+ m5termをインストールします。
make install
* ALPHAのフルシステムモードの起動手順 [#k05ad85f]
端末を2つ開き、それぞれ同じ計算機サーバにログインし、gem5...
+ 端末1で、フルシステムモードでgem5を起動します。
./build/ALPHA/gem5.opt -d m5out configs/example/fs.py
+ 直後に端末2で、m5termを用いてgem5のシミュレータの端末画...
m5term localhost 3456
+ 以降、端末2で作業できます。終了時には、以下のコマンドで...
sbin/m5 exit
* クロス・コンパイル [#k6be1ef6]
自作のプログラムやベンチマークなどは、クロス・コンパイル...
イメージファイルへの登録は、スーパーユーザモードになる必...
** クロス・コンパイラ(X86→ALPHA) [#l8a63a37]
ローカルにインストールする場合は、下記のファイルがオスス...
- alphaev67-unknown-linux-gnu.tar.bz2(http://www.gem5.org...
- libpthread.a(http://www.cs.utexas.edu/~cart/parsec_m5/...
+ ダウンロードしたアーカイブを展開します。
bzip2 -dc alphaev67-unknown-linux-gnu.tar.bz2 | tar xvf -
+ 修正パッチを当てます。
mv libpthread.a alphaev67-unknown-linux-gnu/alphaev67-un...
これでクロス・コンパイルの準備が完了します。
絶対パスを打ち込むのが面倒な場合は、エイリアスを掛けてお...
alias alphacc "/xxxx/alphaev67-unknown-linux-gnu/bin/alp...
** クロス・コンパイル時の注意点 [#x871d28d]
+ クロス・コンパイルして実行ファイルを作成します(以降、実...
alphacc -Wall -O2 -o hoge hoge.c -static -static-libgcc
このとき、共有ライブラリは必ず静的にリンクする必要があり...
また、-lpthreadや-lmといったオプションも、必要であれば忘...
** イメージファイルへの登録から実行方法 [#tc93c74d]
gem5のルートディレクトリに移動しておきます。
初めての場合、マウント用ディレクトリを作成しておきます(以...
mkdir mnt/
+ イメージファイルlinux-latest.imgをマウントします。
mount -o loop,offset=32256 disks/linux-latest.img mnt/
+ マウント用ディレクトリに、クロス・コンパイルした実行フ...
cp hoge mnt/
+ マウント用ディレクトリをアンマウントします。
umount mnt/
+ gem5を起動します。
+ 仮想OS上で、先ほど登録した実行ファイルを実行します。
* (おまけ)パッケージのインストール方法 [#adcb0d20]
** sConsのインストール方法 [#na8aa033]
バージョン2.3.1で説明します。
また、インストールにはPythonが必要です。
+ SConsのアーカイブを展開します。
tar zxvf scons-2.3.1.tar.gz
+ 展開して作成されたディレクトリに移動します。
cd scons-2.3.1
+ インストールします(ローカルにインストールする場合はオプ...
python setup.py install
** protobufのインストール方法 [#e956e86d]
バージョン2.6.0で説明します。
+ protobufのアーカイブを展開します。
bzip2 -dc protobuf-2.6.0.tar.bz2 | tar xvf -
+ ディレクトリprotobuf-2.6.0/src/google/protobuf/以下にあ...
770行目 : const int64 data = 0x100000000L;
+ configureします。
./protobuf-2.6.0/configure
+ makeします。
make
+ エラーが無いか確認します。
make check > check.log
+ インストールします。
make install
ページ名: