SL-ZAURUS用xkazokuの作成方法 2005/02/02


0.目的
 SL-ZAURUS用xkazokuはライセンスの関係でバイナリが配布されていません。

 自力でビルドする場合はSL-ZAURUS用クロス開発環境を整えるところからはじめる必要があります。

 そこで,SL-ZAURUSでxkazokuが動作するまでの過程を忘れないうちに置いておきます。
不具合や間違いがありましたら掲示板でお知らせください。


1.はじめに
 宝箱Proにある“SL シリーズザウルス” + “Qtopia”開発チュートリアルを読んで下さい。
qte_tutorial_030122_a300.pdf



2.LinuxOSのインストール
 開発チュートリアルではRedHat7.3。
 Vine2.6r4でも大丈夫でした。Vine3.2ではダメでした。理由は省略。
 なんとかしてRedHat7.3かVine2.6などrpmが使えるLinuxOSを入れてください。



3.クロスコンパイラのセットアップ
  ここは開発チュートリアルの内容と一緒です。

  開発用PC にLinuxOS をインストールした後、gcc のクロスコンパイラ関連のツールをインストールします。
 各パッケージの入手先は、宝箱Pro の次のURL から参照できます。
  http://more.sbc.co.jp/sl_j/tool/tools.htm#Linux(宝箱Pro Linux 関連開発ツールのページ)

 gcc-cross-sa1100-2.95.2-0.i386.rpm クロスコンパイラ(gcc)
  http://www.zaurus.com/dev/tools/downloads/tools/gcc-cross-sa1100-2.95.2-0.i386.rpm
 glibc-arm-2.2.2-0.i386.rpm ライブラリ(glibc)
  http://www.zaurus.com/dev/tools/downloads/tools/glibc-arm-2.2.2-0.i386.rpm
 linux-headers-arm-sa1100-2.4.6-3.i386.rpm ヘッダファイル
  http://www.zaurus.com/dev/tools/downloads/tools/linux-headers-arm-sa1100-2.4.6-3.i386.rpm
 binutils-cross-arm-2.11.2-0.i386.rpm ユーティリティ
  http://www.zaurus.com/dev/tools/downloads/tools/binutils-cross-arm-2.11.2-0.i386.rpm

 新しいLinux ディストリビューションには、バージョン2.95 より新しいものがインストールされていることもありますが、必ずこのバージョン2.95をインストールしてご使用ください。

 全部 RPM ファイルになっているので、rpm -Uvh *.rpm でインストール。



4.Qtopia のインストール
 Zaurus に入っているのは Qtopia 1.5.0 なので、それに対応したものが必要。
 なぜか、 TrolltechのサイトではWebブラウザからは1.5.0 のフリー版が見つけられないので,
ftp://ftp.trolltech.com/qtopia/sdk/SuSE7.0/からダウンロード

もしくは
・X/Qt Server Wiki>開発者向けHOWTO
 http://xqt.sourceforge.jp/pukiwiki/pukiwiki.php?FrontPage
ここからいただいてください。

 qtopia-free-1.5.0-1.i386.rpm
  http://xqt.sourceforge.jp/bin/qtopia-free-1.5.0-1.i386.rpm
 qtopia-free-1.5.0-1.src.rpm
  http://xqt.sourceforge.jp/bin/qtopia-free-1.5.0-1.src.rpm

 $ rpm -Uvh *.rpm でインストール。



5.シャープ用tmake 設定ファイルなど
 http://www.zaurus.com/dev/tools/downloads/tools/tmake-sharp.tar.gz

 開発チュートリアルの通りに作業してもコピーできません。
 /opt/Qtopia/tmake/lib/qws/linux-sharp-g++ 
 内のファイルを削除,もしくは別のフォルダに移動させてから実行してください。

 その後,
$ gzip -d tmake-sharp.tar.gz[Enter]
$ tar xvf tmake-sharp.tar[Enter]
$ find linux-sharp-g++ | cpio-amp /opt/Qtopia/tmake/lib/qws[Enter]


修正ファイルなど
sharpsdk-pub-20021227.tar.gz
http://developer.ezaurus.com/sl_j/doc/reference/20021227/doc-sharp/index.html
シャープライブラリ ダウンロードのページからダウンロード。
/opt/Qtopia/ で展開する。
tar xvf sharpsdk-pub-20021227.tar.gz
qvfb上で日本語表示ができるようになります。


