uCsimm 日記
Last Updated 2000.5.21

2000/05/20

久しぶりに uCsimm と戯れてみる。今日は uClinux 開発環境を Linux マシンへ載せ、uCsimm への IP 接続と Flash 書き込みを行なってみよう。

まずは uClinux 開発環境のインストールだ。Linux マシンで uClinux CD を mount し、libc6 を使っているので RPMS/libc6 に移り make を実行する。ここではコンパイルが行われる訳ではなく、単に rpm ファイルを展開しているだけで、一連の処理を Makefile に記述してあるのだ。インストール先は /opt/uClinux なので、スーパユーザで make を行なう必要がある。

次に romimage を作成しよう。home の下に uClinux というディレクトリを作成し、このディレクトリで buildenv を実行すると Makefile が作成される。make を実行すると uClinux ディレクトリ下に各種ファイルが展開され、ここに romimage が生成される。uClinux/romdisk/ の下にイメージ生成前のファイルがあり、以下の2つのコマンドを実行することで uCsimm に転送する image.bin が出来るようだ。

genromfs -v -V "ROM Disk" -f romdisk.img -d romdisk 2> romdisk.map
cat linux/linux.bin romdisk.img > image.bin

Flash に書き込む前に IP アドレスの変更を行なってみる。romdisk/etc/resolv.conf と romdisk/etc/rc を変更した。その後 make を実行して image.bin を作成し、ブートストラップで rx コマンドを実行した後ターミナルソフトから XMODEM プロトコルを使用して先ほど作成した image.bin を転送する。9600bps だとモーレツに時間がかかる。転送完了後 program コマンドで Flash に書き込みを行い、go コマンドで実行する。

これで自宅のネットワークに接続出来るようになったぜ。

毎回 Flash に書き込むのも心配なので image.bin を RAM 上で動作させてみよう。XMODEM での転送後に goram を実行すると、ターミナルソフト画面上に ABC と表示された所で止ってしまう。やはりリンク時のアドレスを RAM 用に変更しないと駄目なようだ。

RAM 領域での OS 実行について uClinux-ML を調べた所、以下の URL に関する情報を見つけた。

http://www.realtimelinux.org/CRAN/uClinux/contrib/seh/goram/

ここの PATCH を元に RAM 版の image.bin を作ってみよう。同じディレクトリにある README を参考にして PATCH を当てようとしたのだが、うまくいかない。バージョンが違うためか、ソースが異なっているようだ。手作業でも修正出来そうだが、面倒なので今日は止めにしよう。

次回は LED でも点滅させてみるか。


2000/05/08

uCsimm表 5/1 に届いた uCsimm を動かしてみよう!まずは動かすために一緒に買った The "gardener" uCsimm host board kit を組み立てるぜ。

電源の AC アダプタは外側の電極が+のものを使う必要がある。3.3V 用の3端子レギュレータにつなげるため、基板上には 4〜6V の AC アダプタをつなげるように書いてある。とりあえずそんな AC アダプタは持っていないので、12V のものを使った。同梱されている3端子の型番がよく分からないので定格が不明だが、まあ 78xx シリーズ等の定格から類推して、12V くらいなら大丈夫だろうと判断した。小心者なので、一応テスタで出力を見てみたが....

ハンダ付け自身はすぐ終わった。さてここから先はどうすればいいのだろう?マニュアルを見ると、最初はシリアルでつなげるように書いてある。よくよく見ると gardener 上に付けた D-SUB 9P コネクタはメスだよ。ということで 9P シリアル延長ケーブルを引っ張りだし、PC と接続した。

uCsimm裏 マニュアルでは linux 上に環境を構築するように書いてあったが、今 linux をインストールしている環境にはシリアルターミナルがインストールされていない。そこで安定している DOS 上で ターミナルソフト KTX を動かした。9600bps NonParity 8bit StopBit1 に設定した。

ターミナルソフトを立ち上げた状態で、AC アダプタを挿すとブートローダが起動した。これは OS をブートするためのローダなのね。コマンドが分からないので help と入力すると、色々とコマンドの説明が出てくる。とりあえず工場出荷時に Flash に書き込まれている OS を動かしてみよう。「go」コマンドを実行すれば OK だ。ちなみに RAM 上に転送された OS を動かす「goram」コマンドを実行したら、見事にハングした。

要はこのブートローダで RAM 上に OS 等を転送し、これを実行したり Flash に書き込んだりして遊ぶって訳ね。段々仕組みが分かってきたよ。

「go」コマンドを実行したら、ブートシーケンスメッセージが色々と出力される。最初に動かした時には Ether が繋がっていないということで何度もリトライしてしまい、全然先に進まなくなった。Ether ケーブルを繋いだら、動いた。

uCgardener login: プロンプトが出た。恐らく最初は root で入ることになるのだが、password も要求されてしまった。どうする?マニュアルを見ると、ちゃんと書いてあった。それにしてもこのマニュアルは、ちょっと読みにくいねえ。

この後は普通の linux と同じだ。ちゃんと vi も用意されているよ。ただターミナルソフトの問題かも知れないが、BackSpace で戻ったりするコードもコマンドとして認識されてしまうので、コマンド名を間違えて打ち直したりすると画面上は正しいコマンドになっているが、内部では正しく認識されない。結構不便だ。

初期状態では 192.168.1.200 に IP が設定されている。192.168.0.X に変えたいのだが、/etc/rc ファイルが Flash 上に実装されているので、そのまま vi 等を使っても変更出来ない。やはり Flash 書き換えが必要だな。

今日はここまで。次回は linux 上に環境を立ち上げて、Flash の書き換えを行なって Network に接続してみよう。


とにかくつくってみよう!に戻る

kyosuke@da2.so-net.ne.jp