2010/02/26

ARMソフトのエミュレーション環境構築

最近は組込みの仕事をしているとARMをターゲットとした開発をする機会が多いと
思いますが、家で勉強したくてもボード等を用意して環境が整えるのはなかなか
難しいですね。。

と言うわけで、私はこの前VirtualBoxにインストールしたGentoo Linux上にクロス
コンパイル & エミュレーション環境を作って勉強することにしましたw

以下、構築手順の覚書です。

1 CPUエミュレータ QEMUのインストール
シェルからemerge qemu、と打ってQEMUをインストールします。
安定版の0.9.1はgcc version 4ではコンパイルできず面倒なのでマスクをはずして
0.11.1をインストールしてしまいました。


2 クロスコンパイル環境の構築
まず、crossdevをインストールします。
emerge crossdev

次に/opt/crossdevというディレクトリを作成し、/etc/make.confに下記の行を
追記します。
PORTDIR_OVERLAY="/opt/crossdev"

最後に下記のコマンドを叩いてしばし待ちます・・・。
crossdev --ex-gdb -t arm-gentoo-linux-gnueabi

3 ARM用バイナリの作成
定番のHello, worldプログラムを用意し、下記のコマンドでコンパイルします。
arm-gentoo-linux-gnueabi-gcc -Wall -g test.c

4 デバッグしてみる
QEMUのユーザーモードエミュレーション機能を使って、プログラムを実行します。
qemu-arm -g 1234 -L /usr/arm-gentoo-linux-gnueabi a.out
このように-gオプションをつけるとGDBの接続を待つことができます。

次にGDBを起動します。
arm-gentoo-linux-gnueabi-gdb a.out

そしてGDB上から以下のように打ちます。
(gdb) target remote localhost:1234

これで無事接続できれば、GDBによるデバッグが可能になります。



2010/02/20

Gentoo Linux on VirtualBox作成日記 その3

前回から非常に期間があいてしまいましたが・・・。

今日はX Serverのインストールです。

基本的には本家のドキュメントに沿っていけばいけましたが、現在はHALの使用が推奨されているのでUSEフラグにhalpolicykitを追加するのを忘れないようにしないといけませんね。

またこちらのWikiに従い、/etc/make.confに下記の記述をしました。
INPUT_DEVICES="evdev virtualbox"
VIDEO_CARDS="virtualbox"
これでvirtualbox用のドライバが入ります。

emerge xorg-server
と打ち込んで数時間待てばインストール完了です。

設定等もドキュメントに従って進めれば特に詰まるところはなかったと思います。

twmとxtermを別途インストールして動作確認がすんだら、あとは好みのWindow Managerをインストールしてひとまず完了です。

私は現在awesomeを使用しています。
やや癖がありますが、慣れてしまえばluaでいろいろカスタマイズできるのでなかなか面白いです。w

気が向けば、、その辺の設定とかも書いてみようかと思います。

2010/02/16

END OF ETERNITY

最近はXBOX360のゲーム、END OF ETERNITYにどっぷりはまってしまって家でまともにPCをつけていない状態が続いており更新が滞っています。。。

勢いで買っただけだったんですがこんなに面白いとは予想外でした・・・w

2010/02/04

Gentoo Linux on VirtualBox作成日記 その2

前回に続いて、仮想マシンの実行環境設定から説明していきます。

5 仮想マシンの設定
仮想マシンの動作環境について詳細に設定します。新規アイコンの右にある設定アイコンをクリックしてください。

5.1 システム
・マザーボード
  複数のプロセッサを割り当てる場合は、拡張機能: IO APICを有効化にチェックを入れます。

・プロセッサ
  割り当てるプロセッサ数を指定します。

・アクセラレーション
  仮想化支援機能を使う場合はチェックを入れます。ハード的に対応されていない場合は、チェックを入れていても自動で無効になります。

5.2 ディスプレイ
・ビデオ
  せっかくOpenGLのアクセラレーションが使えるので、3Dアクセラレーションを有効化にチェックを入れます。ビデオメモリもホスト環境に支障をきたさない範囲で多めに割り当てましょう。私はMAX128MB割り当てました。。


5.3 ディスク
CD/DVDデバイスにインストールCDイメージを指定します。
右側のアイコンを指定すると仮想メディアマネージャが開きますので、先にダウンロードしたイメージファイルを追加、選択します。