libqte 修正版
SLシリーズ関連 クラスライブラリリファレンスからダウンロード。
http://developer.ezaurus.com/sl_j/doc/reference.htm
gzip を/opt/Qtopia/sharp/lib/で解凍して、libqte.so.2.3.2 を上書きする。
gzip -d libqte.so.2.3.2.gz


6.シンボリックリンクを張る?
# ln -s /opt/Embedix/tools/arm-linux /opt/QtPalmtop
 Zaurus 側の prefix (/opt/QtPalmtop?) とパスが一致するそうです。
 いらないかも。


7.コンパイル環境設定用スクリプトファイル

  ここは基本的に開発チュートリアルの内容と一緒です。
 tmake,progenなどのpathが通ってないので
 /opt/Qtopia/tmake/bin
 をPATHの最後に追加しました。


 ARMターゲット用「dev-arm-qpe.sh」をエディタで作成する。
-----ここから
#!/bin/bash

CROSSCOMPILE=/opt/Embedix/tools
QPEDIR=/opt/Qtopia/sharp
QTDIR=/opt/Qtopia/sharp
PATH=$QTDIR/bin:$QPEDIR/bin:$CROSSCOMPILE/bin:$PATH:/opt/Qtopia/tmake/bin
TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-sharp-g++/
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QPEDIR QTDIR PATH TMAKEPATH LD_LIBRARY_PATH PS1

echo "Altered environment for sharp Zaurus Development ARM"

----ここまで


 X86ターゲット用「dev-x86-qpe.sh」をエディタで作成する。
 xkazokuをビルドするだけなら使いません。
----ここから
#!/bin/bash

CROSSCOMPILE=/opt/Embedix/tools
QPEDIR=/opt/Qtopia
QTDIR=/opt/Qtopia
PATH=$QTDIR/bin:$QPEDIR/bin:$PATH:/opt/Embedix/tools/bin:/opt/Qtopia/tmake/bin
TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-x86-g++/
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QPEDIR QTDIR PATH TMAKEPATH LD_LIBRARY_PATH PS1

echo "Altered environment for sharp Zaurus Development x86"

----ここまで

 実行権を付ける
$ chmod +x dev-arm-qpe.sh[Enter]
$ chmod +x dev-x86-qpe.sh[Enter]



8.ARM 用コンパイル環境の確認

  ここは開発チュートリアルの内容と一緒です。

 最初にユーザーのhome ディレクトリでARM 環境用スクリプトを実行し、各種環境変数の設定を行います。

$ cd [Enter]
$ . dev-arm-qpe.sh[Enter]
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

$ cd /opt/Qtopia/example[Enter]
$ tmake -o Makefile example.pro[Enter]
$ make[Enter]

 example(ファイル名も同様で拡張子なし)が作成される。
 そのファイルをSL ザウルスにコピーしてターミナルソフトから起動。

$ ./example[Enter]


クロス開発環境の確認
ユーザーのhome ディレクトリでx86環境用スクリプトを実行し、各種環境変数の設定を行います。

$ cd [Enter]
$ . dev-x86-qpe.sh[Enter]
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

$ cd /opt/Qtopia/example[Enter]
$ tmake -o Makefile example.pro[Enter]
$ make[Enter]

 example(ファイル名も同様で拡張子なし)が作成される。

qbfv -depth 16 &[Enter]

$ ./example -qws [Enter]


example をコンパイルすると、エラーが発生する。
  SL シリーズザウルスの開発で使用するgcc は、バージョン2.95 です。
 最新のディストリビューションにはもっと新しいgcc があらかじめインストールされているものがありますが、2.95 以外のgcc は使用できません。
 このドキュメントに記載されているgcc のバージョン2.95 をインストールしてご使用ください。

PC-Linux 用のUSB ドライバをインストールすれば、SL ザウルスに付属のUSB 接続ケーブルを使用して、ファイルを転送することも可能です。
 PC-Linux用のUSB ドライバについては、次のURL から入手してください。
 http://more.sbc.co.jp/sl_j/tool/tools.htm#Support_Tool(開発サポートツール)
 http://more.sbc.co.jp/sl_j/tool/usb_driver/kernel-zaurus-2.4.18.5-4a.i386.rpm(ドライバのRPM)



9.SDL, SDL_ttf, freetypeのライブラリを入れる
 関係ないですが,私はここのmakeでエラーがでて3回くらい投げ出してます。

 ここは ・np2>ねこーぷろじぇくとII  の内容と一緒です。
 http://www.t3.rim.or.jp/~kni/sl/np2.html 

 ¥マークは観やすくするための改行箇所をあらわしています。
