cyber205の日記: PERSONAでNetBSD
Embedded Visual Tools 3.0で hpcboot.exeを作ることなく、
NetBSD 1.6に添付のuuencodeされたバイナリを持ち込んで、
PERSONA HPW-50PA(SH7709A(SH3)100MHz/MEM32MB)上でNetBSDの起動に成功しました。
昨日の深夜、IRCでアドバイスくれたみんな、特に「はたの」さん、どうもありがとう。
以前に試して動かせなかったのは、SH3のバイナリではなかったからかもしれません。
# しかし、やろうと思ってたtoolchainの勉強では煮詰まって、
# 気分転換でやろうとしたNetBSDのインストールがサクサク進むってのはなんだかなぁ…。
NetBSDの情報サイトには、本体のキーボードと液晶パネルをコンソールにせずに、
シリアルコンソールをつないでの起動が勧められていたけど、
NetBSD-1.6.1のカーネルをクロスコンパイルで作ってnetbsd.gz(カーネル)を入れ換え、
起動させてやったら、既に本体のコンソールドライバがきちんと動いてるのを確認できました。
このへんのハード解析はもう、できてたのね。
しかし、キーボードからの電源OFFとか、
液晶の輝度、濃度コントロールは全く効きません。
パワーマネジメントも無しで、フルパワーで走りっぱなし。
ある意味、凄い環境だ(笑
自前でクロスコンパイルした1.6.1のカーネルでは、
元のNetBSD 1.5TでできていたRAMディスク関連の操作が
不可能になっているようだったので、
NetBSD-1.6.1ではdisklabelしてスライスを切り、
パーティションを区切ってminiroot.fsを転送したCFが1枚必要でした。
深夜に部屋の中をガサって、何とか32MBのCFを探し出して、
以前からNetBSDを入れたままXがうまく動かなくてほったらかしだったFMV5120に突っ込み、
ループバックデバイス経由でイメージをマウントして転写…。
# 夜中に何やってんだか。
ループバックデバイスの扱い方が、LinuxとBSD系では違うのにハマったけど、
まぁ、これはGOOGLEで検索してどうにかなりました。
>NetBSD
>vnconfig を使います。
># vnconfig /dev/vnd0 diskimage.xdf
># mount -t msdos /dev/vnd0 /mnt
いったん、vndってデバイスに割り付けてからマウントするのね…。
FreeBSDでもやり方は一緒らしい。
しかし、CFはたったの32MB。メインメモリが結構あるのに、
1.6.1のカーネルではRAMディスクとして使えないのはもったいない。
hpcshアーキテクチャでGenericのカーネルにはそういうオプション、見えてないみたい。
本来ならどっかにあるはずなんだけど。
今回は起動の時にCFを2枚刺して、
片方はhpcboot.exeとnetbsd.gzを入れたFATのCF、
もう一方はminiroot.fsを展開したdisklabel/FFSフォーマットのCF
という構成にしています。
起動時にこれら2枚はNetBSDのカーネルから見て PCMCIA I/F経由でwd0とwd1として認識されるから、
起動の時miniroot.fsが見付からないって文句言われた時点で、rootパーティションを入力するよう促されるので、
wd1a(wd1の最初のパーティション(miniroot.fsはそこに展開してある))
に指定して起動させるという方法を使いました。
これで、あとはマウントして、shが起動してコマンドを受け付けます。
miniroot.fsのイメージでは、まだ/sbin/initが原始的な設定で、
loginすら使わないで、いきなりshを起動していろいろできるシステムになっているらしい。
今朝方、NetBSD-1.6.1の基本ディストリビューションを
クロスコンパイルで作成するように仕掛けておいたので、
(BSD系システムは、基本BSDシステムとGNU開発ツール、
そしてオプションの追加パッケージソフトウェア群から成るらしい)
現在、コンパイルの終了した基本システムが母艦のほうに転がっているはず。
カーネルとユーザーランドの区分で言うと、ユーザーランドの部分ですね。
これから、狭いCFに詰め込むため、選別作業をしようかなという所。
PERSONAでNetBSD More ログイン