日別アーカイブ: 2007年7月11日

W-ZERO3 Linux の build 環境を作る

W-ZERO3[es] で Linux が動き出しました。以前こちら
W-ZERO3[es] Linux
W-ZERO3[es] Linux (2) mini SD
でも書きましたが、詳しくは
Linux on W-ZERO3
に書かれています。

まめに更新されていて、今では es でない W-ZERO3 (WS003SH) 等でも動作
するようになっています。

EM・ONE での動作にも期待がかかるのですが、、今のところはまだ動作対象外
のようです。EM・ONE はグラフィックアクセラレータ GoForce5500 が乗って
いるため、万が一動いても画面は見えないだろうしもしくは描画アクセスで
止まってしまう可能性があります。

無印対応以外にも、キーボードの刻印どおりに入力できるようになっていたり、
sd 周りを簡単に扱えるコマンドが入ったり、
開発者向けにクロス開発環境の作り方などがこちらで解説されています。
FrontPage – 開発room

実際にクロス環境の構築を試してみました。

(1) 仮想PC に Fedora7 を install

先日 PS3 に install したばかりなので、同じように Fedora 7 を使ってみます。

当初 VirtualPC2007 を使おうとしたのですが うまく動きませんでした。
今のカーネルと VirtualPC のエミュレーション対象との相性で問題があるようです。
(ubuntu 7.04 でもマウスが動きませんでした)

そこで、USB が使えたり、RemoteDesktop で仮想 PC へ接続が可能だという
VirtualBox を使ってみました。
WindowsVista に VirtualBox を install し、仮想マシンを作って
Fedora 7 の DVD image ( F-7-i386-DVD.iso ) から install します。
iso を直接マウントできるため物理的にメディアに焼きこむ必要はありません。

マウスのキャプチャ状態は 右の Ctrl キーで Host PC に戻ります。
(Virtual PC だと 右 Alt でした)

仮想マシン作成時に聞かれる設定はこんな感じです。

 ・OS の種類は Linux 2.6
 ・RAM は 512M (host PC はRAM 2G)

仮想 HDD のサイズは 20GB にしています。
Fedora 7 の Install オプションは下記の 3つ全部チェックしました。

  ・オフィスプロダクティビティ
  ・ソフトウエア開発
  ・webサーバー

使うインストーラの画面も手順も PS3 と全く一緒。
インストール後、ネットワークにつながることを確認したらおしまいです。
しばらくすると更新を催促されるのでそのまま更新しておきます。

(2) クロス開発環境の構築 buildroot

とりあえず W-ZERO3 用の開発環境を作ってみます。
開発メモ クロス開発環境の構築
を参考に進めました。

まず buildroot を入手します。下記から Download → Daily Snapshots
BUILDROOT

今回は buildroot-20070709 を使いました。
buildroot-20070709.tar.bz2 をダウンロードして PC に保存します。
共有フォルダを使って VirtualBox 上の Fedora7 にコピーします。

Fedora7 上の Firefox から直接ダウンロードしたほうが早かったかもしれません。

ターミナルを開いて、以後全部コマンドラインから作業します。
 アプリケーション→システムツール→端末

適当な作業フォルダを作って、先ほどダウンロードした
 buildroot-20070709.tar.bz2
を入れます。

 $ cd
 $ mkdir zero3
 $ mv Desktop/buildroot-20070709.tar.bz2 zero3

  (作業フォルダとして home に zero3 を作成し、Desktop にダウンロード
  した ~.bz2 を zero3 に移動する。)

tar を展開します。

 $ cd zero3
 $ bzcat buildroot-20070709.tar.bz2 | tar -xvf –

buildroot フォルダができるので、その中で config 設定します。

 $ cd buildroot
 $ make menuconfig

Menu 上で設定を行います。

 Target Architecture → arm に変更
 Target Architecture Variant → xscale に変更
 Target Options → cpio the root filesystem にチェック追加

[→] で <Exit> を選択して save 画面で <Yes>。

この後 make で build が始まります。
build 中必要に応じてパッケージを buildroot/dl フォルダにダウンロードして
くるようです。ダウンロードされたファイルは下記の通りです。
Wiki にあるように、可能なら先に任意のサイトからダウンロードして、
あらかじめ dl に置いておくと良いかもしれません。

  binutils-2.17.tar.bz2
  busybox-1.6.1.tar.bz2
  fakeroot_1.7.1.tar.gz
  gcc-4.2.0.tar.bz2
  genext2fs-1.4.tar.gz
  gmp-4.2.1.tar.bz2
  linux-2.6.21.5.tar.bz2
  mpfr-2.2.1.patch
  mpfr-2.2.1.tar.bz2
  uClibc-0.9.29.tar.bz2

make します。

 $ make

途中で config の追加設定を 2回きかれます。

 ◎Target Processor Type
   15. Intel Xscale (CONFIG_ARM_XSCALE)

  15 の XScale を選択

 ◎Use BX in function return (USE_BX)

  Wiki の解説どおり default の「Y」を選択

完了したら、arm 向けの各種コマンド類が下記の場所にできます。

 zero3/buildroot/build_arm/staging_dir/usr/bin

パスを通します。HOME に armenv というファイルを作って

 $ cd
 $ vi armenv

次の 1行を書き込んでおきます。

———————————————————————–
export PATH=”$PATH:$HOME/zero3/buildroot/build_arm/staging_dir/usr/bin”
———————————————————————–

 $ . ./armenv

これで path が追加されます。

(3) 手抜きテスト

適当なプログラムを作ります。

 $ vi main.c

———————————————————————–
#include
int main()
{
 printf( “HELLO, ZERO3\n” ); /* 適当 */
 return 0;
}
———————————————————————–

 $ arm-linux-gcc main.c
 $ file a.out

a.out: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), not stripped

なんとなくできたっぽいです。

(4) 実行テスト

(3) で作った a.out を miniSD に書き込んでおいてから、W-ZERO3[es] の
Linux を起動します。

最新版(20070707)では勝手に root で login するし、sd コマンドですぐに
miniSD をマウントできるしで、ものすごい楽です。

 # cd /mnt/sd1
 # ./a.out

HELLO, ZERO3

とりあえずうごいたっぽいです。
こんないい加減なものでは動作確認にならないかもしれないし、手順とか構築
とかもミスやおかしな点とかあるかもしれないです。
が、とりあえず今日はここまでにします。

ちなみに、本当は、PS3 上の Fedora7 で W-ZERO3 Linux 用の開発環境を構築
してみたかったのですが、やっぱり通りませんでした。
(PS3 Linux Fedora7 install はそれが目的だった)