uClinux H8/300H を秋月 H8/3068ボードで動かす
uClinuxを秋月通商のH8/3068 or H8/3069ネットワークマイコンで動作させるための手順です。
それなりに安定した(と思う)ので、まとまった文章を作りました。
よくわからんというところは、検索すれば多分出てきます。
2.0.39カーネル用です。2.4は一部違います。
ファイルのダウンロード
次のものをダウンロードしてください。
カーネルとルートイメージは、何種類か用意してあるので、環境に併せて選んでください。
よく分からない場合は、NFSで無いものを使ってください。
機材の準備
- H8/3068ボード
メモリの増設とRTL8019ASの割り込みラインの改造が必要です。
初回版の人は適当に改造してください。
- 電源(念のため)
- ホストPC
ネットワークがつかえたほうが便利です。
- RS232Cケーブル
ないと何も出来ません。
- LANケーブル
無くても動かすことは出来ます
普通に必要な物です。特に変わったものはありません。
H8/3068ボードの改造
- RAMの増設
運悪くおまけのDRAMが付いていない場合は、
H'400000 - H'5FFFFF にRAMを増設してください。
裏面のパターンにメモリを載せれば、そうなります。
これ以外の方法で増設してもかまいませんが、RedBootでBSCを初期化しているので、
その部分を適宜変更してください。
- RT8019ASの割り込み
CPUのIRQ5にRTL8019ASの割り込み要求(INT4)を入れてください。
初回版の場合は、INT4出力を反転してIRQ5に入れてください。
CPUはレベルセンスで拾っているので、タイミングはそれほどうるさくないはずです
(タイミングチャートをあたっていないので、正確なところはわかりません)。
第2ロット以降は、改造しなくてもいいみたいです。
ホストPCの準備
ネットワークを使う場合は、いろいろ準備があります。
使わない場合は、飛ばしてください。
- BOOTPサーバーの用意
RedBootが起動時にBOOTPでIPアドレスを取得します。
私はISC dhcpdを使っています。
fixed-addressを設定するとBOOTPが使えるようになります。
(何もしないと、BOOTPは無視されます)
他のDHCPサーバーは使えるかどうか良くわかりません。
ちなみに、BOOTPに応答してもらえなかった場合、
IPアドレスを手動設定する必要があります。
- TFTP/HTTPサーバーの用意
600Kぐらいのバイナリをシリアルダウンロードする事に
耐えられない場合は、必要です。
- NFSサーバー
当然NFSRootを使う場合に必要です。
Diskless Bootの設定と同じなので、
その方面にもっと親切な文章があると思います。
各機器の接続
普通につないでください。よくわからない場合は、ボードの説明書に書いてあります。
RedBootの書き込み
今の所uClinuxをブートできるのはRedBootだけなので、
ダウンロードしたROMイメージを解答して、ROMに焼いてください。
でかいので、結構時間がかかります。気長に待ってください。
これで、動かすための下準備は終わりです。
RedBootの起動
- シリアル端末プログラムを起動して、通信手順を38400BPS B8S1PNに設定してください。
- ボードの電源を入れると、RedBootの起動メッセージが出てきます。
BOOTPが使える場合は、取得したIPアドレスが表示されているはずです。
その時に、ポート9000にtelnetで接続すると、そっちでも操作できます。
BOOTPが使えなくても、ネットワークを使う場合は、"ip_address"コマンドで設定してください。
うまく行かない場合は、どこか間違えているので、悩んでください。
RedBootの操作は、Helpを見るかRedBootのドキュメントを読んでください。
uClinuxのロード
あらかじめ
- ファイルが圧縮されている場合は、展開してください。
- TFTPでダウンロードする場合は、TFTPのルートディレクトリにファイルを配置してください。
で、カーネルをH'400000、ルートイメージをH'4A0000にロードします。
NFSの場合は、ルートイメージをロードする必要はありません。
コマンドは、
RedBoot>
load -r -b 0x400000 [any options] linux.bin
で、カーネルのロード、
RedBoot>
load -r -b 0x4a0000 [any options] rootimage.bin
で、ルートイメージのロードです。
何も指定しない場合は、
ネットワークがつかえない場合 | YMODEMでダウンロード |
ネットワークがつかえる場合 | デフォルトのサーバーから、
TFTPでダウンロード |
になります。
XMODEM/YMODEMでダウンロードする場合は、コマンドを実行した後、
アップロード操作を行ってください。多分5分ぐらいかかります。
ちなみにZMODEMはHELPに出てきますが、実際は使えません。
uClinuxの起動
単純に
RedBoot>
go 0x400000
でも起動できますが、コマンドラインを渡せないので、いろいろ不便です。
ということで、起動コマンドを追加しました(非公式)。
RedBoot>
exec [-c "コマンドライン"]
です。
シリアル端末が、H8/3068ボードのRS232Cコネクタにつながっている場合は、
"console=/dev/ttyS1"をコマンドラインに指定してください。
指定しないと、コンソールが/dev/ttyS0になるので、操作できなくなります。
注意してください。
NFSRootを使う場合は、"nfsroot=〜"をコマンドラインに指定してください。
詳しい事は、HOWTOを参照してください。普通のlinuxカーネルと同じです。
うまくいけば、そのうち起動します。
後はごく普通のlinuxです。
/binの下にコマンドがいくつか入れてあります。
テスト用なので、大した物ははいっていません。
基本的にはuClinuxのユーザーランドなので、使い方はそっちをあたってください。
あと、危ないテストプログラムもそのまま入れているので、
こけた場合は、素直に再起動してください。
最後に
まとまった文章とか言いつつ、全然まとまってません。
抜けているところもたくさん有りそうだし…。
特に、環境設定(BOOTP,TFTP)関係はDiskless Bootと同じなので、かなり省略しています。
少しずつ書き足していきたいと思いますが、優先順位はかなり低めです。
他にもまとめないといけない文章があるので…。
各種指摘・質問・「書き直してやったぞ」というありがたい報告等は、
出来ればML
に送ってください。
Project Page
Yoshinori Sato