ZRouter.orgはFreeBSDで構築されているのですが、NetBSDもいろいろ調べてみて、NetBSDでZRouterが実現不可能なことがだんだん分かってきたので、まとめておきます。
ZRouterはビルド環境と実行環境という側面があります。ビルド環境は考えればどうにかなるかもしれませんが、実行環境は致命的です。
- geomがない
ZRouterではflashにread onlyな圧縮iso9660なfsを置いてますが、これはgeomの拡張で実現しています。現在NetBSDにはgeomのような仕組みはないので同じようなfsが作れません。
- etherswitchのコードがない
etherswitchを初期化しないとifがあっても外部と通信できません。最低限の初期化コードをifコードなどにハードコードするしかないようです。
- cfi,spi flashのサポートが貧弱
cfi,spi flashのサポートが共通化されてなくてSOC個別になっているので、使えないケースが多いようです。
全般的にNetBSDでは個別実装が多くFreeBSDのように簡単にいじれないのも難しいところです。
カーネルソースが汚いのも問題です。
ターゲットもたくさん手元にあるので、わざわざNetBSDでZRouterと同じことをする必要はなくて、別のアプローチを考えたほうが良いようです。
ビルド環境の話ですがFreeBSDには標準のディストリビューションからファイルを減らしてビルドする機能があります。同等のものはNetBSDには無さそうです。