本記事はルーターハックAdvent Calendar 2018 14日目の記事です。
Linux方面の方にもこんなのあるんだと言うアピールのため書きます。
FreeBSDのルーターイメージをビルドするツールにZRouterとfreebsd-wifi-buildというのがあります。
ZRouterは9年くらい前に始まったプロジェクトなのですが、私がさわりはじめたのは5年くらい前でした。
大きな違いはZRouterは独自にコンフィグレーションを作って、ビルドするのに対して、freebsd-wifi-buildはFreeBSDのbuildworld/buildkernelをラップしたようなものです。ZRouterはmakeベースでの作り込みで、freebsd-wifi-buildはshスクリプトペースの作り込みになります。
どうも元は一緒に作っていたのが喧嘩別れしてfreebsd-wifi-buildができたようです。
なぜ私がZRouterが良いと思っているかというと、freebsd上であればfreebsdのソースとZRouterがあれば追加でパッケージをインストールする必要なくビルドできるからです。加えて基本的なビルドには一切rootの権限が必要ない事があります。あと自分がいろいろいじったので、もはや移す気が起きません。
FreeBSDのmips系はAtherosかMediatek(Ralink)がお勧めです。Broadcomは作り替えてソースはあるのですが、トラブルが好きな人でなければ避けた方が良いです。
元々4M Flashではきつかったのですが、削ってどうにかOSだけであれば入るようになっています。いまのところMIPS16が使えないので8M以上の機種がお勧めです。
5年前には2Mや4Mのターゲットが結構ありましたが、最近では4MでもUSBが付いていたりするので、ほぼストレージの大きさからは解放された感があります。
MediatekはLinux同様にFDT対応されたコードになってます。dtsはLEDからのものがFreeBSDのツリーにあります。ペンギン撲滅を目指していましたが、リソースを共有しているので、仲良くした方が良いかもしれませんね。
日本で手に入るターゲットもいろいろ追加してあります。一部ブート入れ直しやFlash貼りなおししている機種もあります。
FreeBSDのFDT対応のファイルシステムの位置はdtsのpartitionに直書きになってます。このためkernelが大きくなったときにrootfsの位置がづれて起動できなくなる事があります。パッチを作ってレビューに入れてあるのですが、ロシアの友人のコミッターと意見が合わずそのままになってます。
Atherosを使ったWZR-HP-G300NHかWZR-HP-G301NHがいろいろな人に使ってもらっているので、一番再現性が高いと思います。この機種のEthernet Swtich対応も自分がやりました。WZR-HP-G300NHは二種類あってEtherswitchにRTL8366SRを使った前期のものとRTL8366RBを使ったものになります。ZRouterの設定ファイルはWZR-HP-G300NHがRTL8366SRでWZR-HP-G301NHがRTL8366RBとしてあるので、RTL8366RBを使ったWZR-HP-G300NHはWZR-HP-G301NHでビルドしてください。
このアドベントカレンダーの趣旨の通り無線はほとんどやってません。たまたままにあっていて、いじるのがめんどうだったからなんですが。
FreeBSDのarm系はメモリが大ききターゲットが増えて来たので、セカンドローダーを用意して使っていますが、mipsではkernelをブートローダーから直接起動するようにしています。
ブートローダー対応はu-boot,redboot,cfeに対応しています。それぞれのイメージ作成用のツールを内包しています。
u-bootについてはPlanexの先頭に空白のあるイメージにも対応させてあります。
ZRouterの売りとしては、FreeBSDのパッケージ作成環境のportsを流用した仕組みで、イメージに追加のコマンドを入れ込む事ができます。自分の必要な物しか入ってませんがmrubyやracoon(ipsec-tools)などがはいっていてちょっと変わったところでは飛行機の無線をワンセグチューナで受信するdump1080なども入っています。portsもどきと呼んでいるのですが、portsもどきではgmakeなどのパッケージが必要になるケースもあります。
ZRouterはウクライナのrayが始めたプロジェクトで、ここ最近は私がいろいろいじっていたので、motdに私の名前も入れてくれました。
FreeBSDで使えなかった蟹さんやBraodcomはBareMetalでmrubyを動かしています。
山ほど買っておいて何なのですが、ハードオフでルーターが108円や324円であまりにたくさん転がっているのは、これを作っている人も買った人も不幸な気もします。少しメーカーの人も考えるべきではないでしょうか。(某メーカーみたいにブートにパスワードかけて使えなくするのではなく。そんなことしてもu-boot焼いてちゃんと使えますから)
レンタルサーバでFreeBSDの仮想環境作ってZRouter始めてみませんか?