以上で必要な設定は完了です。
あとは通常のインストールと同じですので、仮想マシンを起動した後、こちらのドキュメントに従ってインストールを実施します。


ただし、いくつか注意点があるので以下に書きます。

  • ドキュメントではハードディスクのシンボルが/dev/sdaとなっていますが、インストールCDのカーネルは/dev/hdaと認識しますので読み替えが必要です。
  • ホストPCの設定時刻がUTCとして設定されてしまいますので、dateコマンドで-9時間してください。
  • 4.2以降のgccはmarchオプションにnativeを与えると、自動で実装されているCPUを指定してくれるようなのでmake.confはそのように編集するのがよいでしょう。※distccを使う場合は注意が必要です。
  • マニュアルカーネルを使う場合は、こちらを参考にVirtualBox用の環境に設定します。特にネットワークドライバに注意してください。

英語のマニュアル読むのはしんどいですが、やはりできるだけ最新の情報を得るためにここは我慢してがんばりましょう。。

2010/02/02

Gentoo Linux on VirtualBox作成日記 その1

ここ数年はVMware Player等のフリーの仮想化ソフトが非常に充実してきていて、一昔前では敷居の高かったWindows以外のOSを比較的気軽に試せるようになってきました。

というわけで、これまでいくつか使ってきた仮想化ソフトの中でもかなり使い勝手の良かったVirtualBox上にGentoo LinuxをゲストOSとした仮想マシンの作成日記を今日から気合を入れて書いてみようと思います。ホストOSはWindows 7です。

1 VirtualBoxのインストール
ここからWindows版のVirtualBoxをダウンロードし、Windowsにインストールします。


2 仮想マシンの保存場所を変更
デフォルトではユーザーフォルダの下に巨大なディスクイメージも含めて作成してしまいますのですが、これはあまり好ましくありません。特にメディアファイル等の保存用にパーティションを用意しているなら、そちらを仮想マシンの保存場所とするのが良いでしょう。

[ファイル]→[環境設定]→[一般]でハードディスクと仮想マシンのデフォルトフォルダを選択できるので、任意の場所を設定します。
---
例:
デフォルト ハードディスク フォルダ D:\VirtualBox\HardDisks
デフォルト 仮想マシン フォルダ D:\VirtualBox\Machines


3 新規の仮想マシンを作成
VirtualBoxを起動し左上の新規アイコンをクリックすると作成ウィザードが立ち上がりますので、これに従って仮想マシンを作成します。

3.1 仮想マシンとOSタイプ
名前はお好みでつけてください。私はまんまGentoo Linuxとしました。。
OSタイプですが、オペレーティングシステムはLinux、バージョンはGentooを選択してください。

3.2 メモリ
仮想マシン用のメインメモリのサイズを設定します。
デスクトップ環境を構築するので、できれば512MBはほしいですね。私は1GB割り当てています。(2010/02/04修正 1GB割り当てるとパフォーマンスが落ちる?ようなので768MBにしました。)なお、サイズは仮想マシン停止中ならいつでも変更できるので、ここでそんなに悩む必要はありません。

3.3 仮想ハードディスク
ゲストOSをインストールするディスクイメージを作成します。新規のハードディスクの作成を選択し、仮想ディスク作成ウィザードを立ち上げてください。
イメージのタイプとして可変か固定かを選べますが、可変の場合は指定のサイズに拡張するまでは固定に比べてパフォーマンスが落ちるようなので(ヘルプの5.2に詳細あり)ディスクに余裕があれば固定で作る方がいいと思います。大きなファイルを保存するつもりがなければ、サイズは20~30GBくらいあれば十分でしょう。


4 Gentoo LinuxのインストールCDイメージをダウンロード
このページの中から近そうなサーバを選んでGentoo LinuxのインストールCDイメージをダウンロードします。6. Asia - Japanのサーバならどれでも特に問題ないと思います。release/x86/autobuilds/current-iso/ディレクトリの、install-x86-minimal-日付.isoをローカルに保存してください。
なおisoファイルをそのままCDとして扱えるので、CD-Rに焼いたりはしなくて大丈夫です。


以上で下準備完了です。
次回は、実行環境の詳細設定から説明していきます。