ページ

2012年9月4日火曜日

NetBSD / NetWalker

NetBSD/ NetWalker

NetWalker にて NetBSD を動作させる手順について説明します。

まずは NetWalker の説明から。
NetWalkerはブートローダにRedBootを採用しております。
通常は NAND にある Linux Kernel を起動するのですが、シリアルを取ることで RedBoot のコンソールから好きなバイナリをブートすることができます。
シリアルの取り方は このへん を参考に。

boot

ただ、蓋開けて基板むき出しにして半田付けしてって面倒だよって人にはもっと簡単な方法が。
  1. リカバリSDカードを作成する
    NetWalker(PC-Z1)再インストール用microSDカード作成 プログラムダウンロード手順
  2. /boot/zImage を任意のバイナリと置き換える
  3. 再インストール手順を実施する
    再インストール(リカバリー)

で任意のバイナリを実行可能となっております。
ありがとうシャープさん。

ちなみに、現状のNetBSDではKernelのロードアドレスを”0x90100000”にしてあります。一方RedBoot のバイナリ展開アドレスはソースコードには"0x00800000"(物理アドレス”0x90800000”)って書いてあるような。。。また、Linux起動アドレスは”0x90008000”って書いてあるような。。。実際どこに展開して何番地からスタートしているのかちゃんと調べたほうがいいな。

ま、NetBSD/NetWalkerでは深いことは考えないで(当時はちゃんと考えた気もするが)、今いるアドレスと期待しているアドレスが違った場合自分自身をコピーしてから起動するようにしている。だからアドレスとサイズによってはうまく起動しない場合もありますが、今のところ問題になっておりません。

ということで一言で起動方法を説明すると、
「netbsd.bin を /boot/zImage にリネームして左右ボタン両押ししながら電源投入」
ということになります。

root file system

現状のNetBSDでは、”root device" を聞いてくるところではUSB keyboard の入力は受け付けてくれない。(なんとかしたいとは思っている)したがってマルチユーザで立ち上げるには”root device”を指定したカーネルを構築しておく必要がある。
USBメモリをルートファイルシステムにする場合は、
 
config          netbsd-sd0      root on sd0 type ffs

を追加しておくとよいでしょう。
その際にできるカーネルのバイナリは”netbsd-sd0.bin”になります。

2 件のコメント: