« 2007年6月 | トップページ

コンパイル環境を準備する。

コンパイラの整備

TOMTOMのページからLinux用バイナリーをダウンロードして/usr/local/crossへ展開する。

Linux以外にCygwinのバイナリーも存在する。ソースからビルドすればどんな環境でもOKだけどかなり手強い。

ダウンロードと展開

# cd /tmp # wget http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz # mkdir /usr/local/cross # cd /usr/local/cross # gtar xzvf /tmp/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz

パスの設定

/usr/local/cross/binへパスを通す。

カーネルの取得

最新版を取得する。

wget http://www.tomtom.com/gpl/golinux-tt1725.tar.gz gtar xvzf golinux-tt1725.tar.gz cd golinux-tt1725 ./buildkernel.sh

システムイメージユーティリティ

TOMTOMのディスクをみていたら/etc/とかがないなあと思ったら、TOMTOMの中ではシステムファイルは1つのファイルttsystemにまとめられているらしい。

これを分割したり、結合したりするツールを導入する。

分割ツール ttimageextract

$ wget http://svn.opentom.org/opentom/trunk/ttimgextract/ttimgextract.c $ gcc -o ttimageextract ttimgextract.c # cp ttimageextract /usr/local/bin/

ttsystemを tomtom本体からダウンロードして展開してみる。

$ ttimageextract /tmp/ttsystem sect_size = 0x38cba5, sect_addr = 0x31000000 sect_size = 0xd6040, sect_addr = 0x31700000 $ ls -l ttsystem* -rwxr-xr-x 1 yass yass 4598821 Jun 30 12:59 ttsystem* -rw------- 1 yass yass 3722149 Jun 30 14:19 ttsystem.0 -rw------- 1 yass yass 876608 Jun 30 14:19 ttsystem.1

2つに分割される。ttsystem.1のほうがカーネルで、ttsystem.0のほうがユーザファイルシステムらしい。

ttsystem.0を展開する。


$ gunzip < ttsystem.0 > ttsystem.cpio
$ cpio --extract -v < ./ttsystem.cpio
.....
...

これでLinuxユーザが見覚えのあるファイルがでてくる。

ttsyste のイメージを作る

wget http://svn.opentom.org/opentom/trunk/mkttimage/mkttimage.c \ http://svn.opentom.org/opentom/trunk/mkttimage/Makefile \ http://svn.opentom.org/opentom/trunk/mkttimage/blowfish.c \ http://svn.opentom.org/opentom/trunk/mkttimage/blowfish.h \ http://svn.opentom.org/opentom/trunk/mkttimage/md5.c \ http://svn.opentom.org/opentom/trunk/mkttimage/md5.h $ make cc -c -o mkttimage.o mkttimage.c cc -c -o md5.o md5.c cc -c -o blowfish.o blowfish.c gcc -o mkttimage mkttimage.o md5.o blowfish.o

パスの通っているディレクトリへインストールする。


# cp mkttimage /usr/local/bin/

ttsystemをつくってみる

ユーザディレクトリのルートへ移動して以下の手順でユーザファイルシステムを作る。


$ find . | cpio -oa > /tmp/tt.cpio
$ cd /tmp/
$ gzip tt.cpio

カーネルは、カーネルをビルドしたディレクトリの arch/arm/boot/zImage にあるので、これとユーザファイルシステムを合体させる。

$ mkttimage tt.cpio.gz zImage > ttsystem

あとはこれを本体にコピーすればOK.

| | コメント (0) | トラックバック (0)

« 2007年6月 | トップページ