コードとにらめっこ
試験が終わったということで、なんとか動かすことはできないかなーと調査中。
とりあえずわかったことその1、NetBSDとLinuxのカーネルバイナリフォーマットについて。
というわけでNetBSDを起動させるにはELFを解釈してメモリに展開できるブートローダが必要と。そりゃkexecにぶち込んだら暴走するのも当然だわな。
ちなみにこのELF、正しくはExecutable and Linkable Formatといって実行ファイルフォーマットの1つ。そんでもってこのELFと合わせて設計されたデバッグ用データフォーマットとしてDebug With Attributed Record Format(DWARF)なんてのがある。エルフとかドワーフとか、どう見ても指輪物語ネタです。本当にありがとうございました。
ではそもそもNetBSD/zaurusはどうやって起動させているのかと思って調べてみると、どうやらzbsdmod.oというLinuxカーネルモジュールがあってそこにNetBSDのカーネルを喰わせるようになっている模様。ただしノーマルZaurusを前提としているためzbsdmod.oはLinux kernel 2.4.x用。一方myZaurusはAngstrom化しているのでLinux kernel 2.6.x。ダメ元で喰わせてみるが案の定弾かれた…というわけでzbsdmodをまず移植せんといかん、と。