¥マークの入力と改行はしなくてもOK。

SDL-1.2.5
$ cd
$. dev-arm-qpe
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

$wget http://www.libsdl.org/release/SDL-1.2.5.tar.gz
$tar zxvf SDL-1.2.5.tar.gz
$cd SDL-1.2.5
$wget http://www.self-core.org/~kaoru-k/pub/libsdl_1.2.5-slzaurus20031201_arm.diff
$patch -p1 < libsdl_1.2.5-slzaurus20031201_arm.diff
$CC=arm-linux-gcc ./configure --host=i386-linux\
--target=strongarm-linux --prefix=/opt/Embedix/tools/arm-linux \
--enable-video-qtopia --disable-video-photon --disable-video-fbcon \
--disable-video-direct --disable-video-ggi --disable-video-svga \
--disable-video-aalib --disable-video-dummy --disable-video-dga --disable-arts \
--disable-esd --disable-alsa --disable-video-x11 --disable-nasm --disable-debug \
--disable-cdrom --disable-joystic --without-x --disable-dga \
--disable-video-opengl --enable-dlopen --disable-diskaudio --disable-mintaudio \
--disable-nas
$make
$make install

Freetype2.1.4
$ cd
$. dev-arm-qpe
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

$wget ftp://ring.aist.go.jp/pub/graphics/freetype/freetype2/freetype-2.1.4.tar.gz
$tar zxvf freetype-2.1.4.tar.gz
$cd freetype-2.1.4
$wget http://wind.prohosting.com/ogapee/zaurus/freetype-2.1.3-k1.diff
$patch -p1 <freetype-2.1.3-k1.diff
$./configure --host=i386-linux --target=strongarm-linux \
--prefix=/opt/Embedix/tools/arm-linux
$make
$make install

SDL-ttf2.0.6
$ cd
$. dev-arm-qpe
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

$wget http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.6.tar.gz
$tar zxvf SDL_ttf-2.0.6.tar.gz
$cd SDL_ttf-2.0.6
$CC=arm-linux-gcc ./configure --host=i686-linux \
--target=arm-linux --prefix=/opt/Embedix/tools/arm-linux/ --without-x \
--with-sdl-prefix=/opt/Embedix/tools/arm-linux
$make
$make install



10.ARM 用コンパイル環境の確認(SDL)
 xkazokuだけほしいひとはやらなくても良いですが,np2(PC−9801エミュレータ)を得ることができます。

 ここも ・np2>ねこーぷろじぇくとII  の内容と一緒です。
 http://www.t3.rim.or.jp/~kni/sl/np2.html 

 必要なライブラリのビルドが終わったらnp2のソースをCVSから取得。
$ cd
$. dev-arm-qpe
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

 $cvs -d :pserver:anonymous@retropc.net:/cvs get np2

 最後にビルドしてお終い。 
$cd np2/sdl
$cp makefile.zau Makefile
$make

 これでnp2/binにねこぷろ2 for SL-Zaurusのバイナリが出来るはず。

 VGA表示で動作するねこぷろIIをビルドする為には、np2/sdl/slzaurus/compiler.h で
#if !defined(SIZE_VGA)
#define RGB16 UINT32
#define SIZE_QVGA
#endif
 と定義されている(にもかかわらず、SIZE_VGAが定義されていない)のを修正すればOK。
 ここより前の適当な箇所に
#define SIZE_VGA
 と入れておけば、VGAモードで動作するねこぷろIIがビルドできます。



11.xkazokuのビルド手順

xkazoku配布先からライブラリを持ってくる。
 http://waffle.bunkasha.co.jp/~yui/drsmore.html


 ライブラリ
  DAME - ARM-Linux(SL-Zaurus)
   http://waffle.bunkasha.co.jp/~yui/datas/damelib_arm_linux-0818.tar.gz
  Amethyst - ARM-Linux(SL-Zaurus)
   http://waffle.bunkasha.co.jp/~yui/datas/amethyst_arm_linux-1.0.5.tar.gz

 $tar zxvf *.tar.gz
 で解凍して
 /opt/Embedix/tools/arm-linux/include/
  にヘッダファイル(*.h)
 /opt/Embedix/tools/arm-linux/lib/
   にライブラリ(*.a)をコピーする。


ソースコードのビルド
 xkzoku(SL-Zaurus) xkazokusrc130.tar.gz

$cd
$. dev-arm-qpe
 スクリプトファイル名の前のドット・スペースを忘れないで下さい。

$wget http://waffle.bunkasha.co.jp/~yui/datas/xkazokusrc130.tar.gz
$tar xzf xkazokusrc130.tar.gz
$cd xkazoku/slzaurus/
$make

 ~/xkazoku/bin/
 にxkazoku(ファイル名も同様で拡張子なし)が作成される。

お疲れ様でした。


補足 SL-ZAURUSでの実行手順

1.対応するソフトをWindowsCE あきら コンバータで変換
 for WindowsCE  あきら
 コンバータ(Win9x) ver1.3 akiracnv130.zip

2.変換後にさらに作業
 *.sufファイルの名前をsysytem.sufに変更。
 変換したデータと同じフォルダにxkazokuを入れ,SDorCFメモリにコピー。
 SDorCFメモリ上のデータを本体メモリ上にlnコマンドでリンクを貼る。
 オリジナルのファイル名が大文字のものは大文字に変換する。

 例:ln -sf /mnt/cf/Documents/kazoku/isf(半角スペース)/home/zaurus/xkazoku/ISF
 以下、全てのファイルを同様にリンクを貼ります。

本体メモリ上のxkazokuをターミナルソフトから起動します。
 $ ./xkazoku


3.エラー発生の場合
 Error:gamecore_init:couldn't reat start script
 http://www.yui.ne.jp/bbs/mg.bbsより
 本体メモリ上にlnコマンドでリンクを貼ってオリジナルと同じファイル名(大文字)にして下さい。
 本体メモリ上のxkazokuをターミナルソフトから起動します。
 $ ./xkazoku

 タイトルから先に進まない
 *.sufファイルをsysytem.sufに名前を変更してください。

 メッセージが途中で表示されない
 http://www.yui.ne.jp/bbs/mg.bbsより
 「妹魂」の件ですがおそらく半角文字関係ではないかと思われます。
 gamedef.txtというファイル名で

[妹魂]
company = AngelSmile
key = SISKON
ver = EXEVER_SISKON
type = GAME_SAVEMAX30 + GAME_SAVECOM + GAME_VOICE
type = + GAME_TEXTASCII

 というテキストファイルを作り、akira.exeなどの実行ファイルと同じフォルダにいれていただけば解決するかもしれません。
 gamedef.txtのファイル名、および内容の英字部分は半角で試してみてください

 CDDAフォルダ内のtrack*.mp3が鳴らない
  まだ鳴ってません。<鳴りました。2006/02/06
  単にメモリカード上のcddaフォルダにリンクするだけです。大文字にしてました。

 本体メモリ上のファイル名まとめ(家族計画)
  適当なフォルダ名の下に以下のファイルをリンク貼り付け
   xkazoku
   default.ttf (小文字)
   system.suf (小文字,他のソフトでもsystem.sufに名前を変更する)
   ISF (大文字)
   _DATA (大文字)
   _GGD (大文字)
   _SE (大文字)
   _WMSE (大文字)
   DOLOGO.MVD (大文字,無くても可)
   FAM_OP.MVD (大文字)
   FAM_OPHQ.MVD (大文字)
   KAZOKU.SAV (大文字,セーブファイル:PPC版,PSP版と互換性有り?リンクさせずに直接置く。)
   cdda/track**.mp3(小文字,cddaフォルダをリンク貼り付け)

 メッセージスキップをさせるとまれに落ちる
  原因不明。こまめな保存で対処。


参考文献・サイト

・xkazoku配布元
 http://waffle.bunkasha.co.jp/~yui/drs.html
 おかげさまでSL-A300でxkazokuが動きました。
 ありがとうございました。


・Qtopia事始め(Zaurus用クロスコンパイル環境の構築)
 http://homepage2.nifty.com/ssfu/tips/qt_junkbox/qtopia_intro.html
 サンプルプログラムの実行ができました。


・X/Qt Server Wiki>開発者向けHOWTO
 http://xqt.sourceforge.jp/pukiwiki/pukiwiki.php?FrontPage
 1.5.0 のフリー版が置いてあります。

・np2>ねこーぷろじぇくとII
 http://www.t3.rim.or.jp/~kni/sl/np2.html
 SDL, SDL_ttf, freetypeのライブラリが必要ということでこちらを参考にしました。


“SL シリーズザウルス” + “Qtopia”開発チュートリアル
 qte_tutorial_030122_a300.pdf